中国石油自主知识产权的勘探开发梦想云(E&P Cloud)平台V1.0在京隆重发布。作为支持梦想云落地的唯一容器 PaaS 和云原生技术领域合作伙伴,灵雀云凭借强大的技术实力和卓越的服务能力,协助中油瑞飞全程深度参与了梦想云 PaaS 平台的建设。
在不久前召开的年度开源技术盛会 KubeCon+CloudNativeCon 上,灵雀云CTO 陈恺携手中油瑞飞资深架构师迟汇发表了以“Big Oil on Kubernetes and DevOps”为主题的演讲,对勘探开发梦想云平台项目进行了阐述。
演讲分为三个部分: 首先,由陈恺做项目背景介绍;其次,由迟汇介绍基于Kubernetes、微服务和DevOps等先进技术和理念的统一技术平台的设计思路和方案;最后,再回到产品和技术,由陈恺介绍灵雀云如何协助中油瑞飞将云原生技术成功落地。 以下为演讲实录: 灵雀云陈恺:
大家好,我是灵雀云的CTO陈恺,今天要为大家分享一下灵雀云为国内最大的能源企业建设企业级PaaS平台的案例。非常荣幸请到中油瑞飞负责DevOps的迟汇和我一起为大家分享,中石油如何落地 Kubernetes 和 DevOps 。
像中石油这样体量的企业,大家可以想象业务环境的复杂和规模的庞大。复杂的业务板块面临很多挑战,比如十几个油田以前没有统一的规划,各自运行自己的IT系统,那么数据就会散落在各个地方,没有办法串联和共享,因此就无法把数据真正地利用起来。从平台级别来看,每个油田也不会做统一的IT平台,难以对上面的业务做统一的支撑。
灵雀云协助中油瑞飞建设的勘探开发梦想云就是应对这些挑战的。在底层我们会建立统一的数据库,把散落在各个油田的各种各样的数据相互之间打通,集中到一起,对数据做一个治理;中间是统一的技术平台,也就是我们今天主要讲到的基于Kubernetes的PaaS平台,这当中主要涵盖三个场景:容器、DevOps和微服务治理,相当于是整个云原生的三个核心要素。
项目的最终目标是建立统一的数据湖和统一的技术中台,在上面解决整个中石油的通用的业务。
那么接下来有请中油瑞飞的迟汇介绍一下中石油项目采用的技术和整体建设思路和方案。
中油瑞飞迟汇:
中石油的DevOps平台主要包含三个模块,第一个模块是DevOps,第二个模块是微服务,第三个模块是容器平台。
我们讲DevOps分为八大体系,分别是项目管理、知识共享、持续构建与测试、持续交付、认证与改进、学习培训、运营统计、运营监控。
整个工具链支撑体系中,涉及到的工具是15个,大部分是开源的。
下面讲述一下平台建设的部分成果展示。做这个项目的过程当中,形成了14个角色,8个职责,5个权限组。右侧是所有的认证体系,这个认证体系里面我们现在已经准备了6个测试场景,4个课件,有新项目接进来之后我们会对它有一个针对性的培训,最后是一个成熟度的评估。
灵雀云陈恺:
下面就让我们回到产品和技术层面,来讨论一下怎么样通过灵雀云的平台,为中石油复杂的业务场景搭建DevOps开发体系的。
先来简单了解一下灵雀云的产品。灵雀云有两条主要的产品线。一个是Alauda Container Platform(ACP), 他是一个高度标准化的,专注于云原生应用管理场景的赋能平台,它本身覆盖了三个场景,分别为容器平台,DevOps和微服务,也是我们云原生技术的三个核心。
另外一条产品线是Alauda Cloud Enterprise(ACE),主要面对是大型企业的统一PaaS平台。刚才分享的中石油平台就非常符合这样的场景。
ACE本身包含了ACP所有的能力,在这之上,针对大型企业建设统一PaaS平台的场景的能力又有一些加强。举几个例子,比如说ACE的客户通常来说会有很复杂的基础设施的环境,一般都会有很多个数据中心。一些客户开始尝试公有云的话,不会只用一家的产品服务,最后就会是一个异构的、混合的、跨云的基础环境。我们在每一个数据中心,或者说每一个公有云厂商上面根据他的使用需要去搭建多个K8s的集群。也就是说,管理这些异构、复杂的基础设施以及对多集群的支撑是ACE的核心能力。
在集群管理方面,我们不光可以通过ACE去部署一个灵雀云提供的K8s集群(也就是ACP),我们也可以让用户去导入一个他们已经有的K8s集群,现在我们已经有了一些这方面的实践。
另外一个针对大型企业统一PaaS平台的场景,是企业内部共同的需求。一般来说,企业内部会有几大类职能用户,和我们直接合作的是企业内部的平台部门,这个Team对企业内部的业务部门来说,是云平台的提供者和服务团队。
在此基础之上,ACE典型的使用场景通常来说会有几千个开发者,甚至更多。他们之间也需要根据不同的项目或者不同的部门,去划分出不同的租户,租户内部有团队内部协作的需求,租户之间有一些权限隔离和资源隔离,这也是ACE需要解决的另外一个问题。
回到今天的主题DevOps。DevOps是ACE一个核心的模块,在我们跟企业客户了解做 DevOps 诉求的时候,每一家都已经在使用一些工具并且有自己的流程,我们需要把现有的系统进行完善,而不是提供一个封闭式的产品去替代以前用的工具。
所以ACE DevOps 的整体思路,是提供一个开放式的DevOps工具链的集成和编排平台,通过集成之前客户已经在用的,以及需要的新的工具变成一个工具链,然后通过编排把这些工具和平台变成一个整体,最后可以贯穿整个应用全生命周期的管理。ACE的核心价值是将 DevOps 的最佳实践,加以提炼形成一个自动化的平台服务,提供给用户。
DevOps工具链集成一方面需要每个工具通过API集成在我们的容器平台上,另一方面,每个工具和平台的用户权限需要打通。每一个企业级的工具都会有自己的租户模型,这些租户模型和平台本身的租户模型需要有联动和对应。这样平台上的数千个工程师,在不同的项目里面共享这些工具时,会有一定的规范。在ACE中,一些核心场景的主流工具,我们会做深度的集成。在这种情况下,80%以上的使用场景在平台本身就可以完成。
刚才有提到,使用ACE在大型企业内部搭建一个统一PaaS平台,分成两类用户:一个是平台部门,负责搭建、维护平台以及对其他业务部门提供支撑和服务,他是平台管理员;另一个是业务部门,可以理解为企业内部的一些项目,也就是平台上面的一个个租户。在使用上大致的流程是这样的:平台部门准备基础设施,需要去部署和准备一些已有的集群,然后会在平台上面创建租户,并且设置管理员,他可以把集群的资源分给租户。租户管理员获取资源后,可以在集群里面创建环境,可以主动把资源向下派分。
对于DevOps实现来说,管理员可以部署和集成一些工具,然后可以把工具发布出来让租户自行订阅。同时,他也可以给每个工具去创建一些资源,然后主动把这些资源分配给租户。从根部管理员这边获得DevOps工具的资源有三种方式,一是管理员主动分配的,二是开发者订阅了管理员发布的库,第三,开发者也可以在平台上自己部署一个工具。