iT邦幫忙

2021 iThome 鐵人賽

DAY 1
0
DevOps

DevOps 好想學!新手也能打造雲端 Study Lab系列 第 1

Day01 - DevOps 技能樹怎麼點 ? 如何學 ?

前言

隨著學習 DevOps 的人越來越多,到底該如何進入 DevOps 世界 ? 本次鐵人賽想透過筆者自身經驗,整理出一套好上手的學習方式,以雲端為基礎,藉此免去建構環境的麻煩,並以 Lab 形式提供手把手的教學,實際體會建置 DevOps 流水線過程,希望讀者能透過本文,透過自身對軟體開發的實際需求,抽換學到的各式元件,打造屬於自己的 Study Lab !!

DevOps 介紹

DevOps

軟體生命週期分為多個階段,包含開發、測試、部屬等等,在每個階段都有專門負責的部門,要如何讓各部門人員能夠緊密協同作業,就需要可遵循的工作架構,而 DevOps 就是一種軟體開發架構,負責讓開發者 (Dev) 和維運人員 (Ops) 合作之間更順暢,不僅能加速整個開發過程,也能有效降低協作成本。

DevOps 目標 : 讓各階段的人員只專注於自己工作情況下也能緊密合作

DevOps 技能樹

具體的學習流程可以參考 DevOps Roadmap。要能熟悉使用 DevOps 各式應用,首先要了解開發者和維運人員各自工作內容,有了一定基礎後,就能體會 DevOps 在其中扮演的角色,這裡簡單整理出一些學習技能。

開發者 (Dev)

開發者重視的是建立出專案的能力(具現化系),不管是基本的 Coding 能力、開發框架、版控系統都是必備的,這邊列舉了一些常使用到的軟體開發技術。

  • 程式語言 ( Python、JavaScript、Go )
  • 開發框架 ( NodeJS、Laravel )
  • Git Wrokflow

維運人員 (Ops)

維運人員要能夠確保服務能夠正常運行,所以會需要 Infrastructure 的構建以及維護技術。

  • 基礎設施: 地端 Server、Cloud ( AWS、GCP、Azure )
  • 系統: Linux/Unix 、 Shell Script
  • 網路: TCP/IP 、 DNS 、 SSL/TLS/HTTPS

DevOps Tools

若是帶到整個軟體生命週期,兩個職位需要開始相互合作,各自的盲點也就會相繼浮現,如開發者不知道如何將專案帶入生產環境,維運人員不知道如何準確提供專案所需環境,為了消除開發者與維運人員的鴻溝,就需要使用到 DevOps 工具,最重要的如下。

  • Docker
  • Kubernetes
  • CI/CD Pipeline

本文要介紹什麼

本次系列文章將分為三個階段

  • DevOps基礎 - Google Cloud、Docker
  • CI、CD流水線 - Kubernetes 、 GitLab CI 、 ArgoCD
  • DevOps實戰 - 分別以開發者與維運人員的角度來構建專案

Diagram

這裡準備了會使用的所有程式碼。

一開始會利用 GCP 及 Docker 建置出基本服務,接著透過 GKE、GitLab CI、ArgoCD 打造 DevOps Pipeline ,最後用實際 NodeJS 專案,以開發者及維運人員的角度出發,了解當專案帶入 DevOps 架構下的工作流程。


下一篇
Day02 - GCP 介紹及環境建置
系列文
DevOps 好想學!新手也能打造雲端 Study Lab30

尚未有邦友留言

立即登入留言