透過您的圖書館登入
IP:3.141.197.135
  • 學位論文

DevOps軟體工程之持續佈署流程DownTime最佳化研究

The DownTime Optimization for Continuous Deployment of the DevOps Software Engineering

指導教授 : 陳弘明
共同指導教授 : 陳世穎
若您是本文的作者,可授權文章由華藝線上圖書館中協助推廣。

摘要


在過去軟體發佈做法是公告一段維護時間,可能是一天或是數小時,但通常重要軟體會要求高可用性達5個9標準(99.999%),也就是一年內只能允許5分15秒的當機時間、停機維護部署時間。 因此隨著DevOps及雲端技術的進步,改進了以往用VM(虛擬機)部署的不方便,而使用容器技術取代,但如何在容器技術及研發流程的配合下並使用雲端運算達到零停機部署是一個被關注的議題。 本篇論文提出了部署流水線(Pipeline)設計,改進常用的雲端Web應用開發框架Laravel deployer工具原本使用的SSH及檔案連結部署方法,使用容器調度技術搭配GitLab flow、GKE(Google Kubernetes Engine)及Kubernetes的滾動更新(Rolling update)達到零停機部署。在零停機部署方面,本篇論文測試了不同Pod數量對於不同滾動批次大小(maxSurge參數)的影響,找出Pod數與最佳滾動批次大小的關係。

關鍵字

DevOps GCP GKE GitLab flow Pipeline Rolling update Kubernetes

並列摘要


In the past, the practice of software publishing was to announce a maintenance period, which may be one day or several hours. However, it is usually important software that requires high availability of five 9 standards (99.999%), that is, only 5 minutes and 15 seconds allowed for downtime in one year. And, this criteria has caused shutdown maintance time to be critical time to be preoccupied. Furthermore, the advancement of DevOps and cloud technologies, the inconvenience of deploying VMs (virtual machines) has been improved, and container technology has been used to replace them. Hence, how to use the cloud computing to achieve zero downtime deployment with the cooperation of container technology and R&D process becomes a topic of concern. This thesis proposes a pipeline design to improve the deployment of SSH and file links originally used by the popular opensource cloud web application framework Laravel deployer tool. And, the proposed pipeline design is using container technology and GitLab flow, GKE (Google Kubernetes Engine) and Kubernetes rolling updates (rolling updates) zero downtime deployment. With zero downtime deployment, this paper tested the effect of different Pod numbers on different rolling lot sizes (maxSurge parameters) and found out the relationship between Pod number and the optimal rolling lot size.

並列關鍵字

DevOps GCP GKE GitLab flow Pipeline Rolling update, Kubernetes

參考文獻


[1] S. D. J.Gray, High-availability computer systems, 2002.
[2] A. Rodriguez., "RESTful Web services: The basics." URL https://www.ibm.com/developerworks/webservices/library/ws-restful/, 2008 (last accessed 26 July, 2018).
[3] B. a. S. K. Fitzgerald, Continuous Software Engineering: A Roadmap and Agenda., 2015.
[4] Wiki, "Gitlab" URL https://zh.wikipedia.org/wiki/Gitlab, 2018 (last accessed 26 July, 2018).
[5] Wiki, "Bitbucket" URL https://en.wikipedia.org/wiki/Bitbucket, 2018 (last accessed 26 July, 2018).

延伸閱讀