DevOps起源于2009年,由Patrick Debois發起的“DevOpsDays”會議中首次提出,它是一種軟件開發及運維的理念和實踐方法,旨在通過協同與自動化的方式,加強開發團隊和運維團隊之間的協作,實現業務的快速交付、頻繁變更和快速修復問題,從而更高效、更平穩地運維軟件,提高業務的敏捷性和穩定性。
通常情況下,軟件開發和運維是兩個獨立的團隊,開發團隊負責編寫代碼,而運維團隊負責部署、監控和維護應用程序。這種分離導致了開發和運維之間的溝通和協作困難,潛藏著一定程度的錯誤和延誤風險。DevOps的目標是通過協同、自動化和持續交付等實踐打破這種壁壘,促進開發和運維之間的緊密合作,提高軟件交付的速度、質量和運維的可靠性。
提到DevOps的快速交付和頻繁變更,其技術核心就在于持續集成和持續部署(CI/CD)技術。
在持續集成方面,基于品高云操作系統,可以在物理主機上運行多個操作系統實例從而創建獨立的構建和測試環境,以隔離不同的代碼版本和配置。虛擬機提供了更高的靈活性和隔離性,從而便于并行構建和測試。此外,也可以利用不同的操作系統虛機環境測試應用系統的兼容性。基于一云多芯的品高云,還可以比對同一應用程序在不同芯片上的響應時間、并發用戶量、TPS等性能,通過資源利用率評測該應用在不同芯片型號的運行效能,從而選擇更適合該應用的信創產品。對于應用的持續集成,可以生成不同的構建產物,如可執行文件、安裝包,也可以根據需要生成品高云虛機或容器,分別存放于虛機鏡像倉庫或容器鏡像倉庫。
在持續部署方面,可以根據需要在品高云上直接拉起新虛機通過品高云的自動化編排工具進行部署,或將應用程序部署到已存在的不同虛機上。若構建產物為容器,可根據需要在虛機之上運行不同的容器,或通過自動編排生成容器鏡像直接運行在基于物理服務器構建的品高容器云上。
那么對于企業來說,傳統的虛擬化云計算與容器,到底要如何選擇呢?雖然容器技術相對傳統虛擬化技術可以提供更快速的部署,但是,根據品高二十年來在企業信息化方面的經驗,對企業來說,并不是所有的應用都適合采用容器模式進行部署。
比如:
傳統的單體應用:傳統的單體應用程序在實際應用中,大概率會依賴于特定的操作系統版本和硬件環境,因此更適合在虛擬機中運行。
需要保持長期不間斷運行的應用:相對容器來說,虛擬機可以提供更穩定和可靠的運行環境,適用于需要長期穩定運行的應用系統。
需要進行多租戶強隔離的應用:虛擬機可以提供更強大的隔離性能,適用于需要更高級別的多租戶隔離的應用程序。
具有以上這些特征或業務需求的企業應用更適合采用傳統云計算模式進行部署。
虛擬化技術可以提供更強大的隔離性和資源管理功能,適用于需要更高級別的多租戶隔離的場景。虛擬機可以為每個應用程序提供獨立的操作系統和虛擬硬件資源,使得不同的應用程序可以在同一臺物理服務器上并行運行,提高硬件資源利用率。
相對于傳統云計算的虛擬化技術,結合近年來的微服務改造,容器技術則更適合具有以下特征的企業應用進行部署運行:
基于微服務架構的應用:容器技術可以簡化微服務架構中組件的管理和部署。每個微服務都可以打包成一個獨立的容器,可以獨立進行擴展和管理。
需要更加快速的部署和更新的應用:容器技術相對虛擬機來說更輕量化,可以在幾秒鐘內啟動,因此,能夠提供更快的部署和擴展速度,容器鏡像可以更加快速地部署到任何支持容器技術的環境中,大大簡化和加快了應用程序的發布和更新過程。
高可伸縮性和彈性要求的應用:容器技術可以根據負載變化自動擴展或收縮,提供更好的彈性和可伸縮性。
容器技術可以提供更快速和更一致的部署環境,使得應用程序可以在開發、測試、生產等不同的環境中進行快速遷移和部署;此外,容器生態的CI/CD工具更加豐富,可以更好地支持持續集成和持續部署(CI/CD)流程。
品高軟件基于自主研發的內核代碼,將品高云產品的傳統虛擬云計算技術與容器技術相融合,從而可以同時提供虛擬機和容器資源,還可以在裸金屬設備上直接構建容器,進一步提高了資源的利用率,更好地支撐不同應用的雙模構建和部署交付。
在DevOps的實踐落地中,品高軟件通過CMP品高云管理平臺綜合管理多地分布的多朵云,在品高云的基礎之上,有機的結合云計算和容器等技術,根據不同應用的運行需要,最大化的發揮不同部署模式的特點,探索DevOps的雙模構建之路。結合二十年來的企業信息化建設經驗和自主可控的核心技術,品高軟件將繼續深入探究和踐行DevOps理念,將不同技術進行策略化、自動化的協同,使之與客戶應用更加匹配,盡可能的縮小“應用”、“開發”、“運維”、“客戶”之間的縫隙。