转载

微服务和容器技术漫谈

在Web服务和应用程序的世界里要想争得一席之地,需要快速的反应和强大的软件开发团队,所有企业都在寻找能够提供敏捷性并且缩短产品上市时间的新方式。

这些方式之一是微服务,它是一种基于软件的系统架构,支持将小型独立的,像一个微型应用程序一样,能够以自己的方式独立运行的进程组合成复杂的应用程序。

这些个体组件之间通过语言无关的应用程序编程接口(API)和简单协议,比如远程方法调用(RMI),Restful Web服务或者Push Messaging,互相通信。

这样的模块化方案可以让企业更容易地跨不同部门或者业务的多个开发团队分发工作负载,提供了高度的灵活性,并且帮助加速项目的生命周期。

每个组件都有自己的存储,内存或者CPU资源,这使得硬件的利用更为简单,特别是在基于云的平台即服务(PaaS)上,只需要预配并且跟踪即可。开发团队可以使用自己喜欢的标准或者技术栈,只要确保和其他组件的互通性,能够组成最终的应用程序即可。

虽然有时候使用微服务架构可以降低管理复杂度,但是仍然需要特别多的团队沟通,特别是需要监控生产环境进程以及确保某个组件的更新不会对其他组件产生预期外的影响的时候。但是对严谨的正式文档的需求也让项目的新人能够更快地熟悉代码基。

微服务架构的早期使用者包括Amazon Web Services(AWS),Google,eBay和Netflix,所有这些公司都在尝试改进那些需要频繁更新的,通过网络提供到用户的PC,平板和智能手机上的应用程序和服务的持续交付。

有这么多高水准的支持者,微服务的概念能如此迅速的普及就不那么奇怪了。最近IDG Connect对工作在美国,英国,以色列和印度的100位资深IT工程师的调查显示,只有6个人说他们完全不知道什么是微服务架构。并且虽然只有少数(10%)的人说他们已经部署使用了某种形式的微服务架构,但是超过四分之一(28%)的人计划在明年部署,还有另外27%的人计划在未来的某个时间部署。

围绕着云托管环境的如此多的应用程序和服务部署活动,微服务架构已经深度依赖于容器化技术的使用。容器将微服务进程和应用程序隔离到更小的实例里,这些实例仅仅使用虚拟化了的操作系统,而不是整个虚拟机以及VM所包含的整个抽象硬件资源。

容器的常见使用方式包括Docker,一种基于Linux的开源实现,很多软件公司,比如Canonical,Red Hat和Parallels都支持Docker。一些PaaS服务,包括Google App Engine,Red Hat Open Shift,和Vmware的Cloud Foundry使用了Linux Containers(LXC)技术。

虽然容器还是一项新技术,但是已经有很多企业在深度使用了。IDG Connect调查显示18%的企业已经部署了某种类型的容器化平台,另外57%的企业计划在未来的某个时间点进行部署。只有3%的企业完全没有容器计划,这种种都表明微服务和容器的组合会很快成为应用程序和服务部署活动的一部分。

原文链接: Microservices Architecture and Container Technology Explained (翻译:崔婧雯 校对:)

===========================

译者介绍

崔婧雯,现就职于IBM,高级软件工程师,负责IBM WebSphere业务流程管理软件的系统测试工作。曾就职于VMware从事桌面虚拟化产品的质量保证工作。对虚拟化,中间件技术,业务流程管理有浓厚的兴趣。

原文  http://dockone.io/article/1323
正文到此结束
Loading...