《專家觀察 | 繆瑾:“從多元化的微服務(wù)支持看開放的Azure”》要點:
本文介紹了專家觀察 | 繆瑾:“從多元化的微服務(wù)支持看開放的Azure”,希望對您有用。如果有疑問,可以聯(lián)系我們。
由工業(yè)和信息化部指導,中國信息通信研究院主辦,業(yè)界知名組織云計算開源產(chǎn)業(yè)聯(lián)盟(OSCAR)承辦的2017全球云計算開源大會于4月19日-20日在北京國家會議中心順利召開.本文為本屆大會嘉賓分享的PPT內(nèi)容,敬請瀏覽.
嘉賓介紹:繆瑾
公司職務(wù):微軟首席研發(fā)經(jīng)理
個人簡介:繆瑾目前帶領(lǐng)微軟中國服務(wù)器與工具事業(yè)部開源技術(shù)團隊,致力于推進微軟對各種開源技術(shù)的支持,包括Linux/FreeBSD,容器及編排引擎,Cloud Foundry等.之前她在微軟帶領(lǐng)和參與的項目還包括OData (開源的開放數(shù)據(jù)RESTAPI標準),微軟支付平臺,WCF和WF及Visual Studio工具.
大會演講速記
我今天主要講的內(nèi)容,首先對微服務(wù)架構(gòu)做一下簡單介紹,以及微服務(wù)架構(gòu)怎么實現(xiàn)的.著重介紹在Azure上對微服務(wù)架構(gòu)多元化支持,以此為例來介紹一下開放的Azure云平臺.
首先什么是微服務(wù)架構(gòu),這個概念并不是新的概念了,還要感謝面向?qū)ο蟠髱煹鹊纫恍┤说奈恼伦屗兊昧餍衅饋?但是更重要的是還是現(xiàn)在的時機,因為云計算已經(jīng)被越來越多的人接受了,大家一開始想我的應(yīng)約要設(shè)計成什么樣子,才能最大化利用到云的特性,比如云的特性就是高度擴展性,因為云的資源幾乎是無止境,無窮的.
首先基于微服務(wù)架構(gòu)應(yīng)用是由多個服務(wù)組成,服務(wù)之間用輕量級的協(xié)議進行溝通,比如說HTTP,或者谷歌的GRPC等等,每個服務(wù)就像一個獨立產(chǎn)品,可以獨立開發(fā)測試,獨立進行演變,甚至可以用不同技術(shù),不同語言來開發(fā).這樣的應(yīng)用如果部署到云上,每個服務(wù)都可以根據(jù)需求進行獨立的橫向擴展,如果一個服務(wù)實例發(fā)生問題,我們也可以很快創(chuàng)建新的實例頂上.
所以整個應(yīng)用容錯性和可靠性也會增強,這跟像我們傳統(tǒng)的應(yīng)用,所有的邏輯都綁定在一起,必須要一起部署,一起升級,一起擴展,相比之下基于微服務(wù)架構(gòu)的應(yīng)用靈活性就會大很多.
另外自動化運維也是微服務(wù)架構(gòu)很重要的特色,因為云級別的應(yīng)用比想象很多服務(wù),很多不同的容器,如果還靠手工運維是非常難以想象的,所以現(xiàn)在容器技術(shù)變得很流行,其中一個原因就是能夠讓運維變得更加高效,這也是為什么微服務(wù)架構(gòu)現(xiàn)在變得可行的一個非常重要的因素.
實現(xiàn)微服務(wù)架構(gòu)的方式也很多,首先最直接的就是容器化,比如我們有一個現(xiàn)有應(yīng)用想搬到云上去,我們可以把它當中需要橫向擴展的,比較獨立的部分先剝離出來,放在容器中運行.運行幾個容器很容易,因為Docker已經(jīng)提供了很好的工具,可是云級別的應(yīng)用就需要跨很多機器、服務(wù)、容器的情況下,最好還是用容器編排引擎來幫我們管理資源.
另外我們也可以使用規(guī)范化微服務(wù)框架,但是需要我們用標準來編寫服務(wù),好處是它可以幫助我們管理微服務(wù)生命周期.另外還有一些我們甚至可以不寫完整服務(wù),只需要寫一些重要的業(yè)務(wù)邏輯就可以了.
有這么多種方式,至于選哪一種還是要看應(yīng)用的場景,一個應(yīng)用里面的微服務(wù)很可能用不同服務(wù)來實現(xiàn),因為這些服務(wù)可能就是不同團隊獨立開發(fā)的.接下來我們重點看一看在Azure云服務(wù)平臺上對微服務(wù)有什么支持.
Azure云平臺是微軟公有云平臺,在中國是由21世紀互聯(lián)運營的,它是一個全功能很強大的云平臺,從底層的虛擬機層多上層多層的PaaS服務(wù),從最基礎(chǔ)的運算到更高級更復雜的物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能、機器學習、區(qū)塊鏈等等都可以支持,我們著重看一下對于微服務(wù)架構(gòu)的支持.
剛才講過實現(xiàn)微服務(wù)架構(gòu)最基本的就是通過容器化,而且最好用容器編排引擎幫助我們管理資源.現(xiàn)在流行的容器編排引擎主要是三種,Apache ?Mesos、Docker ?Swarm、Kubernetes,Azure容器是把這三種都集中了起來.
Azure容器很重要的就是可以幫我們編排一套我們需要用的集群,因為手工編排的話是很麻煩的,編排好以后我們可以利用它來發(fā)布服務(wù).另外我們還開源一個項目叫acs—engine,通過它我們可以精準定制我們想要要的容器編排集群的配置.
PaaS服務(wù)也是基于這個項目在此之上包裝而成的,而且有新的功能我們都會先在這個項目里實現(xiàn),然后再集成到安卓服務(wù)容器里面去,比如我們現(xiàn)在很多客戶希望我們支撐Docker ?swarm到集群服務(wù),可是這個還沒有,但是我們畝以通過Azure容器來部署基于Docker ?swarm的服務(wù).
剛才提到的這三種容器編排引擎都是屬于基礎(chǔ)類型的,用戶需要明確知道我需要在上面部署容器,所以要對容器很了解.好處是用戶沒有最大的控制,還有一類容器平臺就把底層資源層變得更加抽象化,比如我只需要聲明我的應(yīng)用需要什么樣的配置,最終需要達到什么樣的狀態(tài)等等.比如我需要多少內(nèi)存,需要運行多少實例,聯(lián)通我的應(yīng)用一起遞交給平臺,剩下的就由平臺運行它就可以了.
Cloud ?Foundry就屬于這個平臺,它在微服務(wù)算是元老了,很多企業(yè)用它來統(tǒng)一企業(yè)內(nèi)部運營部署的環(huán)境,它也支持多種云平臺和私有云平臺.
Cloud ?Foundry和剛才提到的容器編排引擎,類似的地方是有很好的分層設(shè)計,跟底下集成的層,我們只要實現(xiàn)了接口層就能夠把像Cloud ?Foundry項目跟云平臺集成起來.而且這些都是透明的,剛才提到的幾個編排引擎也是一樣的.Cloud ?Foundry作為開源項目,是由Cloud ?foundry基金會負責的.它的最大支持就是對Spring ?Cloud的支持,它給Cloud ?foundry帶來的就是更強大微服務(wù)的平臺支持,Cloud ?foundry跟安卓的集成也是我們團隊負責的,我們在上海,有興趣的話我們可以做線下的交流.
我們同時也支持Red ?Hat ?Openshift,它經(jīng)常被拿來和Cloud ?foundry做比較,因為它們都屬于同類似的平臺.Red Hat ?openshift跟微軟也是很好的合作伙伴,所以我們沒有偏向性,把選擇交給客戶.
在Azure上我們有一個產(chǎn)品叫Service ?Fabric,它也是一個久經(jīng)考驗的微服務(wù)平臺,它最早是為微軟PaaS設(shè)計的.它能夠支持無狀態(tài)和有狀態(tài)的服務(wù),包括基于Azure模式的有狀態(tài)服務(wù),如果使用它就要遵循它的編程規(guī)范,如果無狀態(tài)服務(wù)必須要集成Service ?Fabric,好處是可以幫助我們管理生命周期,另外它還有滾動升級,自動擴展等等功能.
Service ?Fabric也支持公有云,我們還可以把它用在私有云和其他云平臺上,所以是一個真正的跨平臺系統(tǒng).Service ?Fabric最近也開源他們的平臺了,我們也期待他們越來越多的把這個平臺開源.
最后介紹一下,把這個基礎(chǔ)設(shè)施抽象到極致的Azure ?Functions,它是無服務(wù)器的PaaS服務(wù),我們不需要寫完整的服務(wù),只需要寫一些基本的業(yè)務(wù)代碼就可以了,所以從運維成本來講非常低.我們寫的代碼是事件處理代碼,因為現(xiàn)實生活中很多場景是有現(xiàn)實發(fā)生了,比如收到一個郵件、請求,有些數(shù)據(jù)盜了等等我們需要做處理.
而且它還可以跟多種服務(wù)進行綁定,包括Azure自己的服務(wù),像我們的存儲,也可以跟外界很多服務(wù)進行綁定.我們可以用它把很多事件觸發(fā)以及處理串在一起,寫一個很復雜的業(yè)務(wù)鏈.從技術(shù)上講它是基于Azure的一個開源項目.
通過剛才的介紹,希望我們看到在Azure云平臺上,對微服務(wù)的支持是非常豐富,非常多元化的,從最基礎(chǔ)的容器編排引擎到更加抽象一些的容器平臺等等我們都有支持,應(yīng)該能夠滿足絕大多數(shù)的云應(yīng)用場景.另外通過對微服務(wù)支持,希望大家能夠感受到Azure這個平臺本身也是非常開放的平臺.近年來微軟在開源上面步伐也是越邁越快,越邁越大,具體我們開源策略是怎樣的呢?首先是支持,比如虛擬化平臺一定要支持的跟Windows一樣好,比如我們開發(fā)工具一定要支持多種語音.
另外是整合,因為現(xiàn)在開源社區(qū)有很多很優(yōu)秀的方案,我們也沒有必要閉門造車.另外是發(fā)布,我們已經(jīng)把很多自己的產(chǎn)品發(fā)布成開源了,這些會越來越多.最后是參與到現(xiàn)有的項目中去,我們也加入了很多的重要的Linux開源組織,我們希望跟這些社區(qū)合作,一方面我們也想向社區(qū)學習,另一方面,一起把這個項目做好,一起擁抱開源.
所以我們可以很有信心地說,現(xiàn)在在我們的Azure云平臺上,對開源的支持,從各個層面,各個領(lǐng)域都是能夠做到不錯的,現(xiàn)在在中國的Azure云上面,我們已經(jīng)過半的虛擬機都是運行Linux,所以Azure早就過了只專注于Windows的時代了.
最后我們不僅在軟件上要擁抱開源,我們現(xiàn)在在硬件上也想把開源帶到新的高度,2014年我們加入Open ?Compute ?Project,這個組織主要目的是共享下一代云計算中心硬件的設(shè)計,去年我們發(fā)布了一個項目叫Project ?Olympus.
另外我們今年3月份宣布將在云數(shù)據(jù)中心支持ARM服務(wù)器.應(yīng)該說挑戰(zhàn)是無處不在的,沒有挑戰(zhàn)怎么會有收獲呢.這是我們微軟云科技的微信號,希望大家有興趣可以關(guān)注一下,謝謝大家!
文章來自微信公眾號:云計算開源產(chǎn)業(yè)聯(lián)盟
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/4208.html