
鲁为民:我们是怎样实现云原生架构的?首先是基于容器,同时提供跨系统API介入管理,还有服务协同和融合,以及服务的敏捷基础设施资源的提供。特别是基于这种架构,我们可以很容易的打造垂直领中的PaaS云平台。因为通过云原生和微服务架构,我们可以充分解耦各种垂直服务,可以更灵活的提供和整合服务资源。这也是为什么MoPaaS可以在短时间内支持企业用户打造适合其行业场景需求的PaaS平台。
那现在的问题是我们对云原生应用的设计有什么要求?这个问题的答案与当今的云计算的架构分不开的,这种架构对硬件的要求大大降低,各个硬件节点可以是高度不可靠的,但由软件定义一切并搞定相关云平台的主要需求。原则上,云原生应用的设计必须考虑和基础设施数据之间分离,云应用可能有状态、必须持续地保存,很大程度上能够高可用。对于基础设施,因为软件提供相关的保护,你必须容忍节点的不可靠,必须支持状态不能维持等等。我们在云平台设计当中是怎么考虑这些,或者说我们要设计云原生应用当中要考虑哪些方面?

关键的一点
大的原则大家可能都知道,所谓12因素应用的原则,这是Heroku的创始人根据PaaS的特性总结出来的。关键的一点,我们要实现容器或者应用实例定位不依赖物理的节点或者网络,它必须充分和IaaS解耦,要支持数据的持久化,使用共享和存储,将日志保存在第三方存储服务上。另外,实例的迁移,不管是什么原因,内部的数据必须不动,也没有义务迁移。对于应用状态的管理,因为大多基础设施不提供状态保持,因此应用运行中必须能够维持状态,以使得应用中用户的会话能够保持畅通。平台本身不为应用提供状态的保护和管理,应用也不能依赖相关设施的会话保持功能,所以服务的状态必须保存在第三方服务当中去。最重要的一点,和传统应用设计不一样,应用设计中要优化的参数可能不同,这是什么概念呢?比如说在云平台环境中,如果应用出现问题,我们更多需要靠应用的重启来恢复,而不是试图花时间修复这个特别的故障。这样能够更好的实现应用的扩容,实现故障的恢复和转移,以及实现负载均衡。因此,云原生应用设计中优化重启时间(MTTR)尤为重要。

我们在云平台服务架构的设计中,必须考虑容器和基础设施的解耦,所以在应用云化设计当中,应用的实例必须和IaaS解耦,也就是说,你不能依靠IP或者端口来定位这个应用,定位这个容器。而是通过域名、应用层面的一些ID来对它们定位。当然更不能依靠物理环境。另外,我们实现资源访问的负载均衡时,为什么要实现应用的无状态或者用一种可靠的方式来维持这种状态?因为在负载均衡的情况下,同一个应用不同实例分布在不同容器中运行,但这些实例都是支持同一个用户访问的会话,其状态不能保存在单个的本地容器中,如果状态没有很好的管理,就不太可能实现稳定通畅的会话。另外我们如果要支持高可用,比如在部署区域(Zone)层面的高可用,那么我们要在设计应用时确保应用不在当地自己管理状态,因为数据不保证在当地进行持久保存。此外,在故障恢复的时候,也必须考虑数据和状态的持久化,同时整个平台提供一个好的健康检测机制,这种健康检测是主动的,一旦应用出现问题故障,不是试图修复应用实例的这个故障,而是将它重启,因此,应用重启时间(MTTR)的设计优化变得非常重要,这使得整个重启的过程就变得非常主动,从而有效的实现故障恢复。

融合云平台设计的实例
接下来我讲一下融合云平台设计的实例。刚才主要讲云原生主要是从应用层自上而下看,接下来我则自下而上去说明,还是同样解决企业当前业务交付的问题。对这个问题我们重新来看一下,首先是在很多企业的IT环境当中,开发生产环境往往高度不一致,应用交付的效率不高,但当今市场的变化很快、需要应用交付的速度适应这种变化,也就是说应用迭代和试错效率需要非常高,怎么解决这个矛盾?其次是开发运维工具的管理,这些不同开发测试工具或者通过向不同厂商采购获得,或者自己开发或利用多种多样的开源来实现等等。这些服务工具往往是零散的、异构的,部署和管理都是很难统一。在这些工具和服务的数量增加到一定程度的时候,很难有效地使用和管理它们。我们可以通过将它们这些工具作为服务整合到PaaS平台当中来方便地解决这个问题。另外,业务的发展需要应用产品更新周期更快,而之前很多应用与基础设施高度绑定,实际上很多应用是直接通过物理的服务器来支撑提供服务的,再加上互联网环境的复杂,服务稳定性很难保证而且应用性能也难保证。这些因素导致应用体验差,产生用户的流失。当然还有各种安全问题。这些问题变得日趋严重,使得开发运维越来越困难,怎样解决这些问题?PaaS云平台正是为此而生。而我们希望进一步利用融合云平台这种技术为这些问题提供更加高质量、高效率、低成本的解决方案。

MoPaaS融合云平台有什么特点?一是其架构满足用户多元的需求,一方面是偏基础层面对资源的弹性管理,另一方面是偏业务层面,支持业务应用的快捷交付。我们采用微服务架构实现服务的高度分布、隔离以及安全。同时通过灵活的架构来支持多形态企业云的需求,我们不但支持私有云、公有云,还支持混合云。MoPaaS平台本身支持并建立了开放的云服务生态圈,可以让平台自己能够融合多种多样的服务,它也让其用户快捷整合第三方服务,打造其自身业务的云生态。所以整体来说是比较完整地满足了融合云平台的需求。融合多元的需求,可以用多种技术来实现,比如说我们容器和编排基于Cloud Foundry,Docker和Kubernetes等一系列技术,另外我们和合作厂商共同打造统一融合及管理的IaaS-PaaS解决方案,能够让用户一站式实现IaaS和PaaS层面相关资源的调度以及业务的交付。另外我们要保证融合云平台能够应对市场需求不断演化,提供一种灵活可变的架构能够满足用户现在和今后的业务需求。MoPaaS的架构简单来说可以描述如下:上层通过微服务实现业务灵活的交互;下层通过容器和虚拟机来管理多元资源的调配;此外对于融合云平台的监控、管理和运维是由统一运维管理系统来提供。

(未完待续)

Anchora基于领先的技术打造专业开放的企业级PaaS云平产品MoPaaS,以帮助中国企业级用户掌控实现持续创新的主动权。MoPaaS助力企业用户根据业务需要实现应用的快捷交付以及计算资源的动态调配管理, MoPaaS帮助企业简化IT基础设施和应用的管理运维成本,以及增强业务交付能力来提高企业的市场竞争力。MoPaaS提供 一系列产品和服务, 包括MoPaaS私有云解决方案,MoPaaS企业版软件、MoPaaS融合一体机系统以及MoPaaS企业公有云服务。MoPaaS产品和服务的领先性和竞争力也得到了广泛的认可,特别是被国际知名市场调研公司Forrester 评为中国企业级云平台市场的强劲表现者。
目前选择MoPaaS产品和服务的客户分布在金融保险、能源、制造业、交通运输、IT企业、电子商务、电子政务、智慧城市,以及孵化器的企业和高校等行业和领域。MoPaaS 致力于打造全方位开放云服务生态圈,更好地为用户提供丰富灵活的服务。


