云端应用的迁移(三)

接上文,怎样进行云端应用迁移

 

3. 应用的部署容器化

容器技术,例如通过LXC、Docker或 Rocket准备的映像,正迅速成为云端应用程序体系结构的部署单元。这样的容器映像随后被各种调度解决方案实例化,如Kubernetes、Marathon, Lattice。像Amazon和Google这样的公有云提供商也为容器调度和部署提供了一流的解决方案。容器利用Linux内核技术,如控制组(cgroups)和命名空间,以提供类似的资源分配和隔离特性,这些特性是由虚拟机提供的,其开销要小得多,可移植性也大大提高。应用程序开发人员需要将应用程序打包成容器映像,以充分利用云计算平台的特性。

 

4. SOA设计需要适应云计算平台技术的发展

我们前面提到了应用拆分,数据拆分,部署的容器化(其实也是拆分), 大家会说这不就是应用的服务化,SOA化。 是的,这些理念在云技术之前就已经出现,也有很广泛的应用。ESB技术就是SOA中的成熟架构。 但是在云计算平台上,应用的服务化需要相应的调整。

 

服务的企业集成传统上是通过Enterprise service bus(ESB)完成的。ESB成为所有路由、转换、策略、安全以及其他管理服务之间的决策者。我们称之为“Orchestration”,类似于指挥在演奏过程中由管弦乐队演奏的乐曲的指挥。我们会发现ESB使架构图变得非常简单,但是它们的简单性是骗人的。通常隐藏在ESB中的是一个混乱的网络。管理这种复杂性成为一项复杂的工作,系统的运维复杂, 开发团队的应用升级,重构十分困难。但最大的问题是网络的复杂性降低了系统的运行速度,这是不符合现代市场的需要的。下图是Orchestration的示意图

 

云端应用的迁移(三)_第1张图片

 

云端应用中服务的管理编排提倡的是“Choreography”,它由两个或多个端点之间的消息交换、交互规则和协议来定义。这种编排采用了一种分散的服务组合方法。这种编排方式没有集中的服务管理单元,决策逻辑是分布式的,没有集中点。你可以想象一个家,在那里,每个人都以公益为目标,积极主动地工作,没有微观管理。或者你可以想象一个人体,其中不同的成员相互依赖,为共同的目标而工作。一个实际的例子是事件驱动的处理,其中一个代理被一个事件激活并完成它的工作。所有的代理一起组成一个系统。没有集中的逻辑。Choreography的可用性远远超出Orchestration,因为它更符合现实世界。在云平台上,这种架构为每个服务提供了灵活的自治能力,速度上有很大的提高。开发团队能够适应业务不断变化的环境,而不需要与其他团队进行协调,并且避免使用中央管理的ESB来协调变更。下图是Choreography 的示意图。

云端应用的迁移(三)_第2张图片

 

 

你可能感兴趣的:(云)