【TOP100summit】工欲善其事,必先利其器---JFrog的Kubernetes實踐
原創【51CTO.com原創稿件】Kubernetes已成為大規模部署容器化應用程序的一種標準方式,幫助管理龐雜的容器部署環境。但是,將應用、微服務部署到Kubernetes環境里可不是那么輕松、簡單的事!如何成功地在Kubernetes環境中部署應用?近日,51CTO記者在第七屆全球軟件案例研究峰會(簡稱***00summit)現場采訪了JFrog(杰蛙科技)架構師高欣,對此問題進行了梳理。
高欣,JFrog架構師,專注DevOps解決方案,以及企業DevOps 轉型,曾在IBM服務近十年,帶領團隊致力于Dev Ops領域產品,及公有云服務的研發、運維、服務及推廣等,在軟件產品和云服務的開發與運維、持續集成及交付、DevOps 等領域具備豐富的技術積累和實踐經驗。
部署應用的實戰
高欣首先表示,要想成功地在Kubernetes環境中部署應用,首先不要急于把應用部署上去,而是要從小處入手,充分了解Kubernetes的特點,同時也要充分考察和改造應用自身,使其適合部署到Kubernetes環境中。
以JFrog為例,JFrog從很小的應用開始進行 Kubernetes 的部署。例如 Nginx,先定義小的目標去將應用部署到 Kubernetes,確保對整個容器化的進程技術上可控。
高可用是 JFrog 產品的默認功能,所以會有大量的高可用測試的需求。需要能夠快速擴容支持大并發的請求,支持滾動升級(0宕機升級)的測試,破壞性測試,包括計劃和非計劃的 Node 宕機測試,集群縮容測試。
其次,要充分設計部署的方式和配置。高欣提到,Helm項目提供了一個統一軟件打包方式,支持版本控制,可以大大簡化Kubernetes應用分發與部署中的復雜性。Helm也催生了社區的發展壯大,越來越多的軟件提供商,都開始提供高質量的Charts。因此,可以利用Helm實現更為輕松的部署編排和執行。
然后,當部署完成后,還需要根據Kubernetes的特點實施針對應用運行態的監視。這就需要用一些額外的工具,能夠在應用、開發之外,提供一個良好的,監視運行狀態的機制和系統。
***,需要一套整體的流程,能夠用一些自動化的方式,流水線的方式,讓整個部署過程自動運轉起來,使其能夠很快的去復用,并且能夠快速的得到響應。高欣強調,希望開發者們能夠善用一些社區的力量,多吸取別人的經驗,這樣能夠達到事半功倍的效果。
實戰過程中的經驗
在JFrog,目前可以做到每周自動化部署100+的不同產品線、任意版本組合的測試環境,而每個環境都要部署50+的微服務。在達到這樣的部署規模的過程中,JFrog遇到了很多難題問題,同時也積累了很多的經驗和教訓。
首先,JFrog明確了內部落地Kubernetes應用的目標,即能夠快速搭建全功能的測試環境,給開發,測試,技術支持,產品團隊,解決方案團隊等所有團隊使用。同時為每個分支都提供CI/CD流水線的支撐,讓研發有獨立的沙箱環境進行自測,這也是 Kubernetes 帶來的***價值之一。
同時,JFrog正逐步將云端的服務遷移到Kubernetes環境,并直接向客戶提供JFrog所有產品的Helm Charts,方便客戶在Kubernetes環境中的部署。
“在這個過程中,每一步都很艱難”,高欣表示。由于是全新的環境,全新的方式,所以存在很多未知因素,高欣建議開發者可以多去社區看一看,與社區的高手交流,會得到很多經驗和方法,來解決遇到的困難。
Jfrog的客戶沒有行業限制,既有騰訊、中興、華為之類的互聯網企業,也有金融、證券這樣的傳統行業,只要有DevOps轉型的需求,JFrog都會為之提供幫助。JFrog希望把DevOps的理念宣傳、推廣給更多的用戶。
記者視點
在Kubernetes中,應用管理是需求最多、挑戰***的領域。Kubernetes社區編排方案中,Helm基于Charts包的實現方案占主導地位。目前Helm已經成為Kubernetes下應用編排的唯一子項目。JFrog在實踐中積累了大量經驗,并且積極擁抱開源,必將幫助更多的企業客戶實現DevOps落地。
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】