天天看點

視覺中國:基于容器雲的同城雙活微服務架構上雲實踐

視覺中國集團(visual china group)創立于2000年6月,是中國領先的視覺影像産品和服務提供商。視覺中國集團是以“視覺創造價值,視覺服務中國”為願景的a股唯一網際網路文化創意上市公司(股票代号000681,股票簡稱:視覺中國)。視覺中國集團以“視覺内容與服務”、“視覺社群”和“視覺數字娛樂”三大業務闆塊為核心,擁有中國最大的視覺内容網際網路版權交易平台,同時為國内的主題公園、城市綜合體提供領先的數字娛樂整體解決方案。旗下包括華蓋創意(getty images china)、漢華易美(china foto press)、東星娛樂(tungstar)、視覺me社群(shijueme)、艾特凡斯(advance)等業界著名品牌。集團擁有近萬名簽約攝影師和藝術家,并同海内外數百家圖檔社、影視機構、版權機構廣泛合作,為媒體、企業主、廣告公司等各類客戶提供專業的圖檔、影視、音樂、特約拍攝、創意衆包、視覺化營銷等一站式服務。  

視覺中國集團目前有分布在北京市各區的5個機房,我們的應用分布在這五個機房,資料間調用複雜且低效,運維維護成本高,每年的預算更是給企業帶來一定的負擔。為了擺脫這種模式我們決定雲化,考察了騰訊雲,華為雲,ucloud等廠商,最後選擇了更能切實解決我們問題且更值得信賴的阿裡雲平台。

我們采用了基于阿裡容器雲的同城雙活微服務架構(consul+template+registrator),這樣既能保證服務的高可用,也在ci,cd方面有所作為。使用到的産品有ecs,rds,oss,redis,消息通知服務,datav,quickbi,切圖服務,ram,容器雲,雲盾,slb等十幾種。

我們首先進行線下實體機房的微服務的搭建及測試,確定服務可用後進行雲化的考量。整個應用遷移過程分為幾個步驟:

阿裡雲資源申請。包括ecs,rds及oss等

容器雲測試。簡單搭建幾個docker測試可用性

部署微服務。基于consul+template+registrator進行部署

代碼部署。把jar包等通過jkenins進行部署

功能測試。

性能測試。

灰階釋出。a/b test

部分應用遷移。

觀察期

整體業務上線

遷移完畢

整體傳遞完成之後,我們的ci、cd基本上做了實踐,研發釋出代碼無需經過運維幹涉,自動釋出,自動部署一鍵完成。 

視覺中國:基于容器雲的同城雙活微服務架構上雲實踐

架構要點解讀:

容器叢集是region級别的服務,叢集内可以包含多個可用區的ecs。

容器服務支援将同一個服務的容器排程在不同的可用區(zone)裡,這是通過編排模闆中的availability:az=xx标簽來實作,具體參考:https://help.aliyun.com/document_detail/26018.html?spm=5176.doc26086.6.149.vt2kds

slb本身具有跨機房高可用特性,使用主、備在不同可用區的slb類型即可。

整體架構就是基于容器雲的同城雙活架構,其實我們還有異地災備。

傳遞采取鏡像的傳遞方式,gitlab上傳代碼後通過jenkins進行打包操作,鏡像傳遞到開發環境,功能驗證沒問題後,gitlab合并代碼到test環境鏡像傳遞後進行test環境的功能及性能測試。

最後将鏡像推送至生産環境,生産環境采取雙consul多資料中心模式,可用區a連接配接位于a區的consul master,同時将注冊資訊同步至位于可用區b的consul master,這樣保證多區的微服務叢集高可用。

兩個區共用基礎資源,rds通過dts同步至測試環境,測試環境和dev環境共用一套rds。我們的架構在滿足持續傳遞,持續部署的同時也滿足了高可用的需求,每個微服務都是叢集,這樣基于容器層,ecs層,consul層,微服務層,任何節點出現問題對使用者都是不可見的,實作了高可用。 

成本上可以做到有效的控制,随時做到服務的升降級。

阿裡雲幫助我們實作了故障主機的實時遷移,保障了業務的可用性,運維也比較省心。

在安全方面基于雲盾和先知等産品的安全防護可以做到多層次的保障,極大提高了我們的服務安全性。

監控方面也很細緻和全面,支援自定雲完全滿足我們的需求。成本方面可以随時關注費用中心,自行進行分析。

效率方面,因為是基于容器雲的微服務架構,這方面也有非常大的改善。

以上幾點任何一點在傳統機房的模式下想做到全面和高效都是比較困難的,這也是我們為何進行雲化的原因。 

遇到的問題還是比較多的,我列舉幾個典型的問題。

中美oss同步大檔案有資料重傳問題及日常傳輸方案。穩定性建議采取高速通道,日常傳輸采用multipart分塊實作

雲端支援批量上傳資料的壓縮及打包下載下傳解壓縮功能。通過udf實作

oss子賬戶授權後隻能看到自己目錄内容。通過ossfs實作

跨境oss資料接收後無法确實該删除的檔案。通過跨境消息通知機制實作

跟進不同的圖檔主題進行切圖參數的相關比對。通過智能識圖完成

資料大屏展示。通過datav和quickbi實作

ddos攻擊防護。通過高防ip及waf防火牆實作

容器雲日志采集和檢視。通過sls實作

繼續閱讀