当前的云计算领域,OpenStack在IaaS层的主导地位毋庸置疑,然而仅仅靠基础架构层的云化并不能满足企业所需的敏捷性、灵活性,前沿的云计算技术实践,还需要通过PaaS层的变革实现应用的高效交付。日前, HPE高级架构师梁建民接受CSDN记者周建丁专访 ,分享了基于OpenStack技术构建高可用的开发测试平台实现精益研发的核心技术和关键工作。
梁建民,HPE高级架构师,北京航空航天大学硕士毕业,拥有多年的研发和项目管理经验,长期专注于云计算方向,对基于云的应用架构设计、云平台交付与管理、应用迁移和DevOps有深入的理解和实践经验,深谙如何充分基于云平台及DevOps加速业务系统开发测试交付以及提升研发运维的效率和质量。曾服务于北京世纪互联云快线和三星云计算部门。
梁建民首先介绍了他对精益研发和DevOps的理解。“精益”是来自丰田生产方式的一种理念,其核心是更快速的交付和消除生产过程中资源的浪费。
精益研发和此前业界谈及的敏捷开发概念有本质的不同:
企业需要引入精益研发的动因在于现实的市场需求:
精益研发的一种成功实践是DevOps,后者是从业务角度理解的一个概念,包括开发、运维和测试怎么更好地合作来满足客户的更快速的交付的需求。DevOps理念的实现需要整合一系列的开发工具、运维工具和测试工具来支持,以消除资源的浪费。这同样需要一个更快速更敏捷的基础架构来支撑,而开源的OpenStack平台,在众多技术公司的支持之下,社区和生态不断完善、成熟,经过10多个版本的迭代,OpenStack已成为构建敏捷的云计算基础架构的优选技术。HPE也选择在OpenStack之上构建DevOps实践的技术栈。
HPE最近于OpenStack奥斯汀峰会上发布的HPE Helion OpenStack 3.0(HOS 3.0)之上实现了自己的开发测试平台,以及CI(持续集成)和CD(持续交付)的工具。梁建民介绍, Helion Code Engine产品支持团队不断集成和部署代码以快速迭代,从而实现CI和CD,允许企业随时准备出货,并收集反馈和快速迭代 。
Helion平台的目的是交付安全的、可靠的、企业级云平台。社区版OpenStack云平台以免费来降低客户入云门槛,但它们带给客户的却是上云后昂贵的运维成本,以及无保障的服务。
开发测试平台包括两部分:
通过开发测试平台满足了开发团队对敏捷的基础设施的需求之后,HPE的Helion Code Engine可以实现两个平台的结合,以便更快速地交付产品,实现客户的需求。
HOS 3.0是基于OpenStack Liberty版本开发的,作为OpenStack社区贡献量巨大的白金会员,HPE在OpenStack社区版的基础上做了很多的增强功能,3.0的特性包括更灵活的配置、操控性更强、易于运用等。开源OpenStack包含的组件非常多,对于企业尤其是小型企业来说,如何很好地运用是非常痛苦的事情, HPE开发了基于Ansible自动化运维的部署工具来实现一键部署、一键平滑升级,对OpenStack做全生命周期的管理操作 。
除了社区版本基础之上的一些组件的维护增强以外,HPE也开发了自己的模块来增强这个企业级的平台,和高可用各种工具的集成,包括控制器的高可用(一旦控制器挂掉,整个集群就可不用),网络方面L2/L3 Agent的高可用、安全的高可用、VM的高可用增强,以及负载均衡(包括F5)集成、SDN/NFV的支持等等。
在OpenStack基础设施之上,HPE还做了PaaS平台的一些工作, 通过HPE自己开发的SaaS服务来一键安装部署PaaS平台 。PaaS平台目前支持传统应用的开发,如Java、PHP、Python等语言的开发。
PaaS平台基于开源的Cloud Foundry,HPE也在开源的Cloud Foundry之上做了一些增强功能的开发。
Cloud Foundry原先的后端是Warden,HPE把Warden替换掉以后,实现自己的Docker服务,用Docker来进行APP容器的服务。
Cloud Foundry的最前端是Router,要响应所有用户的请求,包括PaaS性能的管理组件的请求和流量,以及客户上传APP过程中的请求。HPE针对Router做了一些高可用的操作,通过扩展的方式来实现,以及一些硬件的负载均衡的集成。
Cloud Controller方面,HPE也做了高可用的增强,包括用户的授权认证,原先是通过UAA的方式来实现,HPE现在改成AOK,并和LDAP认证集成;APP的打包、部署、运行,一切的调度工作也都是通过Cloud Controller来做,也做了高可用,通过调度后端的程序DEA模块,通过监控模块监控容器的负载,如果业务量突然爆发,容器会快速地自动扩展来满足业务的需求。
平台还提供一些managerment和unmanagerment的服务,比如数据库、消息队列、中间件服务等。
在OpenStack上把Cloud Foundry构建出来,可以通过OpenStack提供的RESTful API的方式——把Cloud Foundry功能模块提前做好构成镜像,通过调用OpenStack API。首先构建一个VM作为构建PaaS平台的构造器,再调用OpenStack的API去把Cloud Foundry集群构建出来,当然中间会用OpenStack的其他一些技术,如Heat编排等。构建出来以后,可以在IaaS平台上通过直接访问到PaaS平台的URL访问PaaS平台。
CI/CD是DevOps的精髓。这方面 HPE开发了Code Engine 产品,集成基于Github代码的智能结合,开发满足现在流行的微服务的一些技术要点如12因子(Twelve-Factor)的产品 。
有一些企业可能有自己的Git仓库,HPE也开发了单独的组件,通过pull/request探测开发人员提交的代码,如果代码通过评审,HPE有自己的编译的worker和测试的worker,测试worker集成第三方的工具(如LR性能测试工具),测试以后通过部署的worker,一键部署到PaaS平台上,当然前提是PaaS平台是基于Docker做的。
CI/CD的架构,前端是一个Web,后端是Code Engine的API服务,一切的用户请求都放到API上。包括开发层面的编译、测试、部署、通知、Git/Push五个worker,以及调度的worker(调度前述工作的衔接和运行)。用户首先需要创建环境(最后应用是部署在基于OpenStack的PaaS平台还是其他的CF平台上),配置好用户环境之后,可以配置第三方工具的集成,然后构建Build,需要和Github集成,在Github上创建project,Code Engine回调的URL配置好,通过探测pull/request自动化测试、编译开发人员提交通过的代码。
具体的流程,Git/Push的worker自动把代码拉下来,容器的worker从容器仓库中拉出一个容器来,把代码放进容器,通过自动化的工具测试并编译,然后部署的worker把容器自动化部署到PaaS平台上。
梁建民分享了一个客户实现DevOps的案例:客户有自己的CI工具和F5负载均衡,HPE帮助构建它构建PaaS平台。PaaS构建好之后,Router做了高可用,通过F5做负载均衡,PaaS和CI进行整合,满足快发开发、快速迭代的需求。
从业务角度理解,具体利用什么工具来满足自己的业务需求,每个企业都有不同的工具的选择,根据自己的业务决定;从技术角度来说,Docker是较新的事物,做单独的容器使用是没有问题的,但是如果是作为一个集群的方式,或者跨数据中心的方式,它的调度是一个技术难点。调度管理方面大家还处于探索阶段,所以就有Kubernetes、Mesos等工具来解决, HPE目前是通过开发自己的Fance组件来和Cloud Foundry做一个集成,来管理Docker服务 。
Kubernetes、Mesos等工具纯粹是为了管理容器而产生的,至于这个容器是构建在IaaS之上呢,还是基于构建在裸机之上,是两个层面的东西。如果想基于裸机或者基于IaaS管理容器的编排,可以通过这些工具来做,实现通用的PaaS平台。
HPE走的是另一条道,即和OpenStack高度集成(同时也支持单独部署PaaS),更快的更敏捷的利用IaaS资源,然后基于Cloud Foundry开发了自己的Fance工具管理Docker。HPE开发的组件和开源社区的组件是相互兼容的,都可以更好地利用容器来实现更敏捷、更灵活的交付,不排除以后会做一些整合。
通过利用OpenStack、Cloud Foundry和Docker技术来构建开发测试平台,业务层面重新构建开发、测试、运维人员结构,运用DevOps和微服务理念,达到更快的交付高质量的产品,随时可以高效的应对市场和客户需求从面形成闭环,使企业具有较强的竞争力。
由CSDN重磅打造的2016中国云计算技术大会(CCTC 2016)将于5月13日-15日在北京举办,大会特设“中国Spark技术峰会”、“Container技术峰会”、“OpenStack技术峰会”、“大数据核心技术与应用实战峰会”等四大技术主题峰会,以及“云计算核心技术架构”、“云计算平台构建与实践”等专场技术论坛。80+位一线互联网公司的技术专家将到场分享他们在云计算、大数据领域的技术实践,目前大会剩票不多,欲购从速。详情请点击CCTC 2016大会官网。