伴隨時代的飛速進步,中國的人口紅利帶來了互聯網業務的快速發展,巨大的流量也帶動了技術的不斷革新,研發的模式也在不斷變化。傳統企業紛紛效仿互聯網的做法,結合DevOps進行數字化的轉型。
通常提到DevOps,大家浮現在腦海里面可能是研發規范、持續交付、敏捷迭代相關的一系列事項,組織上推行打破部門墻,文化上推行活潑、皮實、互助等方式促進效能提升。但是,除了這些,還需要更多的工具、技術來讓這一切真正的落地。
所謂的DevOps,指的是開發運維一體化,也被稱之為開發運營一體化、開發測試運維一體化,現在有些領域也衍生出來更多提法:開發安全運維一體化(DevSecOps)。總之,都是在致力于產品從開發到落地的整個生命周期過程管理。
我們目前也處于數字化轉型的新時期,面對DevOps的具體落地,大家需要了解這幾樣新時代神器:Docker、Kubernetes、Jenkins、Spring Cloud、Service mesh.他們是DevOps技術棧的典型代表,也可以說必不可少的支撐技術,我們來悉數一下這些神器們。
Docker的出現可謂是極大的推動了DevOps的發展,讓DevOps重新燃起新的青春。Docker最大的顛覆在于鏡像的理念,將應用所需的依賴環境,全部隔離起來,讓應用的部署插上了翅膀。可以說基于容器來構建服務棧的方式變得非常優雅,遠遠超越了自動化腳本的方式。
Kubernetes代表了新一代云計算熱潮的PaaS平臺技術方案,可以簡單的類比為OpenStack、CloudFoundry的替代方案(當然還是有很多不同之處的)。作為容器集群管理系統,為容器化的應用提供部署運行、資源調度、服務發現和動態伸縮等一系列功能,可以將容器編織成一個大大的云。
Spring Cloud,這個名字起的可以說,非常契合時代發展的脈絡!在很多場合,很多人眼里,Spring Cloud就是微服務!雖然這么理解有失偏頗,但他提供的眾多特性,確實解決了微服務研發過程中的很多痛點,是微服務架構的集大成者。這是繼Dubbo RPC框架以后的新秀,也迅速的深入人心,幾乎成了業界寫微服務代碼的主要框架。
Docker容器的出現,從另一個角度來講,極大的促進了微服務的發展,每一個容器可以形象的打包為一個個的小盒子,而微服務就是裝在小盒子里面的寶藏,每一次的服務調用,就像是在散發光芒。
容器技術的火爆,徹底的顛覆了PaaS平臺的構建方式,企業進行數字化落地也有了更好的選擇。尤其是彈性伸縮、自定義網絡、環境隔離等特性,加上CI、CD過程可以結合Docker鏡像和Compose編排,使得新一代PaaS平臺脈絡也更加清晰,應用從源碼態到運行態,一條鏈路就可以完美跑下來。以下是可供參考的基于DevOps工具鏈的平臺架構:
有了上面的這些神器,一個基于DevOps理念的PaaS平臺就基本落地了,但人類不止于這點小進步,在服務調用的層面不斷開拓創新,提出了更優秀先進的提升方案,于是就有了Service Mesh。
Service Mesh 又譯作“服務網格”,作為服務間通信的基礎設施層,是云原生應用的必要支撐,可以將它比作是應用間的TCP/IP,負責應用間的網絡調用、限流、熔斷和監控,可以將網絡功能從代碼中剝離出來。采用 Service Mesh, 你不用在服務代碼中實現用于可靠通信的模式如斷路、超時等,類似地,Service Mesh 也提供了服務發現、服務可見性等其他功能。以下是Service mesh的架構圖:
可以說Service Mesh經歷了幾個發展階段,也代表了以應用為中心的網絡通信進步:
1.從最原始的主機之間直接使用網線相連;
2.網絡層的出現;
3.集成到應用程序內部的控制流;
4.分解到應用程序外部的控制流;
5.應用程序的中集成服務發現和斷路器;
6.出現了專門用于服務發現和斷路器的軟件包/庫,如 Twitter 的 Finagle 和 Facebook 的 Proxygen,這時候還是集成在應用程序內部;
7.出現了專門用于服務發現和斷路器的開源軟件,如 Netflix OSS、Airbnb 的 synapse 和 nerve;
8.最后作為微服務的中間層 service mesh 出現;
可以看到,技術界發展到這個時期,針對DevOps落地這件事,實現工具已經很豐富了,可以說層出不窮,不斷的刷新著我們的工具鏈。企業在數字化轉型的過程中,也可以根據團隊的實力,選擇適合自己的工具。當然,真正的轉型成功,是需要工具、規范、文化、技術、業務等全方位配合,匹配到企業的發展節拍,創造新的業務增長奇跡。
轉載于:https://blog.51cto.com/14084875/2345382