Docker,云计算的乐高积木,如何重构应用程序开发我们中的许多人还没有从这种新的Linux容器技术的迅速崛起中恢复过来,这种技术点燃了它前进道路上的一切。Docker不仅是有史以来最受欢迎的开源项目之一,它还从根本上改变了人们构建应用程序的思维方式。基于Docker的应用程序背后的许多想法并不是严格意义上的新想法,但Docker为那些旧想法带来了全新的视角。通过许多云开发实践,Docker促进了最佳实践,例如12-Factor应用程序。这些最佳实践最初是为构建基于PaaS的应用程序而开发的,现在普遍适用于基于Docker的应用程序。我们可以从Docker热潮中学到什么?看看这四个方面。1.微服务架构风靡一时针对单体云应用的程序开发。取而代之的是微服务架构,它将具有所有内置功能的大型应用程序分解为更小的、面向目的的服务,这些服务可以通过通用的RESTAPI相互通信。在1990年代,有一个类似的概念,称为基于接口/组件的架构。最近,面向服务的架构(SOA)似乎获得了一些发展势头。今天,微服务的概念已经成为Docker社区的标准模因,流行的趋势是将应用程序分解为分离的、极简的、专门的容器,专注于做好一件事。完全封装的Docker容器通过为微服务应用程序构建高效的分布式模型来启用微服务。这改变了云开发实践,让较小的开发团队有机会使用更大规模的架构,例如Facebook和Twitter使用的架构。2.拉近开发和运维的距离尽管Puppet、Chef、Salt和其他工具在开发运维(DevOps)方面处于领先地位,但这些工具在运维团队中比在开发人员中更受欢迎。Docker是第一个在开发人员中和运维工程师中同样流行的DevOps工具。为什么?因为开发人员可以在容器内工作,而运维工程师可以在容器外工作。当开发团队采用Docker时,他们为软件开发生命周期增加了一层新的敏捷性。一个很大的区别是一致性。基于Docker的应用程序在笔记本电脑上的运行与在生产环境中的运行完全相同。由于Docker围绕应用程序封装了整个状态,因此您不必担心由于底层操作系统的架构差异而丢失依赖项或软件错误。#p#3。确保持续集成的一致性持续集成可自动执行代码测试,因此始终是减少成品中软件缺陷数量的好方法。然而,持续集成有两个主要缺点。首先,很难封装所有的依赖。传统的持续集成/持续交付(CI/CD)技术(例如Jenkins和Travis)采用源代码存储库并构建应用程序组件。虽然这种方法对于许多应用程序来说效果相对较好,但二进制依赖项或操作系统级别的更改可能会导致代码在生产中的行为与在开发/测试/QA中的行为略有不同。由于Docker封装了应用程序的整个状态,因此最好确保代码在开发/测试/QA环境中的运行与在生产环境中的运行完全相同。其次,持续集成不是为微服务架构构建的。持续集成的设计思想实际上假设应用程序在一个代码库中。然而,Docker最佳实践鼓励跨Docker容器的松耦合微服务架构。这导致了新一代的持续集成/持续交付工具,例如Drone和Shippable,它们是从头开始设计时考虑到Docker容器的。这些工具允许您开始测试从多个代码库提取的多容器应用程序。4.确保最好的容器相互协作Docker不会调整自己的服务窗口,例如Hadoop、Nginx或MongoDB,而是鼓励开源社区在公共代码库DockerHub中协作和微调容器每个人都可以使用同类产品中最好的容器。由于Docker容器封装了状态,它们使您可以更灵活地配置最有效的软件。因此,Docker改变了云开发实践,使任何人都可以利用打包的最佳实践(以组合其他人的容器的形式)。就像云组件有一套乐高积木,它们终于有了一个标准来把它们拼在一起。云计算中的乐高积木通常就是这种情况:一种破坏现状的新技术出现了。不久前,云计算还被按需、API驱动的虚拟机和围绕它们构建的服务所主导。这带来了一系列旨在克服虚拟机限制的工具。Docker正在迅速改变云计算领域的规则,彻底颠覆云技术格局。Docker为持续集成/持续交付、微服务、开源协作和DevOps铺平了道路,不仅改变了应用程序开发生命周期,还改变了云工程实践。每天,成千上万的新开发人员都在愉快地基于Docker重新设计或构建新的应用程序。在不断变化的世界中保持竞争力的关键是了解Docker热潮的发展方向。原文标题:800x6004方式docker从根本上改变应用程序开发Normal07.8磅02falsefalsefalseEN-USZH-CNX-NONEMicrosoftInternetExplorer4/*样式定义*/table.MsoNormalTable{mso-style-name:通用表格;mso-tstyle-rowband-size:0;mso-tstyle-colband-size:0;mso-style-noshow:yes;mso-style-priority:99;mso-style-parent:"";mso-padding-alt:0cm5.4pt0cm5.4pt;mso-para-margin:0cm;mso-para-margin-bottom:.0001pt;mso-pagination:widow-orphan;font-size:10.0pt;font-family:"TimesNewRoman",serif;}
