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