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

以M公司案例導入DevOps之Kubernetes容器管理架構

Introducing the Kubernetes Container management architecture of DevOps with the M company case

指導教授 : 柯志坤

摘要


資訊是個競爭非常激烈的產業,不論是在於傳產或者遊戲企業,再加上目前資訊隨手可得,大家發展的速度可說是非常快速,新技術成出不窮,且都有著相同的目標,也就是如何減少維護時程和增進競爭力,與快速有效增加產品數量與品質。於資訊產業上,部門與部門之間的溝通,開發與維運人員的對談,都會影響到軟體的交付與開發時程,當然就也會影響到整個部署到生產端等等的工作。因此於導致於協同作業時,部分工作需要花費一定的時間來先互相確認,所以開發人員最好懂點維運人員的工作內容,維運人員也了解開發人員的工作事項,如此可以減少溝通與人力成本上的損耗,也可帶來新的氣象。業界上盛行一種文化上的趨勢與流程,藉此來加快開發與維運人員之間的合作模式, 整體情境實作與導入流程說明以M公司使用DevOps與Kubernetes為例。新公司的成立,肯定會面臨眾多的壓力,譬如股東、資金、投資成本、產品營運等等,這些都是M公司所正在面臨的。在於開始獲利並且持續營運情境之下,M公司實作建置環境,藉此說明持續整合/持續部署(Continuous Integration / Continuous Delivery,CI/CD)概念上,表現出與傳統做法的差異性比較,於此論點上作文本論文研究的方向,使用相關工具時所帶來改善開發與維運實際效益。DevOps本質上為文化與流程上的結合,包含幾種基本面向要素在裡面,企業文化、協同合作、流程部署、導入方式等等,不僅需要有相當技術方面的背景,也需非技術相關方面的文化流程給予協助進行。在於維運部分,M公司想達到自動化維運與不停機維護的目標,選擇目前討論熱烈的Kubernetes容器管理工具,此工具有自動部署、擴展、修復和管理容器應用程式等優秀功能,並且支持多數容器工具。本範例以M公司內使用的CI/CD工具,GitLab、Jenkins、Docker、Docker Harbor來建置情境環境,程式碼與設定檔會使用GitLab來做版本的控管,Jenkins用來做統一管理與發佈,Doker Harbor則做為存放Docker image的倉庫,依據內部設定與用途製作版本的控管,最後由Kubernetes容器管理工具來控管容器運行,並以M公司自動化維運與不停機維護的需求實作內部功能比對與測試資料。結論以敏捷軟體開發的角度切入,搭配CI/CD工具來結合Kubernetes的應用,從實驗的案例來看,使用Docker於部署開發流程上,有效的增進開發端速度與除錯,再搭配Kubernetes容器管理工具的Kubernetes-Dashboard UI來管理操作,有效的達成自動化維運與不停機維護的目標。未來方向M公司導入方向則會慢慢地以裸機來導入Kubernetes系統,將實現容器與虛擬機的混合操作,將能夠充分利用直接在裸機伺服器上部署Kubernetes所帶來的更高速度和效率。此外Kubernetes還有許多套件和架構可以使用與探討,像是Istio框架,可降低部署上的複雜性並且減少開發與維運團隊的壓力。Service Mes的架構,重點在於解決容器化服務與微服務架構衍生出的安全與網路問題。Weave Scope為Kubernetes的視覺化監控工具。Kubernetes的程序監控kubewatch於部署前通知訊息,入侵異常偵測系統Falco和顯示Kubernetes健康狀況的Polaris,都是未來M公司可導入測試的方向並完善整體架構。

關鍵字

Kubernetes Docker CI/CD DepOps VMware

並列摘要


Information is a very competitive industry. Whether it is a production or game company, and the current information is readily available, the speed of development is very fast, new technologies are emerging, and all have the same goal. That is to reduce the maintenance schedule and enhance competitiveness, and to increase the quantity and quality of products quickly and effectively. In the information industry, the communication between departments and departments, and the development of dialogues with the maintenance personnel will affect the delivery and development time of the software, and of course, the entire deployment to the production side and so on. Therefore, when it comes to collaborative work, part of the work takes a certain amount of time to confirm each other first, so the developer should understand the work content of the maintenance personnel, and the maintenance personnel also understand the work items of the developer, thus reducing communication and The loss of labor costs can also bring new weather. A cultural trend and process prevail in the industry to accelerate the cooperation model between development and maintenance personnel. The overall situation implementation and import process description uses M. DevOps and Kubernetes as examples. The establishment of a new company will certainly face many pressures, such as shareholders, capital, investment costs, product operations, etc., which are what M companies are facing. In the context of profitability and ongoing operations, M Company implemented the environment to illustrate the concept of Continuous Integration / Continuous Delivery (CI/CD), showing a comparison with traditional practices. In this argument, the direction of textual research is used, and the actual benefits of development and maintenance are brought about by the use of relevant tools. DevOps is essentially a combination of culture and process, including several basic orientations, corporate culture, collaboration, process deployment, import methods, etc., which not only requires a fairly technical background, but also non-technical related aspects. The cultural process is assisted. In the maintenance part, M company wants to achieve the goal of automatic maintenance and non-stop maintenance. Choose the currently discussed Kubernetes container management tool, which has excellent functions such as automatic deployment, expansion, repair and management of container applications, and supports most Container tool. This example uses the CI/CD tools used in M company, GitLab, Jenkins, Docker, Docker Harbor to build the situation environment. The code and configuration files will be controlled by GitLab, and Jenkins will be used for unified management and release. Doker Harbor is used as a warehouse for storing Docker image. The version is controlled according to internal settings and usage. Finally, Kubernetes container management tool is used to control the operation of the container, and the implementation of M company's automated maintenance and non-stop maintenance needs. Internal function comparison and test data. Conclusion From the perspective of agile software development, combined with CI/CD tools to combine Kubernetes applications, from the experimental case, use Docker to deploy development process, effectively improve development speed and debugging, and then cooperate with Kubernetes container management. The tool's Kubernetes-Dashboard UI manages operations and effectively achieves the goal of automated maintenance and non-stop maintenance.In the future, M company will gradually import the Kubernetes system into bare metal, which will realize the hybrid operation of the container and the virtual machine, which will make full use of the higher speed and speed of deploying Kubernetes directly on the bare metal server. effectiveness. In addition, Kubernetes has many suites and architectures that can be used and explored, such as the Istio framework, which reduces the complexity of deployment and reduces the pressure on the development and maintenance teams. The architecture of Service Mes focuses on solving security and network issues arising from containerized services and microservices architectures. Weave Scope is a visual monitoring tool for Kubernetes. The Kubernetes program monitors kubewatch's pre-deployment notification messages, the intrusion detection system Falco and the Polaris, which shows the health status of Kubernetes, are the directions that future M companies can import and test and improve the overall architecture.

並列關鍵字

Kubernetes Docker CI/CD DepOps VMware

參考文獻


[1] Babak Bashari Rad, Harrison John Bhatti, Mohammad Ahmadi. (March 2017). An Introduction to Docker and Analysis of its Performance . IJCSNS International Journal of Computer Science and Network Security, VOL.17 No.3.
[2] Boettiger, C. (2015). An introduction to Docker for reproducible research. ACM SIGOPS Operating Systems Review, 49(1), Page 71-79.
[3] Jürgen Cito, Harald C. Gall. (2016). Using Docker Containers to Improve Reproducibility in Software Engineering Research. 2016 IEEE/ACM 38th IEEE International Conference on Software Engineering Companion.
[4] Jeeva Chelladhurai, Pethuru Raj Chelliah, Sathish Alampalayam Kumar. (27 June-2 July 2016). Securing Docker Containers from Denial of Service (DoS) Attacks. 2016 IEEE International Conference on Services Computing (SCC).
[5] Bo Yang, Anca Sailer, Siddharth Jain, Angel E. Tomala-Reyes, Manu Singh, Anirudh Ramnath. (2-7 July 2018). Service Discovery Based Blue-Green Deployment Technique in Cloud Native Environments. 2018 IEEE International Conference on Services Computing (SCC).

延伸閱讀