應用程序部署演變
主要有三個演變:
傳統部署:互聯網早期,會直接將應用程序部署在物理機上
優點:簡單,不需要其它技術的參與
缺點:不能為應用程序定義資源使用邊界,很難合理地分配計算資源,而且程序之間容易產生影響。
舉個例子:
部署:需要生成war包:Export→?Web-WAR file→ 選擇war包地址→ 生成war包
將war包上傳到服務器
啟動:tomcat啟動
cd?/home/operation/apache-tomcat-9.0.31/bin
./startup.sh
虛擬化部署:可以在一臺物理機上運行多個虛擬機,每個虛擬機都是獨立的一個環境?
優點:程序環境不會相互產生影響,提供了一定程度的安全性
缺點:增加了操作系統,浪費了部分資源
?容器化部署:與虛擬化類似,但是共享了操作系統。?微服務通常會被打包為容器鏡像(如Docker鏡像),然后在容器化平臺(如Kubernetes)上部署和管理。容器提供了隔離、輕量級、一致性和可移植性的優勢
優點:
可以保證每個容器擁有自己的文件系統、CPU、內存、進程空間等
運行應用程序所需要的資源都被容器包裝,并和底層基礎架構解耦
容器化的應用程序可以跨云服務商、跨Linux操作系統發行版進行部署
容器化部署方式給帶來很多的便利,但是也會出現一些問題,比如說:
1.一個容器故障停機了,怎么樣讓另外一個容器立刻啟動去替補停機的容器
2. 當并發訪問量變大的時候,怎么樣做到橫向擴展容器數量
這些容器管理的問題統稱為容器編排問題,為了解決這些容器編排問題,就產生了一些容器編排的軟件:Swarm:Docker自己的容器編排工具
Mesos:Apache的一個資源統一管控的工具,需要和Marathon結合使用
Kubernetes:Google開源的的容器編排工具。容器化平臺
參考:Kubernetes詳細筆記_kubernetes筆記-CSDN博客?
怎么將傳統的物理機器部署轉為微服務
1. dockerfile
2. 容器化
3. 流量遷移到微服務
4. 下線傳統的