前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VMware的云原生应用战略

VMware的云原生应用战略

作者头像
Henry Zhang
发布2019-04-12 15:58:50
1.9K0
发布2019-04-12 15:58:50
举报
文章被收录于专栏:亨利笔记亨利笔记

为方便阅读和分享,应读者要求,把《云原生应用战略》上、下两篇合并发表。作为福利,新增加了vSphere Integrated Container的演示视频。

在2014年VMworld大会时VMware宣布了全面支持容器,并前瞻性的指出容器和虚机是”Better together”的。转眼间一年过去了,在2015年刚结束的VMworld大会上,VMware发布了一系列和容器相关的技术和产品,我们逐渐清晰地看到VMware在云原生应用(Cloud Native Apps)领域的布局和蓝图,仿佛一幅宏大的画卷缓缓地展现在我们面前。

VMworld发布或展示的新产品和技术主要包括: vSphere Integrated Container (VIC), Photon Platform, 以及支持Flocker的ESX容器存储驱动。另外,早些时候发布的AppCatalyst, Photon OS 和Code Stream这几个产品也更新了版本。从技术栈上看,涵盖了云原生应用的开发栈,生产栈和DevOps三部分,这里分别给大家介绍一下。

vSphere Integrated Container

vSphere Integrated Container (VIC) 扩展了ESX的能力, 使得用户在虚拟化基础设施上迅速地部署容器应用,并且可以与已有的虚拟机集群无差别地统一管理。VIC包含了三种核心技术:虚机化容器(Project Bonneville), ESX 6.0的即时克隆(Instant Clone),优化的容器操作系统Photon OS (光子操作系统)。

1.虚机化容器(Project Bonneville)解决的是容器“先天不足”的安全性和隔离性问题。由于容器的本质是操作系统虚拟的运行环境,在一些场景难以满足企业要求,如公有云、机密数据应用等。目前较好解决的办法就是采用轻量级虚机来承载容器里的应用,从而容器就是虚拟机,虚拟机就是容器。不仅保留了容器快速灵活的特性,而且还具备了虚机硬件级别的隔离度,可谓珠联璧合,相得益彰。 Project Bonneville相当于在ESX上完整实现了Docker API,支持Docker Compose、 Swarm等工具。有关Bonneville架构详解可参考本文末。

2.即时克隆(Instant Clone)是ESX 6.0的新功能,可以快速地复制运行态的虚拟机。克隆虚拟机在云计算中已是家常便饭了, 但克隆运行着的虚机则是VMware独有的技术,不仅把模板虚机的磁盘镜像用CoW(Copy on Write)的方式复制,而且连新生成的虚机内存都做了CoW式的拷贝。这种方式克隆出来的虚拟机跳过了OS的启动步骤,在1秒钟内可创建出来,很接近在Linux里面创建Container的时间。

3.Photon OS是VMware为安全运行容器应用而发布的Linux发行版,特点是大大优化了虚拟环境中的Linux运行效率和安全性,并且由VMware公司提供企业级的支持。Photon OS完整版本大约有两三百MB,在VIC里面作为模板的是Photon微缩(pico)版本,大约只有25MB。这样生成的虚机称为“jeVM”(just enough VM),内存开销很小,为运行容器专用。

融合上述三种技术,创建虚机化容器的过程可以概括如下:先准备好一个运行态的Photon OS虚拟机作为模板,当需要运行容器化应用的时候,VIC使用即时克隆技术复制出一个虚拟机,并且把容器镜像中的文件系统mount到虚拟机里面,然后再运行容器镜像中的应用。整个启动过程象Linux容器一样迅速,并兼容Docker的容器镜像,而且还具有硬件级别的隔离性,毫不夸张地说是“一箭三雕”。更多技术细节参见本文末。

除了大大提高容器化应用的隔离性之外,VIC还有更“惊艳”的优势。因为容器就是虚拟机,用户现有大量管理虚拟机的工具可直接运用在容器之上,例如,容器的性能监控就是虚机的监控,容器的热迁移、HA、负载均衡等就是虚机的相应操作,还可以使用网络NSX和分布式存储VSAN,这些自然而然的强大功能都是vSphere用户了如指掌的。所以,当看到VMWorld上面的demo之后,用户通常是“WOW”一声惊叹,然后争相要求试用VIC。下图中可看到VIC和vCenter集成的界面。

VIC的演示视频:

视频内容

Photon Platform(光子平台)

VMware的云原生应用产品名字都是和光有关的,如Photon, Lightwave等,“光”的英文单词是“Light”,又有轻盈灵巧的含义。

VIC目标是给用户提供虚拟机和容器的统一管理平台(Unified Platform),相比之下,另一产品Photon Platform(光子平台)则是专门为云原生应用设计的,特别适合运行由成千上百、海量规模的容器组成的微服务应用。Photon Platform分为2个层次:Photon Machine 和Photon Controller,支持Mesos, Cloud Foundry, Kubernetes等开源框架。

Photon Machine (光子机器)

Photon Machine包括了轻量级的ESX Server(称为Microvisor)和内置的Photon OS。Microvisor和ESX Server相比,去掉了一些复杂的功能(例如vMotion, HA, FT, DRS等),使其管理更加简便,适合更大规模容器应用的快速部署。

Photon Controller(光子控制器)

Photon Controller是分布式的控制器,目标是帮助用户快速地创建各种云平台的集群,包括Kubernetes, Cloud Foundry, Mesos, Hadoop, OpenStack等。当云集群创建完毕后,用户可以通过该集群的API来调用。Photon Controller不再依赖传统的vCenter,它重新设计了集群的provisioning方法,即使面对数千结点的构建任务,也面不改色地轻松打发。

Photon Controller还使用了今年4月份开源的Project Lightwave来增强安全能力。Lightwave的代码是从vSphere源码安全模块中抽取出来的,是历经多年实用验证过的,这部分开源的ESX代码以及即将开源的Photon Controller,都显示了VMware推动云原生应用技术发展的决心。

从下面Photon Platform的架构图可以看到在这个多租户环境中命令的执行顺序如下:

1. 在同一个Photon Machine集群中分别创建Cloud Foundry和K8s的集群,

2. 用Cloud Foundry的命令在集群中部署和扩展应用

3. 用K8s的命令在集群中部署容器应用Pod

本节结束前再对比一下VIC和Photon Platform两个平台,前者是对现有ESX功能的延伸和扩充,使用户能够在已有的虚拟化平台上运行容器应用; 后者则是全新的平台,用于支撑海量规模的云应用,支持各种开放的API:

Flocker的vSphere存储驱动

微服务架构的容器里许多都是无状态的(stateless)的服务,如API gateway,web服务器等。无状态的容器优点很明显,可以快速启动、水平扩展和自由迁移。另一方面,有状态(stateful)容器的数量也逐渐增多,象MySQL,Redis,MongoDB等容器也很普遍。由于容器通常是频繁创建和删除的,这些有状态的容器需要把持久化数据保留在容器外(例如宿主机)的文件系统中。在Docker中可使用-v参数把容器的数据卷(data volume)映射到宿主机中,但当容器迁移到其他机器时,数据卷只能遗留在原来的宿主机上,容器也就无法访问到原来的数据了。

开源项目Flocker就是为解决上述问题而设计的,它把数据卷保存在共享存储上,在迁移容器时,将数据卷相应地挂载到目标主机的容器中。对容器而言,数据卷可以如影随形,“你走我也走”。为了支持持久化容器应用的运行,VMware发布了开源的Flocker驱动程序,在ESX虚拟机运行的容器可以迁移到另一个ESX的虚拟机中,同时带上该容器的数据卷。所有vSphere的datastore都支持Flocker,包括VSAN, VVOL, VMFS和NFS。通过这个驱动,分布式容器应用和分布式存储技术VSAN完美地结合,如同好马配好鞍一样。

感兴趣的朋友可以看看以下ESX上Flocker的演示:

视频内容

AppCatalyst

AppCatalyst直译就是“应用的催化剂”。顾名思义,这个工具是为了加快云应用开发过程,给开发者提供“本本上的数据中心”(Data center on a laptop)。

在云原生应用中,随着微服务架构和容器技术广泛使用,在开发调试的时候少不了用虚拟机构建分布式的环境,因此,用二类(Type 2)Hypervisor来搭建这类环境最适宜。AppCatalyst采用VMware企业级的Fusion虚拟化内核(目前支持Mac OS ),自带PhotonOS的虚机模板,能便捷地生成Docker和Vagrant的运行环境。新增的SharedFolder功能可在容器和宿主机之间共享持久化的文件,更加接近真实环境中的持久化场景。AppCatalyst还提供CLI和RESTAPI接口,适合多容器和微服务应用的自动化编排流程,支持Docker Machine。使用AppCatalyst可以生成稳定可靠的多结点、多容器的运行环境,只用一台laptop就可调试数据中心级的应用,想着都觉得酷。最让程序员们开心的莫过于AppCatalyst是免费的,可从这个网站下载:http://getappcatalyst.com/。目前支持Mac OS 10.9以上的操作系统。有关AppCatalyst的详细介绍请参见本文末。

vRealize Code Stream

目前主流的云应用开发都使用持续集成(Continuous Integration,简称CI)的模式,结合微服务的架构,每个小的更新都可以迅速地完成编译、构建、单元测试和集成测试等工作,然后部署到生产系统中去。但在企业传统的运维方式中,更新生产系统是非常慎重的事情,通常需要提前一定时间的规划,并且含有许多手工过程。显然,低速的运维方式已经不能匹配云时代敏捷迭代的开发方式,就是我们常说的Dev和Ops之间的矛盾,是现在企业亟需解决的问题。

vRealize Code Stream(VCS)就是帮助用户延伸和贯通整个DevOps流程的管理工具。VCS最主要的功能是流水线自动化(Pipeline Automation),很方便地在流水线中接入各种软件开发工具链(如Git, Jenkins,Selenium等),然后进行统一管理。软件项目象水管一节一节的分成阶段,每阶段包含若干个任务,在每阶段任务结束之后,设立象阀门一样的gating rules,用规则来控制流程是否往前推进。VCS内置了JFrog的Artifactory,用来存放任务的执行结果,如编译过的目标码,打包后的Docker镜像等,在任务间起到承上启下的作用,同时它还作为不同版本的存储仓库,发布应用时可以从中选择特定版本的。

VCS属于vRA(vRealize Automation)的一部分,已经部署vRA的用户可以直接安装VCS使用。VCS本身也内置了各类SDLC工具的支持,从这些工具中提取各种管理信息,如Jenkins中的Job Id等等。下面是VCS的接口图:

结束语

通过本文的介绍,我们看到VMware在云原生应用的各个领域全面发力,产品Roadmap涵盖了开发栈,生产栈和DevOps三大部分。其中的生产栈平台分为vSphere Integrated Container(传统与云原生应用混合)和Photon Platform(大规模云原生应用平台),适合不同转型阶段的企业选用。目前,Code Stream是可以交付给用户的正式产品,其他产品大多还处于Technical Preview阶段,预计在明年上半年发布用户可试用的版本,让我们拭目以待吧。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 亨利笔记 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档