汽车行业容器平台项目的技术路线选择.docx

? ? ? ? ? ? ? 汽车行业容器平台项目的技术路线选择 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 为了更加快捷有效地为业务服务提供IT支撑,更加敏捷便利地应对业务高峰,更加快速高效地IT开发交付,某司启动了容器云平台项目,构建跨数据中心统一容器云平台。通过该平台的搭建,改善了IT的项目交付模式,将传统以虚拟机加应用的交付模式,以容器镜像进行交付。同时统一管理容器实例,以更好应对业务变化,并提升IT基础硬件资源利用率。 某汽车主机厂容器最佳实践——技术可行性分析 1、容器技术背景 虚拟化技术作为云计算的前提之一,不断伴随引发着深远的技术变更。早期的虚拟机虚拟化,将传统物理计算资源虚拟化为若干虚拟服务器,可各自运行各自的操作系统,从而提高整体计算资源利用率。但随着业务敏捷需求逐步显现,业务服务颗粒度不断变小,微服务架构便随之产生。微服务架构的细颗粒度隔离需求和管理需求使得容器技术逐渐成为对云计算领域具有深远影响的变革技术。容器技术的发展和应用,将为各行业应用云计算提供了新思路,同时容器技术也将对云计算的交付方式、效率、PaaS平台的构建等方面产生深远的影响,具体体现在以下几个方面: ? 部署:容器可以将应用打包成单一可运行、可储存的组件,并且在任何时间任何地点进行部署。? ? 启动:容器共享宿主机操作系统kernel,使得容器中的进程启动和在操作系统中类似,不必像虚拟机一样额外启动操作系统,故启动速度将变快。? ? 组装:容器的细颗粒度和轻量化实现导致运行在容器中的应用可以轻易进行服务组合和再封装。 ? 迁移透明:容器技术最重要的价值就是为在不同宿主机上运行服务提供一个轻便的、一致的格式。容器的标准化和CNCF等组织的成立,使得相关技术逐步标准化和透明化,避免局限于单一的平台提供商。 1.1 相关术语及缩略语 1.2 Docker容器优势及原理 Docker是一个开源项目,诞生于2013年初。最初由dotCloud公司开发,其基于Go语言实现。后续该项目加入了Linux基金会,遵从了Apache2.0协议,代码在GitHub上进行维护。 Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。其隔离的基础是基于Linux Kernel实现。无论是早期使用的LXC还是后续自开发的libcontainer,Docker都基于底层的隔离进行了进一步的封装,使得对应用用户透明,不必去关注底层实现,操作就像一个快速轻量级的虚拟机一样简单。 传统虚拟机虚拟化和容器虚拟化的差异,参考下图。 传统虚拟机通过Hypervisor层进行虚拟化隔离,以此运行半虚拟化操作系统。应用软件再运行再虚拟机之上。而容器隔离则依赖宿主机操作系统Kernel,通过其API的隔离性功能实现虚拟化,并直接复用本地主机的操作系统。 libcontainer功能实现上涵盖了包括对Linux Kernel中namespaces的使用、cgroups管理、Rootfs的配置启动、默认的Linux capability权限集、以及进程运行的环境变量配置。 cgroups(Control Groups)最早由Google工程师于2006年提出,并再2007年整合进Linux内核。顾名思义就是把进程放到一个虚拟组中方便统一控制。其作为Linux内核提供的一种机制,可以把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。通俗的来说,其可以限制、记录、隔离进程组所使用的物理资源(包括:CPU、memory、IO等),为容器实现虚拟化提供了基本保证,是构建Docker等一系列虚拟化管理工具的基石。 对于操作系统Kernel隔离而言,隔离意味着可以抽象出多个轻量级的内核(容器进程),这些进程可以充分利用宿主机的资源,宿主机有的资源容器进程都可以享有,但彼此之间是隔离的,同样,不同容器进程之间使用资源也是隔离的,这样,彼此之间进行相同的操作,都不会互相干扰,安全性得到保障。为了支持这些特性,Linux namespace 实现了 6 项资源隔离,基本上涵盖了一个小型操作系统的运行要素,包括主机名、用户权限、文件系统、网络、进程号、进程间通信。这 6 项资源隔离分别对应 6 种系统调用,通过传入对应参数,调用Linux API clone() 函数来完成。 1.3 Docker劣势及不足 容器虽然通过操作系统Kernel实现了虚拟化,但其毕竟没有物理上的Hypervisor层,无法实现如果虚拟机这样完全的隔离。同时,类似于原先虚拟机中vcenter、nova等调度方案,容器也需调度编排方案用于降低平台管理成本。综上,其劣势主要涉及以下三方面: 隔离性:Namespaces 和 cgrou

文档评论(0)

1亿VIP精品文档

相关文档