Docker技术将引爆容器生态系统

2016-03-14 13:17王健
软件和集成电路 2016年3期
关键词:容器架构工具

王健

基于对市场的判断和技术趋势的走向,我们提出了四个最新的技术动态,分别为:“Docker引爆容器生态系统”、“微服务及相关工具受到追捧”、“JavaScript工具正在趋于平稳”、“安全是每一个人的问题”。

本文主要围绕四个最新的技术动态进行讲解和判断:

Docker引爆容器生态系统

Docker现在非常火,作为一个开源的应用容器引擎,它的出现让容器技术的使用和管理变得非常简单,也促使更多的人开始关注和意识到容器技术的真正价值和威力。由于其基于LXC的轻量级虚拟化技术,相比于KVM之类传统的虚拟机技术最明显的特点就是启动快,资源利用率高。启动一个容器只需几秒钟,在一台普通的PC机上甚至可以启动成百上千的容器,这都是传统虚拟机技术很难做到的。我们知道Container通常翻译为容器,但是还有另一个翻译就是集装箱,集装箱被很多人称为是21世纪最伟大的发明之一,而我们现在所提的容器技术和Docker,是不是也在致力于改变软件的世界,改变我们开发、测试、构建、部署、运维所有这些的现有方式呢?我觉得是有可能的,它为我们带来了两个重要好处:一致性和隔离。

我们知道一个产品是否可以正常提供服务,只去确保软件本身没有问题是远远不够的,需要同时保证软件、基础设施(例如硬件、操作系统和运行环境)以及配置的正确性和可靠性。而传统的软件开发方式,对于这三个方面的管理是分离的,再加上三者之间错综复杂的关系,就造成了我们常常挂在嘴边的“环境问题”。但是通过使用容器技术,我们如果将软件、基础设施和配置作为一个整体使用容器进行封装,产生一个个已经同时包含了软件以及其运行环境的经过严格测试检验的“包”。这样当部署“包”的时候就不需要再考虑环境的问题,也不需要关心现在部署的是一个Web服务还是一个数据库服务,要做的只是把一个个容器标准化地安装到指定的容器引擎即可。

可能正是大家都看到了容器技术以及Docker对于软件开发各个领域正在带来的改变,容器技术的生态系统也在经历着一个快速发展的阶段,涉及到开发辅助、集群管理、服务编排、内容发现、云平台搭建等各种工具框架一一呈现在我们面前,其中像Google和Amazon这样的巨头也都在第一时间发布了各自与容器相关的服务和框架。

微服务及相关工具受到追捧

如果关注Docker,也肯定会经常听到一种与之相关的架构,也就是微服务架构:“微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。”这是Martin Fowler给出的对于微服务架构的定义。

微服务架构之所以经常会和容器技术一起被提及,是因为容器技术为微服务架构提供了非常匹配的基础设施,从而可以将这种架构的威力最大化的激发出来。设想一下,假如我们有一个产品采用微服务架构,并将每类服务及其运行环境打包为容器,部署于像AWS ECS这类弹性容器服务里。就可以实现通过实时监控每类服务的负载情况,通过自动化的方式快速按需对每类服务基于容器技术进行快速高效的水平扩展或是撤销,这样我们的架构就是一个高度自动化、高弹性、高资源利用率的应用架构,相比于传统的单体应用也将具备很大的竞争优势。

有得必有失,微服务架构有着这么多的好处,但也会引入一些新问题,最直接的就是分布式本身所引入的复杂性。如:如何保证服务间的契约,如何快速开发服务等。

JavaScript工具正在趋于平稳

JavaScript如今继续保持着它强劲的势头,但是我们也能感觉到无论是社区还是我们自己团队,无论对于JavaScript的框架、工具还是一些最佳实践上的认同也在慢慢的趋于一致。ECMAScript 2015目前在雷达上已经被列入了“采用”的阶段,意味着已经没有什么障碍和疑虑再阻止我们使用这个最新的规范,在JavaScript平台上享受一个现代语言为我们带来的简洁、便利和强大。在构建工具和包管理工具的选择上,NPM和Webpack也逐渐成为越来越多人选择的对象。

安全是每一个人的问题

安全越来越受到大家的重视,随着互联网和软件行业的高速发展,安全形势也变得越来越严峻:从硬件安全到操作系统安全,从工具安全到依赖组件的安全,从网络安全到应用安全,从代码安全到密码安全。任何一个点的疏忽都可能对企业和个人带来毁灭性的打击和伤害。

与安全形势变得越来越严峻形成鲜明对比的是以往我们在产品设计和开发过程中,对于安全无论是在意识上还是在使用的技术上,都远远达不到要求。对于安全的关注更多的是以一种“看门人”的方式进行的,也就是在开发和设计过程中往往很少考虑安全的问题,而现在有越来越多的团队将安全引入到开发的整个生命周期当中,作为一等公民来看待和重视,将安全作为软件质量的一个重要组成部分。

猜你喜欢
容器架构工具
基于云控平台雾计算架构的网联汽车路径控制
波比的工具
波比的工具
难以置信的事情
准备工具:步骤:
“巧用”工具
液体对容器底及容器对桌面的压力和压强
取米
VIE:从何而来,去向何方
企业架构的最佳实践