下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

您真正了解容器化吗?

作者:课课家教育     来源: http://www.kokojia.com点击数:1120发布时间: 2017-10-16 10:30:28

标签: 容器Docker系统

  欢迎各位阅读本篇文章,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。本篇文章讲述了您真正了解容器化吗?课课家教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦!

  作为一名技术编辑,我在工作中经常与人讨论他们的容器化战略。在刚开始接触容器的时候,人们总是希望得到容器技术所带来的利好,而没有想到过破坏性容器。他们可能有一两个基于容器的系统,或者在使用云技术,但是没有明确的战略。

  在你兴奋的全力奔向容器之前,最好弄清楚破坏性容器是什么。我建议人们建立短期和长期的目标,并且在容器化的道路上适应新的需求并且接受其文化内涵。

您真正了解容器化吗?_容器_Docker_系统_课课家教育

  Devops团队要开始使用容器的原因是:

  首先,加快应用程序的开发和部署:容器简洁、轻便、快速,你可以很容易的开始使用基于热门开源项目的现成模版图像和显影容器。准备就绪之后,你可以打包你的任务为容器映象,并在生产环境中运行,与你在开发环境中所做的完全一样。如果将自动化添加到进程中,比如CI/CD工具,那么进程将变得更快。

  其次,将应用程序迁移到云中:容器的另一个非常有用的特性是它们的可移植性。容器化一个应用程序来自主操作系统和物理基础设施,相同的容器可以在前提下运行也可以在公有或私有云中运行,而不需要转换部署格式或更改代码。

  最后,转向微服务构架:每个容器通常是单一的指向,单一的过程,并且恰当的校准微服务构架。组织正在寻找更好的方法来开发和维护应用程序,离开那些难以维持微服务构架的大型应用程序,会有助于开发和升级。容器是微服务构架的完美平台,生态系统的涌现使得大型微服务战略得以实施。

  容器化你的应用有很多好处,但问题是从哪里开始呢?你应该把过去的应用重构为现代微服务构架容器还是应该用容器制造一些新的东西?

  有时我们也会尝试用另一种方法,容器化现有的应用程序而不是重构为微服务的模式?当我们容器化一个应用程序的时候,整体的应用程序可能和容器不兼容,你可能会损失一部分微服务应用带来的利好,特别是易于维护和更新的选项,但是仍然有很多可以保留的地方。

  容器化一个应用程序可以使你把容器带到环境中,帮助你去构建团队和建立流程,优化这之间的过渡,直到完成一个基于微服务构架的应用程序。

容器化一个应用程序可以使你把容器带到环境中

  在容器化的结尾,你会想有一个管道和工具链,可以用于新的微服务和管理旧应用程序的打包。通过这种方式,您可以规范容器周围的所有进程,甚至可以在容器中运行遗留的单片应用程序。使用这个方法的优势是,你可以把微服务绑定在现有的应用程序上,然后所有的新功能都可以基于微服务构架。

  一个最近比较流行的混合的方法是,用Devops的已知案例来提升和转移。"提升和转移"是指容器化过程中的一个前提。用单一的应用程序来解除它(通常来自旧的数据中心)并将其转移到其他地方(通常是现代公共或私有云)。

  然而,作为一个提示,提升和转移应该不仅仅只是一个传送机制。它为转化为微服务构架模式提供了基础,并且以可管理的方式将容器引入环境中。这就是为什么它可以迅速成为一种Devop团队容器化的流行方法。但是当用于提供更有效的一系列好处时,对于那些想在容器战略上表现出实质性进展的人来说,这可能是一个快速的胜利。

  如果你的目标是用容器重新构建一个遗留应用程序的话,完整改写微服务构架是重要的一步。这中间有许多环节,如分成几大块重构应用程序。它还将提供一些好处,让你逐步深入到真正的微服务构架中去。正如Devops团队决定如何运用容器技术一样,他们可能会考虑建立外部联系,因为外部的投资可以支持更长远的创新。就像我在博客中命名的"DevSecOps",我把安全小组放在列表的首位,我认为它将会是Devops有用的伙伴,非常有战略意义。

  不管在安全和Devop之间会存在什么样的障碍,Devops的协作精神对于安全人员来说很有吸引力。安全小组不仅可以成为强大的盟友,他们可能在安全和IT风险方面有更长远的考虑,这可以加强对特定应用程序容器化的Devops驱动业务。

  最后,对于重建或容器化现有应用程序,两难在于,没有一个解决方案是适合所有人的,这就是为什么快速获胜是非常重要的。所以不管你决定怎么做,做好计划,去创造一个现实的成功标准吧!

  技术名词解释:

  容器:容器技术虚拟化技术已经成为一种被大家广泛认可的容器技术服务器资源共享方式,容器技术可以在按需构建容器技术操作系统实例的过程当中为系统管理员提供极大的灵活性。

  Devops:英文是Development和Operations的组合,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

  微服务构架:微服务是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务。

  知识分享:Docker解决的问题

  简化配置

  这是Docker公司宣传的Docker的主要使用场景。虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件、系统),Docker在降低额外开销的情况下提供了同样的功能。它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。

  代码流水线(Code Pipeline)管理

  前一个场景对于管理代码的流水线起到了很大的帮助。代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中间环境。而每一个中间环境都有自己微小的差别,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。

  提高开发效率:

  这就带来了一些额外的好处:Docker能提升开发者的开发效率。不同的开发环境中,我们都想把两件事做好。一是我们想让开发环境尽量贴近生产环境,二是我们想快速搭建开发环境。理想状态中,要达到第一个目标,我们需要将每一个服务都跑在独立的虚拟机中以便监控生产环境中服务的运行状态。然而,我们却不想每次都需要网络连接,每次重新编译的时候远程连接上去特别麻烦。这就是Docker做的特别好的地方,开发环境的机器通常内存比较小,之前使用虚拟的时候,我们经常需要为开发环境的机器加内存,而现在Docker可以轻易的让几十个服务在Docker中跑起来。

这就带来了一些额外的好处:

  隔离应用:

  有很多种原因会让你选择在一个机器上运行不同的应用,比如之前提到的提高开发效率的场景等。我们经常需要考虑两点,一是因为要降低成本而进行服务器整合,二是将一个整体式的应用拆分成松耦合的单个服务。

  整合服务器:

  正如通过虚拟机来整合多个应用,Docker隔离应用的能力使得Docker可以整合多个服务器以降低成本。由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存,Docker可以比虚拟机提供更好的服务器整合解决方案。

  调试能力Docker:

  提供了很多的工具,这些工具不一定只是针对容器,但是却适用于容器。它们提供了很多的功能,包括可以为容器设置检查点、设置版本和查看两个容器之间的差别,这些特性可以帮助调试Bug。

  多租户环境:

  另外一个Docker有意思的使用场景是在多租户的应用中,它可以避免关键应用的重写。我们一个特别的关于这个场景的例子是为IoT(译者注:物联网)的应用开发一个快速、易用的多租户环境。这种多租户的基本代码非常复杂,很难处理,重新规划这样一个应用不但消耗时间,也浪费金钱。使用Docker,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,当然这一切得益于Docker环境的启动速度和其高效的diff命令。

  快速部署:

  在虚拟机之前,引入新的硬件资源需要消耗几天的时间。Docker的虚拟化技术将这个时间降到了几分钟,Docker只是创建一个容器进程而无需启动操作系统,这个过程只需要秒级的时间。

  小结:容器是完全使用沙箱机制,相互之间不会有任何接口。其实大家私下还得多多自学,当然如果大家还想了解更多方面的详细内容的话呢,不妨关注课课家教育平台,在这个学习知识的天堂中,您肯定会有意想不到的收获的!

赞(23)
踩(0)
分享到:
上一篇:企业ERP难题
华为认证网络工程师 HCIE直播课视频教程