微衆銀行正式開源容器平臺Dockin

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"近年來,雲原生(Cloud Native)可謂是 IT 界最火的概念之一,且隨着雲計算普及進程的不斷加深,有愈演愈烈的趨勢。雲原生已經不是少數幾個大企業的專屬,越來越多的企業正在擁抱它,享受它帶來的紅利。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":"br"}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dockin是微衆銀行開源的生產級容器平臺,提供了一整套私有云容器化的落地方案。涵蓋Kubernetes集羣管理、應用管理、網絡、運維工具、開放 API 等組件,用戶可以自由搭配使用,定製自己的容器平臺。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dockin着力於生產級、高可用、安全性、雲原生一體化、可定製,適用於傳統IT向雲原生轉型。期待大家加入一起共建,向雲原生出發。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/73\/73831718f86613980cc8795fb71f7290.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"雲原生下容器化的價值"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"足業務發展的需要。金融應用的典型特點爲體量大、部署慢、難升級、難擴展,如何及時響應業務的需求、如何快速支持新業務上線是基礎架構的優化方向。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"容器作爲一種新興的虛擬化技術,跟傳統的虛擬化方式相比具有衆多的優勢。其核心價值在於三點:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"敏捷性"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"據業界統計,使用容器技術可以實現 3~10 倍的交付效率提升,大大加速新產品迭代的效率,並降低試錯成本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"彈性"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通過容器技術可以充分發揮雲的彈性,優化計算成本。一般情況下,通過容器技術可以降低 50% 的計算成本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"可移植性"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"容器已經成爲了應用分發和交付的標準,可以應用於底層運行環境的結構。實現一次構建處處部署。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"Dockin的誕生&微衆銀行私有云容器化的探索"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Kubernetes是讓容器應用進入大規模工業生產環境的開源系統,也是集羣調度領域的事實標準,目前已被業界廣泛接受並得到了大規模的應用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"微衆銀行的生產業務大多跑在私有機房上,無法使用騰訊雲、阿里雲等公有云提供的容器服務。而且有完善的基礎運維工具,要在我們私有云上要落地一套 Kubernetes不是一件簡單的事情,離線安裝和升級、與未容器化的 VM 應用實例網絡打通、穩定運營等都是非常複雜的,而且有很多潛藏的隱患如 Docker 安全漏洞、內核 BUG 等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/a4\/a43b8c46d7b6d3cf4dca3cca21a8bfde.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dockin實現了 Kubernetes 在微衆銀行私有云落地,同時收斂了 kubernetes 粗放的管理模式,定位是公司級的容器平臺服務,所有功能都提供API,供上下游管理工具和基礎軟件接入,在應用管理上保持了和 VM 一致的用戶體現。容器化與基礎設施環境相關,對整個運維體系改變很大,關乎到應用的穩定性,原生的 Kubernetes 不能滿足我們的要求。容器團隊研發的Dockin,用了兩年多的時間,經過一系列探索與實踐現階段現已實現應用的全面容器化,當然這個過程也遇到過很多問題,如:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":"br"}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"內網環境在線安裝和升級 kubernetes 失敗"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"開發測試人員不懂 kubernetes 的 yaml 編寫"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"雲原生產品的管理流程和公司內部運維繫統不適配"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"kubernetes 證書過期"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"master節點擴縮容問題"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"內核內存暴漲導致容器 OOM Killed"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"容器重啓後IP變化"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用戶在容器裏執行大內存命令導致容器掛掉"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用戶主動修改容器裏系統文件導致不可預期的錯誤"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"應用做日誌歸檔導致母機 IP 過高"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"類似上面的問題還有很多,相信其他公司的容器團隊也會深有感觸,後面可以做成一個專題給大家分享。通過團隊的專研,解決了很多操作系統底層適配的問題,同時通過研發一系列的 Kubernetes 之上的管理系統,解決容器應用資源管理、運維編排的問題。在實踐中,容器團隊將傳統IT向容器雲原生轉型的坑基本都踩了一遍,最終形成了一整套完整的企業容器平臺。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/fa\/fad73c9e86611682aeda2256812899c8.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"目前,我們生產環境容器平臺已承載了超過 50% 的應用實例,其中包括核心的金融交易系統,能實現核心系統容器化在業界都是少數。Dockin支持業務系統容器化,提高資源池彈性,提高應用交付效率,將各式各樣的系統通過容器的方式進行標準化,實現統一的監控、統一的調度、自動化和智能化運維。平臺所有系統基於開源產品自研,到目前爲止,從應用管理、運行監控、到運維自動化都研發了對應的解決方案和系統。隨着業務對平臺的要求越來越高,Dockin 還將不斷的迭代,也通過開源的方式讓有共同興趣的朋友一起參與,共同完善。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/6c\/6cd4f46968396ed405d81ec27e5f1659.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"根據我們的實踐,Dockin 解決了應用容器化的問題,優化了資源的使用效率,降低了硬件成本。同時還提升了應用的交付效率,推動了 IaaS 層的服務化,新業務上線週期更短。全量容器化後,未來Dockin會支持更多的雲原生產品,實現智能化的調度,優化鏡像和應用SDK,向Serverless方向發展。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"Dockin能帶來什麼?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dockin容器平臺從我們生產環境中剝離出來,經過了金融級生產環境的嚴格驗證,是私有化部署的較好方案。現在將 Dockin 開源貢獻給社區,希望爲大家帶來幫助,也希望得到更多的檢驗。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/3f\/3f5e64bf5e8b5eecaad894e64f7588de.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dockin 旨在打造一站式,可拓展的容器應用雲原生管理平臺。在首期開源的組件中,提供 kubernetes、docker、os版本組合建議,同時實現了etcd、kubernetes 的高可用部署;支持容器內命令執行過濾,網絡支持了固定IP和多網卡。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對於企業用戶而言,Dockin 可以支持快速搭建生產級的kubernetes,提供將應用從VM平滑遷移到容器管理系統;提供經典網絡下的IP固定的方案和網絡插件;提供更加穩定性的、安全的容器運維功能。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"已開源組件"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"1、Dockin-CNI"},{"type":"text","text":",一款支持固定IP的網絡插件"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於 kubernetes 的 CNI 網絡插件,支持固定IP,支持多網卡。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"2、Dockin-Ops,一套安全的運維編排服務"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dockin運維管理系統是安全的運維管理服務,優化 exec 執行性能,支持命令權限管理。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"3、Dockin-Installer,一套離線Kubernetes集羣安裝器"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dockin平臺安裝器,快速部署Docker、高可用 kubernetes 集羣、ETCD 集羣,生產級參數調優。全離線安裝,不需要連外網,支持十年的證書續訂、ETCD備份恢復。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"4、Dockin-RM,一款應用資源管理系統"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dockin 容器項目資源管理器,是應用定義和容器實例管理的核心模塊,提供容器分配、回收、查詢等功能。(具體安裝流程請訪問倉庫地址獲取 )"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"更詳細的實踐我們會在未來的文章中爲大家帶來,歡迎各位持續關注!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"項目倉庫"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/github.com\/WeBankFinTech\/Dockin"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/gitee.com\/WeBankFinTech\/Dockin"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"社區聯絡"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"項目負責人 Townchen  WeChatID:wxid_cgz"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"未來還有更多..."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"靜態應用管理方案"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"鏡像管理系統"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"平臺管理臺"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"高可用監控服務"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"統一API網關"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"智能調度系統"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通用Operator套件"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"寫在最後"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dockin 是微衆銀行雲生產的基礎設施,我們會長期的維護更新,並希望爲大家的私有云服務提供一個更穩妥的選擇。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":"br"}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"因此,誠邀關注雲原生,容器開發的你一同參與到 Dockin  開源項目中來,我們歡迎任何形式的貢獻,有各種建議或意見可在 GitHub\/ gitee \/ 微信羣中提 issue。同時,Dockin 團隊也在擴招中,感興趣的同學盡情來聊吧。"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章