Container 峰会感受:迈向企业应用场景的容器技术

IMG_6362

CSDN的Container技术峰会这几天在北京召开。对比半年前2014 Container技术大会召开时,Container技术的研究和实践已经更进一步。同时,围绕Docker的生态也在日趋成熟。半年前我曾代表VMware,在第一次Container大会上分享轻量级容器的管理和技术演进;本次大会,我已经成为了一个Docker领域的创业者,与小伙伴共同创建DaoCloud。从产品设计和商业运营的角度再次审视Docker和容器技术,有了更多的思考和感悟。

我和DaoCloud的几位同事全程参与了这次大会,做Docker技术专场培训、在展区摆展位、与来宾和DaoCloud用户交谈互动,忙得不亦乐乎。虽然时间排的非常满,但我也仔细听了嘉宾的演讲内容,并做了一些纪录,整理了一些听后感。这次大会,我概括为4个明确的方向:

  • 容器技术与内核技术在不断完善
  • 容器集群调度工具逐步成熟并投入实战
  • 国内互联网和创业公司的快速跟进
  • 迈向企业应用场景

关于前三点,我想大家都是有目共睹的。华为、BAT等企业在内核和容器开源领域的贡献,无疑对中国乃至全球的容器技术社区产生了深远的影响,Google、红帽等公司的努力,也让内核底层、容器网络、安全隔离等大家都比较担心的问题得到不断的改善。容器调度这个备受关注的领域在Mesos、Kubernets等工具的不断深入和广泛应用下,也经历了大规模压力的考验,具备了向更大规模更高要求场景迈进的实力。本次大会上,腾讯云、美团云、京东云的来宾做了精彩的分享,无论是内部的开发测试场景,还是计划中的容器公有云服务,Docker等容器技术在国内的互联网公司已经遍地开花,创业公司更是此起彼伏。

我想重点跟大家分享的,是对企业场景的一些思考。

大会的最后一个议题,是由来自点融网(著名P2P金融平台)开发运维主管万林涛(Tony)带来的。Tony在分布式领域耕耘多年,带领点融开发团队完成整体架构的容器化,并在P2P金融这歌需要高度企业级安全和交互要求的领域率先成功完成生产环境应用的Docker化转型。

IMG_6397

点融网从事最热门的互联网金融业务,为了确保服务的稳定可靠,他们的架构与常见的企业架构非常接近。底层采用Oracle数据库,之上是中间件和Web前端。在谈到使用Docker的初衷时,Tony说:

“点融是一个快速发展的公司,技术团队在起步阶段才10几个人,开始技术架构跑在公有云。P2P面临监管,IT环境需要向银行靠拢。为了满足未来的监管要求,点融网采取了从公有云向自有IDC迁移的策略,但同时也面临了一些新问题:比如物理资源的使用率、配置管理的复杂性、互联网场景下的弹性需求、安全,等等。“

在架构选型的决策过程中,最终选择采用Docker,点融的一些主要考虑是:

  • 成本:相比一些企业级的虚拟化技术,使用Docker的成本相对较低,并且有足够的社区资源,技术和知识储备充足
  • 性能:毋庸置疑Docker容器提供了优于虚拟机的性能
  • 易用性:Docker的入门门槛较低,容易上手,学习曲线平滑

Slide08

由于历史原因,点融的架构相对比较陈旧,旧有的软件安装配置比较复杂。点融是一个典型的三层架构,目前点融完成了中间层、Web层的全部Docker化,但是保留了如Oracel数据库,前端的负载均衡模块未做变化。针对这样的决策,Tony提到:

“企业决定引入docker,需要区分清楚,哪些应用适合放入容器中,有些应用在容器化以后可能带来大量的便利和价值,但是比如Load Balancer、数据库等,容器化的价值并不是非常明显,因为Load Balancer、数据库的改动较少,没有面临频繁发布、配置管理方面的问题。”

Slide10

哪些应用放到容器?答案是那些需要经常部署、频繁改动的部分,这样的模块容器化的价值最大。 另外值得一提的是,由于历史原因,点融使用了Oracle OC4J中间件(有谁听说过这玩意吗?),这个老古董在点融的CentOS上部署非常麻烦。Tony选择率先把Oracle OC4J容器化,这极大降低了开发人员在配置方面的时间,提高了效率,同时也使团队立竿见影版的看到了docker的价值。

点融在测试环境和生产环境已经开始大规模使用Docker,在具体的实施过程中,点融经历的如下的步骤:

  • 点融采取了基于Docker的开发测试流程,使用Git做代码管理,触发自动build的工作,并在Jenkins中完成CI,提交docker image到registry保存。
  • Git中不同的分支,会对应不用的docker image和运行环境,让测试团队和运维团队可以快速得到他们所需要的交付件。
  • TestEnv as a Services,这是点融的另一个创新,把基于虚拟机镜像的测试环境,改为基于Docker的测试环境,这样对于频繁修改的环境,相比虚拟机,Docker的镜像启动和变更都更加容易,根据新的dockerfile重新build,push到registry即可。基于容器的开发测试环境,也降低了基础设施层的资源消耗。
  • 点融开发了自动化的容器申请和使用的平台,这对于开发人员来说,极大地提高了资源获取的效率。

Slide12

目前,点融的Docker化平台,已经承载了生产环境的流量和业务。谈到在生产环境使用Docker,Tony做了如下的总结:

  • 在私有的场景和对应用有完全控制的情况下,点融认为docker已经可以使用在生产环境
  • Docker的底层技术非常简单,所以依赖技术存在已久,非常的成熟
  • Docker自从1.2版本后,提供了monitor,restart policy,可以自动重启container,提高了可用性
  • 最近发布的1.6版本,一些例如标签等功能,分组批量管理container,会提高DevOps的效率
  • 安全是一个考虑,但是在私有云环境,docker提供的沙盒机制,不会因为一个应用崩溃,而导致整个系统的容器崩溃,已经满足需求
  • API和Lib,方便docker平台跟已有的系统整合,可以实现自动的弹性伸缩

在生产环境的场景,DockerMan是点融开发的容器管理工具,基本工作原理是管理环境中的container,监控系统看各种指标,DockerMan模块,会根据监控指标,在高弹性场景下,根据预先制定的策略和脚本,完成容器的自动扩容,并自动修改Load Balancer的配置。

Slide19

点融的案例,是非常典型的一个企业架构向互联网领域迁移的场景,通过容器化应用发布,和基于容器的开发测试流程,点融获得了成本、效率和开发敏捷性。Docker技术在企业场景落地,是值得关注的领域。DaoCloud在Container大会之前做的Docker专场培训,我们与数十位来自企业软件开发和IT架构领域的实践者做了一整天的交流 ,容器技术在企业应用的场景,已经拨开迷雾,逐渐清晰。我认为:

  • 企业,特别是那些亟待与移动互联网对接的传统企业,在考虑未来的基础设施时,为了能够应对移动互联网时代快速迭代、快速发布的刚性需求,必须完成云平台从资源获取的角色,到应用管理平台角色的转变
  • 从架构领域来说,容器技术的出现和高速发展,并非是为了兼容过去的架构。但是一些传统的企业软件,可以轻易的完成全部或部分容器化架构转型,迈向微服务架构,软件企业的开发流程也得以升级,获得持续集成、快速交付的能力,获得与移动互联网平台对接的基础设施能力
  • 安全和隔离是相对的,企业场景,通常不像公有云平台,应用的类型是受到管控的。正如Tony 所言,在这样的场景下,容器已经可以提供足够的隔离性和安全性。

以上看法,仅是我个人的一些判断,市场的发展,还需要观察和验证。

最后,再说说跟办会有关的话题。

最近Container和Docker领域的大会曾出不求,演讲的质量也是干货满满。但是笔者注意到,大量的内容,都是集中在Container内核技术、Mesos、k8s调度等主题。这些内容适合云平台厂商的关注,但是与真正的容器技术用户,也就是开发者和企业的架构师,却有一定距离。容器化应用改造,微服务化架构、以容器为核心的持续集成、持续交付这些内容,还鲜有见到深入的分享。这一部分,是让容器技术深入人心,落地成熟的主要推手。DaoCloud今后将有倾向性地做一些分享,比如我们在4月底的上海Gopher技术大会上,会讲go语言的持续集成特性。也期待社区在这方面有更多精彩内容涌现。

 


DaoCloud是本次Container技术大会的战略合作伙伴,我们在展区发放了大量的Docker和DaoCloud周边礼品,也与来宾做了非常深度的交流、产品演示和方案讨论。晒几张图

IMG_6366

人头攒动的展区,T恤等受到火热追捧

IMG_6360

Dao记社区运营负责人,中国区Docker meet up主力推手Fiona Feng

IMG_6352

Dao记研发副总裁郭峰,为企业客户培训Docker技术

 


 

Container大会也是一次新朋旧友的聚会,我们很欣喜的看到国内容器领域创业公司的快速崛起,和纵连横,竞争合作,共建生态,是大家一致的目标和想法。

IMG_6393

Docker Run!

Leave a Reply

Your email address will not be published. Required fields are marked *