容器技术邂逅DevOps,一个新生态的形成
Posted GitChat精品课
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了容器技术邂逅DevOps,一个新生态的形成相关的知识,希望对你有一定的参考价值。
为了帮助IT从业者职业之路拥有更多收获,在诸多C粉的殷切期待下,由CTO俱乐部打造的CTO线上讲堂自登场以来获得大家好评。本期邀请时速云联合创始人兼CTO王磊带来容器技术邂逅DevOps,一个新生态的形成的主题分享。
分享嘉宾: 时速云联合创始人兼CTO王磊
嘉宾简介: 王磊,时速云联合创始人兼CTO,目前主要负责时速云容器即服务平台的技术架构、设计和开发工作。原IBM中国开发实验室资深软件工程师,曾负责IBM服务器产品、BPM、WAS、Bluemix等产品的开发工作。
公司简介: 时速云是国内领先的容器云平台和解决方案提供商,基于以Docker为代表的容器技术,为开发者和企业提供应用的镜像构建、持续集成/交付、容器部署、运维管理的新一代云服务平台。其中包括标准化、高可用的镜像构建、存储服务,大规模、可伸缩的容器托管服务,及自有主机集群混合云服务。时速云致力打造下一代以应用为中心的云计算平台,帮助客户优化开发运维环节;提高业务效率,降低IT成本,实现持续创新。
以下是2月25日CTO讲堂现场完整速记:
主持人:下面欢迎时速云联合创始人兼CTO王磊,请您给大家做个自我介绍吧。
王磊: 大家上午好,我是王磊,目前是 时速云 容器即服务平台 的 CTO,主要负责平台相关的产品研发和技术架构工作。在此之前,在IBM中国开发实验室工作了 7 年,从事过 IBM 服务器产品、BPM、WAS、Bluemix等产品的开发工作。
很高兴今天有机会和大家分享一下最近比较流行的容器技术,以及其对传统应用开发、运维带来的可能改变;同样,也会分享我们在打造容器即服务的公有云平台的过程中积累的经验,希望会对大家有所帮助,也欢迎大家在分享后积极提问,共同讨论。
主持人:在开始创业之前,您主要有哪些技术经历?是什么契机下决定开始创业的?
王磊: 开始创业之前,主要的工作经历都是在 IBM 积累的,做过 Domino 在 IBM 大型服务器上的开发工作,主要语言 C/C++。做过 BPM/WAS 的中间件开发工作,使用了很长时间的 Java,也开始接触云计算相关的技术;最后在 Bluemix 上加深了对云计算的进一步理解,以及更多的技术积累。
那段时间,IBM 正在把已有的企业级产品快速进行云化,包括移动、大数据、流程管理、数据分析(Watson)等各种服务,短短几个月,Bluemix上就有了几百个企业级云端服务。但是上面的服务一般都比较重,用起来也很复杂。加上 Docker 刚刚兴起,这种轻量级的操作系统级的虚拟化技术迅速吸引了我们,于是决定做一个容器即服务平台(CaaS),于是就开始了创业之旅。
主持人:请介绍一下时速云的团队构成?
王磊:时速云团队主要在北京,成员主要来自 IBM、阿里等外企或大型互联网公司。因为创业公司要求非常高的灵活性和快速性,所以目前公司的组织架构是非常扁平化,除了明确职责分工,内部并没有严格层级之分。
当然内部会有研发团队,市场运营团队,销售团队等基本组织单位,团队之间会紧密合作,努力提高各种事务完成的效率。
主持人:时速云目前提供哪些技术产品和服务?可否从具体客户案例角度来详细阐述一下?
王磊:公有云上,提供开放的容器即服务平台,以开发者、中小企业为主,尤其是互联网和初创企业。通过标准化、自动化的方式提供一个从代码构建、到交付运行、再到运维监管的一个云端平台,服务于应用开发运维的整个生命周期,最终实现应用的快速迭代和交付。
主要包含4大服务:容器服务,代码构建、镜像市场和私有集群,带来的主要价值:
1. 以 Docker 镜像作为应用的交付标准,以容器作为应用的标准运行时环境,提供一整套高效开发运维的平台,帮助用户提高开发迭代的效率
2. 用户应用总是部署在一个分布式的集群环境中,平台负责资源管理和高效的调度、部署,轻松实现应用的负载均衡、横向伸缩、灰度升级和灾难恢复
3. 帮助用户打造轻量的微服务架构应用,秒级启动、伸缩、调度;提供服务级别的监控,使运维更轻松、高效
4. 帮助用户以集群的方式管理私有主机资源,并快速实现私有的容器云平台;通过对底层资源更高效的利用,来大幅降低企业产品开发运维的成本
当然,利用公有云上的丰富资源,用户也可以轻松实现适合自己的云端服务。这里列举几类客户场景:
1. 教育行业,提供丰富的实时操作环境,让学习者可以边看边实践、直接进入学习主题,提高用户的体验;通过我们的API直接和客户的线上系统对接,做到无缝集成
2. 企业开发测试环境,使企业充分利用公有云的弹性资源,按需使用,既保证了环境的安全、高可用,又降低了应用开发的成本;通过持续集成、持续部署,快速实现应用镜像的多版本管理,并随时更新运行时环境,轻松在各个版本之间切换
3. 为中小企业、个人网站提供完全集群的、高可用的、免运维的应用架构,并且通过多区快速部署,避免由于某个数据中心不可用导致的服务中断
私有云上,对有私有部署需求的用户,主要提供以下产品及相关服务:
1. TenxCloud Container Service - 基于 Kubernetes 的容器即服务平台,包含定制开发的模块和插件,以及基础的日志、监控、存储相关服务,提供开发SDK、计费插件等其他服务,开放所有API
2. TenxCloud Container Registry - 基于 Docker Registry v2.x 的镜像服务,包括针对企业的、可扩展的认证服务,提供附加功能的插件服务,用于实现企业级的镜像服务,开放所有API
3. TenxCloud CI/CD Service - 提供持续集成、持续部署相关服务,包括各种代码库的集成,各种 notification 的定制,构建节点的agent,同样开放所有 API
4. TenxCloud Management Console - 用于对平台本身的监管,包括主要服务的健康状态,用户的服务、应用,工单系统管理等
同样,我们也提供构建基于容器的私有云方案的咨询服务,帮助用户快速使用容器技术提高开发运维效率。
主持人:时速云平台的架构是如何的? 在设计的时候有哪些考量和技术关键点?
王磊:平台在实现时采用微服务的架构模式(基本架构如下图所示):
在设计的时候,主要有以下考虑:
1. 支持任意底层平台的部署,不依赖底层平台的服务,包括负载均衡、数据服务等,保证平台的灵活性
2. 对于公有云服务的多租户隔离,保证用户服务、数据隔离及安全
3. 保证对外 API 的一致性、向前兼容,注意服务和 API 的规范化和粒度,减少交互和充分利用缓存
架构的一些特点:
1. 每个服务的功能尽量轻量、单一,每个模块单独开发、测试,使用最简单、合适的技术实现
2. 每个服务都运行在 Docker 容器中,一些服务也运行在自己的平台上,比如文档、微博、社区、周报等等
3. 服务之间主要通过Restful API 进行通信
主持人:与同类型平台服务相比,时速云有哪些区别和优势?
王磊:其实,我们之间是存同求异的关系,对一些重点功能都会覆盖并找出自己的特点,大家也都在为容器技术在中国的推广贡献着自己的力量。说到“时速云”和其他平台的不同,可以先从下面几个方面关注时速云:
1)集群化的私有主机管理
主机集群管理,也可以看成是用户自己的私有云环境,是“时速云”推出的最有特色的功能之一。可以轻松添加任何物理机、虚拟机或者云端主机,支持逐个、批量添加模式(支持 AWS、阿里云等主流 IaaS 平台),组成一个逻辑集群。作为一个整体,来提供高质量不间断的服务,具有很高的容错性;而集群中的单个节点实现功能上相同或者互补的服务,一旦宕机,可以快速被其它节点取代。并且可以通过我们的管理平台进行管理、监控。
2)打造云原生应用平台
通过云端的支撑,使用户更容易开发出适配云环境的服务、应用。Cloud Native 是指应用本身可以感知自己运行在一个集群管理的环境中,并且集群管理的基础设施可以帮助用户简单实现这样的应用,提供“无限”的云端资源,提供服务的高可用,开发者更关心服务本身而不是机器,考虑API及相关服务的通信。
3)微服务和服务编排的支持
时速云在微服务架构和服务编排的实现上更有优势,主要分为 Pod 和 Stack两个层面的编排能力,主要区别如下图所示,其中Pod 编排是对微服务模式最好的体现,如下图所示:
4)本地代码构建镜像及客户端支持
支持将本地代码进行云端构建,提供 Windows、Linux和 Mac 三种平台的客户端;无需关联代码托管服务;如同使用本地 docker 一样的体验;不需要打包源代码文件,保证用户源代码安全。同时,通过客户端也可以完成服务查询、运行等主要操作,为喜欢使用客户端的开发者提供选项。
主持人:谈谈您对Docker及容器技术的理解。
王磊:个人认为Docker为代表的容器技术具有以下特点或优势:
1. 轻量级操作系统层的虚拟化技术,多个容器共享系统内核,容器镜像大小最小只有几百k,一个操作系统镜像也就100多M。每个镜像只包含最小的运行时依赖,较小的体量,有利于应用的快速迭代、部署。基本都是秒级启动、秒级销毁。
2. 跨主机迁移
每个应用及其依赖都会被封装成标准、唯一的镜像格式,而且不依赖于当前的系统、平台、部署模型。容器可以轻松的被移植到任意的机器上,而没有任何兼容性问题。
3. 版本控制和组件重用
可以轻松的跟踪多个版本的镜像,查看他们的不同,或者回退到某个版本。并且不同的镜像可以共用相同的组件层,这种分层共享的组织方式使得镜像的整体大小非常轻量。
4. 简化运维
Docker 镜像减少了解决应用依赖带来的成本和风险,保证同一镜像创建出来的容器环境的高度一致
其实,Docker主要增加的是镜像打包、分层文件系统及容器封装的支持,底层容器的隔离、资源限制仍然是 Linux Container的支撑。
主持人:容器在生产环境的部署和使用的简化,会为开发运维人员带来哪些改变?
王磊:Docker 改变 DevOps,应该是说这个新的技术会使更多的人参与到 DevOps 的思考当中,思考如何提高效率,而这个效率提升不只是小幅度的,应该至少是10倍程度的提升,才能算是革命性的改变或者创新。这里简单说一下对开发、运维带来的变化:
1. 开始学习、关注容器技术,以及如何利用这些技术来使自己的工作更简单、高效,当然最终目的是提高服务质量、并降低运维成本,这对相关平台将是较大的改变和挑战
2. 开始考虑 microservice 的使用,而这对开发运维人员也是一个新的概念。需要培养理解如何实现微服务的开发人员,相应的,运维人员需要在基础设施层面来支持微服务架构,并有能力管控随之而来的大量部署的微服务;随着微服务的运用,开发可以用更加适合的技术去实现不同服务,而不受限于部署平台的支持范围
3. 随之,开发和运维的联系会更加紧密,持续集成、部署成为基本需求,用户反馈的快速收集,使得应用的迭代、更新速度迅速提升。
主持人:开发测试如何更好地利用容器云服务平台?
王磊:对于开发测试,可以利用容器云平台的丰富镜像、快速启动、资源弹性等优势,这里列举几个例子:
1. 在平台上创建各种开发环境,一键部署php、Java、Go、Python的编程环境,彼此隔离,资源按需使用,不用时停止即可,既可以保证环境的高可用、也可以很大程度上节省成本
3. 尝试各种新的技术,比如 spark、hadoop,ELK等,可以直接在平台上轻松创建
主持人:都说2016年将是容器即服务(CaaS)之年,也将是“以运维(Ops)为主导的容器即服务”之年,这将大大简化容器在生产环境的部署和使用。对于容器的发展前景,您怎么看?
王磊:容器技术早在10年前已经被业内采用并开始发展, 容器技术从科技企业的高门槛私藏秘密武器,渐渐进化成易操作低门槛由广泛的开发者们接纳采用的大众技术。
在可以预见的未来,Docker的前景是美好的,围绕Docker所形成的生态圈必将推动容器技术快速进步,近两年将是容器技术逐渐标准化的黄金时间。
而容器技术的下一个争夺点会在哪里?相信会在容器集群调度管理、微服务以及基于容器的服务编排等领域展开,各个大公司、开源项目、初创企业也都在抓紧布局这块市场,这也是能推动传统IT企业变革的一个利器。总之,整个 IT行业会随容器技术的持续升温而发生转变,快速引起软件开发、运维、部署、交付等各个环节的改革创新,更多的产品设计会更倾向于模块的容器化、微服务的编排组合以及分布式的解决方案。
主持人:未来公司的发展方向和定位是什么?下一阶段技术发展的重点是什么?
王磊:目前公司的主要发展方向,可以概括为以下几点:
1. 进一步整合现有功能,提供整套开发测试、部署运维交付的解决方案,使平台更容易被广大用户所理解接受,快速看到使用我们平台的价值
2. 和感兴趣、有需求的企业进一步接触,通过理解用户的需求完善平台功能,并引导客户正确理解和使用容器技术,推动容器技术在企业内的推广和应用
3. 将目前的解决方案和技术推向企业市场,探索企业私有云方向的可行性,帮助企业快速搭建内部使用的、符合自己业务需求的容器云平台
4. 继续在存储和安全上花更多精力,解决Docker在这个方面的一些不足,使公有云服务更可靠、更安全
5. 探索和实现混合云的部署方式,为企业用户带来更多的价值
主持人:请结合这些年您自己在技术之路上的积累,谈谈技术人该如何做到高效学习和提升技能?
王磊:在这个信息高速发展的时代,每一位热衷技术的人都挺忙碌的,每天都有很多新技术推送过来,如何在这个信息爆炸的时代仍然自己按照计划、高效学习,以下是我的几点心得:
1. 努力让自己每天积累一点新技术、新方法,不管是工作中的实践积累,或是读书中发现的一些精华要点,回忆这一天的工作一定要有所收获
2. 培养自己成为 T 字型人才,在某一领域进行深度学习,掌握专业技能,让自己有一技之长;对其相关领域,要积极去学习、理解,不仅是技术,包括业务方面都需要去接触,扩展知识领域、提升视野
3. 学习技术循序渐进,在解决问题的同时,深入理解问题背后的一些技术,这对今后解决相关问题会有很大帮助
4. 对相关技术领域,多关注、学习实际案例和经验分享,这样会帮助你快速解决问题或者将来可能出现的问题
主持人:请结合您的切身体会谈谈创业路上您都有哪些收获和思考,对于如今越来越多想要投身创业大海的年轻人,有什么建议?
王磊:创业前,一定要做好各方面的准备,衡量你能获得的和你可能会失去的,从中找到平衡点并不容易;创业一般也不是短期投入,要看好长远的方向,尤其是对个人职业发展的帮助。如果你正在创业:
1. 珍惜你现在的创业机会,给自己点个赞,因为并不是每个人都有这样的能力和勇气
2. 找准自己的短期和长期方向,这个对初创企业非常重要,推荐看一下《从0到1》这本书,对于创业很有指导作用
3. 拿出最大的努力去实现自己的目标,在这个过程要扛住各种压力,勇于挑战以前可能没有接触的各种技术、非技术难题;在迷茫的时候,要调整自己好心态,多跟一些有经验的人交流,也许会有意外的收获
创业的路,也许会比你预想的还要困难,却是一场非常有趣、让人向往的冒险之旅
主持人:对想在技术路线上走得更远的人,您都有什么建议和忠告?
王磊:如果计划一直从事技术相关工作,那么就要紧跟信息化发展的步伐,多从其中挖掘一些思想,或者演变成自己的思想,应用到实际的产品、项目中,并逐步改善。我们需要更多、更好的思想来帮助我们实现技术上的跨越,创造出推动社会进步的各种工具、产品。在这个过程中也要发掘自己其他方面的潜力,使自己有能力处理一些非技术问题。
最后一个问题了,说实话,每个人因人而异,要先了解自己,然后才能发现自己的优势和不足,才能走的更好,这方面我也在学习 :)
互动环节:谢谢分享,我这里有两个问题:1. Console Hub 与 Container Engine之间是否有长链接保持? 如果没有,命令是怎样下发到Container的?2. Monitoring监控到的数据,也是交由Console Hub的,那么监控指标,预警阈值,预警动作,等过程,是由用户配置的,还是预先设定完毕的?
王磊: 你好,感谢提问,第一个问题,Hub 和 Engine没有长链接的,Engine和Hub之间的交互主要是拉取所需要的Docker 镜像,也就是发送 docker pull 命令,对于私有镜像,加上授权信息。这里的Hub 类似Docker Hub的服务,Engine就是容器集群管理引擎。第二个问题,监控数据会发送到统一的数据收集模块,目前是预先设定好的,在不同资源超出设定值时发送预警信息,后续会提供定制接口给用户自行设定。
问:谢谢回答。第一个问题,Engine是定期向Hub请求指令对吗?比如我定义了多个镜像,想要在不同的机器上,部署不同的镜像,那么Engine应该要得知这个信息。
王磊: 在容器服务被部署的时候,通过sceheduler 先会分配到合适的节点,然后由节点发送请求到Hub上拉去指定的镜像,当然,当然可以通过在节点上缓存一些常用镜像,来加速镜像的拉取,提高部署运行的效率
互动环节:您好,我想请问一下,Docker和OpenStack云平台集成,目前都有哪些方案可以来实现?另外,Docker和 IaaS 平台之间是什么样的一种关系?谢谢。
王磊:你好,Doker和OpenStack的集成目前有不少解决方案,OpenStack也会支持一些容器的集群管理框架,比如 Kubernetes 等,OpenStack也有自己的容器解决方案。个人理解,容器服务平台,我们称之为 CaaS,是介于 IaaS 和 PaaS中间,相比IaaS更偏向于应用,可以对底层IaaS资源进行抽象、管理。
问:能具体些么?
王磊: 具体的话,目前我们还没涉及OpenStack的集成工作,所以目前也是了解和关注,主要作用就是Docker可以依赖一些OpenStack已有的网络、存储方案来实现大规模的部署、管理。
问:那您刚才有提及到您们有和云集成,方便问一下您们集成的云是什么平台么?还是说是用Kubernetes做的实现?
王磊: 嗯,公有云上,我们目前也是部署在AWS、阿里云、青云这些IaaS平台上的,容器管理主要使用定制、扩展后的Kubernetes,当然也可以部署到私有的物理机、或者OpenStack平台上。嗯,大家可以通过 www.tenxcloud.com 访问我们的公有云服务,免费体验的。我们也提供私有化部署的产品或者解决方案。
问:那其实是否可以理解,您们的容器云管理,还是您们这边自己来进行的,并没有集成到云平台上面,通过云平台来进行?
王磊: 嗯,平台部署没有依赖任何的云平台,也可以部署到像CoreOS,RancherOS这样的轻量级系统上。
问:私有云是和哪个平台进行的集成?
王磊: 私有云目前也没有直接针对某种框架进行集成,需要用户提供基础设施的平台,后续会加入一些集成支持。
问:哦 原来是这样,那你们的私有化部署,都在哪些 IaaS 平台上面实际进行过?
王磊: 在AWS,阿里云,青云,UCloud,还有物理机上测试过。
以上是关于容器技术邂逅DevOps,一个新生态的形成的主要内容,如果未能解决你的问题,请参考以下文章