背景介紹及趨勢分析
目前IT技術發展日新月異,随着大資料、網際網路、雲計算、人工智能等技術不斷推陳更替,IT技術的思想同時發生着較大的變革。Pivotal公司的MattStine于2013年首次提出雲原生(CloudNative)的概念;2017年,MattStine将雲原生架構歸納為子產品化、可觀察、可部署、可測試、可替換、可處理6特質。雲原生已經逐漸成為重要的發展趨勢,因為它具有更好的彈性、更強的擴充性、更高的一緻性,以及安全性和可觀測性等,能夠幫助使用者更加透明、高效地建構和運作相關業務系統、應用場景。
雲原生從網際網路、雲計算行業提出,快速發展擴散到金融、政務、汽車等行業,但不同的行業落地雲原生有千百種解決方案,雲原生包羅萬象地适應本地化的業務場景。雲原生技術的推廣應用能否真正産生重大價值和效益,是需要積極探索的問題。而對待新技術,需要有開放、包容、嘗試的态度。
在雲原生的理念之下,無論是微服務的改造,或是容器化的改造,改變的不僅僅是軟體的技術架構,還有組織内部的架構。扁平化的組織更有利于各部門的快速協同,開發與運維、營運部門間可建立密切的協作,可将工程快速建構至生産;而傳統的職能性組織模式下,很難有密切、頻繁地溝通與協作,内部效率低、溝通“隔牆”将大大阻礙技術的快速變革。
雲原生理念下,開發模式必然向靈活開發轉型,快速建構應用可以更高效地支援業務核心場景,而處在傳統的瀑布模式下,将會導緻應用無法快速占有市場帶來的競争力降低。很多公司雖然使用了微服務或容器化技術,但組織架構還是職能型組織架構,跨部門協作效率比較低,這在傳統金融行業,是一個普遍的現象,因為組織架構的改變并不像技術的發展那麼快。但随着軟體架構的改變,組織架構也應該随着軟體架構去改變。
大地保險在新一代核心系統建設中,積極擁抱新技術,采用了SpringCloud微服務架構,新核心系統的開發采用靈活開發模式,開發團隊的組織架構随之改變為扁平化。與此同時,為了更高效地協同開發與運維的效率,運維員在系統開發測試時就已經加入開發團隊提前參與,共同制定安裝部署規範、上線釋出流程規範、應急操作、日常運維等各項操作流程和規範。為後續的應用快速移交、高效運維夯實了基礎。
另一個核心問題是微服務化的應用是否一定要容器化。微服務應用的确比較适合容器化,在新核心系統開發建設過程中,大地保險同時也在建設容器平台,但為保證新核心系統的平穩上線,暫時沒有進行容器化改造。在容器平台建設階段,有較多的應用系統進行了容器化改造,在容器化建設前期,是否将部署在WebLogic、WebSphere等傳統中間件上的應用進行容器化改造,是我們面臨的一個主要問題。為了适應開發人員配合容器化改造,我們沒有将傳統中間件全部進行容器化改造,主要是為了保證容器化應用系統中間件運作時環境的一緻性。最終,我們順利将計劃中的核心系統遷移到了容器平台,為後期其他應用系統的容器化改造積累了豐富的改造經驗。
雲原生的主要優勢
雲原生在國内迅速地興起與發展,已知和潛在的效益都是很大的。對于新技術的學習、研究、探索需要有專人負責,投入更多的精力和成本才可以發揮更大的效能。需要重點關注技術特性與企業内部發展的比對程度,将更合适的應用和特性進行本地化改造和推廣。以下是綜合行業總結了幾點雲原生的優勢。
首先,快速的疊代能力。技術人員可以利用雲原生進行快速應用程式的開發、建構、移植,多種技術棧、不同的解決方案打通、關聯、整合。更高效地提升技術效率,為業務賦能産生更高效的價值驅動。
其次,高效的獨立性。基于雲原生的微服務化架構下,其不再像傳統的部署模式,而是一個微服務即可為一個獨立的應用服務,更加便捷輕量化。而對于部門間、團隊間來說,更多的是技術上、思路上、溝通上的碰撞,促進了技術上的互相成長、溝通上的團結性。
大地保險的雲原生之路
在應用容器化改造的同時,開源中間件也逐漸進入了大家的視野。為了适應開源的趨勢,我們已積累将Tomcat、Nginx、RabbitMQ、MySQL、Redis、ElasticSearch等納入了标準中間件的範疇,為各類開源中間件制定了标準的部署規範和使用流程。目前,開源中間件已經成為了大地保險的預設部署規範。标準中間件的傳遞已經以SaaS服務的方式進行傳遞,開發人員無需關注後端中間件的高可用性和部署架構,直接以服務的方式進行使用。
大地保險從2018年開始建設基于容器的雲原生雲平台,陸續推進應用上雲工作。從雲原生平台建設選型、應用上雲改造、PaaS服務建設、雲原生平台營運等工作中積累了一些經驗。一是積累了K8S、Docker等新一代雲原生基礎設施的技術能力,雲平台營運也趨于成熟;二是在業務系統從傳統環境遷移到容器雲的過程中,積累了一定應用雲原生改造的實踐的經驗;三是微服務、中間件、MQ、Redis等中間件雲原生化部署,完善了雲原生中間件PaaS層服務化能力;四是形成了基于雲原生技術的DevOpsCI/CD标準流程和規範。
從大地保險雲原生中間件的實踐經驗總結,我們的收益是巨大,尤其是大地保險從2017年以來業務系統大量的微服務改造建設,借助雲原生技術,解決了中間件自身的彈性和韌性問題;其次基于以K8S+容器的運作底座,解決了中間件在運維及資源傳遞等方面的問題。基于雲原生的實踐,我們總結了其主要優勢。
一是運維标準化。衆所周知,标準化是自動化的必要前提。一方面重新定義了傳統中間件運維人員的工作職責界面,使得基礎能力下沉至雲平台,大量的日常運維操作如擴縮容、遷移重建和故障處理和恢複演練等都可以通過雲平台實作,徹底解放人力重複勞作。另一方面雲原生化的中間件天然可以跨雲、跨異構、跨平台的部署傳遞,真正做到運作環境的一緻,大大地提高傳遞效率。
二是營運效率提升。傳統的硬體、作業系統、網絡、存儲、運維等,利用雲平台的IaaS和PaaS能力,可以高效地為各領域中間件建構出高品質的穩定性保障體系,節省了後期運維關聯協作時間成本。
三是資源使用率提升。雲原生技術引入後,對底層資源的利用更加精細化,提升了資源使用率,可以讓中間件的運作實作自動擴縮容,尤其是在“雙11”“雙12”業務活動期間,對銷售類的業務系統爆發流量的場景有很強的支撐作用。
四是雲原生中間件服務化。較傳統的運作環境的資源傳遞效率有了巨大的提升,目前大地保險納入雲平台服務化的中間件,Nginx、RabbitMQ、Redis、Kafka、Tomcat等涵蓋了通用主流的中間件,資源的傳遞效率都提升至分鐘級,極大提升了業務使用感覺度。
五是推動了研發效率提升。開發人員使用中間件方式的雲原生化,屏蔽了底層的運作環境差異和運維複雜度,開發人員通過标準化的接口就可以完成對中間件的調用,開發人員可以更關注業務的開發,進而提升了企業整體的開發和運維效率。
總結與展望
總的來說,借助雲原生技術底座加速了中間件在不同的環境輸出,雲原生技術的覆寫面越來越廣了,傳統的運維模式也在疊代更新,營運效率持續提升。此外,開源和商業軟體也結合得更緊密,雲原生技術核心是圍繞開源展開的,随着中間件雲原生化的程序不斷推進,雲原生中間件的發展也越來越活躍。
雖然中間件雲原生化有諸多優點,但是中間件雲原生化也面臨着不少的困難和挑戰。
第一,雲原生化隻是第一步,之後如何有效結合雲原生的優勢特性,使其發揮出超越傳統方式的效果是一個挑戰。尤其是在開發運維一體化,提升整體的IT研發運維效率,真正賦能業務方面,需要持續推進雲原生營運模式的更新優化。第二,在運維的次元上,雲原生技術的推廣帶來了衆多新的技術棧,帶來了架構上的極大變化,這給運維人員帶來了非常大的挑戰。隻要真正掌握雲原生技術,有效地通過技術更新帶來效率提升,才能賦能業務發展。第三,傳統運維的安全規範、制度和工具可能不再适用于雲原生環境。一方面,需要引入新的安全管理工具,另一方面,也需要與時俱進地制定新的雲原生環境下的安全基線、規範和制度等。
從2021年開始,信創化推進工作逐漸成為了大地保險的重點工作方向。我們已推進基礎軟體包括資料庫、中間件、作業系統等的改造工作,對于信創中間件而言,中間件都有微服務應用的解決方案,我們在應用系統建設前期會重點明确需要解決的痛點和場景,針對現有應用系統的架構特點,建立新型邏輯模型和部署解決方案,提供應用側推薦的可行性研究報告,為應用提供切實、可靠、穩定的運維管理基礎環境和服務。
微服務和容器化,解決了DevOps中Ops的問題,也就是運維的問題,未來更多地是解決Dev的問題,也就是怎麼讓研發效率更高,開發疊代更快,更好地滿足業務的發展需求,這也是未來的工作方向之一。