使用 Rainbond 作為智慧城市底座之後,給我們帶來了成倍的運維效率提升。—— 鹹陽市大資料管理局 熊禮智
鹹陽市大資料管理局負責全市資訊共享工作的組織上司,協調解決與政府資訊共享有關的重大問題,研究拟訂并組織實施全市大資料戰略、規劃和政策措施,引導和推動大資料研究和應用工作,建立全市統一的資料服務中心和資訊共享機制。通過“端-邊-網-雲-智” 的全新技術架構,實作管理高效、服務便民、産業發展、生态和諧的目标效用,達成新一代資訊技術與城市現代化深度融合,疊代演進的新模式、新理念。
智慧城市的建設中,對智慧城市應用的管理是個很基礎的問題。傳統的情況下,服務于民生的各類應用系統,都是由相應的政府部門各自部署管轄,這造成了一些困擾。各個城市部門往往各自為政,彼此之間形成資料孤島,很難互通互聯。無論是資料還是應用,都很難統一管理起來。
在鹹陽智慧城市建設工作中重點建設資料交換共享平台和應用管理平台。資料交換共享平台負責打通城市各個部門的資料孤島,進行資料清理和規約之後,最後達成所有城市部門的 IT 應用之間互聯互通的效果。
在建設鹹陽市智慧城市期間,我們在智慧城市應用管理領域遭遇了很多棘手的問題。為了解決這些痛點,我們借助 Rainbond 這款産品,建設起了可以提供自動化運維能力的應用管理平台。我從四個部分分享解決難題的整個過程:
痛點:回顧智慧城市應用,在部署實施以及後期運維上的難點痛點。
定位:我們如何定位智慧城市應用管理平台,以及希望通過它解決什麼樣的問題。
落地:簡要闡述智慧城市應用管理平台的選型過程,以及部署落地的過程。
實戰:講一個真實的案例,來說明引入應用管理平台後,快速開發落地一個智慧城市應用的全過程。
傳統模式下的痛點
我将痛點歸納如下:
- 缺乏統一管理:以往各個城市部門的應用系統的部署是雜亂無章的。每家機關都在建設自己的 IT 系統,沒有統一的管理可言。
- 遺留系統多:很多城市部門的應用系統使用的時間都很久了,有的系統甚至已經失去了廠家的支援。而有的系統采用的技術已經過時,無法友善的遷移到可以被集中管理的環境中去,也沒有辦法很好的将它們監控起來,獲得其實時的狀态。
- 資源配置設定不合理:每家機關都在進行 IT 系統的建設,這必然導緻做了很多重複性的建設工作,資源浪費随之而來。而且在缺乏資源監控的情況下,沒有誰能說清楚各自的應用系統到底應該使用多少資源。通路量不論多少,都配置設定了同樣的資源,缺乏合理性。
- 運維困難:每家機關建設 IT 系統的方式方法五花八門。而這些機關自身往往缺乏相應的技術人才來維護這些系統,一旦出了問題,每套業務系統的維護方式都不一樣。
- 缺乏可觀測性:以往的 IT 系統建設,往往僅僅關注應用程式本身,而忽略了可觀測性的建設。無法做到問題快速發現,往往 IT 系統的失靈,是由使用者回報而來的。
對應用管理平台的定位
應用管理平台負責承載和管理所有智慧城市下屬的應用系統,包括建立設起來的資料交換共享平台。後續所有新開發的智慧城市應用會直接基于應用管理平台部署,以往老舊的遺留系統也會随着疊代更新不斷遷移到應用管理平台。這麼做的目的就是為了能夠逐漸整合各個城市部門的資料與應用,統一管理。
建設智慧城市的過程中,必然會不斷湧現出大批新的城市部門應用系統,如何在建設過程中不重走老路很重要。智慧城市應用管理平台在這個過程中扮演的角色是GPaaS 平台,資料交換共享平台是VPaaS 的一部分。二者相結合,可以将海量城市資料在雲端實作彙集融通計算,在提高城市智慧體運作速度的同時也大大降低了運作成本。我将應用管理平台和資料交換共享平台的定位總結如下:
- 應用管理平台向下統一納管所有計算資源。實作計算資源統一配置設定排程。這些計算資源以多個機房内托管的虛拟機或者實體機的形式提供。應用管理平台應提供資源監控面闆,并在底層計算資源出現問題時發送報警資訊。
- 應用管理平台向上承載包括資料交換共享平台在内的所有智慧城市應用系統。提供統一風格的管理面闆,以及豐富的自動化運維能力,最大程度降低應用運維管理的難度。智慧城市應用可以以極低的代價遷移到應用管理平台上來,能夠實時統計應用的通路流量和資源占用情況,實作計算資源面向應用按需配置設定,自動調整。
- 應用管理平台橫向延伸到各個城市部門。資料交換共享平台需要借助應用管理平台的這一能力,與城市部門現有 IT 系統接駁。
- 應用管理平台可以接納老舊遺留系統。對于無法直接遷移到應用管理平台的各類老舊遺留系統,比如 Windows 應用等,應可以至少做到邏輯層面的接入,能夠以統一風格的面闆進行簡單管理,以及健康檢測等監控能力。
落地過程與價值展現
我們選型并對比了多款 PaaS 平台類産品,最終選擇了 Rainbond 。回顧當時的選型過程,以及系統建成到現在的使用體驗,我将其優勢總結如下:
- 易用性好:Rainbond 是多家選型産品中,易用性做的最好的一款産品。一站式的産品化體驗讓我們在智慧城市應用的開發部署,乃至後期的運作維護工作中都大大降低了學習成本。資料交換共享平台這個核心應用,僅用不到一周的時間,就完成了向雲端的遷移。
- 強大的自動化運維能力:在運維管理方面,其自動化運維能力非常優秀,節省了大量運維成本,使運維效率成倍提升。
- 可觀測性:Rainbond 提供了全面的監控報警系統,無論是計算資源還是上層的應用系統,一旦出現問題都可以很快暴露出來。結合自動化運維能力,問題應用系統可以做到自愈自恢複。而通過觀察應用系統通路量和資源消耗情況,可以更合理的進行資源配置設定工作。
- 開源生态:Rainbond 本身是個開源産品,也擁抱開源社群生态。其内部的應用商店系統,提供了大量我們需要的第三方中間件,這些中間件可以一鍵部署到應用管理平台上去,這節約了大量的時間和精力。否則基于伺服器從零搭建這些中間件系統非常耗時耗力。
基于 Rainbond 建設的應用管理平台于 2019年11月落地傳遞使用。這套應用管理平台底層對接了3個不同的叢集,分别是開發測試環境、普通生産環境和涉密生産環境。時至今日,其上部署的各類城市應用已經超過了 100 套,元件數量超過500個。
最先被遷移到應用管理平台上的資料交換共享平台。向開發測試環境遷移的過程比較輕松,我們投入了兩名開發人員、兩名運維人員,在好雨科技傳遞工程師的配合下,基于源代碼就将所有的元件部署到了應用管理平台上。所有的學習和遷移工作隻持續了一周左右就完成了。接下來要考慮的,是在生産環境中部署這套應用系統。我們在這裡借助了 Rainbond 内部元件庫提供的能力,将開發測試環境中的資料交換共享平台,釋出到了内部元件庫中,在生産環境中就可以一鍵部署了。後續的更新操作也都借由應用模版配套的版本管理功能完成,這極大的節約了部署更新成本。
資料交換共享平台需要借助平台能力,延伸到各個城市部門接駁其已有的 IT 系統。最開始 Rainbond 并不支援這個特殊的需求,最終定制了特制的網關,使資料交換共享平台可以通過網關和城市部門已有的 IT 系統互動。
資料交換共享平台部署形态:
在應用的運維管理方面,最讓我們覺得好用的,是 Rainbond 提供的統一網關配置功能。通過非常簡單的配置,就可以将平台上部署的應用系統對外暴露服務位址。而且經過了定制,我們使用的 Rainbond 網關支援了國密證書,使得我們在安可方面的要求也得到了滿足。
經過長時間的考驗,基于 Rainbond 建設的應用管理平台的穩定性得到了肯定。尤其是在2020年新冠疫情爆發時,短時間開發部署的外來人口統計系統,也在應用管理平台的支援下,經受住了大并發考驗,完成了統計任務。
實戰應對疫情考驗
2020年2月,由于複工返崗高峰的到來,大規模的人口流動重新啟動,為遏制疫情蔓延擴散,做好外來返勞工員的防控和服務工作,鹹陽市需要用最短的時候完成鹹陽市外來人口登記系統的開發和上線,并在3天内完成整個鹹陽市130萬人資訊上報和管控服務。
鹹陽市外來人口登記業務是一個前後端分離的業務系統。主要包含了前端頁面、背景服務、緩存、資料庫、短信業務5個服務元件。
此時,應用管理平台已經落地了半年,我們已經能夠非常熟練的基于 Rainbond 進行開發和部署,是以業務的開發上線并沒有遇到阻礙,我們很快就完成了業務的上線。
Rainbond提供服務元件的伸縮功能,隻需要一鍵,就可以為目前服務元件快速伸縮出多個執行個體,并且自動提供負載均衡。為了能夠讓業務流量過大時,可以自動擴充執行個體數量,我們還設定了基于記憶體使用率來觸發的自動伸縮功能。在運維層面更加自動化。這将大幅度降低單個執行個體處理業務的壓力。
在鹹陽市外來人口登記業務的所有元件中,我們為前端頁面、背景服務這兩個服務元件都伸縮了最多5個執行個體,這兩個服務元件也是經常進行實時更新的元件,基于多個執行個體,Rainbond提供滾動更新的功能,使業務的更新不會影響到線上的業務運作。
為了更好的監控“鹹陽市外來人口登記業務”各個服務元件的壓力情況,我們為前端頁面、背景服務、資料庫分别安裝了Rainbond自帶的服務實時性能分析插件。業務運作期間,這個插件為我們帶來很多的有用資訊,多次幫助開發人員發現業務系統的不足之處,使開發人員可以在業務雪崩當機之前修正代碼并上線。
對于前端頁面、背景服務這樣的基于Http協定提供服務的元件,插件将提供平均響應時間、吞吐率、線上人數三項實時資料,以及最近5分鐘耗時URL排行、曆史資料等持續性資料。
整個填報期間,4套業務系統平均線上人數保持在4000人以上,峰值達到5000+,經由統一網關負載的總流量超過 20000。
總結和期待
Rainbond 滿足了鹹陽市大資料管理局對應用管理平台的預期,運作至今非常穩定。但是,當管理應用系統上百套後後,我們對應用整體監控提出更高要求,需要從更高次元了解所有應用系統運作情況,我了解到他們有更高次元的大屏産品,希望在二期建設過程中,能解決這個問題。
關于Rainbond
Rainbond是一個開源的雲原生應用管理平台,使用簡單,不需要懂容器和Kubernetes,支援管理多個Kubernetes叢集,提供企業級應用的全生命周期管理,功能包括應用開發環境、應用市場、微服務架構、應用持續傳遞、應用運維、應用級多雲管理等。
已有上百家企業使用Rainbond管理關鍵業務場景,涵蓋制造、能源、高校、公安、政府、交通、軍工等十幾個行業。客戶有 京東方、百勝中國、中航信、中公高科等大型企業。