国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

蘑菇街 私有云Docker實例應用

2019-11-02 16:13:59
字體:
來源:轉載
供稿:網友

對于蘑菇街而言,每年的11.11已經成為一年中最大的考驗,考驗的是系統穩定性,容災能力,緊急故障處理,運維等各個方面的能力。蘑菇街的私有云平臺,從無到有,已經經過了近一年的發展,生產環境上經歷了3次大促,穩定性方面得到了初步驗證。本文我將從架構、技術選型、應用等角度來談談蘑菇街的私有云平臺。

另,ArchSummit全球架構師峰會北京站將于2015年12月18日~19日在北京國際會議中心召開,大會設置了《揭秘雙十一背后的技術較量》專題來深入解讀雙十一背后的技術故事,歡迎關注。

蘑菇街的私有云平臺(以下簡稱蘑菇街私有云)是蘑菇街面向內部上層業務提供的基礎性平臺。通過基礎設施的服務化和平臺化,可以使上層業務能夠更加專注在業務自身,而不是關心底層運行環境的差異性。它通過基于Docker的CaaS層和KVM的IaaS層來為上層提供IaaS/PaaS層的云服務,以提高物理資源的利用率,以及業務部署和交付的效率,并促進應用架構的拆分和微服務化。

在架構選型的時候,我們覺得Docker的輕量化,秒級啟動,標準化的打包/部署/運行的方案,鏡像的快速分發,基于鏡像的灰度發布等特性,都十分適合我們的應用場景。而Docker自身的集群管理能力在當時條件下還很不成熟,因此我們沒有選擇剛出現的Swarm,而是用了業界最成熟的OpenStack,這樣能同時管理Docker和KVM虛擬機。相對來說,Docker適合于無狀態,分布式的業務,KVM適合對安全性,隔離性要求更高的業務。

對于上層業務來說,它不需要關心是運行在容器中,還是KVM虛擬機里。今后的思路是應用的微服務化,把上層的業務進行拆分,變成一個個微服務,從而對接PaaS基于容器的部署和灰度發布。

技術架構

在介紹雙十一的準備工作之前,我先簡單介紹一下蘑菇街私有云的技術架構。

我們采用的是OpenStack+novadocker+Docker的架構模式,novadocker是StackForge上一個開源項目,它做為nova的一個插件,通過調用Docker的RESTful接口來控制容器的啟停等動作。每個Docker就是所謂的“胖容器”,它會有獨立的IP地址,通過supervisord來管理容器內的子進程,常見的如SSHD、監控agent等進程。

我們在IaaS的基礎上自研了PaaS層的編排調度等組件,實現了應用的彈性伸縮、灰度升級,支持一定的調度策略。我們通過Docker和Jenkins實現了持續集成(CI)。Git中的項目如果發生了git push等動作,便會觸發Jenkins Job進行自動構建,如果構建成功便會生成Docker Image并push到鏡像倉庫。基于CI生成的Docker Image,可以通過PaaS的API或界面,進行開發測試環境的實例更新,并最終進行生產環境的實例更新,從而實現持續集成和持續交付。

網絡方面,我們沒有采用Docker默認提供的NAT網絡模式,NAT會造成一定的性能損失。通過OpenStack,我們支持Linux bridge和openvswitch,不需要啟動iptables,Docker的性能接近物理機的95%。

準備工作 穩定性

迎戰雙11,最重要的當然是確保穩定性。通過近一年的產品化和實際使用,我們積累了豐富的提高穩定性的經驗。

對于那些已遇到過的問題,需要及時采用各種方式進行解決或者規避。

比如說,CentOS6.5對network namespace支持不好,在Docker容器內創建Linux bridge會導致內核crash,upstream在2.6.32-504中修復了這個bug,因此線上集群的內核版本,必須升級至2.6.32-504或以上。

又比如,CentOS6.5自帶的device mapper存在dm-thin discard導致內核可能隨機crash,這個問題我們早在四月份的時候已經發現并解決了,解決的辦法是關閉discard support,在docker配置中添加“--storage-opt dm.mountopt=nodiscard --storage-opt dm.blkdiscard=false”,并且嚴格禁止磁盤超配,因為磁盤超配可能會導致整個device mapper無法分配磁盤空間,而把整個文件系統變成只讀,從而引起嚴重問題。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀来县| 莫力| 宜都市| 灵山县| 荔波县| 峡江县| 临泽县| 和平区| 丹江口市| 莫力| 河曲县| 嵊泗县| 星子县| 邛崃市| 富平县| 河东区| 惠水县| 许昌市| 盈江县| 大港区| 团风县| 砀山县| 禄劝| 博兴县| 霍林郭勒市| 榆林市| 永州市| 申扎县| 扶沟县| 开江县| 金堂县| 乐山市| 山东| 嵊泗县| 新巴尔虎左旗| 秦安县| 安图县| 吴忠市| 安阳市| 子洲县| 中阳县|