Docker四种方式改变了软件工程师过去五年的工作方式


10年前,Git改变了软件工程师的工作方式。五年前,Docker将容器带给了大众。这篇文章是关于Docker如何改变了我们过去5年的工作方式。

使用Docker,你不仅可以运送整个堆栈的代码。为容器分配最少的所需资源,然后水平扩展它们。随着容器安全通常也已经实现。使用Docker和Kubernetes,您可以获得零停机时间和更快的部署,从而实现业务利润。

Docker部分弃用了许多配置管理工具。

1. 运送整个堆栈,而不仅仅是代码
对于特定的容器和Docker,您始终在每个版本中运送整个堆栈。每次都会重建整个镜像,它包括精确的OS +版本,语言的特定版本。它还具有框架和其他库之类的依赖关系(版本取决于您如何处理它)。它还包括您编写的代码,这会带来显著的优势。优点是,如果它在您的机器上正确构建,它也可能在其他任何安装了Docker的服务器上构建。一旦它运行,它就形成开发,升级,测试甚至生产都一样的环境。

2. 仅为应用程序分配所需资源并水平扩展
对于每个Docker容器,您可以具体说明要为该特定容器分配多少资源。使用像Kubernetes这样的软件,可以更轻松地扩展您的应用程序。在高负荷下,容器可以扩展;负载较小时,也可以收缩。因此,使用此机制,可以为每个容器(或Kubernetes的pod)分配最小资源,并根据需要进行水平扩展。

一个简单的Node JS app容器/ pod可以运行128 MB内存和0.25 CPU。当负载增加时,运行5个pod代替2个pod。

这可以构建具有水平可伸缩性的应用程序。这基本上意味着不在文件系统上存储数据。这样像牧场放牧一样,不再是一种养宠物的方式,这样有助于水平伸缩。它还使应用程序的高可用性成为可实现的任务。

3. 安全性已被默认启动
使用容器而不是虚拟机,攻击面已经减少。遵循容器安全最佳实践,您已经可以改进安全措施。当然,如果你在应用程序中有漏洞,比如SQL注入,这是另外一回事。尽管如此,对于像Alpine这样的小型安全镜像来说,更容易掌握基础知识。
容器应该只能访问它需要的东西。由于文件系统对于容器是临时的,因此它可以是安全保障以及安全审计问题。

4. 零停机时间更快部署
部署Docker容器总是要运送整个堆栈。因此,一个文件未同步或一个服务器未获得最新更改的可能性不存在。由于部署映像的成功构建取决于一定要在构建过程中找到可找到的任何问题。

使用像Kubernetes和Helm这样的软件,编排和部署容器变得简单明了。使用适当的负载平衡实现高可用性(HA),部署可以是零停机时间。

更轻松,更快速的部署等同于部署较小更改的能力。做得较好的较小变化可以快速响应市场需求。总而言之,使用正确的工具来部署容器,以便将其用于业务优势。

结论
过去5年,Docker迅速采用。使用Kubernetes等工具进行部署和扩展应用程序比几年前要轻松得多。