目录
一、引言
1. 说明:
- Linux是开源的,因此是免费的。Web主机仅需要支付技术支持即可安装和维护程序(如果需 要)。服务器提供商不需要将额外的成本转嫁给客户。另一方面,对于Windows服务器,公司通常
- 必须为操作系统和定期使用许可证付费。
- Linux服务器及其运行的应用程序通常设计为精益运行,因此通常使用较少的计算机资源。好处是 程序员可以“即时”修改Linux服务器和软件,而无需重新启动,这在Windows环境中是不可能的。 Microsoft
- Windows服务器在多数据库任务下趋向于变慢,崩溃的风险更高。
- Linux比Windows更安全。尽管没有哪个系统能幸免于黑客和恶意软件的攻击,但是Linux往往是 一个低调的目标。由于Windows运行着世界上大多数软件,因此,黑客们渴望获得低挂的果实 Windows。
虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
微服务的部署策略
- 部署单体应用意味着运行大型应用的多个相同副本,通常提供若干台(N)服务器(物理机或虚拟 机),在每台服务器上运行若干个(M)应用实例。部署单体应用并不总是简单明了,但还是比部署微 服务应用简单。
- 微服务应用由几十甚至数百个服务组成。服务用不同的语言和框架写成,每个都是一个小应用,包括特 定的部署、资源、扩展和监控需求,例如,根据服务需求运行若干数量的服务实例。
- 此外,每个服务实例必须配套提供适当的 CPU、内存 和 I/O 资源。更具挑战性的是,尽管如此复杂,部 署服务还必须快速、可靠和性价比高。
基于主机(物理机或虚机)的多服务实例
- “基于主机的多服务实例”模式是最为传统的应用程序部署方法。
- 在该模式下,软件开发人员可以提供单个或多个物理机或虚机,同时在每个主机上运行多个服务实例。
此模式有几种不同的实现形式,其中包括:将每一个服务实例都作为一个单独的进程,或是在同一进程 中运行多个服务实例。

优点:由于多个服务实例使用的是同一服务器及其操作系统,因此它们的资源使用效率相对较高。不足:
- 除非每个实例都是一个单独的进程,否则您对服务实例的实际控制权并不大。而且,您无法 限制每个实例能够使用到的资源比例。这将带来主机内存被大量消耗的隐患。
- 如果多个服务实例在同一进程中运行,它们之间会缺乏隔离关系。这通常会导致在相同进程 中,某个行为异常的服务能够直接影响、甚至中断其他的服务。
- 由于运营团队需要了解服务的详细信息,因此在部署期间,他们可能发生人为错误的风险较 高。显然,开发和运营团队之间需要通过必要的信息交换,来尽可能地消除复杂性。
基于容器的服务实例
基于容器的服务实例,是指使用容器技术(如Docker)来部署和运行服务的实例。容器是一种轻量级的虚拟化技术,它可以将应用及其所有依赖打包在一起,形成一个标准化的单元,用于软件开发和部署。
-
环境一致性:容器可以确保在不同环境(开发、测试、生产)中运行相同的软件和配置,从而避免了"在我机器上可以运行"的问题。
-
快速启动和扩展:容器可以在几秒钟内启动,这使得动态扩展和分发应用变得非常简单和快速。
-
资源隔离:每个容器都在自己的命名空间中运行,与其他容器隔离。这意味着它们可以有自己的进程、文件系统和网络栈,从而提高了安全性和稳定性。
-
资源利用率高:与传统的虚拟机相比,容器更加轻量级,占用的资源更少,因此可以在同样的硬件上运行更多的服务实例。
基于容器的服务实例广泛应用于微服务架构、持续集成/持续部署(CI/CD)等场景。

使用这一模式时,用户将服务打包为容器镜像。每个容器镜像就是一个文件系统镜像,由应用和运行服 务所需的库构成。
有的容器镜像还包括完整的 Linux 根文件系统,有的则更轻量。 以部署 Java