了解Docker的主要优势,以及为什么它在容器化中如此受欢迎,例如快速部署,多云平台和安全性。

如今,关于容器化和Docker的热潮四处流传。 Docker到底是什么?它与容器化有何关系? 使用Docker的最大好处是什么? 为什么它如此受欢迎? 与Docker相关的统计数据和成功案例有哪些? 在本文中,我将回答所有这些问题。

什么是Docker及其与容器化有何关系

在容器而不是虚拟机中运行应用程序在IT世界中获得了动力。 该技术被认为是软件行业最近发展最快的技术之一。 Docker的核心是一个平台,该平台使用户可以轻松打包,分发和管理容器内的应用程序。 换句话说,这是一个开源项目,可以自动在软件容器内部署应用程序。

Docker确实通过使用容器使创建,部署和运行应用程序变得更加容易,并且容器使开发人员可以将应用程序与所需的所有部分(如库和其他依赖项)打包在一起,并将其作为一个软件包打包。 这样,开发人员可以确保该应用程序可以在任何其他Linux机器上运行,而不管该机器可能具有的用于与编写和测试代码的机器不同的任何自定义设置。

Docker统计和事实

尝试使用Docker的公司中有2/3会采用它。 大多数将采用的公司已经在最初的生产使用后30天内这样做了,几乎所有其余的采用者在60天内都进行了转换。去年Docker的采用率增加了30%,采用者将其容器乘以5。 在使用的第一个月到第十个月之间,Docker采用者的平均数量大约是生产中运行容器的五倍.PHP,Ruby,Java和Node是容器中使用的主要编程框架。

使用Docker的受欢迎程度和好处

为什么像ING,Paypal,ADP和Spotify这样的大公司继续使用Docker? 为什么Docker的采用速度如此之快? 让我们涵盖Docker的主要优势以更好地理解它。

投资回报率和成本节约

使用docker的第一个优势是ROI。 选择新产品时,大多数管理决策的最大推动力是投资回报。 解决方案越能降低成本并增加利润,它的解决方案就越好,特别是对于大型的成熟公司而言,这些公司需要长期产生稳定的收入。

从这个意义上讲,Docker可通过大大减少基础架构资源来帮助实现这种节省。 Docker的本质是运行同一应用程序所需的资源更少。 由于Docker减少了对基础架构的需求,因此组织能够节省一切,从服务器成本到维护它们所需的员工。 Docker使工程团队更小,更有效。

标准化和生产力

Docker容器可确保跨多个开发和发布周期的一致性,从而实现环境的标准化。 实际上,基于Docker的体系结构的最大优势之一就是标准化。 Docker提供了可重复的开发,构建,测试和生产环境。 整个流程中标准化的服务基础架构使每个团队成员都可以在生产平价环境中工作。 通过这样做,工程师将更有能力有效地分析和修复应用程序中的错误。 这减少了浪费在缺陷上的时间,并增加了可用于特征开发的时间。

如前所述,Docker容器允许您将更改提交到Docker映像并对其进行版本控制。 例如,如果您执行破坏整个环境的组件升级,则很容易回滚到Docker映像的先前版本。 整个过程可以在几分钟内完成测试。 Docker速度很快,可让您快速进行复制并实现冗余。 同样,启动Docker映像与运行机器进程一样快。

CI效率

Docker使您可以构建容器映像,并在部署过程的每个步骤中使用相同的映像。 这样做的巨大好处是能够分离非依赖性步骤并并行运行它们。 从构建到生产所需的时间可以大大缩短。

兼容性和可维护性

一劳永逸地消除“在我的机器上工作”的问题。 整个团队都会欣赏的好处之一就是平价。 就Docker而言,奇偶校验意味着您的映像无论在哪个服务器或笔记本电脑上运行都相同。 对于您的开发人员来说,这意味着更少的时间用于设置环境,调试特定于环境的问题以及更可移植且易于设置的代码库。 奇偶校验还意味着您的生产基础架构将更加可靠并且易于维护。

简便快捷的配置

Docker的主要优势之一就是它简化了事情。 用户可以采用自己的配置,将其放入代码中,然后进行部署,而不会出现任何问题。 由于Docker可以在各种环境中使用,因此基础架构的需求不再与应用程序的环境相关联。

快速部署

Docker设法将部署减少到几秒钟。 这是因为它为每个进程创建了一个容器,并且没有引导OS。 可以创建和销毁数据,而不必担心再次启动它的成本会高于负担得起的成本。

持续部署和测试

Docker确保从开发到生产的一致环境。 Docker容器配置为在内部维护所有配置和依赖项; 您可以在开发到生产期间使用相同的容器,以确保没有差异或手动干预。

如果您需要在产品的发布周期内执行升级,则可以轻松地对Docker容器进行必要的更改,对其进行测试,并对现有容器实施相同的更改。 这种灵活性是使用Docker的另一个主要优势。 Docker确实允许您构建,测试和发布可以跨多个服务器部署的映像。 即使有新的安全补丁可用,该过程也保持不变。 您可以应用补丁,对其进行测试,然后将其发布到生产环境中。

多云平台

Docker最大的好处之一就是可移植性。 在过去的几年中,所有主要的云计算提供商,包括Amazon Web Services(AWS)和Google Compute Platform(GCP),都接受了Docker的可用性并增加了单独的支持。 Docker容器可以在Amazon EC2实例,Google Compute Engine实例,Rackspace服务器或VirtualBox中运行,前提是主机操作系统支持Docker。 在这种情况下,可以在环境之间轻松迁移在Amazon EC2实例上运行的容器,例如到VirtualBox,以实现相似的一致性和功能。 而且,Docker与其他提供商(例如Microsoft Azure和OpenStack)配合得很好,并且可以与Chef,Puppet和Ansible等各种配置管理器一起使用。

隔离

Docker确保您的应用程序和资源被隔离和隔离。 Docker确保每个容器都有与其他容器隔离的自己的资源。 您可以为运行完全不同的堆栈的单独应用程序使用各种容器。 Docker可帮助您确保清除干净的应用程序,因为每个应用程序都在其自己的容器上运行。 如果您不再需要某个应用程序,则只需删除其容器即可。 它不会在您的主机OS上留下任何临时或配置文件。

除了这些优点之外,Docker还确保每个应用程序仅使用分配给它们的资源。 特定的应用程序不会使用您所有可用的资源,这通常会导致性能下降或其他应用程序的完全停机。

安全

使用docker的这些好处中的最后一个是安全性。 从安全角度来看,Docker确保在容器上运行的应用程序完全隔离并彼此隔离,从而使您可以完全控制流量和管理。 没有Docker容器可以调查在另一个容器中运行的进程。 从体系结构的角度来看,每个容器都有自己的资源集,从处理到网络堆栈。

Docker成功案例

让我们看看实施Docker并对此感到非常高兴的知名公司的成功案例。

ADP

ADP是一直使用Docker更好地管理其应用程序基础架构的公司之一。 ADP是全球最大的基于云的人力资源服务提供商。 从薪资到福利,ADP为600,000多个客户提供人力资源服务,这给安全性和可扩展性带来了挑战。

为了解决安全问题,ADP使用Docker数据中心。 Docker Content Trust使他们的IT操作团队可以对映像进行签名,并确保只有签名的二进制文件才能在生产中运行。 他们还执行自动容器扫描。 使用多个Docker Trusted Registries使他们能够为其应用程序开发过程构建渐进式信任工作流。

为了解决可伸缩性问题,该公司依靠通用控制平面/群集。 Swarm使他们的团队能够从小规模开始,并使每个应用程序由许多小的Docker引擎集群组成,而不是每个应用程序由一个集群组成。 然后,群体将随着时间的流逝而合并,变得更大,最后,每个应用程序将拥有自己的群体。 有一天,一大群可能跨越公共和私有基础架构以及应用程序。 这将使企业能够为公司做出最佳财务决策。 借助Docker容器,ADP计划首先将其应用程序中最动态的部分进行容器化,以使其更易于更改和重新部署,从而日后离开应用程序的其他区域。 通过Docker进行容器化,ADP可以采用混合策略。 他们将混合使用各种容器的大小容器,从而为微服务提供了一条发展之路

ADP的愿景和目标是开发微服务,但事实是,没有公司会在一夜之间到达那里。 并非所有应用程序都将以相同的速率进行重构,并且该平台需要灵活以适应各种应用程序架构。 现在,通过将服务缓慢隔离到单独的容器中,ADP能够使用Docker逐渐发展为微服务架构,而无需一夜之间完成所有工作。

Spotify

Spotify是一项拥有数百万用户的数字音乐服务,它正在运行一个微服务架构,该架构为员工中的每个工程师提供多达300台服务器。 Spotify在管理如此多的微服务方面经历的最大痛苦是部署管道。 使用Docker,Spotify能够一直通过其CI / CD管道传递相同的容器。
从构建到测试再到生产,他们能够确保通过构建和测试过程的容器与生产中的容器完全相同。

现在,公司可以保证其所有服务保持正常运行,从而为客户提供出色的用户体验。 他们还基于Docker容器构建了一个名为Helios的新平台,以在整个团队或服务器中部署其容器并维护其开发生态系统。

ING

ING是全球十大金融服务公司之一,在全球范围内开展业务。 仅在荷兰的IT组织便有1800名员工,这在协调大批人员,流程和技术之间的变更方面提出了独特的挑战,并且导致了质量低劣的软件。

现在,ING可以通过在Docker容器中运行的CD管道来更快地移动。 加速的关键领域包括供应构建服务器,供应和发布测试,部署自动化以及整个180个团队的功能集成测试环境。 此外,自动化水平的提高开始使他们的基础架构资源紧张,而Docker帮助大大降低了利用率并最终降低了硬成本,尤其是在他们最大的一些开发工作中。

最后,我想说的是,Docker容器共享其操作系统,因此无论主机操作系统如何,它们都作为独立的进程运行。 正如Docker自豪地承认的那样,这意味着其容器可以“在任何计算机,任何基础架构和任何云上运行”。 这带来的可移植性,灵活性和简单性是Docker之所以能够产生如此强劲势头的关键原因。 我们是使用Docker的忠实拥护者,我们相信它将继续增长。