容器技术应用白皮书
- 格式:docx
- 大小:574.50 KB
- 文档页数:16
产品介绍VMware vSphere现代混合云的基础服务vSphere 7 帮助传统应用实现简化的生命周期管理、原生安全性和应用加速。
版本7 中的新功能特性•简化的生命周期管理- 提供新的工具用于简化升级、修补和配置工作•原生安全性- vSphere Trust Authority 和联合身份验证•应用加速- DRS 和vMotion 的增强功能,对大型工作负载和关键应用工作负载很有用vSphere 7 with Kubernetes 可通过VMware Cloud Foundation 获取,它提供VMware Cloud Foundation Services 和以应用为中心的管理,以简化开发工作、提高运维敏捷度并加快创新步伐。
应用可通过虚拟机、容器和Kubernetes 的任意组合来部署。
vSphere 7 with Kubernetes 中提供哪些功能?•版本7 的所有功能,例如简化的生命周期管理、原生安全性和应用加速等。
•VMware Cloud Foundation Services - 这些新引入的服务面向使用vSphere withKubernetes 的开发人员,而vSphere with Kubernetes 在VMware CloudFoundation 中提供•以应用为中心的管理–以应用为单位在vCenter Server 内组织Kubernetes 集群、容器和虚拟机。
vSphere 7 的新功能特性•vSphere Lifecycle Manager•新一代基础架构镜像管理:管理基础架构镜像,以使用预期状态模型修补、更新或升级ESXi 集群。
•vCenter Server Profile:适用于vCenter Server 的预期状态配置管理功能,它可以帮助用户为多个vCenter Server 定义/验证/应用配置。
•vCenter Server Update Planner:针对升级场景管理vCenter Server 的兼容性和互操作性,让用户能够生成互操作性和预检查报告,从而帮助用户针对升级进行规划。
目录IDC观点��.��.��.��.��.��.��.��.��.��.��.��.��.第一章以技术为驱动力,聚焦数字化业务发展.��.��.��.��.��.��第二章无代码平台应用迈向纵深,加速企业流程重塑与业务创新.��.��.��.�无代码平台概述�.�中国无代码平台应用现状�.�无代码平台时代下技术与业务关系面临改变第三章释放圆桌式开发价值,深化无代码平台落地.��.��.��.��.��.�.�数字化需求激增下,传统开发协作方式展露弊端�.�基于圆桌式开发深度赋能企业协作创新�.�圆桌式协同里的角色分工与合作�.�实现圆桌式开发落地的成功要素和方法指南�.�基于无代码平台的圆桌式开发最佳实践IDC建议.��.��.��.��.��.��..��.��.��.��.��.��..�..关于轻流.��.��.��.��.��.��..��.��.��.��.��.��..�.01 03 1020 36401无代码加速实现软件创新,支持数字化业务发展无代码开发平台作为下一代应用程序开发模式和工具,为促进数字化业务发展,破局数字化转型挑战提供了支持。
无代码开发平台具有可视化的用户界面、开放集成各类云环境、原生支持跨平台、支持团队协作开发等特点。
业务人员可以借助无代码开发平台上的大量可复用组件,通过拖拉拽的方式,自助化开发应用程序,满足企业级应用快速变化的动态需求,有助于公民开发理念的实践,加速企业软件业务创新。
圆桌式开发是推进无代码平台落地的理想协作方式无代码平台的规模化应用需要业务、IT等各部门的配合,对无代码平台的治理水平将决定该技术落地的规模化发展程度,这一点对于中大型企业尤其重要。
企业亟需一种更为先进的协作模式以帮助IT人员与业务人员在无代码时代实现更有效地配合。
圆桌式开发理念可有效帮助企业实现这一目标。
圆桌式开发是一种开发协作方式,是包括IT人员、业务人员、数据分析师、架构师等多方角色在内的协作机制,圆桌的各方基于共同目标紧密联系在一起,通过密切协同,高效敏捷地完成应用系统落地工作。
华为FusionSphere存储虚拟化技术白皮书目录1 执行摘要/Executive Summary (1)2 简介/Introduction (2)3 解决方案/Solution (3)3.1 FusionSphere 存储虚拟化解决方案 (3)3.1.1 架构描述 (3)3.1.2 特点描述 (4)3.2 存储虚拟化的磁盘文件解决方案 (4)3.2.1 固定磁盘技术 (4)3.2.2 动态磁盘技术 (5)3.2.3 差分磁盘技术 (5)3.3 存储虚拟化的业务管理解决方案 (6)3.3.1 磁盘文件的写时重定向技术 (6)3.3.2 磁盘文件的存储热迁移 (6)3.3.3 磁盘文件高级业务 (7)3.4 存储虚拟化的数据存储扩容解决方案 (7)3.4.1 功能设计原理 (7)3.5 存储虚拟化的数据存储修复解决方案 (8)3.5.1 功能设计原理 (8)1 执行摘要/Executive Summary华为提供基于主机的存储虚拟化功能,用户不需要再关注存储设备的类型和能力。
存储虚拟化可以将存储设备进行抽象,以逻辑资源的方式呈现,统一提供全面的存储服务。
可以在不同的存储形态,设备类型之间提供统一的功能。
2 简介/Introduction存储设备的能力、接口协议等差异性很大,存储虚拟化技术可以将不同存储设备进行格式化,将各种存储资源转化为统一管理的数据存储资源,可以用来存储虚拟机磁盘、虚拟机配置信息、快照等信息。
用户对存储的管理更加同质化。
虚拟机磁盘、快照等内存均以文件的形式存放在数据存储上,所有业务操作均可以转化成对文件的操作,操作更加直观、便捷。
基于存储虚拟化平台提供的众多存储业务,可以提高存储利用率,更好的可靠性、可维护性、可以带来更好的业务体验和用户价值。
3 解决方案/Solution3.1 FusionSphere 存储虚拟化解决方案FusionSphere存储虚拟化平台能够屏蔽存储设备差异,统一封装为文件级操作接口,并在虚拟化层提供了丰富的存储业务功能。
OpenLayers白皮书贵州怡景汇博科技有限公司2012年6月目录:文档说明: (3)OpenLayers简介 (4)技术原理和实现 (4)运行环境: (4)基本要素: (4)地图表现形式: (5)位图层 (6)矢量图层 (7)技术特征 (7)1、Map地图容器 (8)2、Layer图层 (8)3、Control控件 (8)4、矢量元素 (9)5、数据源 (9)6、面向对象框架 (9)7、WFS-T (10)应用领域 (10)术语解释 (11)文档说明:本文档描述了OpenLayers的基本框架和功能特征。
通过对这些功能的组合运用,或者在其框架上做二次开发,可以搭建一个健壮的WebGIS系统。
文档主要内容OpenLayers简介技术原理和实现技术特征Map地图容器Layer图层Control控件矢量元素数据源面向对象框架WFS-T应用领域OpenLayers简介OpenLayers 是MetaCarta公司采用纯JavaScript开发的用于在主流浏览器上展示地图数据的包,用于WebGIS客户端,通过BSD License 发行。
OpenLayers 为构建富客户端地理信息应用实现了一套JavaScript API,类似Google Maps和微软的Virtual Earth的APIs,和他们有个重要的不同点是,OpenLayers是完全开源和免费的。
通过OpenLayers可以很轻松地在web页中创建一个动态的地图。
OpenLayers是一个用于浏览器地图展示的开源js库,用于在您的浏览器中实现地图浏览的效果和基本的zoom,pan等功能。
OpenLayers APIs采用动态类型脚本语言JavaScript编写,同时借用了Prototype.js框架和Rico库的一些解决方案,实现了类似与Ajax功能的无刷新更新页面,能够带给用户丰富的桌面体验(它本身就有一个Ajax类,用于实现Ajax功能),而应用于Web浏览器中的DOM(文档对象模型)由JavaScript实现,同时Web浏览器(比如IE,FF等)都支持DOM ,所以客户端不存在浏览器依赖性。
目录第1章系统概述 (4)1.1建设背景 (4)1.2痛点分析 (4)1.3系统简介 (4)1.4建设目标 (5)第2章系统架构 (6)第3章CI&CD流程 (7)第4章功能说明 (9)4.1功能清单 (9)4.2开发集成 (10)4.2.1 代码仓库 (10)4.2.2 项目管理 (10)4.2.3 工程管理 (10)4.3应用管理 (11)4.3.1 应用管理 (11)4.3.2 服务管理 (11)4.3.3 容器管理 (12)4.4交付中心 (12)4.4.1 基础镜像 (12)4.4.2 项目镜像 (12)4.4.3 应用市场 (13)4.5运维管理 (13)4.5.1 集群管理 (13)4.5.2 主机管理 (14)4.5.3 监控管理 (14)4.5.4 告警管理 (15)第5章运行环境 (16)5.1服务器环境要求 (16)第1章系统概述1.1建设背景随着信息技术的发展,互联网+教育的应用模式改变了人们的工作及生活模式,面向教育、企业及政府单位的企业应用逐步走向云化、互联网化,但是随着公司业务的发展,往往会出现服务器环境越来越复杂,管理依赖困难等问题。
这些问题导致运维压力大,开发、测试、运维的整体工作效率大打折扣,团队竞争力下降。
行业的问题积累,有时需要新技术的出现才能解决。
Docker的横空出世,让人们看到了build、ship、run一体化的希望,而奕云CaaS正是希望基于docker 的容器化技术,解决用户从代码自动编译打包,到线上运行维护的全套需求.1.2痛点分析传统运维模式的问题:●随着业务快速发展,服务器环境越来越复杂,各种紧急上线,技术债务,临时版本的程序,脚本等,可能长期得不到清理,最终引发问题。
●技术平台快速发展,管理依赖是件很麻烦的事,而且影响运维和开发的沟通。
●环境统一问题,经常导致上线失败。
开发、测试、运维协作困难。
●监控体系不断重构,难以满足需求。
华为OceanStor 18000系列高端存储系统RAID2.0+技术白皮书文档版本01 发布日期 2013-8-12华为技术有限公司版权所有© 华为技术有限公司2013。
保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
商标声明和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。
除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。
除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司地址:深圳市龙岗区坂田华为总部办公楼邮编:518129网址:客户服务邮箱:support@客户服务电话:4008302118目录1 RAID2.0+概述 (1)1.1 RAID技术演变 (1)1.2 华为RAID2.0+简介 (2)2 RAID2.0+原理 (3)2.1 RAID2.0+基本原理 (3)2.2 RAID2.0+实现框架 (4)2.3 RAID2.0+逻辑对象 (5)3 RAID2.0+技术亮点 (1)3.1 安全可信 (1)3.1.1 自动负载均衡,降低整体故障率 (1)3.1.2 快速精简重构,改善双盘失效率 (2)3.1.3 故障自检自愈,保证系统可靠性 (3)3.2 弹性高效 (4)3.2.1 虚拟池化设计,降低存储规划管理难度 (4)3.2.2 增加LUN所跨硬盘数,大幅提升单LUN性能 (4)3.2.3 空间动态分布,灵活适应业务变化 (5)4 附录A:RAID2.0+ FAQ (6)5 附录B:RAID2.0+周边资源 (9)6 缩略语表/Acronyms and Abbreviations (10)修订记录/Change History1 RAID2.0+概述1.1 RAID技术演变RAID(Redundant Array of Independent Disk,独立冗余磁盘阵列)技术诞生于1987年,最初由美国加州大学的伯克利分校提出,其基本思想是把多个独立的物理硬盘通过相关的算法组合成一个虚拟的逻辑硬盘,从而提供更大容量、更高性能,或更高的数据容错功能。
InCloud Sphere 4.5 旗舰版技术白皮书V1.0浪潮(北京)电子信息产品有限公司2017 年 1 月InCloud Sphere 4.5 旗舰版技术白皮书 V1.0目录1第一章摘要 (5)2第二章InCloud Sphere 产品概述 (6)2.1InCloud Sphere 介绍 (6)2.2InCloud Sphere 架构 (8)3第三章InCloud Sphere 技术原理 (9)3.1InCloud Sphere 系统设计 (9)3.2InCloud Sphere 核心技术 (11)3.2.1CPU 虚拟化 (13)3.2.2内存虚拟化 (15)3.2.3I/O 设备虚拟化 (17)4第四章InCloud Sphere 功能原理 (19)4.1 计算 (19)4.1.1CPU 管理 (19)4.1.2内存管理 (19)4.1.3GPU 管理 (20)4.2 存储 (23)4.2.1 存储I/O (23)4.2.2 快照 (24)4.2.3存储多路径 (25)4.2.4存储读缓存技术 (26)4.3 网络 (26)4.3.1网络虚拟化架构 (26)4.3.2网卡绑定 (29)4.3.3QOS (33)4.4高可用 (33)4.4.1vMotion (33)4.4.2Storage vMotion (36)4.4.3 HA (38)4.5负载均衡 (41)4.6 监控 (44)4.6.1性能收集 (45)4.6.2配置性能图表 (46)4.6.3自动化告警机制 (46)4.7vApp (48)4.8 灾备 (49)4.8.1DR 结构 (49)4.8.2DR 工作原理 (50)4.8.3DR 故障转移 (50)4.8.4备份机制 (51)4.9 容器 (52)4.9.1Docker 介绍 (52)4.9.2InCloud Sphere 旗舰版和Docker (52)4.9.3InCloud Sphere 提供Docker 支持优势 (54)5第五章InCloud Sphere 自动化能力 (56)5.1自动化安装 (56)5.1.1自动化部署架构 (56)5.1.2自动化部署条件 (56)5.1.3自动化部署过程 (57)5.1.4应答文件 (57)5.2自动化更新 (57)5.2.1iCenter 自动检查可用更新 (57)5.2.2Hotfix 自动更新 (58)5.2.3InCloud Sphere Tools 自动更新 (59)5.2.4池滚动升级 (59)6第六章InCloud Sphere 开放性和安全性 (61)6.1XAPI (61)6.1.1XAPI 介绍 (61)6.1.2XAPI 功能 (62)6.1.3XAPI 架构 (62)6.2Introspect API (63)6.2.1Introspect API 介绍 (63)6.2.2虚拟机内存保护 (63)6.2.3预防攻击技术 (63)6.2.4虚拟机无代理保护 (64)6.2.5Direct Inspect API 防病毒架构 (64)6.2.6Direct Inspect API 防病毒的优势 (65)6.3PlugIn (65)6.3.1PlugIn 介绍 (65)6.3.2PlugIn 优势 (66)6.3.3部分PlugIn 插件列表 (66)6.4安全架构 (66)6.5SSR (67)6.5.1SSR 介绍 (67)6.5.2SSR 实现原理 (68)6.5.3SSR 技术架构 (69)6.5.4SSR 主要功能 (70)6.6与OpenStack 集成 (70)6.6.1OpenStack 介绍 (70)6.6.2InCloud Sphere 旗舰版的优势 (70)6.6.3与OpenStack 集成架构图 (71)7第七章总结 (73)8第八章缩略语 (74)1第一章摘要浪潮,着力推动中国“行业云”,致力于成为中国领先的云计算解决方案供应商,业已形成涵盖IaaS、PaaS、SaaS 三个层面的整体解决方案服务能力。
afci白皮书AFCI白皮书是指由阿里云智能计算联盟(AFCI)发布的技术白皮书,该白皮书详细介绍了阿里云在智能计算领域的技术理念、产品架构和解决方案。
在本文中,我们将根据AFCI白皮书的内容,分享一些与之相关的参考内容,以探讨智能计算的发展趋势和应用场景。
首先,AFCI白皮书强调了边缘计算的重要性和前景。
边缘计算是指将数据处理和分析的任务从云端转移到离用户近处的边缘设备上,以提高计算效率和降低延迟。
边缘计算的兴起受益于物联网的普及和边缘设备性能的提升,现如今已经广泛应用于工业自动化、智能交通等领域。
关于边缘计算,我们可以参考IDC发布的《边缘计算技术发展与应用研究报告》,该报告详细介绍了边缘计算的技术架构、应用场景和市场前景。
其次,AFCI白皮书阐述了人工智能与区块链的融合。
人工智能和区块链是近年来备受关注的两大热门技术。
人工智能的发展在于提高数据处理能力和算法模型的智能性,而区块链的发展在于构建安全可信的去中心化网络。
人工智能和区块链的结合,可以实现算法模型的验证和数据的隐私保护。
关于人工智能与区块链的融合,我们可以参考《人工智能与区块链融合的研究与应用》一书,该书从理论、算法和应用等维度进行了深入探讨。
此外,AFCI白皮书强调了云原生技术的重要性。
云原生是一种构建和运行在云计算平台上的应用程序的方法论,旨在实现应用的高可用性、弹性和可扩展性。
云原生技术包括容器、微服务框架和自动化运维工具等。
关于云原生技术,我们可以参考《云原生技术与实践》一书,该书介绍了云原生技术的基本概念、原理和实践案例,有助于我们深入了解云原生的应用和发展。
最后,AFCI白皮书提到了基于AI的物联网技术。
物联网(Internet of Things, IoT)是指将传感器、设备和其他物理实体通过互联网互相连接,形成一个网络,实现设备之间的信息交互和智能控制。
基于AI的物联网技术能够通过感知、识别和推理等能力,实现对物理世界的智能感知和智能决策。
k8s项目管理技术白皮书Kubernetes(简称K8s)是一个开源的容器编排引擎,用于自动化部署、扩展和操作应用程序容器。
Kubernetes项目管理技术白皮书是一份专门讨论Kubernetes在项目管理方面的技术文档,下面我将从多个角度对这个主题进行全面的回答。
首先,Kubernetes在项目管理方面的技术白皮书会涵盖Kubernetes在项目部署、资源管理、监控和扩展性等方面的应用。
在项目部署方面,Kubernetes提供了强大的部署机制,可以实现自动化部署和滚动更新,保证项目的稳定性和可靠性。
在资源管理方面,Kubernetes可以根据项目的需求动态调整资源分配,确保项目能够充分利用集群资源。
在监控方面,Kubernetes提供了丰富的监控和日志系统,帮助项目管理人员实时了解项目运行状态。
在扩展性方面,Kubernetes可以轻松地扩展集群规模,满足项目快速增长的需求。
其次,Kubernetes项目管理技术白皮书还会包括Kubernetes 在多种项目管理场景下的最佳实践和案例分析。
比如,针对大型项目的管理,Kubernetes提供了多租户支持和RBAC(基于角色的访问控制)机制,可以实现多个项目的隔离管理;针对持续集成/持续部署(CI/CD)的管理,Kubernetes可以与各种CI/CD工具集成,实现自动化部署和测试。
此外,Kubernetes项目管理技术白皮书还会介绍Kubernetes 在安全管理、故障恢复和灾备等方面的应用。
Kubernetes提供了丰富的安全特性,如网络策略、密钥管理等,保障项目的安全性;同时,Kubernetes还提供了强大的故障恢复机制,可以自动重新调度故障容器,确保项目的高可用性。
最后,Kubernetes项目管理技术白皮书还会涵盖Kubernetes 未来的发展方向和趋势。
随着云原生技术的不断发展,Kubernetes 在项目管理方面的应用将会更加丰富和成熟,未来可能会涉及更多的AI和自动化技术,以及更多与项目管理工具的集成。
容器技术应用白皮书内容摘要近年来,容器技术及相关应用得到了国内外越来越多的关注度,研发和应用推广发展势头迅猛。
在国外,容器技术已经形成了较成熟的生态圈;在国内,金融企业、互联网企业、IT企业积极投入容器技术研发和应用推广,发展势头迅猛。
为了积极引导我国容器技术和应用发展,我们编写本白皮书。
其主要内容包括:∙一、针对容器技术现状进行研究和分析。
一是梳理了容器技术从开始到现在的发展历程,对现有容器发展的生态结构进行分析,其中包括开源社区、产业联盟、解决方案厂商等;二是对容器技术框架进行了详细的描述,对技术框架各层涉及的技术点进行了介绍;三是结合已发布的国家和国际标准,将现有容器技术对于参考架构的实现情况进行分析;四是分析了容器技术与大数据、物联网、SDN之间的关系。
∙二、容器技术发展路线及技术架构。
通过列举容器技术典型4个应用场景,包括PaaS平台建设、软件定义数据中心、容器即服务、持续集成和发布等,分析了容器技术在各种场景下的关键成功因素。
∙三、容器未来发展趋势。
结合容器发展现状和应用场景应用情况,分析了容器技术在应用过程中面临的问题,同时提出了容器今后发展的生态图,对未来容器技术发展进行了展望。
一、概述1.1 背景继虚拟化技术出现后,容器技术逐渐成为对云计算领域具有深远影响的变革技术。
容器技术的发展和应用,将为各行业应用云计算提供了新思路,同时容器技术也将对云计算的交付方式、效率、PaaS平台的构建等方面产生深远的影响,具体体现在以下几个方面:1.2 相关术语表1.1 术语术语定义/解释镜像系统文件及其应用文件以特殊的文件形式进行备份制作成单一的文件。
微服务架构微服务架构是一种特定的软件应用程序设计方式——将大型软件拆分为多个独立可部署服务组合而成的套件方案。
开发运维一体化可定义为是一种过程、方法、文化、运动或实践,主要是为了通过一条高度自动化的流水线来加强开发和其他IT职能部门之间的沟通和协作,加速软件和服务的交付。
运行时引擎指用户用来运行容器镜像的软件系统1.3 缩略语表1.2 缩略语术语解释CI/CD Continuous Integration/Continuous Delivery,持续集成和持续交付CaaS Container as a Service ,容器即服务CCRA Cloud Computing Reference Architecture,云计算参考架构CLI command-line interface,命令行界面DC/OS DataCenter Operating System,数据中西操作系统DevOps Development and Operations,开发运维一体化DNS Domain Name System,域名系统IaaS Infrastructure as a Service,基础设施即服务PaaS Platform as a Service,平台即服务SaaS Software as a Service,软件即服务SDN Software Defined Network,软件定义网络LXC Linux Container,Linux容器OCI Open Container Initiative,开放容器组织VPS Virtual Private Server,虚拟机专有服务VM Virtual Machine,虚拟机二、容器技术现状2.1 容器技术发展演进路径图2.1 容器技术演变路径容器技术最早可以追溯到1979年UNIX系统中的chroot,最初是为了方便切换root目录,为每个进程提供了文件系统资源的隔离,这也是OS虚拟化思想的起源。
2000年,BSD吸收并改进了chroot技术,发布了FreeBSD Jails。
FreeBSD Jails除文件系统隔离,还添加了用户和网络资源等的隔离,每个Jail还能分配一个独立IP,进行一些相对独立的软件安装和配置。
2001年,Linux发布了Linux Vserver,Linux VServer依旧是延续了Jails的思想,在一个操作系统上隔离文件系统、CPU时间、网络地址和内存等资源,每一个分区都被称为一个security context,内部的虚拟化系统被称为VPS。
2004年原SUN公司发布了Solaris Containers,Solaris Containers作为Solaris 10中的特性发布的,包含了系统资源控制和zones提供的二进制隔离,Zones 作为在操作系统实例内一个完全隔离的虚拟服务器存在。
2005 年SWsoft公司发布了OpenVZ,OpenVZ和Solaris Containers非常类似,通过打了补丁的Linux 内核来提供虚拟化、隔离、资源管理和检查点。
OpenVZ 标志着内核级别的虚拟化真正成为主流,之后不断有相关的技术被加入内核。
2006 年Google 发布了Process Containers,Process Container 记录和隔离每个进程的资源使用(包括CPU、内存、硬盘I/O、网络等),后改名为cgroups(Control Groups),并在2007年被加入Linux内核2.6.24版本中。
2008年出现了第一个比较完善的LXC容器技术,基于已经被加入内核的cgroups和Linux namespaces 实现。
不需要打补丁,LXC就能运行在任意vanila内核的Linux上。
2011年,CloudFoundry发布了Warden,和LXC不同,Warden可以工作在任何操作系统上,作为守护进程运行,还提供了管理容器的API。
2013年Google公司建立了开源的容器技术栈lmctfy,Google开启这个项目是为了通过容器实现高性能,高资源利用率,同时接近零开销的虚拟化技术。
目前Kubernetes 中的监控工具cAdvisor就起源于lmctfy项目,2015年Google将lmctfy的核心技术贡献给了libcontainer。
2013年Docker诞生,Docker最早是dotCloud(Docker公司的前身,是一家PaaS 公司)内部的项目,和Warden类似,Docker最初也用了LXC,后来才自己写了libcontainer 替换了LXC。
和其它容器技术不同的是,Docker 围绕容器构建了一套完整的生态,包括容器镜像标准、容器Registry、REST API、CLI、容器集群管理工具Docker Swarm等;2014年CoreOS创建了rkt,为了改进Docker在安全方面的缺陷,重写的一个容器引擎,相关容器工具产品包括:服务发现工具etcd和网络工具flannel 等。
2016年微软公司发布基于Windows 的容器技术Hyper-V Container,Hyper-V Container原理和Linux下的容器技术类似,可以保证在某个容器里运行的进程与外界是隔离的,兼顾虚拟机的安全性和容器的轻量级。
2.2 容器技术发展生态随着容器技术的演进,越来越多的机构开始重视并参与到容器技术的探索中来。
从最初的以Unix或Linux 项目到开源社区,到各种类型的容器技术创业公司、IT 企业及产业联盟,容器技术的发展生态也在逐渐得到发展与丰富。
在开源社区方面,附录A中列出了国际上的OCI和CNCF(Cloud Native Computing Foundation,简称CNCF,下同),容器的开源项目也在附录B中列出;在国内的IT 企业和创业公司方面,还提供了多个行业应用案例,这些行业应用案例在附录D 中列出;产业联盟方面包括国际包括CNCF,国内包括中国开源云联盟(COSCL)。
容器的开源社区、创业公司、IT 企业、产业联盟共同构成容器技术发展的生态圈。
2.3 容器技术框架通过研究、梳理和分析现有的容器技术,形成容器相关技术的技术架构,如图2.2所示。
图2.2 容器技术框架2.3.1 服务器层当运行容器镜像时,容器本身需要运行在传统操作系统之上,而这个操作系统既可以是基于物理机,也可以是基于VM。
服务器层包含了这两种场景,泛指了容器运行的环境,同时容器并不关心服务器层如何提供和管理,它的期望只是能获得这些服务器资源。
2.3.2 资源管理层资源管理包含了服务器、操作系统等资源的管理。
其中如果是物理服务器的话,需要涉及物理机管理系统(例如Rocks等);如果是虚拟机的话,需要使用虚拟化平台。
此外,无论是物理服务器还是虚拟机,都需要对其中的操作系统加以管理(例如:Chef、Puppet、Ansible和SaltStack等)。
而传统的存储和网络管理也包含在资源管理层。
由于存储,网络两者选择众多,不一而足,因此不再列举。
总而言之,资源管理层的核心目标是对服务器和操作系统资源进行管理,以支持上层的容器运行引擎。
2.3.3 运行引擎层容器运行引擎层主要指常见的容器系统,包括Docker、rkt、Hyper、CRI-O。
这些容器系统的共通作用包括启动容器镜像、运行容器应用和管理容器实例。
运行引擎又可以分为管理程序和运行时环境两个模块。
需要注意的是,运行引擎是单机程序,类似虚拟化软件的KVM和Xen,不是集群分布式系统。
引擎运行于服务器操作系统之上,接受上层集群系统的管理。
相关开源项目包括:——资源隔离:Cgroup、Hypervisor;——访问限制:Namespace、Hypervisor;——管理程序:Docker Engine、OCID、hyperd,RKT、CRI-O;——运行时环境:runC(Docker)、runV(Hyper)、runZ (Solaris)2.3.4 集群管理层可以把容器的集群管理系统类和针对VM 的集群管理系统划等号,都是通过对一组服务器运行分布式应用。
而这两者的细微区别在于,VM 的集群管理系统需要运行在物理服务器上,而容器集群管理系统既可以运行在物理服务器上,也可以运行在VM 上。
常见的容器集群管理系统包括:Kubernetes、Docker Swarm、Mesos。
这三者各有特色,但随着时间推移,三者的融合将越发明显。
Kubernetes 在这三者中比较特殊,它的地位更接近OpenStack。
围绕这Kubernetes,CNCF 基金会已经建立了一个非常强大的生态体系,这是Docker Swarm和Mesos都不具备的。
而CNCF基金会本身也正向着容器界的OpenStack基金会发展,值得大家重点关注。
集群管理层涉及到的相关开源软件项目包括:——指挥调度:Docker Swarm、Kubernetes、Mesos等——服务发现:Etcd、Consul、Zookeeper,DNS——监控:Prometheous——存储:Flocker——网络:Calico、Weave、Flannel2.3.5 应用层泛指所有运行于容器之上的应用程序,以及所需的辅助系统,包括:监控、日志、安全、编排、镜像仓库等等。