《专家观察 | 缪瑾:“从多元化的微服务支持看开放的Azure”》要点:
本文介绍了专家观察 | 缪瑾:“从多元化的微服务支持看开放的Azure”,希望对您有用。如果有疑问,可以联系我们。
由工业和信息化部指导,中国信息通信研究院主办,业界知名组织云计算开源产业联盟(OSCAR)承办的2017全球云计算开源大会于4月19日-20日在北京国家会议中心顺利召开.本文为本届大会嘉宾分享的PPT内容,敬请浏览.
嘉宾介绍:缪瑾
公司职务:微软首席研发经理
个人简介:缪瑾目前带领微软中国服务器与工具事业部开源技术团队,致力于推进微软对各种开源技术的支持,包括Linux/FreeBSD,容器及编排引擎,Cloud Foundry等.之前她在微软带领和参与的项目还包括OData (开源的开放数据RESTAPI标准),微软支付平台,WCF和WF及Visual Studio工具.
大会演讲速记
我今天主要讲的内容,首先对微服务架构做一下简单介绍,以及微服务架构怎么实现的.着重介绍在Azure上对微服务架构多元化支持,以此为例来介绍一下开放的Azure云平台.
首先什么是微服务架构,这个概念并不是新的概念了,还要感谢面向对象大师等等一些人的文章让它变得流行起来.但是更重要的是还是现在的时机,因为云计算已经被越来越多的人接受了,大家一开始想我的应约要设计成什么样子,才能最大化利用到云的特性,比如云的特性就是高度扩展性,因为云的资源几乎是无止境,无穷的.
首先基于微服务架构应用是由多个服务组成,服务之间用轻量级的协议进行沟通,比如说HTTP,或者谷歌的GRPC等等,每个服务就像一个独立产品,可以独立开发测试,独立进行演变,甚至可以用不同技术,不同语言来开发.这样的应用如果部署到云上,每个服务都可以根据需求进行独立的横向扩展,如果一个服务实例发生问题,我们也可以很快创建新的实例顶上.
所以整个应用容错性和可靠性也会增强,这跟像我们传统的应用,所有的逻辑都绑定在一起,必须要一起部署,一起升级,一起扩展,相比之下基于微服务架构的应用灵活性就会大很多.
另外自动化运维也是微服务架构很重要的特色,因为云级别的应用比想象很多服务,很多不同的容器,如果还靠手工运维是非常难以想象的,所以现在容器技术变得很流行,其中一个原因就是能够让运维变得更加高效,这也是为什么微服务架构现在变得可行的一个非常重要的因素.
实现微服务架构的方式也很多,首先最直接的就是容器化,比如我们有一个现有应用想搬到云上去,我们可以把它当中需要横向扩展的,比较独立的部分先剥离出来,放在容器中运行.运行几个容器很容易,因为Docker已经提供了很好的工具,可是云级别的应用就需要跨很多机器、服务、容器的情况下,最好还是用容器编排引擎来帮我们管理资源.
另外我们也可以使用规范化微服务框架,但是需要我们用标准来编写服务,好处是它可以帮助我们管理微服务生命周期.另外还有一些我们甚至可以不写完整服务,只需要写一些重要的业务逻辑就可以了.
有这么多种方式,至于选哪一种还是要看应用的场景,一个应用里面的微服务很可能用不同服务来实现,因为这些服务可能就是不同团队独立开发的.接下来我们重点看一看在Azure云服务平台上对微服务有什么支持.
Azure云平台是微软公有云平台,在中国是由21世纪互联运营的,它是一个全功能很强大的云平台,从底层的虚拟机层多上层多层的PaaS服务,从最基础的运算到更高级更复杂的物联网、大数据、人工智能、机器学习、区块链等等都可以支持,我们着重看一下对于微服务架构的支持.
刚才讲过实现微服务架构最基本的就是通过容器化,而且最好用容器编排引擎帮助我们管理资源.现在流行的容器编排引擎主要是三种,Apache Mesos、Docker Swarm、Kubernetes,Azure容器是把这三种都集中了起来.
Azure容器很重要的就是可以帮我们编排一套我们需要用的集群,因为手工编排的话是很麻烦的,编排好以后我们可以利用它来发布服务.另外我们还开源一个项目叫acs—engine,通过它我们可以精准定制我们想要要的容器编排集群的配置.
PaaS服务也是基于这个项目在此之上包装而成的,而且有新的功能我们都会先在这个项目里实现,然后再集成到安卓服务容器里面去,比如我们现在很多客户希望我们支撑Docker swarm到集群服务,可是这个还没有,但是我们亩以通过Azure容器来部署基于Docker swarm的服务.
刚才提到的这三种容器编排引擎都是属于基础类型的,用户需要明确知道我需要在上面部署容器,所以要对容器很了解.好处是用户没有最大的控制,还有一类容器平台就把底层资源层变得更加抽象化,比如我只需要声明我的应用需要什么样的配置,最终需要达到什么样的状态等等.比如我需要多少内存,需要运行多少实例,联通我的应用一起递交给平台,剩下的就由平台运行它就可以了.
Cloud Foundry就属于这个平台,它在微服务算是元老了,很多企业用它来统一企业内部运营部署的环境,它也支持多种云平台和私有云平台.
Cloud Foundry和刚才提到的容器编排引擎,类似的地方是有很好的分层设计,跟底下集成的层,我们只要实现了接口层就能够把像Cloud Foundry项目跟云平台集成起来.而且这些都是透明的,刚才提到的几个编排引擎也是一样的.Cloud Foundry作为开源项目,是由Cloud foundry基金会负责的.它的最大支持就是对Spring Cloud的支持,它给Cloud foundry带来的就是更强大微服务的平台支持,Cloud foundry跟安卓的集成也是我们团队负责的,我们在上海,有兴趣的话我们可以做线下的交流.
我们同时也支持Red Hat Openshift,它经常被拿来和Cloud foundry做比较,因为它们都属于同类似的平台.Red Hat openshift跟微软也是很好的合作伙伴,所以我们没有偏向性,把选择交给客户.
在Azure上我们有一个产品叫Service Fabric,它也是一个久经考验的微服务平台,它最早是为微软PaaS设计的.它能够支持无状态和有状态的服务,包括基于Azure模式的有状态服务,如果使用它就要遵循它的编程规范,如果无状态服务必须要集成Service Fabric,好处是可以帮助我们管理生命周期,另外它还有滚动升级,自动扩展等等功能.
Service Fabric也支持公有云,我们还可以把它用在私有云和其他云平台上,所以是一个真正的跨平台系统.Service Fabric最近也开源他们的平台了,我们也期待他们越来越多的把这个平台开源.
最后介绍一下,把这个基础设施抽象到极致的Azure Functions,它是无服务器的PaaS服务,我们不需要写完整的服务,只需要写一些基本的业务代码就可以了,所以从运维成本来讲非常低.我们写的代码是事件处理代码,因为现实生活中很多场景是有现实发生了,比如收到一个邮件、请求,有些数据盗了等等我们需要做处理.
而且它还可以跟多种服务进行绑定,包括Azure自己的服务,像我们的存储,也可以跟外界很多服务进行绑定.我们可以用它把很多事件触发以及处理串在一起,写一个很复杂的业务链.从技术上讲它是基于Azure的一个开源项目.
通过刚才的介绍,希望我们看到在Azure云平台上,对微服务的支持是非常丰富,非常多元化的,从最基础的容器编排引擎到更加抽象一些的容器平台等等我们都有支持,应该能够满足绝大多数的云应用场景.另外通过对微服务支持,希望大家能够感受到Azure这个平台本身也是非常开放的平台.近年来微软在开源上面步伐也是越迈越快,越迈越大,具体我们开源策略是怎样的呢?首先是支持,比如虚拟化平台一定要支持的跟Windows一样好,比如我们开发工具一定要支持多种语音.
另外是整合,因为现在开源社区有很多很优秀的方案,我们也没有必要闭门造车.另外是发布,我们已经把很多自己的产品发布成开源了,这些会越来越多.最后是参与到现有的项目中去,我们也加入了很多的重要的Linux开源组织,我们希望跟这些社区合作,一方面我们也想向社区学习,另一方面,一起把这个项目做好,一起拥抱开源.
所以我们可以很有信心地说,现在在我们的Azure云平台上,对开源的支持,从各个层面,各个领域都是能够做到不错的,现在在中国的Azure云上面,我们已经过半的虚拟机都是运行Linux,所以Azure早就过了只专注于Windows的时代了.
最后我们不仅在软件上要拥抱开源,我们现在在硬件上也想把开源带到新的高度,2014年我们加入Open Compute Project,这个组织主要目的是共享下一代云计算中心硬件的设计,去年我们发布了一个项目叫Project Olympus.
另外我们今年3月份宣布将在云数据中心支持ARM服务器.应该说挑战是无处不在的,没有挑战怎么会有收获呢.这是我们微软云科技的微信号,希望大家有兴趣可以关注一下,谢谢大家!
文章来自微信公众号:云计算开源产业联盟
转载请注明本页网址:
http://www.vephp.com/jiaocheng/4208.html