返回 登录
-6

专访海航生态科技李书博:全面解读海航容器云

随着以Docker为代表的容器技术在国内的迅速发展,容器云(Container as a Service)也逐渐被广大开发者所熟知,海航从2016年初开始网罗人才组建团队开始容器云的研发,规划以CaaS为云业务模式,以Docker为云平台基础,打造海航开发测试云和海航容器云CloudOS两个主力产品。

相对于IaaS和PaaS服务,CaaS对底层的支持比PaaS更灵活,而对上层应用的操控又比IaaS更容易,海航认为,CaaS会在不远的将来对SaaS市场进行一次大变革,未来的SaaS提供商都会依托容器云这种方式为用户提供服务。有鉴于此,海航着眼长远,深耕容器云领域,瞄准公有云用户群体,致力于将海航容器云CloudOS打造成世界排名前列的公有云玩家。

图片描述

采访嘉宾简介:李书博,海航生态科技集团技术研究院云计算团队负责人,前三星研究院云计算部门负责人,十年研发及研发团队管理经验,精通软件架构设计、云计算、Docker、容器云等领域技术。

1.海航从何时开始接触和使用Docker?出于什么考虑要研发基于Docker的海航云?

李书博:我们在2016年初从互联网和外企网罗云计算人才,组建了海航生态科技集团技术研究院云计算团队,网罗人才就是为了实现跨越式发展,希望对于海航在云计算产业的市场地位、先进技术研发及规划、未来发展等方面都能有突出贡献。

最初为了对标世界先进技术,我们关注到了容器。容器这一技术颠覆了传统云计算的地位,以更轻量的方式对云平台进行虚拟化。时至今日,海航摸索和实践Docker已经有一段时间了,我们规划以CaaS(Container as a Service)为云业务模式,以Docker容器技术为云平台基础,研发海航开发测试云和海航容器云CloudOS两个主力产品。

Docker是目前世界领先的容器技术,在基础设施层面提供了相比于传统虚机更轻量、更灵活、更快速的虚拟化平台。目前,全球IaaS市场基本处于饱和,几家大的云计算供应商如AWS、Azure、阿里云占领了大部分IaaS市场。目前虽然SaaS市场发展比较快,但与传统应用还没达到很好的契合点,它的迁移能力还没有体现出来,更多的SaaS服务还是绑定在公有云平台上,而容器技术为SaaS插上了翅膀,它不仅是一种轻量级的PaaS,也是IaaS平台更小粒度的虚拟化,更为平台无关性和迁移创造了条件,打破平台紧耦合,让SaaS应用得以更快更迅速扩充。

可以说,从商业和技术等多方面考量,Docker技术及Docker生态都为企业上云提供了新的市场和推动力,这也正是海航生态科技技术研究院选择Docker技术为平台,进行下一代云产品研发的原因。

2.海航的云服务和容器应用是要解决什么业务需求和技术挑战,又是如何解决的呢?

李书博:海航是一家相对传统的企业,目前的应用和服务大多属于慢速IT以及传统的SOA架构、企业级J2EE应用服务架构。虽然之前海航已经提供了海航云这样的公有云服务,但这种服务更多还是以虚机、虚拟资源的传统方式存在。然而海航的应用不得不面对的问题是,慢速IT不能完全满足业务的需求,我们需要双速IT。

对于快速IT,海航的容器应用面临两种业务场景:一种是新的应用,即海航内部新近开始投入开发的、下一代的各种服务和应用,包括互联网金融、轻量级的互联网服务、应用等。从开发、测试阶段我们就会开始以容器化、微服务的方式为这些应用提供服务。

第二种业务场景是已经存在的传统IT,海航采取“先稳定再变化”的策略,那些已经稳定运行的、且并不完全适用于容器服务的业务应用,我们会保持它们的继续运行。但这些业务若有新的改动,我们就会考虑引入容器与微服务的方式,与传统的体系、应用、服务进行打通。随着传统应用功能的增加和系统的逐步演进,老的系统会越来越小,新的、以容器方式部署的应用会越来越多,这就是海航对传统应用进行逐步改造的过程。

3.容器化技术为你们解决了哪些痛点?是如何解决的?

李书博:容器化技术大大缩短了我们的应用交付周期,可以从几个月缩短到一周。因为传统的应用服务,开发、测试和生产环境都需要额外的配置,运维人员的工作量也很大,因此海航传统的应用交付周期比较长,通常要两三个月。这在过去是满足需求的,但在互联网快速迭代的当下,SaaS服务百花齐放,新应用层出不穷并快速占领市场,曾经一季度、几个月的发布周期远满足不了要求。

而通过应用容器技术,我们将应用都打包在容器中,容器平台成为了我们整个应用运行的载体。它解决了一些很重要的问题,首先是开发、测试、生产环境的一致性,大家都知道容器是平台无关的。另外,容器技术天然地对DevOps、CI/CD有很好的支持。过去我们做CI/CD需要针对不同的云平台有不同的agent或plugin,但容器让我们得以在Docker一层解决CI/CD、DevOps的平台一致性的问题。

快速的发布与上线让应用得以弯道超车,而容器就是其间重要的技术驱动力。

4.海航容器云采用了什么样的技术栈呢?能否比较分析一下当初的选项,以及为什么如此选择?

李书博:海航想做的是搭建一个未来的公有云平台。我们预计两三年后市场会出现一种爆发的云平台技术,想要占领未来公有云市场的一席之地,海航必须提前布局,因此我们从2015年就开始跟踪和关注了迅速发展的Docker技术。但Docker最早只是DevOps、平台无关的命令行工具,我们该怎么把Docker构建成一个公有云平台呢?我们需要一种平台层的技术,即在编排、存储、网络这些方便都有相关的解决方案。

所以在海航容器云HNA CloudOS技术栈中,针对对于容器核心引擎、基本的容器编排、基础网络、应用市场这一块,我们使用的是全栈化容器管理平台Rancher;对于业务层的可视化的业务编排、跟用户相关的多租户的管理、以及我们整个运营平台的日志、监控,和业务计费、运营相关的部分,是基于我们自有的核心研发技术。以日志平台为一个具体的例子,我们部分使用了EFK,Elastic Search+Fluentd+Kibana 这样一个基础平台,但是因为它并不能满足我们大量业务的需求,在它们下面我们还使用了像Hadoop、HDFS这样的大数据集群。通过把大数据集群和上面的EFK打通,同时这个系统与我们的用户管理、多租户、用户校验等后端用户平台建立联系,最终搭建了一个日志平台。

5.根据Gartner的市场调查,双模IT将成未来企业IT建设主流。 海航作为一家传统企业,如何理解双模IT,在海航的开发测试云中,如何配置两种不同的研发模式?

李书博:这个问题和我们的经营体系、研发体系、如何和双模IT配合都有关。双模IT就像是两类体育运动。慢速IT就像长跑,路途很长,不需要短期爆发力,这种IT模式都是瀑布式的,一切都事先规划完成,它的业务是相对持久的、长期的、缓慢演进的过程。我倒觉得这不存在哪个IT更好,慢速IT是企业特别是传统企业发展的基石。

快速IT可以说是企业面对市场变化进行业务转型的一个方向。它并不要完全替代慢速IT,只是面对快速的市场变化和日新月异的用户需求,企业该如何适应市场、满足用户需求?所以快速IT是必须的,它就像短跑运动员,采用敏捷的方式快速落地、在短期内见效。

对接到落地,从开发测试云来讲,我们的核心理念是不论快速慢速,都推行我们的DevOps平台。慢速IT会有更多的人工参与,进行更多的配置;而快速IT更多地采用自动化和CI/CD来不断迭代。

但在完整层面上,不论快速慢速都要通过云平台来进行支持。对于慢速IT,我们更多地采取混合云管理的模式,除了企业内部的私有云的虚机、主机以外,需求变大时还会使用一部分公有云资源。我们使用CMP (Cloud Management Platform)混合云管理平台和Nexus等开源工具,来完成基本的版本管理,通过Jenkins去做持续集成,让它跟各个公有云的平台及私有云的平台进行打通,采用一个统一的云平台管理去管理应用的版本、交付、升级、回滚、发布等。

对于快速IT,我们构建了Build Pipeline,引入了更多自动化方式,把开发、测试、生产环境一致化,一键自动部署、Auto-Scale、水平扩展来满足快速IT的需求。下层通过容器云的方式进行管理,所有应用都以容器的形式运行。通过dockerfile打包成Docker Image,Push到Docker Registry,当持续部署触发以后,会从Docker Registry中将Image自动拉出并通过Docker-Compose运行应用。整个过程是依托容器云平台、通过微服务构建方式完成的。在开发测试云可视化功能里可以看到自己的服务是如何组织、如何联系的。

6.我们知道持续交付是需要一个组织中的各个角色进行高度的协同,在开发测试云中,涉及到软件研发的各个角色之间是如何协同工作的?

李书博:我们的特性团队或者功能团队会负责从研发、测试到上线的整个周期。传统组织结构中通常会有研发团队、测试团队、生产/运维团队,这使得在整个公司或组织内部真正打通CI/CD变得很困难,因为大家难免会各行其是。所以我们更喜欢让某个特性团队负责某个功能服务的整个生命周期。大的系统上我们会采用微服务的方式,减小特性团队之间的沟通成本,同时增加服务内聚力,减少服务间的耦合。这样我们可以保证各特性能快速发布、快速集成。

除此之外,不可能每个特性团队都是DevOps专家。我们会有一个专门的DevOps团队,它负责两件事:一个是DevOps平台,包括开发测试云相关的一切技术支持及维护工作;第二件事是作为DevOps的布道者,每当有一个新的特性团队为了实现某新特性而被组建时,DevOps团队会给新特性团队培训如何使用这个DevOps平台去完成这个特性的发布以及最终的交付。DevOps团队里人不多但是却都是精兵强将,都是DevOps专家,涉及软件研发的各个角色就是通过这种模式进行协同工作的。

7.海航容器云服务的用户群体是什么?相应的发展战略是什么?

李书博:讲用户群体,我们可以看看业界的标杆和大佬。以AWS为例,大体量如它,强调的仍是满足开发者的需求。海航容器云CloudOS的定位也是公有云用户群体,更多的是中小企业和互联网企业的开发者,未来两三年后会是大企业。我们的目标就是做公有云,成为全球公有云市场的玩家之一,把海航容器云CloudOS做成世界排名前列的专家。

讲目标肯定有对应策略。我们的第一个重要战略就是要占据技术制高点,我们要和全球最好的容器公司合作,强强联手,一起完成我们的战略目标。我们目前和来自硅谷的容器明星企业Rancher Labs合作,就是相信他们的技术实力。第二是更充分地考虑和联合开发者及用户的需求。我们认为容器云会在不远的将来对SaaS市场进行一次大变革,未来的SaaS提供商都会依托容器云这种方式为用户提供服务。因而我们要在容器云这一层成为生态的黏合剂。

所谓黏合剂,对上,我们要连接各种SaaS应用市场,把各种SaaS渠道商和服务商黏合到海航容器云平台。对下,我们要黏合各种基础设施运营商及公有云提供商。我们通过黏合上下的资源优势和合作伙伴的协助来打通这一部分市场,并且利用资源优势,使用户可以用超低价来使用SaaS服务和海航平台资源去部署他们的应用,为用户提供额外的价值,也把更多的用户黏合在我们的平台上。

同时我们平台追求极致的简单易用,比如,我们为用户提供可视化构建微服务的方式,用户通过简单的点击、拖拉拽,就可以构建自己的微服务,还可以将这种微服务保存成文件用来分享。我们将来会建立这样的一个社区,让大家可以分享自己设计的微服务和各种服务框架,这些框架都是通过可视化方式设计,如果别人设计过一个好的框架,你在这个平台上就可以拿来、导入、立刻使用。这是我们平台巨大的优势和为用户提供价值的方式,也是我们未来的发展方向。

8.海航容器云有合作伙伴生态建设方面的考虑吗,具体方案如何?

李书博:对内,我们会整合海航内部所有的服务,通过容器云平台承载海航集团所有应用和服务,给海航内部的服务提供增值增效的效果。

对外,我们有两大方向,一是整合基础设施提供商的资源,为客户提供资源支持,全球各种IaaS层所有的IDC都是我们未来的合作伙伴。

另一方向,我们联合各种SaaS提供商,通过我们的平台为他们提供更多的渠道和用户。同时,利用我们技术合作伙伴Rancher Labs在平台构建技术方面的领先优势,结合海航内部的研发力量,构建海航的开源社区,我们就像一块微服务画布,让大家释放创意,通过打造这样一个社区分享我们的经验和对用户创造的价值。(责编/魏伟)

评论