BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

迟连义:青云 Open Pitrix多云平台的前世今生
录制于:

| 受访者 迟连义 关注 0 他的粉丝 作者 InfoQ 关注 9 他的粉丝 发布于 2018年5月25日 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!
09:39

个人简介 迟连义,来自青云QingCloud,起初在青云负责AppCPP center平台的研发,后来负责开源项目Open Pitrix的研发,之前也做过HbBase on QingCloud集群服务的一个产品的开发。

QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦、北京、东京、纽约、圣保罗、杭州、旧金山召开。自2007年3月份首次举办以来,已经有包括传统制造、金融、电信、互联网、航空航天等领域的近万名架构师、项目经理、团队领导者和高级开发人员参加过QCon大会。

   

1. 迟老师您好,首先请您先介绍下自己。

迟连义:您好,我是迟连义,来自青云QingCloud,起初在青云负责AppCPP center平台的研发,后来负责开源项目Open Pitrix的研发,之前也做过HbBase on QingCloud集群服务的一个产品的开发。

   

2. 为什么会萌生开发多云应用元管理平台的想法呢?

迟连义:时至今日,云计算凭借其弹性、可扩展性和易于维护性已经逐渐的被绝大多数企业所采用,多云管理已经成为企业云战略的下一个热点,在今年1月份,由知名多云管理服务商RightScale所公布的一份年度云状况调查报告中显示,采用多云管理的企业占到了受访企业的81%,这充分说明了多云已经是未来企业上云的一大趋势。

多云的好处很多,很重要的因素是防止被单个云服务商绑定,跨多个云服务商可以对冲风险;再者,每个云服务商的产品各有优劣,采用多云可以充分的利用其优势产品。

多云拥有诸多优点的同时,也带来了挑战,比如增加了企业的管理和运维复杂性,使用单云架构时,可以直接使用这个云平台提供的成熟的管理工具或管理界面,但在使用多云环境的情况下,用户希望能有一个同时可以管理多个云平台的管理工具,来降低管理和运维的复杂性。

对于企业来讲,其实应用程序是更贴近于需求的,所以一个多云应用管理平台是更具有市场需求,这样用户可以把更多的精力放在核心业务层。同时企业可能有各种类型的应用需要管理,包括传统的应用,像数据库、Tomcat,Hadoop,还有基于微服务架构的应用、以及近来发展迅猛的 Serverless 应用等。企业需要一个可以管理不同类型应用程序的一站式管理平台。

还有一个很主要的原因,我们几年前就开始开发应用上云的平台,2015年5月发布了AppCenter的第一个正式版本,在2017年初发布了AppCenter 2.0,旨在让开发者以最低的学习成本几天将应用部署到云平台上,这个平台提供应用的服务感知、弹性伸缩、配置变更等云计算基础特性。而且还为开发者提供便捷的管理、日志、监控、财务、工单等功能,最终用户在应用市场很便捷的找到自己需要的各种应用,一键部署来使用。AppCenter平台自发布以来,已经陆续上线了一百多个不同企业开发者所开发的app,其中涵盖了:大数据、AI、容器、 区块链等各种领域的应用。但AppCenter底层只兼容青云的IaaS,我们的私有云用户也有AppCenter的需求,但私有云一般有多个云部署环境,所以客户提出AppCenter兼容其它云厂商的要求。

这就是OpenPitrix——多云应用管理平台诞生的由来。

   

3. 多云应用管理平台技术有哪些?有哪些开源技术被使用到了?

迟连义:我们在设计开发OpenPitrix之初就决定使用微服务架构的方式进行开发,微服务相比单体应用有很多的好处,比如降低了复杂性,可独立的开发、部署、升级扩展等等。OpenPitrix内部会拆分出很多个微服务,每个微服务都会有属于自己的服务进程,以及属于自己的数据库。它们会统一的使用一个内部的ETCD服务,这个ETCD服务是容器平台使用非常普遍的一个组件,我们会用ETCD来做全局的配置更新,以及全局锁、消息队列等一系列的功能。OpenPitrix还对外提供了Dashboard,还有命令行工具CLI,外部访问都是通过Restful API的方式,经由统一的API gateway来访问,API gateway内部通过路由机制将这个请求转发到具体的微服务上去处理。各服务之间的通信属于内部通信,通过gRPC来实现的,选择gRPC而没有用restful是因为gRPC是二进制协议,相比于restful 的HTTP协议,性能更高。我们使用的数据库持久层框架是DBR,是因为这个框架没有其他的代码依赖,可以很方便的去管理和维护。数据库迁移工具,我们用了开源的flyway,因为这个工具可以在子服务启动之前,就能把这个数据库,还有表结构都创建好,并可以管理后续的数据库迁移工作。同时我们使用confd实现了自动配置变更,能够自动完成app服务配置文件更新,并在配置发生变化时触发特定的操作。

我们使用微服务架构还有个好处就是很容易容器化,容器化以后可以部署到容器平台上,像kubernetes里面,这样就可享用kubernetes生态圈所提供的微服务治理功能,像服务发现、监控、负载均衡、灰度发布等一系列的功能。

   

4. OpenPitrix可以适配青云、AWS、Kubernetes等多种云环境的原因有哪些?它的优势有哪些?

迟连义:OpenPitrix会针对于每一个云服务提供商的服务,提供一个ProviderPlugin插件来适配,ProviderPlugin会使用相应云平台服务商的API来管理运行其上的应用,这种方式可以做到,无论未来新加了任何一种新的云服务商,我们都可以通过添加插件的方式对其进行支持。

OpenPitrix最大限度地解耦了应用和应用运行时的云环境,这样一方面可以让开发者很便捷地开发应用,并可以管理和运维,查看报表及统计信息;另一方面又可以让开发者对这个应用进行定价,售卖给最终使用用户。我们可以做到,在基于OpenPitrix上开发的任何运行的应用,都能够售卖给任何基于OpenPitrix的应用管理平台上去使用,我们的口号是:Run any application at any scale on any infrastructure,也就是基于OpenPitrix可以将任何应用以任何规模部署到任何基础设施上面,对开发者来说就是Build once and run anywhere。

   

5. 多云管理平台建设过程中有没有遇到什么技术问题?如何解决的?

迟连义:我们其实遇到了很多技术问题,第一个问题就是标准的问题,如何定义一个APP。因为OpenPitrix本质上是一个开发平台, 提供给开发者开发应用的能力,因此需要一种便捷的开发方式。我们的解决方案就是用一个应用配置包来唯一的标识一个应用,这个应用配置包里面有很多个配置文件,沿用了之前青云 AppCenter那一套成熟的标准定义方式,让开发者易于学习,同时每个文件各司其职。这样一来开发者只要知道怎么去安装软件就知道怎么去开发APP了。

第二个问题是应用的映像分发问题。很多传统应用其实是基于VM的Image,开发者会把Image ID写到配置文件的配置包里面,最终用户部署应用实例的时候, 会在具体云环境里面根据Image ID创建主机,如果让开发者基于每一个region或者是zone,上传或者是创建映像,这会是一件非常困难的事情。而容器在映像分发方面做得很好,可以有个统一的容器映像仓库,在启动的时自动去仓库pull image,所以我们即将发布的第一个版本使用了容器的解决方案,采用VM里面跑Docker的方式解决映像分发问题。

第三个问题是网络的问题。OpenPitrix自身是可以运行在任何的环境里面的,而具体用户的应用实例是运行在不同用户云环境的IAAS资源上,这两者之间怎么样去通信,以及发送指令呢?我们的解决办法就是通过公网,两者之间通过公网打通。为了安全起见,用户的应用实例一般是部署在专有网络里面,即VPC下面的,我们会基于每一个有应用的VPC启动一个Frontgate的组件,这个组件最大的作用就是proxy,组件在创建时会和OpenPitrix建立一个双向的gRPC流连接,这样OpenPitrix就可以与Frontgate实现双向通信。而Frontgate和具体的用户应用实例位于一个VPC下面,两者之间是网络互通的,所以也是可以通信的,这样就可以让OpenPitrix和应用的实例主机,经由Frontgate所提供的Proxy功能进行双向通信。

   

6. OpenPitrix从技术架构上来说对标哪些开源框架?

迟连义:总体来说,没有发现和OpenPitrix特别相似的开源框架,我们能做OpenPitrix一方面得益于多年的云上应用开发的经验;另一方面是成功发布和运营了AppCenter,这些都是来源于用户的真实需求。我们在调研中,也确实发现一些比较接近于OpenPitrix的开源框架,比如像Hashicorp的Nomad。

   

7. OpenPitrix是否会考虑开源,后续它会有怎样的发展?

迟连义:OpenPitrix从立项之初就决定了,它会以开源的方法进行,是因为我们想做成一个应用市场的生态系统。可以让开发者在平台上快速地开发擅长的APP,并提供便捷的在线运维和帮助,这些开发好的APP可以上传到市场上进行售卖,最终用户也可以从市场上购买,并部署自己的云环境里面。一方面使得开发者可以盈利,另一方面,使用者可以跳过手动搭建和维护的流程,很便利的去使用这些成熟的工具。

目前已经上线了官网openpitrix.io,在上面我们发布了一篇OpenPitrix Insight的文章,将我们对这个项目的一些理解写了进去。我们前期的所有设计讨论,以及现在的代码都在github.com/openpitrix下面,后续也会通过不断的宣传吸引更多的开发者加入我们,共同来构建这个生态系统。

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT