云计算架构与部署(2020年v3.0)_第1页
云计算架构与部署(2020年v3.0)_第2页
云计算架构与部署(2020年v3.0)_第3页
云计算架构与部署(2020年v3.0)_第4页
云计算架构与部署(2020年v3.0)_第5页
已阅读5页,还剩253页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云计算架构与部署

(中国联通定制培训)

2020年version3.0云计算概览内容简介什么是云计算云计算实现模式云计算交付模式IaaS/PaaS/SaaS的定义什么是云计算云计算解决方案的特点:按需自助服务广泛的网络访问资源池快速弹性测量服务云计算模式简介混合云是一种将两个单独的云(公共云和私有云)绑定在一起的技术,以组合和补充每个云提供的优势公共云是云服务提供商提供的供公众访问和使用的基础架构,平台或应用程序服务私有云是一种私有的且受用户自管理的云,其提供类似于公共云的优点,但是被设计使得用户在自己的数据中心管理和维护私有云的基础设施数据应用运行环境中间件网络存储服务器虚拟化操作系统数据应用运行环境中间件网络存储服务器虚拟化操作系统数据应用运行环境中间件网络存储服务器虚拟化操作系统数据应用运行环境中间件网络存储服务器虚拟化操作系统IaaSPaaSSaaS本地部署云计算服务模式如何理解IaaSPaaS和SaaSIaaS目标用户是企业内部架构师,基于云平台提供底层基础架构服务。PaaS目标用户是应用开发者,提供各种预制的托管的开发环境。SaaS目标客户是终端用户,为企业提供最终解决方案。

首先把云平台高度抽象成一个无所不包而且取之不尽用之不竭的资源池。然后考虑我们的服务如何部署上去。到底该如何理解云平台服务模式呢IaaS本质上就是平台给你交付一台虚机,虚机的操作系统给装好,用户自己配置系统,安装应用,搭建服务。按照责任分担模型,以虚机操作系统为分界线,上面这些层次,用户自己负责,操作系统中病毒也是客户的责任哦,操作系统以下的基础架构服务由平台方交付。优点:之前服务怎么装怎么配现在还是一个样,而且A平台有问题,我换个地方重装就是缺点:如果是跑虚机,我为啥不能自己跑快速理解IaaS数据应用运行环境中间件网络存储服务器虚拟化操作系统IaaSPaaS交付的平台,也就是应用程序运行所需的环境,如果你要一个DB放数据,没必要套一个数据库服务器,如果要一个website,没必要给你一个网站服务器。优点:客户只要填充数据和实现应用就好,非常省心。缺点:随着“标准化”的提升,用户的选择灵活性降低了快速理解PaaS数据应用运行环境中间件网络存储服务器虚拟化操作系统PaaS平台都已经把一切安排到位,用户只要付钱开通服务账号就行优点:省心到极致缺点:还能费心定制定制吗快速理解SaaS数据应用运行环境中间件网络存储服务器虚拟化操作系统SaaS网络存储服务器虚拟化操作系统中间件运行环境数据应用网络存储服务器虚拟化操作系统中间件运行环境数据应用网络存储服务器虚拟化操作系统中间件运行环境数据应用网络存储服务器虚拟化操作系统中间件运行环境数据库应用私有云计算(laaS、PaaS)实例1)如果你自己买了服务器,要托管在集团数据中心:2)你直接向数据中心申请服务器资源:3)如果有需要,数据中心连中间件和运行环境也提供:4)我们的数据中心,甚至可以直接提供数据库资源:我们把服务高度抽象成两类有状态:状态需要保持,例如数据库无状态:状态不需要保持,例如前端web服务器服务的类型纵向扩展scaleup横向扩展scaleout服务可用性从可用性角度考虑:无状态应用通过横向扩展提升可用性有状态应用通过纵向扩展提升可用性很显然无状态的服务特别匹配云平台,可以考虑优先将此类服务迁移/部署到云平台那些服务可以优先上云受法律法规限制的服务,如医学影像资料被特定硬件限制的服务,如加密狗需要CPU和内存紧密交互的服务,如12306不适应迁移到云上的服务如果不着急,旧服务可以保持原状,或者以IaaS的方式进行迁移,可以保证稳妥。对于新服务,就必须有个考虑,以何种方式部署到云?以IaaS方式部署,属于旧瓶装新酒。以PaaS方式部署,灵活性又在哪里所以痛点就是PaaS缺乏统一的标准新服务如何部署基准代码:一份基准代码,多份部署依赖:显式声明依赖关系配置:在环境中存储配置后端服务:把后端服务当作附加资源构建,发布,运行:严格分离构建和运行进程:以一个或多个无状态进程运行应用端口绑定:通过端口绑定提供服务易处理:快速启动和优雅终止可最大化健壮性开发环境与线上环境等价:尽可能的保持开发,预发布,线上环境相同日志:把日志当作事件流管理进程:后台管理任务当作一次性进程运行云原生原则—12-factor容器即服务CaaS增加了容器层,符合原生应用的要求,buildoncerunanywhere公有云平台都支持容器化应用,所以跨云迁移不再困难对于私有云平台,可以借助CaaS实现PaaS功能快速理解容器即服务CaaSServerless的一种实现方式,代码逻辑由开发者完成,但是托管运行在第三方云平台上,由事件驱动,短时执行(甚至只有一次调用)架构特点:用户仅需关心代码,不需要考虑基础架构不需要特定的框架和库,可以适配所有的语言上传代码,使用API进行初始化云平台负责执行自动化和弹性的水平扩展代码的运行由云平台提供的消息类型触发通常由API网关启动触发优势:更细颗粒度的计算资源分配弹性伸缩高可用没有闲置损耗其实还没完,还有FaaS妈妈再也不担心我封装服务了BDaaS:大数据即服务DaaS:桌面即服务Dbaas:数据库及服务HaaS:硬件即服务IDaaS:身份即服务NaaS:网络即服务…………Xaas:一切皆服务更多的XaaS深入了解云平台服务模式

内容一览IaaS核心服务及场景演示PaaS核心服务及场景演示SaaS核心服务及场景演示其他类型云服务IAAS(InfrastructureasaService)基础设施即服务:以服务的形式提供服务器、存储和网络硬件以及相关软件。它是三层架构的最底层,是指企业或个人可以使用云计算技术来远程访问计算资源,这包括计算、存储以及应用虚拟化技术所提供的相关功能。无论是最终用户、SAAS提供商还是PAAS提供商都可以从基础设施服务中获得应用所需的计算能力,但却无需对支持这一计算能力的基础IT软硬件付出相应的原始投资成本。

IAAS定义基础设施即服务(实用计算、虚拟化)IaaS——InfrastructureasaService

位于云计算3层服务的最底端,把IT基础设施像水、电一样以服务的形式提供给用户,以服务形式提供基于服务器和存储等硬件资源的可高度扩展和按需变化的IT能力。通常按照所消耗资源的成本进行收费。该层提供的是基本的计算和存储能力,以计算能力的提供为例,其提供的基本单元就是服务器,包含CPU、内存、存储、操作系统及一些软件。

laaS提供服务的架构InternetInternet映像管理资源部署服务目录&门户服务管理用量计量&计费统计报表资源性能管理浏览器用户用户物理系统云计算服务Telnet,ftp,...云主机云存储云主机网络资源申请资源访问物理资源的转变资源管理浏览器云存储云主机服务器网络存储服务器和存储刀片服务器开放异构的硬件应用特点完全操作系统(软硬件)接入云存储有限权限的网络组件(防火墙、路由器、负载平衡器)的控制优势节省费用灵活,可随时扩展和收缩资源安全可靠专注核心业务IAAS应用特点及优势PAAS(PlatformasaService)平台即服务:以服务的方式提供应用程序开发和部署平台。就是指将一个完整的计算机平台,包括应用设计、应用开发、应用测试和应用托管,都作为一种服务提供给客户。在这种服务模式中,客户不需要购买硬件和软件,只需要利用PAAS平台,就能够创建、测试和部署应用和服务。PAAS定义平台即服务PaaS——PlatformasaService

PaaS位于云计算3层服务的最中间。通常也称为"云计算操作系统"。它提供给终端用户基于互联网的应用开发环境,包括应用编程接口和运行平台等,并且支持应用从创建到运行整个生命周期所需的各种软硬件资源和工具。通常按照用户或登录情况计费。在PaaS层面,服务提供商提供的是经过封装的IT能力,或者说是一些逻辑的资源,比如数据库、文件系统和应用运行环境等。应用特点复杂多租户应用已有应用的兼容构建复合应用优势开发简单部署简单维护简单PAAS应用特点及优势谷歌AppEngine平台。AppEngine是Google提供的基于Google数据中心的开发、托管网络应用程序的平台,每个GoogleAppEngine应用程序都可使用500MB存储空间,以及可支持每月约500万页面浏览量的CPU和宽带。目前每个用户可以免费创建十个应用。微软的Azure平台。主机位于微软的数据中心,是一个基于Internet的云服务平台。提供操作系统和一系列的开发服务,各种服务可进行自由组合。PAAS应用实例PaaS功能演示SAAS(SoftwareasaService)软件即服务:以服务的方式将应用程序提供给互联网最终用户。它是用户获取软件服务的一种新形式,不需要用户将软件产品安装在自己的电脑或服务器上,而是按某种服务水平协议(SLA)直接通过网络向专门的提供商获取自己所需要的、带有相应软件功能的服务。本质上而言,软件即服务就是软件服务提供商为满足用户某种特定需求而提供其消费的软件的计算能力。SAAS定义软件即服务SaaS——SoftwareasaService

这是最常见的云计算服务,位于云计算3层服务的顶端。用户通过标准的Web浏览器来使用Internet上的软件。服务供应商负责维护和管理软硬件设施,并以免费(提供商可以从网络广告之类的项目中生成收入)或按需租用方式向最终用户提供服务。这类服务既有面向普通用户的,诸如GoogleCalendar和Gmail;也有直接面向企业团体的,用以帮助处理工资单流程、人力资源管理、协作、客户关系管理和业务合作伙伴关系管理等。这些SaaS提供的应用程序减少了客户安装和维护软件的时间和技能等代价,并且可以通过按使用付费的方式来减少软件许可证费用的支出。应用特点在中小企业盛行无需管理软硬件服务主要通过浏览器实现优势简单初始成本低无需管理与维护免费试用SAAS应用特点及优势应用实例CRM软件领域工具化SAAS,比如视频会议租用,企业邮箱等在线进销存,物流软件等SAAS应用实例SaaS功能演示这三种模式都是采用外包的方式,减轻企业负担,降低管理、维护服务器硬件、网络硬件、基础架构软件和应用软件的人力成本。从更高的层次上看,它们都试图去解决同一个商业问题——用尽可能少甚至是为零的资本支出,获得功能、扩展能力、服务和商业价值。实际上当某种云计算的模式获得了成功,这三者之间的界限就会进一步模糊。成功的SAAS或IAAS服务可以很容易地延伸到平台领域。总结云平台网络功能设计云计算平台对网络的需求软件虚拟化发展概述SDN基础知识Overlay技术概述OpenFlow技术概述主要内容

什么是SDN?解耦控制平面和数据平面逻辑上集中网络智能和状态将底层网络基础设施从应用中抽象出来在通用硬件上执行和运行控制平面软件解耦传统网络设备固件使用商用服务器和交换机数据平面可编程集中维护、控制数据平面及对数据平面状态编程SDN结构不仅限于控制单个网络设备,而是控制整个网络SDN至于企业的意义超大型云计算平台:在低成本硬件上自己开发软件(Google)希望用到自定义的功能和协议(Yahoo)白盒硬件+开源软件(Facebook)普通用户需求更快速的软件开发可编程网络模块快速就位集中化管理SDN的起源和大事件2006年:斯坦福大学的博士生马丁·卡萨多(MartinCasado)和团队提出了新的安全架构(SANE),定义了集中的安全控制(而非边缘)结构。2008:SDN的理念由OpenFlow项目引发2009:斯坦福大学发布OpenFlowV1.0.0规范2009年6月:MartinCasado联合创建了Nicira2011年3月:OpenNetworkingFoundation组织成立2011年11月:第一届开放网络峰会(OpenNetworkingSummit)召开。Juniper,Cisco宣布加入2012年7月:VMWare收购NiciraGoogle

SDN带来的启发Google面临的问题:百万台量级的服务器管理开销巨大:硬件和软件升级冗余设计带来的硬件量升级海量备份占用巨大的流量花费大量时间管理独立的交换机人海战术管理架构链路故障,重建链路导致延误链路故障,重建路由表缓慢。难以预测新网络的部署Google一马当前使用SDN在低成本硬件上自己独立开发网络系统软件,用在自己的大型数据中心

验证了SDN可以用在生产环境,甚至是大型数据中心,尚属首例,行业重新审视SDN。

主流SDN组织2大SDN组织:OpenNetworkingFoundation-ONF:由Microsoft,Google,Facebook联合提出和发起,成立于2011年,推动SDN的标准化的非营利性组织,目前已经制定了OpenFlow协议和OF-Config版本的标准OpenDaylight-ODL:于2013年成立,由Brocade,

Cisco,Citrix,IBM,Juniper,RedHat,Microsoft,VMWare,HP,Intel,

Ericsson等18家厂商发起。2大SDN组织的区别:ONFODL目标制定SDN标准,推动SDN产业化打造统一开放的SDN平台,推动SDN产业化主要任务制定唯一的南向接口标准OpenFlow,制定硬件转发行为规则不制定任何标准,打造一个SDN系统平台,利用现有一些技术作为南向接口与OpenFlow的关系其唯一的南向接口包括OpenFlow1.0、1.3,BGP-LS等,OpenFlow是其南向接口之一,北向接口暂无任何北向接口标准化定义了一套北向接口API南向接口使用OpenFlow定义转发平面标准行为不涉及任何转发平面工作SDN分类和结构传统网络设备结构网络软件结构管理平面控制平面—大脑/决策者数据平面—数据包转发器以太交换机控制路径(软件)数据路径(软件)SDN-网络发生解耦和分离交换机控制平面数据平面分离SDN解耦的主要部份网络操作系统路由流量工程其他应用已知API②网络图抽象转发转发转发转发③数据平面和控制平面分离①网络虚拟化安全数据平面控制平面应用平面指令指令指令指令SDN结构网络应用网络应用管理平面控制平面数据平面控制平面和数据平面分离可编程接口差异化、个性化加速新功能及服务的迭代集中网络智能简化创建优化性能更细颗粒度的管理松耦合及分离软硬件松耦合控制平面和数据平面分离物理和逻辑配置分离SDN控制器是SDN网络的逻辑控制中心通过南向接口与交换机连接,提供网络指令,目前比较热的ONF的Openflow协议,IETF的ForCES协议,还有OVS使用的OVSDB等等,都是定义控制平面与数据平面分离之后使用的通信协议通过北向接口与应用连接,向上提供资源抽象,实现软件可编程控制的网络架构,目前尚未形成统一标准,常见的北向接口有RestfulAPI、RPC、Java等下一个目标是控制平面的扩展性问题,也就是多个设备的控制平面之间如何协同工作SDN控制器产品分两类:一类是推出商用级产品的厂商CiscoXNC/ACI,JuniperContrail,NECProgrammableFlow等另一类是较大开源社区中打算开发SDN控制器软件的开源项目/组织SDN控制器“Overlay”SDN和“Underlay"SDNOverlaySDN更多指的是以软件厂家为代表的SDN解决方案,比如VMwareNSX,MicrosoftHNV,JuniperContrail,OverlaySDN构建于现有Underlay网络基础之上。OverlaySDN使用VXLAN,STT和NVGRE封装原始数据包(带有Payload),并在虚拟交换机内部或者支持的物理交换机上创建隧道终点(VTEP或者HNVFilter等),使用Underlay网络进行隧道传输优势—使用隧道很好的隔离租户,保证大量租户的网络重复但是不冲突,对Underlay隐藏租户网络。UnderlaySDN更多指的是以硬件厂家为代表的SDN解决方案,比如OpenFlow,这类SDN对底层网络结构进行重新布局和配置。SDN控制器

负责集中操作网络组件的配置,确保控制器北向接口API得到正确的组织。优势1—沉淀了多年的网络、网络架构、配置路径和链路等知识,可以使用到复杂的路由算法提高网络结构效率。

优势2—SDN控制器对网络流量的控制更为准确

,对于排错效率,影响分析和安全都有很大的帮助。实现SDN的4种方式控制平面和数据平面分离比如OpenFlow控制或管理平面交互现有或者新的控制平面协议,比如BGP,BGPFlowSpec,I2RS等现有或者新的管理平面协议,比如NETCONF,XMPP,OpFlex解耦和抽离Overlay虚拟网络使用传统网络设备供应商提供的API比如JuniperSDK,CiscoOnePK,AristaeAPI,F5iControl等

Overlay网络的意义技术层面超越4096VLAN的限制位置和ID分离,Overlay结构里,设备移动时仍保留ID结合分布式路由技术减少路由路径设备移动后ID不变IPcoreIP地址代表ID和位置设备移动后,ID和位置都发生变化IP地址代表ID和位置IPcore仅位置发生变化UnderlayOverlay网络虚拟化平台A-子网/24B-子网/24C-子网/24IP虚拟化收益灵活自定义自己网络公有云租户地址的重复租户自带IP到公有云Overlay协议目前已经广泛在使用的VXLANNVGRESTT新的协议Geneve-GenericNetworkVirtualizationEncapsulation3种常用的Overlay协议比较VXLANNVGRESTT提出者Cisco、VMWareMicrosoftNicira适用场景物理或虚拟交换机物理或虚拟交换机物理或虚拟交换机原理MACinUDPMACinGRETCPoverIP优势可以更好地进行负载均衡可以利用现有技术,大多设备都支持GRE可以依靠网卡对包分片,降低CPU负担劣势需要新购或者升级硬件/软件设备来支持有些设备不支持用GREKey做负载均衡Nicira私有协议,且不能用于硬件交换机什么是OpenFlow?OpenFlow类似于x86服务器的指令集,用于管理网络设备。提供开放的接口对“黑盒”网络设备(如路由器和2/3层交换机)进行管理,达到对网络的可视性和开放性。OpenFlow交换机的数据路径包含一个或者多个流表(FlowTable),每个流(Flow)入口关联了一个操作;控制路径包含了用于编程流表流入口的控制器。分离控制平面和数据平面集中控制网络设备(不同品牌和型号)全局网络视图从交换机获取状态信息发送控制指令到交换机基于流(Flow)进行控制利用以太网交换机和路由器中的路由表SDN并不是OpenFlow,OpenFlow是SDN的解决方案之一SDN是分离物理网络数据平面和控制平面、网络虚拟化等的概念集合OpenFlow是SDN结构中网络控制平面和网络设备通信的接口

直接访问和控制物理层及虚拟层的交换机/路由器的转发平面OpenFlow是一种协议,和在控制器接口和交换机中使用的协议类似。OpenFlow

协议数据路径(硬件)控制路径OpenFlow控制平面(网络OS)应用A应用B数据平面数据路径(硬件)控制路径OpenFlow应用层控制层基础结构层应用网络服务网络服务OpenFlow网络应用网络应用管理平面(应用层)控制平面(控制层)数据平面(基础结构层)控制平面和数据平面分离OpenFlow和SDN结构的相似之处可编程接口差异化、个性化加速新功能及服务的迭代集中网络智能简化创建优化性能更细颗粒度的管理松耦合及分离软硬件松耦合控制平面和数据平面分离物理和逻辑配置分离OpenFlow结构SDN结构网络应用网络应用管理平面控制平面数据平面基于语言的虚拟化编程语言网络应用程序网络虚拟化网络操作系统北向接口网络基础架构南向接口到管理平面或应用的API,开放发布、无标准,基于软件体系网络虚拟化软件(FlowVisor),隐藏复杂性、向下级管理员委派管理子网、实现多个控制器和一组交换机对话、隔离实验和测试环境、虚拟化网络模型(如拓扑、路由等)OpenFlow详细结构决策和发送指令路由、负载均衡和安全执行SDN所需的编程语言、抽象和接口,确保单一应用的多个任务互相之间不干扰,提供高级编程接口避免低层指令和配置BigDataApps:优化网络使用率CloudNaaS:云应用的网络基元,NOX控制器FlowComb:预测应用负载,使用NOXFlowDiff:检测运行问题,FlowVisor控制器LIME:实时网络迁移,FloodLight控制器NetGraph:网络管理图表查询,使用自己的控制器OpenTCP:动态和可编程的TCP引用,使用自己的控制器。所有的组件都使用OpenFlow与交换机进行通信,OpenTCP除外部分支持OpenFlow的网络设备(待更新)CienaCoredirectorNECIP8800JuniperMX-seriesHPProcurve5400Pronto3240/3290WiMax(NEC)PCEnginesNetgear732463传统交换机/路由器转发邻居路由器路由器管理/策略平面配置/命令行/图形静态路由控制平面BGP/ISIS/OSPF邻居表链路状态数据IP路由表转发表数据平面数据平面控制平面BGP/ISIS/OSPF邻居路由器数据平面控制平面BGP/ISIS/OSPF路由交换功能固化暴露执行细节非标准/非现成的状态管理API包入站2层表+VLAN3层表VRFACL/QoS端口组包出站ABCOpenFlow交换机转发包入站流表包出站ABC流表流表交换机/路由器OpenFlow数据平面MAC学习路由算法指令检测系统负载均衡控制平面:SDN控制器流表使用安全通道通信网络应用程序规则操作状态数据包+计数器将数据包转发到端口封装并转发到控制器丢弃数据包发送到正常处理管道交换机端口源MAC地址目标MAC以太类型交换机端口源IP目标IP源TCP端口目标TCP端口匹配数据包头流表(包含3个部分)流表OpenFlow如何工作?使用以下交换机中的流表控制器管理流量(网络流)存储在流表的指令当数据包到达交换机时,将报头字段与流表中的流条目进行匹配。如果有匹配的条目,则执行所指示的操作并更新计数器。如果不匹配,交换机通过发送数据包头的消息来询问控制器。控制器流表安全通道PCOpenFlow协议TCP/TLS硬件软件①66OpenFlow网络组件①OpenFlow控制器通过OpenFlow通道管理一个或多个交换机使用OpenFlow协议和支持OpenFlow的交换机通信和传统交换机控制平面角色一样为北向接口的应用提供网络范围的抽象在OpenFlow交换机里编程不同的表交换机可以被多台做成负载均衡的控制器管理,控制器既可以是Master和Slave或者Equal②OpenFlow通道用于交换机和控制器之间交换消息交换机可以建立单一或者多个连接到相同或不同的控制器控制器配置和管理交换机,并从交换机上接收事件和数据安全通道基于TLS/TCP连接,交换机和控制器通过交换由站点交换机私钥颁发的证书进行相互验证③OpenFlow交换机包含一到多个流表、组表和计量表单一交换机可以被一个或多个控制器管理

在查找和转发阶段将用到流表和组表,以将数据包转发到正确的端口计量表既可用于简单的QoS操作如限速(RateLimiting),又可用于复杂的QoS操作如DiffServ②③OpenFlow控制器软件IRIS:(Java语言)扩展性和高可用MUL:(C语言)SDN)控制器,基于C语言,具备多线程基础架构NOX:(C++/Python语言)NOX是第一个OpenFlowJaxon:(Java语言)Jaxon是基于Java语言写的依赖于NOX的OpenFlow控制器Trema:(C/Ruby语言)Trema,基于C和Ruby语言,用于开发OpenFlow控制器的全栈框架Beacon:(Java语言)Beacon支持基于事件和线程操作

Floodlight:(Java语言)是由Beacon控制器的分之,最初由Stanford的DavidErickson开发。其他OpenFlow交换机软件Indigo:运行在MacOSX,开源LINC:运行在Linux,Solaris,Windows,MacOS和FreeBSD,开源Pantou:将商业无限路由/访问设备转为OpenFlow交换机,

运行在OpenWRTOf13softswitch:用户空间软件交换机,

基于EricssonTrafficLab1.1软交换机OpenvSwitch:开源,使用较为广泛OpenVSwitchSwitch-OVS软件开源虚拟交换机基于Nicira概念既可以是单独的虚拟交换机,也可以是跨多台物理机的分布式虚拟交换机。内置于XenServer6.0,Xen云平台并支持ProxmoxVE,VirtualBox,XenKVM.集成在多个云管理系统,比如OpenStack,openQRM,OpenNebula和oVirt.和Ubuntu,Debian,FedoraLinux和FreeBSD一起发布OpenFlow交换机OpenFlow交换机OpenFlow交换机控制器1控制器2OpenFlow交换机和控制器常规拓扑采用网络虚拟化(FlowVisor)的OpenFlow拓扑OpenFlow协议OpenFlowFlowVisor&PolicyControl广播多播OpenFlow协议http负载均衡OpenFlow交换机OpenFlow交换机OpenFlow交换机dl_dst=FFFFFFFFFFFFtp_src=80,or

tp_dst=80OpenFlow部署结构转发硬件软件控制转发硬件软件控制转发硬件软件控制转发硬件软件控制转发硬件软件控制转发硬件OpenFlow转发硬件OpenFlow转发硬件OpenFlow转发硬件OpenFlow转发硬件OpenFlow软件控制分布式存储存储发展简史1980s个人电脑1960s大型机1990s互联网2000s移动互联网2010s

大数据,云计算分布式存储最早诞生在互联网行业,随着技术的产品化成熟,越来越多的企业级用户也在尝试,将传统的业务迁移到弹性,灵活的分布式存储资源池IBMDS8000EMCVMAXHuawei180001956年世界第一台磁盘存储系统IBM305磁盘介质取代打孔卡,容量5MB读写速率10K/s1980年,薄膜磁头技术,性能飞跃,容量8*2.52GB读写速率3MB/s1993年EMCSymmetrix16MBDRAM,1GBGlobalMemory,容量1TB,HypervolumeExtensionIAAS2.0以服务器、SAN/NAS为主TB时代,GB/sIAAS1.0以主机和终端、DAS为主GB时代,MB/sIAAS3.0以云服务、移动宽带网络、大数据分析、社交网络技术为依托PB时代,10~100GB/s,分布式架构存储基本概念-----RAIDRAID(RedundantArrayofIndependentDisks)即独立磁盘冗余阵列,RAID将多个单独的物理硬盘以不同的方式组合成一个逻辑硬盘,从而提高了硬盘的读写性能和数据安全性RAID5和RAID10计算机发展初期,大容量硬盘价格非常高,而需要存储的数据量越来越大容量性能CPU运算速度飞速提高,数据读写速度不应该成为计算机系统处理的瓶颈信息时代,数据对企业和个人的重要性越来越大,数据存储安全更需要保障RAID可靠性槽点:RAID横行30年,技术越来越复杂,维护难度加大存储基本概念-----物理卷与逻辑卷物理卷由几个硬盘通过RAID方式组成,从整体上看相当于一个盘组在物理卷的基础上可以按照指定容量创建一个或多个逻辑卷,通过LUN(LogicUnitNumber)来标识槽点:卷管理的概念,既在存储设备中存在,也在主机操作系统中使用,因此传统块存储的IO层级较为复杂,维护工作量较大RAID10RAID5物理卷物理卷逻辑卷逻辑卷单个物理卷上创建1个逻辑卷单个物理卷上创建2个逻辑卷LUN1LUN2LUN3存储基本概念---磁盘阵列控制器是磁盘阵列的“大脑”,主要部件为处理器和缓存,最先主要实现简单IO操作、RAID管理功能,随着技术发展,能够提供各种各样的数据管理功能,如快照、镜像、复制等磁盘柜包含了多块的磁盘,本身既没有处理器,也没有缓存,RAID及数据管理功能通过控制器实现槽点:中高端存储经过crossbar架构、全点对点总线架构等演进,掌握架构基本靠想象,黑盒子形成控制器磁盘柜磁盘线缆存储基本概念---DAS、NAS、SAN

主机DASFCSAN应用文件/操作系统I/O重定向器TCP/IP协议栈NFS/CIFS网络接口卡

主机文件处理I/ONASIPNetwork网络接口卡TCP/IP协议栈NFS/CIFS文件系统+逻辑卷管理器数据管理系统RAID块处理I/O设备驱动应用逻辑卷管理器裸卷SCSI设备驱动块处理I/OIPSAN应用逻辑卷管理器裸卷iSCSILayerTCP/IPStack网络接口卡

主机块处理I/O块处理I/OIPNetworkFCNetwork网络接口卡TCP/IP协议栈数据管理系统RAID块处理I/OFC总线卡FC协议栈数据管理系统RAID块处理I/O应用逻辑卷管理器裸卷SCSI设备驱动FC协议栈FC总线卡设备驱动设备驱动SCSI设备驱动

主机文件/操作系统数据库文件/操作系统数据库文件/操作系统数据库RAIDSCSI/FC总线卡什么是NAS?优点:价格相对低廉,NAS以合理的价格提供集中存储易于配置缺点:访问时间较慢不是企业解决方案NAS是通过网络共享访问附加的专用存储设备的存储类型FileserverLocalAreaNetwork(Ethernet)NASdeviceFile-levelaccess(CIFS,NFS)Network什么是SAN?优点:最快的访问时间易于扩展集中存储高水平的冗余缺点:更贵需要专业技能SAN提供更高的可用性和最大的灵活性通过使用光纤通道或iSCSI实施SANServersSwitchesStoragedevicesDASNASSAN的比较和使用场景DAS:复杂性最小最低设置成本NAS:最适合特定情况的解决方案与DAS和SAN互补SAN:性能最高有最多的功能未来的趋势:WindowsServer存储功能正在扩展,以提高使用DAS时的功能块级存储与文件级存储块级存储:是高性能通常是基于SAN的向服务器提供LUN不是最具成本效益的文件级存储:通过NAS,存储服务器或文件服务器提供使用CIFS/SMB(共享文件夹)或NFS(导出)在存储后端使用块级存储什么是光纤通道?光纤通道组件包括:SAN具有HBA卡的计算机光纤通道交换机以太网光纤通道:同时采用

一种廉价的,

预先存在的

以太网基础架构,为您提供了光纤通道的好处光纤通道布局包括:仲裁环路:不需要采用交换机,目前比较罕见点对点:光纤通道主机直接连接到存储设备,并且不需要交换机,不常用交换网络:所有光纤通道主机连接到光纤通道交换机,光纤通道交换机连接到后端存储。什么是iSCSI?iSCSI通过IP网络传输SCSI命令组件描述ip网络网络提供高性能和冗余iscsi目标该存储装置上运行,并允许访问磁盘的服务器iscsi启动器在服务器上的软件组件或主机适配器,它提供iscsi目标的访问iscsiiqniscsi用于在iscsi网络上寻址发起方和目标的全局唯一标识符iSCSIclientthatrunstheiSCSIinitiatorTCP/IPprotocoliSCSITargetServerStoragearray核心存储组件网络适​​配器通常在以太网上使用HBA通常用在存储网络(如SAN)上聚合网络适配器可用于以太网或SANInfiniBand主机通道适配器用于InfiniBand网络磁盘控制器便于磁盘驱动器和CPU之间的通信传统存储的问题总结(满满的槽点)投资:一次性成本较高,中高端集采单价1.5W/TB,光交30-40万一对,FC适配器可忽略;如无规模优势,维保成本高;维护人员成本高,令人艳羡的待遇;能耗成本高。工程集成:zone、LUN、RAID、owner、多链路、卷管理、备份、冗余、容灾。。。。工作量较大,技能get投入大维护监控:一套存储三种软件,有额外软件成本;厂家异构型号异构让统一存储运维只是一个梦想;运维数据难于导出和解读,“拿去!你看不懂!”;故障处理往往需要多方会诊,问题定位周期长,分析靠创意,排查靠遍历。扩容升级:需要停机、扩容周期长、实施风险高,0点以后3小时起刷大夜。性能表现:需根据实际配置进行计算,从不能相信技术指标;性能数据需专业解读,性能优化基本靠扩高可用及稳定性:稳定性高的背后,是大量的更换备件和升级版本操作;高可用演练环节多,药不能停;设备老旧,稳定性骤减,老干部要好好伺候。存储本质上是IT硬件集成,IT软件定义。无非是集成和定义谁来做的问题。几个存储新概念软件定义存储:存储资源由软件自动控制,通过抽象、池化和自动化,将标准服务器内存存储、直连存储、外置存储或云存储等存储资源整合起来,实现应用感知,或者基于策略驱动的部署、变更和管理,最终达到存储即服务的目标超融合(HCI):是指同一套单元设备(如X86通用服务器)同时具备提供计算、存储和网络服务的能力ServerSAN(基于服务器的分布式块存储):采用标准服务器作为硬件,通过软件对外提供存储服务的产品对象存储(基于服务器的分布式对象存储):采用标准服务器作为硬件,通过软件对外提供对象服务的产品,对象是一种数据集合,如图片、视频等,每个对象都在一个被称作存储池的扁平地址空间的同一级别里拥有唯一OID,一个对象不会属于另一个对象的下一级基于服务器的分布式文件存储:采用标准服务器作为硬件,通过软件对外提供文件存储服务的产品,主流还是NAS,使用NFS/CIFS文件共享传输协议,树形目录+inode管理方法实现SDS的scale-out架构VMVM…VMFC/iSCSISANCPUCPU…硬盘硬盘硬盘…硬盘硬盘硬盘…硬盘硬盘硬盘…传统集中存储Scale-Up架构分布式存储Scale-Out架构X86服务器1X86服务器2X86服务器N通过昂贵硬件保证系统的高可用性管理维护要求能力高扩展方式通过增加硬件配置实现X86硬件,软件定义实现自动化、智能机制管理维护要求能力低扩展容易,可以达到PB级扩容空间X86服务器1VMVMVMVMVMVM软件定义存储硬盘硬盘硬盘硬盘硬盘硬盘...X86服务器2X86服务器N分布式块存储---VSANVSAN与其他VMware产品集成部署在一起,主要针对虚拟机应用进行了优化,聚合了虚拟化管理程序的体系结构,按虚拟机设置的存储策略进行管理。要合理搭配服务器内存和硬盘占比,以最大化利用存储资源和计算资源。基于服务器的分布式文件存储——存储空间使用存储空间:将任何类型和大小的物理磁盘添加到存储池从池中创建高可用性虚拟磁盘要创建虚拟磁盘,您需要:一个或多个物理磁盘包含磁盘的存储池虚拟磁盘(或存储空间)

使用磁盘创建的

存储池基于的磁盘驱动器

虚拟驱动器DiskdrivePhysicaldisksStoragepoolVirtualdisk存储空间的组件和功能特征选项存储布局简单双向或三向镜像校验磁盘扇区大小512或512e4KB驱动器分配数据存储手动热备用配置方案精简配置空间固定配置空间条带参数列交错在您的环境中最佳地使用存储空间的功能存储空间使用场景存储空间功能:实施和轻松管理可扩展,可靠和廉价的存储使用具有或不具有外部存储的廉价存储将多个驱动器合并到存储池中,管理员可以将其作为单个实体进行管理在同一池中实施不同类型的存储根据需要增加存储池根据需要从现有存储池中调配存储将特定驱动器指定为热备用…FibreChannel/(iSCSI)协议层存储层…NFS/CIFS…FileSystemObjectObjectSystemObjectKeyMetadatadataUserdefinedmeta-dataS3/SwiftObjectObjectObjectObject主要协议:FC,iSCSI应用场景:结构化,数据库应用,低延时,高性能,如Oracle主要协议:NFS,CIFS应用场景:非结构化,文件共享的服务主要协议:S3,Swift,RESTful/soap

应用场景:对象数据,互联网服务存储,数据归档或备份iSCSI/FCSANNASObjectbucketbucketbucket对象存储——SAN、NAS和Object的对比说明:近年出现分布式架构,主要以传统架构为主说明:逐渐演进到分布式架构,也支持传统架构说明:从出现开始就是分布式架构,集中式架构极少对象存储使用场景业务场景场景详情医疗影像云1)医疗影像文件较大,且多跨医院与地域访问,云存储可以方便的解决跨医院访问的问题。2)医疗影像要求保存10年以上,长期保存在本地的成本高企业网盘1)文件备份2)文件共享云备份icloud、EMUI、公有云1)桶数量2)对象尺寸\带宽要求\TPS\接口调用时延3)每日读写量、删除量4)单桶对象数5)最大并发数6)上层业务平台引入评估指标项ObjectKey元数据数据Userdefined元数据metadataObjectObjectObject对象存储系统业务主机APPeSDK调用本地API直接调用Web服务开发软件使用工具BucketObjectObjectBucketObjectObject用户小总结:不同形态存储产品对比存储产品全闪存阵列分布式块存储分布式文件存储对象存储性能业界最高性能,百万级IOPS,<1ms时延对位业界中端SAN存储,性能与中端SAN存储相仿。IOPS可达10万级别,时延一般在5ms-40ms之间性能随节点数增加而线性上涨。对于全对称式结构分布式,单节点带宽一般在400MB/s到800MB/s之间,时延在5ms-40ms之间非性能敏感场景下使用,性能一般不重点关注,性能与中端SAN存储相仿。功能SANSANNAS对象商用情况企业或者机构核心业务、关键业务中,其稳定性、性能、对技术的成熟度要求高,例如数据库应用场景在非关键环境中,在建设成本相对有限、数据量较大的条件下使用较多,例如云资源池、虚拟主机、桌面云等等文件存储场景,在强调系统扩展性及文件系统性能的场景下使用,例如视频监控、媒体云、大数据分析等场景对外提供对象存储接口(如S3,OpenstackSwift…),多用于互联网行业,关注数据共享功能及容量,在云盘类应用使用广泛。生态链兼容性测试已非常充分,所有高端、中端、以及低端的服务器均能支持,所有存储厂家均有相关产品。主要完成的是Windows,Linux等较低端的服务器的兼容性测试。支持NAS协议,兼容性测试已非常充分,所有高端、中端、以及低端的服务器均能支持。支持对象存储协议,数据共享性最优,支持公网访问、跨地域访问,对主机兼容性无明显要求价格体系全闪存架构,商务成本最高存储介质多为全SATA或全NLSAS,关注系统容量,部分产品会考虑到性能而增加少量SSD,商务成本较低。关注系统容量,商务成本根据节点数量增长而线性提升。商务成本最低云原生应用内容一览云原生(CloudNative)概述云原生应用12基本要素解析云原生和容器云原生和DevOps云原生和持续集成云原生和微服务CloudNative云原生概念I.基准代码一份基准代码,多份部署II.依赖显式声明依赖关系III.配置在环境中存储配置IV.后端服务把后端服务当作附加资源V.构建,发布,运行严格分离构建和运行VI.进程以一个或多个无状态进程运行应用VII.端口绑定通过端口绑定提供服务VIII.并发通过进程模型进行扩展IX.易处理快速启动和优雅终止可最大化健壮性X.开发环境与线上环境等价尽可能的保持开发,预发布,线上环境相同XI.日志把日志当作事件流XII.管理进程后台管理任务当作一次性进程运行12-factors

一份基准代码(Codebase),多份部署(deploy)基准代码和应用之间总是保持一一对应的关系:一旦有多个基准代码,就不能称为一个应用,而是一个分布式系统。分布式系统中的每一个组件都是一个应用,每一个应用可以分别使用12-Factor进行开发。多个应用共享一份基准代码是有悖于12-Factor原则的。解决方案是将共享的代码拆分为独立的类库,然后使用

依赖管理

策略去加载它们。基准代码

显式声明依赖关系(

dependency

)12-Factor规则下的应用程序不会隐式依赖系统级的类库。

它一定通过

依赖清单

,确切地声明所有依赖项。此外,在运行过程中通过

依赖隔离

工具来确保程序不会调用系统中存在但清单中未声明的依赖项。这一做法会统一应用到生产和开发环境。依赖在环境中存储配置通常,应用的

配置

在不同

部署

(预发布、生产环境、开发环境等等)间会有很大差异。这其中包括:数据库,Memcached,以及其他

后端服务

的配置第三方服务的证书,如AmazonS3、Twitter等每份部署特有的配置,如域名等配置

把后端服务(backingservices)当作附加资源后端服务是指程序运行所需要的通过网络调用的各种服务,如数据库(MySQL,CouchDB),消息/队列系统(RabbitMQ,Beanstalkd),SMTP邮件发送服务(Postfix),以及缓存系统(Memcached)。部署可以按需加载或卸载资源。例如,如果应用的数据库服务由于硬件问题出现异常,管理员可以从最近的备份中恢复一个数据库,卸载当前的数据库,然后加载新的数据库–整个过程都不需要修改代码。后端服务

以一个或多个无状态进程运行应用运行环境中,应用程序通常是以一个和多个进程运行的。最简单的场景中,代码是一个独立的脚本,运行环境是开发人员自己的笔记本电脑,进程由一条命令行(例如pythonmy_script.py)。另外一个极端情况是,复杂的应用可能会使用很多进程类型,也就是零个或多个进程实例。12-Factor应用的进程必须无状态且无共享。任何需要持久化的数据都要存储在后端服务内,比如数据库。进程

通过端口绑定(Portbinding)来提供服务互联网应用有时会运行于服务器的容器之中。例如PHP经常作为

ApacheHTTPD

的一个模块来运行,正如Java运行于

Tomcat

。12-Factor应用完全自我加载

而不依赖于任何网络服务器就可以创建一个面向网络的服务。互联网应用

通过端口绑定来提供服务

,并监听发送至该端口的请求。端口绑定

通过进程模型进行扩展任何计算机程序,一旦启动,就会生成一个或多个进程。互联网应用采用多种进程运行方式。在12-factor应用中,进程是一等公民。12-Factor应用的进程主要借鉴于

unix守护进程模型

。开发人员可以运用这个模型去设计应用架构,将不同的工作分配给不同的

进程类型

。并发

快速启动和优雅终止可最大化健壮性12-Factor应用的

进程

易处理(disposable)的,意思是说它们可以瞬间开启或停止。

这有利于快速、弹性的伸缩应用,迅速部署变化的

代码

配置

,稳健的部署应用。进程应当追求

最小启动时间

。理想状态下,进程从敲下命令到真正启动并等待请求的时间应该只需很短的时间。更少的启动时间提供了更敏捷的

发布

以及扩展过程,此外还增加了健壮性,因为进程管理器可以在授权情形下容易的将进程搬到新的物理机器上。易处理

尽可能的保持开发,预发布,线上环境相同12-Factor应用想要做到

持续部署

就必须缩小本地与线上差异。

开发环境与线上环境等价

把日志当作事件流日志

使得应用程序运行的动作变得透明。在基于服务器的环境中,日志通常被写在硬盘的一个文件里,但这只是一种输出格式。日志应该是

事件流

的汇总,将所有运行中进程和后端服务的输出流按照时间顺序收集起来。尽管在回溯问题时可能需要看很多行,日志最原始的格式确实是一个事件一行。日志没有确定开始和结束,但随着应用在运行会持续的增加。12-factor应用本身从不考虑存储自己的输出流。

不应该试图去写或者管理日志文件。日志

后台管理任务当作一次性进程运行进程构成(processformation)是指用来处理应用的常规业务(比如处理web请求)的一组进程。与此不同,开发人员经常希望执行一些管理或维护应用的一次性任务。一次性管理进程应该和正常的

常驻进程

使用同样的环境。这些管理进程和任何其他的进程一样使用相同的

代码

配置

,基于某个

发布版本

运行。后台管理代码应该随其他应用程序代码一起发布,从而避免同步问题。12-factor尤其青睐那些提供了REPLshell的语言,因为那会让运行一次性脚本变得简单。管理进程

微服务架构微服务架构(Cont.)“Anyorganizationthatdesignsasystem(definedbroadly)willproduceadesignwhosestructureisacopyoftheorganization'scommunicationstructure.”--MelvynConway,1967“任何设计系统的组织(广义定义)都将产生一个设计,其结构是该组织的沟通结构的副本。”-MelvynConway,1967磐石微服务单体应用程序实现方式微服务架构应用程序开发方法的比较应用程序样式之间的状态存储比较微服务平台针对特定问题封装的解决方案由小型工程团队开发。使用任何编程语言编写并使用任何框架。由独立控制版本、部署及缩放的代码和(可选)状态组成。通过定义完善的接口和协议来与其他微服务交互。具有用来解析位置的唯一名称(URL)。在出现故障时可保持一致且可用微服务特点微服务应用程序由独立控制版本和可缩放的、以客户为中心的服务组成,这些服务通过标准协议和定义完善的接口彼此通信。SOA和

微服务SOA服务是大型整体的接口编排(Orchestration)通常是必需的,并且倾向于包含业务逻辑跨越企业Microservices服务单独开发和部署不需要集成技术,逻辑就在于微服务可以限于个别项目DevOps–推动商业价值通过以下若干方面的改进,组织实现了20%的改善上市时间配置规划OPS创建校验打包发布监控DEVSource:GlobalStudybyCATechnologies软件质量部署频率收入增加客户关系的建立和保持一个IT系统应该包含如下几个层次:应用程序运行时平台(bin/framework/lib)操作系统硬件(基础设施)开发人员的主要工作是应用程序的编码、构建、测试和发布,涉及应用程序和运行时平台这两层。运维人员的工作则涉及从硬件、操作系统到运行时平台的安装、配置、运行监控、升级和优化等工作。Docker提供了一种运行时环境,隔离了上层应用于下层操作系统和硬件的关联,使得术业有专攻。DevOps实现开发和运维的有效隔离CI/CD|主题思想代码零库存-代码直接变产品持续-不间断细颗粒度-切分任务高频次-缩短每次迭代的间隔自动化-替代重复劳动用小步快跑的方式降低变更带来的风险,此外叠加自动化提升效率和质量CI/CD|基本概念持续(Continuous):不断地获取反馈,响应反馈集成(Integration):编译,测试,打包发布(Release):具有业务影响力的功能变化对最终用户可见称之为发布交付(Delivery):可以理解为从Deployment到release之间的阶段,更多的强调是一种能力。开发有能力频繁地部署,运维有能力随时发布部署(Deployment):应用组件或者基本设施的代码或配置变更在产品环境中称之为部署源代码库:SourceRepository持续集成服务器:CIServer单元测试:UnitTestCheck-in:开发人员实践持续集成的动作持续集成—持续地做集成和集成结果的修正部署流水线:DeploymentPipelineContinuouslyLearning性能测试功能测试持续交付—持续地完成小颗粒,高频次的交付所有阶段的测试都完成之后,自动地将代码发布到生产环境需要以整体业务为着眼点,确定部署时机和节奏持续部署—持续地将需求部署到目标环境上容器化的工作流管道

…………………ContainerServiceServiceFabricAppServicesFutureServices…Build/CI,Integrate,TestPushCodeProductionenvironmentsRun,ManageCodeRunValidateDebugCD,DeployVisualStudioTeamServicesSourceCodeControl(SCC)ContainerRegistryAzure定义团队文化和沟通方式,使开发和运维的合作更加流畅高效自主的多技能团队共同的目标高水平的测试和发布自动化CI/CD和DevOps容器技术的基本实现:Docker内容一览

Docker架构概览Docker技术详解Docker高级功能Docker适用场景为什么使用Docker?可基于任何堆栈(OS)使用任何语言构建任何应用程序Dockerized应用程序可以在任何地方运行没有所谓的“它在我的机器上是能工作的呀”的争执没有更多的依赖守护程序,所以开发人员和系统管理员联合起来软件开发目前遇到的困境然而,太阳下面没有新鲜事集装箱已经深刻地改变了一次世界dockerisashippingcontainersystemforcodeDocker特性特性集装箱Docker打包对象几乎任何货物任何软件及其依赖硬件依赖标准形状和接口允许集装箱被装卸到各种交通工具,整个运输过程无需打开容器无需修改便可运行在几乎所有的平台上--虚拟机、物理机、公有云、私有云隔离性集装箱可以重叠起来一起运输,香蕉再也不会被铁桶压烂了资源、网络、库都是隔离的,不会出现依赖问题自动化标准接口使集装箱很容易自动装卸和移动提供run,start,stop等标准化操作,非常适合自动化高效性无需开箱,可在各种交通工具间快速搬运轻量级,能够快速启动和迁移职责分工货主只需考虑把什么放到集装箱里;承运方只需关心怎样运输集装箱开发人员只需考虑怎么写代码;运维人员只需关心如何配置基础环境对于开发人员-

BuildOnce,RunAnywhere容器意味着环境隔离和可重复性。开发人员只需为应用创建一次运行环境,然后打包成容器便可在其他机器上运行。另外,容器环境与所在的Host环境是隔离的,就像虚拟机一样,但更快更简单。对于运维人员-

ConfigureOnce,RunAnything只需要配置好标准的runtime环境,服务器就可以运行任何容器。这使得运维人员的工作变得更高效,一致和可重复。容器消除了开发、测试、生产环境的不一致性容器的优势容器的优势物理机虚拟机应用程序传统上构建并部署到具有1:1关系的物理系统上新的应用程序通常需要新的物理系统来隔离资源更高的整合率和更好的利用率比传统的物理环境更快的应用程序部署部署到虚拟机的应用程序具有高兼容性成功应用程序受益于关键VM功能,如:实时迁移,高可靠性物理/虚拟化环境关键优势进一步加快应用程序部署减少部署应用程序的工作量简化开发和测试降低与应用部署相关的成本增加服务器整合容器打包并运行应用程序虚拟机versus容器

虚拟机容器Container虚拟机versus容器

虚拟机versus容器

Docker核心技术Namespace:容器之间的隔离控制Cgroups:资源分配和度量AUFS:通过分层支持将不同目录挂载到同一个虚拟文件系统下安全性AppArmor、SELinux、GRSECDocker架构DockerRegistry/Docker映像库存储docker映像可供检索公共映像库-私有映像库管理机构–专属服务。例如:Azure容器注册表ACR该注册表是根据Apache许可证开源的Docker映像库(Registry)映像库(Registry)是一种无状态,高度可扩展的服务器端应用程序,可存储和分发Docker映像。使用模式:紧紧控制映像的存储位置完全拥有您的映像分配管道将映像存储和分发紧密集成到您的内部开发工作流程中公共(DockerHub)/私有

Docker私有映像库私有映像库提供更好的公共映像库安全性(例如DockerHub)Azure支持托管私有映像库,使用精细的角色访问控制进行管理Azure私有映像库可以是地理冗余,使得根据客户端位置更快地下载/上传映像

Docker映像Docker映像是由一系列图层构成的。基础平台操作系统映像由Microsoft为Windows操作系统提供映像,CanonicalforUbuntu映像等供应商提供。这些映像发布到DockerHub。每个图层表示映像的Docker文件中的指令。除最后一个层之外的每个层都是只读的。

Dockerbuild如何工作RegistryDOCKER_HOSTImagesContainers0001Program.cs110AspCoreApp.dll111010111011011010Code/BinariesClientDockerbuildDockerdaemonFROMmicrosoft/dotnet:1.0.0-rc2-coreWORKDIR/appCOPY/app/appENTRYPOINT

dotnetAspCoreApp.dlldockerfileDockerrunDockerfile

带有Docker命令的文本文件,用于创建新映像。您可以将其视为具有组装新映像所需的指令集的配置文件。Docker有一个docker

build命令来解析Dockerfile以构建一个新的容器映像。Docker映像构建模式多阶段构建(单Docker文件)Docker17.05或更高版本中提供了新功能在Dockerfile中使用多个FROM语句每个FROM指令都可以使用不同的基础,并且它们中的每个都开始构建的新阶段。您可以选择性地将工件从一个阶段复制到另一个阶段,留下最终映像中不需要的所有内容。多个DockerfilesDockerfile.{purpose}用于开发(其中包含构建应用程序所需的一切),Dockerfile:一个用于生产的薄型化,只包含您的应用程序,以及运行它的必要条件。Dockerfile.buildDockerfileDockerfile演示:Dockerfile和DockerBuild使用dockefiles创建映像使用dockerbuild命令构建容器映像与容器进行交互使用commit将更新整合到映像登陆到dockerhub并推送映像

容器常见操作一图流DockerComposeCompose是定义和运行多容器Docker应用程序的工具。以yml格式定义的单个文件文件定义了您的应用程序服务单一命令创建并启动所有服务单一命令来停止所有的服务服务可发现性

DockerCompose使用撰写是一个三步的过程:使用Docker文件定义您的应用程序的环境,以便可以在任何地方进行复制。在Docker-compose.yml中定义构成您的应用程序的服务,以便它们可以在相互隔离的环境中一起运行。最后,运行docker-compose,Compose将启动并运行您的整个应用程序。Docker-compose.ymlDockerfile|webappDockerfile|webapi容器的存储Docker容器是不可变的设计,特别适用于无状态应用Docker为容器提供了两种存放数据的资源:由storagedriver管理的镜像层和容器层。DataVolume要保存数据,也就是要运行有状态应用,必须提供DataVoume

Copy-on-Write特点:新数据会直接存放在最上面的容器层。修改现有数据会先从镜像层将数据复制到容器层,修改后的数据直接保存在容器层中,镜像层保持不变。如果多个层中有命名相同的文件,用户只能看到最上面那层中的文件StorageDriver数据卷创建容器时初始化卷数据卷

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论