阿里内部是否进行的了Docker化?哪些业务运行在Docker上呢?如果传统的应用想要上Docker,需要注意哪些问题呢?
如果对于传统的应用上docker,需要注意哪些问题:
docker的优势上面51干警网的回答中已经挺全面了,我主要介绍下传统应用如果想要享受这些优势需要注意的地方以及做出的改变:
首先,要享受容器的动态扩展的特性,容器需要是一个无状态的应用,它需要可以随时的启动,停止,这样才可以可以随时的扩容和缩容,然后可以通过负载均衡对外提供一致的服务,其中包括:
其次,需要集群管理以及编排的工具去管理大量的容器:
最终迁移到容器上还需要将构建一系列的微服务适配的服务和工具:
不同的开发环境中,我们都想把两件事做好。一是我们想让开发环境尽量贴近生产环境,二是我们想快速搭建开发环境。
理想状态中,要达到第一个目标,我们需要将每一个服务都跑在独立的虚拟机中以便监控生产环境中服务的运行状态。然而,我们却不想每次都需要网络连接,每次重新编译的时候远程连接上去特别麻烦。这就是Docker做的特别好的地方,开发环境的机器通常内存比较小,之前使用虚拟的时候,我们经常需要为开发环境的机器加内存,而现在Docker可以轻易的让几十个服务在Docker中跑起来。
我们经常需要考虑两点,一是因为要降低成本而进行服务器整合,二是将一个整体式的应用拆分成松耦合的单个服务(译者注:微服务架构)。如果你想了解为什么松耦合的应用这么重要,请参考Steve Yege的这篇论文,文中将Google和亚马逊做了比较。
使用Docker,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,当然这一切得益于Docker环境的启动速度和其高效的diff命令。
你可以在这里了解关于此场景的更多信息。
你可以在数据中心创建销毁资源而无需担心重新启动带来的开销。通常数据中心的资源利用率只有30%,通过使用Docker并进行有效的资源分配可以提高资源的利用率。
转自zhihu
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。