国产欧美另类视频第一页-国产视v频一区二区三区不卡视频-国产精品亚洲v无码播放-亚洲欧美三级另类

云原生解決方案

云計算團隊 2020-03-16

對于最近1到2年,我談的最多的就是微服務+DevOps+容器化PaaS平臺。其中在微服務里面重點又談了中臺和API網關兩個關鍵點,在DevOps里面兼談了敏捷研發管理。同時自己也指出了這些關鍵技術和方法是傳統IT企業進行轉型的基礎,不會獨立存在,而應該是形成一個完整的整體。

在整個產品規劃里面又分為了云臺,云網和云鏡三個方面的內容。

1. 云臺:重心從原來的IaaS平臺轉到Docker容器化的PaaS平臺,并提供DevOps支撐能力平臺

2. 云網:對應原來的ESB服務總線,同時ESB轉為輕量化的微服務或API網關,并提供大數據集成能力

3. 云鏡:提供整個平臺的資源監控,業務運行監控,性能分析,服務鏈監控等關鍵能力。

對于集團型大企業,按上述思路來構建新應用完全是沒有問題的,但是里面對各個組件的能力都需要進一步增強和我完善,包括我在前面博客文章也提到過,對于我們DevOps平臺,雖然整體功能上已經完全支撐整個研發持續交付過程,但是實際使用的時候仍然還存在一些關鍵功能缺失,這些也是需要進一步完善的地方。而對于云鏡而言,要實現完整的監控分析能力,往往也需要很大的研發投入才能夠完成。

微服務架構+容器化+DevOps 將成為后續企業信息化轉型的主流趨勢。

以上部分內容也是我在18年11月的一篇產品規劃雜談里面的談到的,而一直以來自己也在思考如何用一個概念將上面幾點全部整合起來。而云原生剛好就是覆蓋上述所有關鍵技術和方法的一個概念。

什么是云原生?

對于Cloud Native翻譯為云原生,是Matt Stine提出的一個概念,它是一個思想的集合,包括DevOps、持續交付(Continuous Delivery)、微服務(MicroServices)、敏捷基礎設施(Agile Infrastructure)、康威定律(Conways Law)等,以及根據商業能力對公司進行重組。

Cloud Native既包含技術(微服務,敏捷基礎設施),也包含管理(DevOps,持續交付,康威定律,重組等)。Cloud Native也可以說是一系列Cloud技術、企業管理方法的集合。

https://baijiahao.baidu.com/s?id=1606406149473084309&wfr=spider&for=pc

在一般用法中,“云原生”是一種構建和運行應用程序的方法,它利用了云計算交付模型的優勢?!霸圃笔顷P于如何創建和部署應用程序,和位置無關。 這意味著應用程序位于云中,而不是傳統數據中心。

CNCF將“云原生”定義的更為狹窄,意味著使用開源軟件堆棧進行容器化,其中應用程序的每個部分都打包在自己的容器中,動態編排,以便每個部分都被主動調度和管理,以優化資源利用率和面向微服務的應用程序,以提高應用程序的整體靈活性和可維護性。

咨詢公司Deloitte的董事總經理Mike Kavis說:“云原生應用程序專門設計用于運行現代云計算平臺所需的彈性和分布式特性?!?“這些應用程序松散耦合,意味著代碼不會硬連接到任何基礎架構組件,因此應用程序可以按需伸縮,并采用不可變基礎架構的抽象。通常,這些架構是使用微服務構建的,但這不是強制性要求?!?/p>

云服務提供商Splunk的首席技術支持者Andi Mann表示,對于云原生應用程序而言,最大的不同之處在于應用程序的構建,交付和運維方式?!袄迷品找馕吨褂妹艚莺涂蓴U展的組件(如容器)來提供離散和可重用的功能,這些功能以良好描述的方式集成,甚至跨越多云等技術邊界,這使得交付團隊可以使用可重復的自動化和編排來快速迭代?!?/p>

云原生應用程序開發通常包括DevOps,敏捷方法,微服務,云平臺,Kubernetes和Docker等容器,以及持續交付,簡而言之,每種新的和現代的應用程序部署方法。

CNCF給出了云原生應用的三大特征:

1. 容器化封裝:以容器為基礎,提高整體開發水平,形成代碼和組件重用,簡化云原生應用程序的維護。在容器中運行應用程序和進程,并作為應用程序部署的獨立單元,實現高水平資源隔離。

2. 動態管理:通過集中式的編排調度系統來動態的管理和調度。

3. 面向微服務:明確服務間的依賴,互相解耦。

可以參考網上的要給核心導圖:

因此,你確實希望擁有平臺即服務(PaaS)模型。PaaS不是必需的,但它使事情變得更容易。絕大多數云客戶從基礎架構即服務(IaaS)開始,這有助于從底層硬件中抽象出他們的應用程序。但PaaS增加了一個額外的層來抽象底層操作系統,因此你可以完全專注于應用程序的業務邏輯,而不必擔心進行操作系統調用。

實際上我們看到對于完整的DevOps是包括了持續交付方面的內容的。因此對于云原生的概念完全和我前面經常談到的微服務,容器化PaaS和DevOps相吻合。

即云原生 = 微服務+ DevOps + 容器化PaaS

云原生本身包括了云原生平臺和云原生應用,而平臺則是指容器PaaS平臺和DevOps能力支撐平臺,而云原生應用可以理解微基于微服務思想和開發框架開發的微服務應用。

如果僅僅如此,那么對云原生的理解還是關鍵技術和方法的一個集合,那么這些集合的目標又是什么?簡單理解來說元原生核心是讓軟件的開發和交付面向云平臺或云服務基礎設施而進行,能夠充分利用云平臺提供的能力和服務快速的完成軟件的開發和集成,面向客戶的持續交付,同時又能夠做到足夠的敏捷響應變化。

如何做到,核心底層技術是容器化PaaS,小而靈活,而且具備編排屬性和能力,傳統應用架構通過微服務化后變得足夠小而自治,方便進行敏捷開發和迭代,快速的交付和響應,同時也方便部署和托管到容器中。而DevOps更多是一套完全適應云端協同的敏捷管理方法和流程,來實現持續集成和交付。

軟件因云而生,即云原生,需要的就是上面三者的密切配合來完成。

雖然對于容器化PaaS和微服務我在博客文章里面談的比較多,這里還是摘錄下元原生一篇文章里面的一些對容器化PaaS,服務編排和微服務的一些關鍵描述:

參考:http://dockone.io/article/2991

容器化封裝

最近幾年Docker容器化技術很火,經常在各種場合能夠聽到關于Docker的分享。Docker讓開發工程師可以將他們的應用和依賴封裝到一個可移植的容器中。Docker背后的想法是創建軟件程序可移植的輕量容器,讓其可以在任何安裝了Docker的機器上運行,而不用關心底層操作系統。Docker可以解決虛擬機能夠解決的問題,同時也能夠解決虛擬機由于資源要求過高而無法解決的問題。其優勢包括:

1. 隔離應用依賴

2. 創建應用鏡像并進行復制

3. 創建容易分發的即啟即用的應用

4. 允許實例簡單、快速地擴展

5. 測試應用并隨后銷毀它們

自動化運維工具可以降低環境搭建的復雜度,但仍然不能從根本上解決環境的問題。在看似穩定而成熟的場景下,使用Docker的好處越來越多。

服務編排

Kubernetes——讓容器應用進入大規模工業生產。

這個總結確實很貼切。編排調度的開源組件還有:Kubernetes、Mesos和Docker Swarm。

Kubernetes是目前世界上關注度最高的開源項目,它是一個出色的容器編排系統。Kubernetes出身于互聯網行業的巨頭Google公司,它借鑒了由上百位工程師花費十多年時間打造Borg系統的理念,通過極其簡易的安裝,以及靈活的網絡層對接方式,提供一站式的服務。

Mesos則更善于構建一個可靠的平臺,用以運行多任務關鍵工作負載,包括Docker容器、遺留應用程序(例如Java)和分布式數據服務(例如Spark、Kafka、Cassandra、Elastic)。Mesos采用兩級調度的架構,開發人員可以很方便的結合公司業務場景自定制MesosFramework。

他們為云原生應用提供的強有力的編排和調度能力,它們是云平臺上的分布式操作系統。在單機上運行容器,無法發揮它的最大效能,只有形成集群,才能最大程度發揮容器的良好隔離、資源分配與編排管理的優勢,而對于容器的編排管理,Swarm、Mesos和Kubernetes的大戰已經基本宣告結束,Kubernetes成為了無可爭議的贏家。

微服務架構

傳統的Web開發方式,一般被稱為單體架構(Monolithic)所有的功能打包在一個WAR包里,基本沒有外部依賴(除了容器),部署在一個JEE容器(Tomcat,JBoss,WebLogic)里,包含了DO/DAO,Service,UI等所有邏輯。其架構如下圖所示。

單體架構進行演化升級之后,過渡到SOA架構,即面向服務架構。近幾年微服務架構(Micro-Service Archeticture)是最流行的架構風格,旨在通過將功能模塊分解到各個獨立的子系統中以實現解耦,它并沒有一成不變的規定,而是需要根據業務來做設計。

微服務架構是對SOA的傳承,是SOA的具體實踐方法。微服務架構中,每個微服務模塊只是對簡單、獨立、明確的任務進行處理,通過REST API返回處理結果給外部。在微服務推廣實踐角度來看,微服務將整個系統進行拆分,拆分成更小的粒度,保持這些服務獨立運行,應用容器化技術將微服務獨立運行在容器中。

過去設計架構時,是在內存中以參數或對象的方式實現粒度細化。微服務使用各個子服務控制模塊的思想代替總線。不同的業務要求,服務控制模塊至少包含服務的發布、注冊、路由、代理功能。

容器化的出現,一定程度上帶動了微服務架構。架構演化從單體式應用到分布式,再從分布式架構到云原生架構,微服務在其中有著不可或缺的角色。微服務帶給我們很多開發和部署上的靈活性和技術多樣性,但是也增加了服務調用的開銷、分布式系事務、調試與服務治理方面的難題。

微服務架構當前主流開發框架SpringCloud,基本包括了微服務架構開發和運行過程中常用的組件,其中包括:服務發現與注冊、熔斷機制、路由、全局鎖、中心配置管理、控制總線、決策競選、分布式會話和集群狀態管理等基礎組件。

元原生應用和傳統應用開發的一個對比

參考:https://cloud.tencent.com/developer/article/1360266

其它參考:https://www.cnblogs.com/IT-Evan/p/CloudNative.html

返回上頁