前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >容器技术及其应用白皮书(下)-- 容器应用

容器技术及其应用白皮书(下)-- 容器应用

作者头像
shaonbean
发布2019-05-26 19:53:41
1.7K0
发布2019-05-26 19:53:41
举报
文章被收录于专栏:运维前线运维前线

三、容器应用

3.1 容器技术应用场景

3.1.1 PaaS平台建设

最早的PaaS平台方案初步解决了很多客户对于应用弹性的需求,但是在容器技术之前,构建一套PaaS平台面临着组件多、量级大、改造成本高等挑战,而且对于运行在不同 PaaS 平台上的应用,很难避免应用对平台的深度依赖。譬如,不同的PaaS平台对弹性、高可用、性能、监控、日志、版本更新等的实现方式不同,则对其上应用的架构要求也不同;另外,在编程语言和技术栈方面,也会导致应用对平台供应商的深度绑定。总之,在传统PaaS平台面前,我们在开发应用时不得不配合平台的要求。 而容器技术的出现,很好的解决了上述问题。容器是以应用为中心的虚拟化环境,与编程语言、技术栈无关,比传统PaaS灵活;对应用的支撑也比底层平台多,可以发挥微服务架构的优势。同时,容器是基于轻量级虚拟化的技术,天生具有高密度的特性,可以更加高效地使用资源。

3.1.2 软件定义数据中心

互联网和海量数据正以前所未有的增长趋势冲击着整个数据中心行业,随着互联网、电子商务、社交网络、移动办公等互联网应用的迅速发展,传统数据中心逐渐难以满足新业务的发展需求,传统数据中心面临不匹配业务的灵活变化、能耗高、运维难、密度低、不满足云和虚拟化弹性伸缩场景,也面临着应用的快速、批量、移动部署慢等问题。 软件定义数据中心负责将存储、计算、网络资源依据策略进行自动化调度与统一管理、编排和监控,同时根据用户需求形成不同的服务并提供计费等功能。容器技术可充分利用底层的各项计算、存储和网络资源,灵活构建容器应用,实现具备应用轻量级的容器承载能力、应用集群的松耦合和资源动态弹性伸缩的能力、实现可视化运维和自动化管控的能力、实现平台自动化部署和升级的能力,从而解决了容器平台对基础设施资源调用的需求,容器平台将数据中心转化成为一个更加灵活高效的业务应用平台,其开放性和兼容性契合了数据中心对异构、大规模、可移植、互操作等方面的需求,容器技术为云计算的实施提供了强有力的支撑。

3.1.3 容器即服务

传统IaaS在应用过程中面临运维方面的问题,传统IaaS服务没有从根本上加速企业内部的开发运维效率,更多的主要是体现对于IT部门的技术优化和提升一定的运维能力,运维和开发人员之间依然存在传统IT手段同样的沟通成本。容器技术三个方面的优势可以有助于解决传统IaaS面临的问题。首先,容器的本质是一种操作系统级别的虚拟化,启动一个应用容器其实就是启动一个进程,因此使得容器占用空间小、资源利用率高、本身非常轻,执行起来效率较高。这些是容器技术与传统虚拟机技术的最大差别。其次,容器技术使用镜像方式能够将应用程序和它依赖的操作系统、类库以及运行时环境整体打包,统一交付,使得运维压力大大降低。最后,容器技术与底层所使用的平台无关,容器可以在Linux平台各发行版上兼容,这意味着应用架构一旦转换为容器化并且迁移部署之后,就可以在任何云平台之间无缝迁移。

3.1.4 持续集成和发布(CI/CD)

传统软件架构特性是单体应用,开发周期至少以月为单位进行发布和升级,代码一般使用一种语言开发,不同的组件紧耦合,经常依赖于公共的库,部署周期以月为单位,部署依赖人工操作,组件版本复杂,操作风险高,时间管理成本均居高不下。 将容器技术引入到开发和运维环节具有以下几个方面的优势:一是提供了交付环境一致性。从开发到运维的工作流程中,由于基础环境的不一致造成了诸多问题,但通过使用容器技术在不同的物理设备、虚拟机、云平台上运行,将镜像作为标准的交付物,应用以容器为基础提供服务,实现多套环境交付的一致性;二是提供了快速部署。工具链的标准化将DevOps所需的多种工具或软件进行容器化,在任意环境实现快速部署。三是轻量和高效。与虚拟机相比,容器仅需要封装应用及相关依赖文件,更加轻量,提高资源利用率。因此企业通过容器技术进行DevOps的实践,可较好的缩短软件发布周期,提升产品交付迭代速度,提高生产效率。

3.2 容器技术优势分析

3.2.1 从运维者维度看容器技术优势

  • 快速部署: 使用容器能够利用镜像快速部署运行服务,能够实现业务的快速交付,缩短业务的上线周期,极大地方便运维人员的上线部署工作。
  • 弹性伸缩: 使用容器技术,当遇到高并发、高流量的大活动,容器做到根据业务的负载进行弹性扩容,以提供更好的服务。当访问量降低后,容器平台能够自动缩容,及时释放空闲资源。
  • 可移植性: 容器可以运行于Linux、Unix、Window的操作系统之上,可以利用容器将服务移植到不同的操作系统环境下运行。
  • 轻量: 相比传统虚拟机,容器更加轻量,资源消耗更低,镜像体积更小。
  • 高可用: 容器运行的业务通常由一组容器来提供服务,容器平台的服务发现功能可以保证容器实例的副本数量即使在某个主机宕机的情况下也能维持不变。保证服务能够正常提供服务。
  • 资源利用率高: 容器较传统虚拟化有更低资源使用粒度,在一台物理机上可运行上百个容器服务,从而提高服务器硬件资源的利用率。

3.2.2 从开发者维度看容器技术优势

  • 快速构建开发环境: 开发应用除去自身编码工作之外,还需要额外的数据库、缓存或消息队列等组件在本地进行测试,使用容器技术可以快速完成构建,省去了设备申请、采购的流程,简化了开发者组件安装工作,提高了开发效率。
  • 提供一致性的开发环境: 采用容器镜像技术,只需要一次构建就可以实现在不同的项目成员之间快速复制出一套完全一致的开发环境,从而消除因环境异构而导致的不一致性,降低软件缺陷出现的概率。 同时,在开发环境和测试环境中使用同样的镜像,也能保证开发和测试环境的一致性,提前发现软件缺陷,减少对因环境不一致而导致的缺陷的调查成本。
  • 方便开发环境版本管理: 通过对应用程序镜像的版本化管理,可以实现同一套应用程序的多版本共存,尤其是存在对某些组件多版本支持的情况下,通过容器技术,可以轻松支持该组件的多个版本。 对应用程序容器的版本化,在应用程序本身存在多版本的情况下,开发者还能在快速进行版本回溯,提高问题调查和缺陷修复的效率;在发布失败时,也能快速回滚。

3.3 容器技术与其他技术的集成

容器技术与在应用过程中需要与以下几个方面技术进行集成才能在各应用场景中进行应用。一是与IaaS管理平台集成。如果容器选择在VM中运行,就需要与VM的管理平台进行对接。在私有云场景下需要对接例如OpenStack(容器技术与OpenStack技术集成具体可参考附录C)、VMware产品;在公有云场景下,需要与公有云服务提供商,例如阿里云、百度云、AWS等公司提供的VM进行集成。二是与开发工具集成。开发工具相关技术的集成是构建持续集成、持续发布以及DevOps环境的必须条件,目前比较常用的开发工具包括Jenkins、Shippable(for Docker)等。三是与网络进行集成。不同的应用运行于容器集群时有网络的互通需求,因此容器技术在具体场景应用时需要与网络二层或三层功能模块进行集成,以达到互通。四是与存储管理模块集成。存储是应用数据存储的必备,不同的存储在性能、存储空间、易用度等方面差别较大,如果要支持更多的应用,容器平台需要内置外部存储管理插件,与存储平台进行集成。

四、未来发展趋势

4.1 容器技术问题分析

容器技术拥有快速扩展、灵活性和易用性等诸多优势,但在容器应用过程中会遇到以下几个方面的问题:一是兼容性方面,容器版本在快速更新中,以Docker 相关技术为例,每隔1-3个月左右就有版本的升级,一些核心模块依赖于高版本内核,运维时存在版本兼容问题。二是目前容器技术没有统一的标准,例如:在容器层面有Docker Container、Mesos Container、rkt、CRI-O等众多容器技术产品;此外,Google 虽然在联合容器业界相关的厂商制定标准,但目前也未在容器方面进行完全的统一。三是管理容器环境和应用也较为复杂,不仅需要多类技术支撑,包括容器管理、编排、应用打包、容器间的网络、数据快照等,还需要增加对容器的监控。四是容器在应用过程中还需要考虑在容器间、容器与系统间的性能隔离,内核共享带来的安全隔离问题。五是在使用习惯角度上,容器使用习惯会有别于主机或虚拟机,容器技术在应用过程中大部分用户需要逐步引导才能适应容器的使用方式。

4.2 容器技术未来生态图及展望

这里写图片描述
这里写图片描述

容器技术从2014年风靡全球信息技术的各个领域开始,从最初的熟悉了解容器技术的应用范围到落地容器实践过程中,业界厂商和用户都不得不思考企业级云计算架构之下,容器技术能解决什么样的问题。从2016年的业界发展趋势来判断,企业用户对应用交付提出了服务化、分布式、容器化需求,通过容器技术实现IT应用的快速交付能力是落实企业战略目标的手段之一。 当前容器技术发展速度之快,已经超越当年Docker社区对容器技术的定义范畴,它承载着对下一代云计算技术变革的诉求。容器技术主要依赖的cgroup和namespace内核技术从生产实践中可满足企业用户的需求,并且创造性地定义了以应用为中心的开发模型,伴随着应用集装箱的镜像模式,可以部署到不同的系统平台并提供应用服务。当前的容器技术在不断的扩张自己的应用场景, DevOps、云平台、CI/CD、物联网服务、安全领域、金融领域和电商领域等开始慢慢探索应用实践。当前云计算厂商在众多企业容器需求中创新并实践多种多样的解决方案,容器技术也是当前云计算时代必然经历的一次历程。 正如本白皮书中详细展示的国内外生态图厂商群体一样,在每一个基础领域都在逐步形成容器生态圈,如图4.1。本白皮书通过容器技术的分析解读帮助各行业用户能理解并参与制定各个细分市场的行业标准实践。在未来的某个时间里,容器技术实践的能力模型会被定义并评级,各行业企业会参考容器应用能力模型定义出自己的容器需求,容器技术提供商在中国开源云联盟的指导下会提供标准化容器解决方案,实现容器技术落地的双赢。中国开源云联盟容器工作组会继续肩负起国内容器技术的落地标准推广工作,并把国内的容器实践标准反馈给国际上容器社区,比如Linux基金会下属的OCI社区和CNCF联盟,为推动制定国际容器技术标准添砖加瓦。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年12月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 三、容器应用
    • 3.1 容器技术应用场景
      • 3.1.1 PaaS平台建设
      • 3.1.2 软件定义数据中心
      • 3.1.3 容器即服务
      • 3.1.4 持续集成和发布(CI/CD)
    • 3.2 容器技术优势分析
      • 3.2.1 从运维者维度看容器技术优势
      • 3.2.2 从开发者维度看容器技术优势
    • 3.3 容器技术与其他技术的集成
    • 四、未来发展趋势
      • 4.1 容器技术问题分析
        • 4.2 容器技术未来生态图及展望
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档