Docker应用设计四大关键
中国IDC圈3月23日报道,Docker已经垄断了容器技术。设计应用时注意考虑便携性能够帮助企业利用容器技术能提供的所有优势。
随着Docker应用和容器越来越流行,很多公司都开始将容器技术作为其云运维系统和应用打包的基础。业务喜欢容器系统胜过虚拟机,因为容器能够提供可扩展性、便携性和高效性。和虚拟机不一样,多个容器能够运行在同一个内核的宿主OS上,所以额外消耗更少,性能更优。
Docker为容器内的应用提供环境,该环境在平台间可移动。Docker是很流行的选择,因为其简化了应用程序部署和管理。基于其开源设计,开发人员能够为其业务特定的独特需求贡献特性。Docker的一大优势是它是广泛使用的容器管理系统;因此,有大量可用的支持资源。
要为Docker和容器优化应用设计,需要遵守如下四点。
考虑业务和应用目标
容器介于独占服务器和虚拟机之间。它提供高于操作系统(OS)的隔离性,但是不及虚拟机。确定使用容器的目标,以及期望得到什么结果。这个问题的答案决定了Docker应用如何设计。
使用容器的最佳理由是构建和公有云服务混合的私有云。容器在运维实践方面帮助统一了混合云;当有统一OS平台时,混合容器表现最好。因为所有容器都在相同内核上运行,确保OS是一致的,从而避免不兼容。为容器应序使用匹配OS版本的中间件服务。如果在不同OS上运行Docker应用,最好将它们当做独立的Docker社区。
采用集合的观念
当应用及其相关组件是在同一台服务器上构建,移动和扩展时,Docker能够发挥最大的效用。通过将应用和组件打包进一个应用程序特定的容器,用户可以受益于Docker这方面的优势。
打包应用以及所需组件的关键是理解组件工作流。通过研究组件间的工作找到最为自然的组件组的划分,并且确定哪里的交互最频繁。
知道容器的名字
Docker给每个容器分配了自己的命名空间和文件系统。确保其他流程能够访问这一功能以及共享数据。网络连接性是其中一方面,但是其他方面控制所有应用目录,包括域名系统(DNS)。
思考这些处于独立子网里的组件和微服务,就像一系列运行着Docker容器的服务器。用户需要管理代表这些服务器的URL,也需要管理Docker容器。如果使用Docker和SOA/SOAP,要确保在部署或者移动单个或多个容器时更新了服务目录。
创建连接
云容器互相集成,通常都包含非容器化的应用组件。Docker花了很多力气去管理容器部署,但是还不太擅长管理工作流集成。当选择使用容器时,找出容器能够提供了什么,并且确保能够满足自己的需求。Docker新用户会遇到的最常见的问题是Docker应用访问不了Internet或者企业网络。Docker能够辅助远距离的链接,但是用户得自己建立链接。
Docker在确保容器兼容性方面真的很有用。不幸的是,当集成跨云容器的工作流时无法保证兼容性。大部分工作流是通过目录功能,比如DNS集成的。当部署或者移动容器时要确保去更新这些目录。