⌛ ปฏิเสธไม่ได้เลยว่าอาชีพ DevOps ก็กำลังมาแรงมากในยุคนี้เช่นกัน อีกทั้งยังเป็นอาชีพที่มีค่าตัวสูงมากๆ ทำให้ใครหลายๆ คนจึงอยากทำอาชีพนี้
.
💡 DevOps พูดกันง่ายๆ คืออาชีพที่จะช่วยเชื่อมกระบวนการพัฒนาโปรแกรม ไปจนถึงขั้น Deploy รวมถึงการติดตามสถานะการทำงานของโปรแกรม และนำมาปรับปรุงพัฒนาให้มีประสิทธิภาพยิ่งขึ้น
.
👉 สิ่งสำคัญที่ต้องเรียนรู้หากอยากจะทำอาชีพนี้มีอะไรบ้าง? วันนี้แอดสรุปคร่าวๆ มาให้แล้วจ้า
.
✨ 1) ต้องมีแนวคิดในการพัฒนาซอฟต์แวร์
ซึ่ง DevOps อาจจะไม่ต้องเขียนโปรแกรมโดยตรง แต่ต้องมีความรู้ที่ครอบคลุมและทำงานร่วมกับทีม Developer เพื่อพัฒนาปรับปรุงโปรแกรมให้เป็นไปตาม Flow มากที่สุด
.
✨ 2) ต้องมีความรู้พื้นฐาน Linux
การทำงานจะต้องจัดเตรียมโครงสร้างต่างๆ ซึ่งส่วนใหญ่จะทำบนเซิร์ฟเวอร์ และเซิร์ฟเวอร์ส่วนใหญ่ก็จะใช้ OS เป็น Linux ดังนั้นจึงต้องมีความรู้ด้านนี้มาบ้าง เช่น คำสั่ง Command Line พื้นฐาน, SSH Key เป็นต้น
.
✨ 3) Networking & Security
เช่นการ Configure Firewalls, HTTP/HTTPS, โครงสร้าง IP addresses และ DNS เป็นต้น
.
✨ 4) Docker
DevOps ส่วนใหญ่จะใช้งาน Docker กันเป็นหลัก หากใครยังไม่มีพื้นฐานสามารถเข้าไปเรียนได้ฟรีได้ที่ลิงค์นี้เลย >> https://www.youtube.com/watch?v=3c-iBn73dDE
.
✨ 5) CI/CD
เป็นกระบวนการ Monitor การพัฒนาแอปพลิเคชันแบบอัตโนมัติ ตั้งแต่การนำโค้ดมา Merge กัน ไปจนถึงการทดสอบเพื่อ Deploy ขึ้น Production ซึ่งเราควรเรียนรู้เครื่องมือต่างๆ ที่จะทำ CI/CD อย่างเช่น CI/CD pipeline, การ Set Up CI/CD, การใช้งาน Docker Image เป็นต้น
.
✨ 6) ผู้ให้บริการ Cloud
ซึ่งในหลายบริษัทใช้บริการโครงสร้าง Cloud สำเร็จรูป โดยที่ไม่ต้องออกแบบ IaaS เอง ซึ่งเราควรเรียนรู้ และใช้เครื่องมือต่างๆ ของระบบ Cloud นั้นๆ ไว้บ้าง ซึ่งที่ฮิตกันตอนนี้ก็มี AWS, Azure, และ Google Cloud เป็นต้น
✨ 7) Kubernetes
เป็นที่นิยมอย่างมากในการใช้จัดการ Containers บนเซิร์ฟเวอร์ต่างๆ และเราก็ควรเรียนรู้ว่ามันทำงานยังไง มีคำสั่งอะไรบ้าง หากใครสนใจอยากเรียนพื้นฐานการใช้งาน Kubernetes แบบฟรีๆ คลิกลิงค์ได้เลยจ้า >> https://www.youtube.com/watch?v=X48VuDVv0do
.
✨8) ภาษา Script
การจัดการแอปพลิเคชันแบบอัตโนมัติก็ต้องมีการเขียน Script เพื่อให้มันทำงานตาม Flow จึงจำเป็นที่จะต้องเขียนภาษา Script พื้นฐานให้เป็นด้วย เช่น Python, Ruby, NodeJS และ Go
.
✨ 9) การใช้งาน Git
จำเป็นต้องรู้โครงสร้าง และคำสั่งพื้นฐานในการใช้งาน Git เพื่อช่วยจัดการและติดตามการเปลี่ยนแปลงของโค้ด และการอัปเดตเวอร์ชันต่างๆ ก่อน Deploy ขึ้น Production
.
✨ 10) พื้นฐาน Infrastructure
ต้องรู้จักเครื่องมือต่างๆ ที่ใช้ในการจัดการ Infrastructure อย่างมีประสิทธิภาพ เช่น Ansible, Puppet, และ Chef เป็นต้น
.
หากใครมีประเด็นเพิ่มเติม หรือพี่ๆ คนไหนที่กำลังทำอาชีพนี้ มีสิ่งที่อยากจะแชร์ให้กับเพื่อนๆ หรือน้องๆ ที่สนใจ สามารถคอมเมนต์ไว้ใต้โพสนี้เลยนะคะ 😍
.
❤️ หวังว่าข้อมูลนี้จะเป็นประโยชน์กับเพื่อนๆ น้า
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
「azure pipeline」的推薦目錄:
- 關於azure pipeline 在 BorntoDev Facebook 的精選貼文
- 關於azure pipeline 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於azure pipeline 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於azure pipeline 在 microsoft/azure-pipelines-tasks - GitHub 的評價
- 關於azure pipeline 在 Integrate Your GitHub Projects With Azure Pipelines - Azure ... 的評價
- 關於azure pipeline 在 How to set up an Azure pipeline with Node JS 的評價
- 關於azure pipeline 在 Azure Pipeline job using container fails validation - Stack ... 的評價
- 關於azure pipeline 在 Azure Pipelines vs. GitHub Actions: Key Differences - Medium 的評價
azure pipeline 在 矽谷牛的耕田筆記 Facebook 的最佳解答
本篇文章是ㄧ個 Kubernetes 相關工具經驗分享文,作者認為即使是前端開發工程師也必須要瞭解一下 Kubernetes 這個容器管理平台,作者認為 k8s 基本上已經算是這個領域的標準(de-facto)。
因此作者於本篇文章介紹一些搭建一個 K8s 叢集時需要注意的工具,透過這些自動化工具來減少反覆動作的執行藉此簡化每天的工作流程。
工具包含
1. ArgoCD
2. MetalLB
3. External-secrets
4. Cert-manager
5. External-dns
Simplify deploying of new apps
作者大力推薦使用 ArgoCD 來簡化部署應用程式,作者提到一開始使用 ArgoCD 時也是感到無比煩感,因為心中一直存在要於 `GitLab CI/CD pipeline` 透過 kubectl apply 的方式來部署應用程式,並不想要導入其他的元件來加入更多的複雜性。
然而當作者嘗試 ArgoCD 後,第一眼發現的是其架構不如想像中複雜,完全依賴 GitOps 的原則來簡化整個部署流程,同時透過一個 WebUI 的方式來呈現當前應用程式的部署狀況
Load balancer for your on-prem clusters
地端環境的 Load-Balancer,沒什麼好說就是 MetalLB。
Managing your secrets
Secrets 是 Kubernetes 內一個非常重要的物件,然而大部分的團隊都會思考如何有效且安全的去管理 Kubernetes 內的 Secret 物件。雲端供應商譬如 AWS Secrets Manager, Azure Key Vault 或是廣受熱門的 HashiCorp Vault.
作者推薦使用 external-secrets operator 這個專案來將外部的管理系統給同步到 Kubernetes 內並且產生對於的 secrets。
詳細全文可以參考下列原文
https://chris-blogs.medium.com/tools-that-should-be-used-in-every-kubernetes-cluster-38969ed3e603
azure pipeline 在 矽谷牛的耕田筆記 Facebook 的最佳解答
今天這篇文章的內容比較主觀,是作者列出自己認為 DevOps/SRE 2021 需要注意的工具
1. Managing Cloud Services via Kubernetes CRDs.
三大公有雲廠商目前也都推出透過 CRD 的方式來管理 Cloud Services,譬如 AWS Controllers for Kubernetes, Azure Service Operator, GCP Config Connector。一旦這些工具逐漸成熟,管理人員可以使用管理 kubernetes 的方式一併來管理相關的雲端資源。
個人看法:目前大家習慣用 Terraform, Ansible 等 IaC 等工具來管理,如果往這個方向走去,等於就是逐漸使用一個方式去管理一切。
此外也滿好奇最初的 Kubernetes Service Catalog 搭配 Broker 的方式其實也已經可以用 Yaml 等方式來管理雲端資源了,沒有仔細看 Service Catalog 目前的發展狀況,這兩者的差異有哪些
2. Pulumi
Terraform 作為 IaC 工具的龍頭老大勢必會有挑戰者對其虎視眈眈, Pulumi 這家公司就是挑戰者之一,該公司的產品提供的 IaC 工具能夠採用常見的程式語言來撰寫,避免所有開發者都要額外學習全新的 DSL。此外 Pulumi 今年度也有推出自己的 GitOps 相關工具,不過儘管如此,目前其使用社群都還是不及 Terraform.
個人看法: 當 CDK + Terraform 整合逐漸穩定後, Pulumi 的特色就會減少一項,這場戰爭目前還是看好 Terraform
3. Terragrunt & TFSEC
Terraform 因為其開放原始碼社群的緣故,有愈來愈多的整合工具來幫忙 Terraform 去處理不同的議題,這種合作模式會讓 Terraform 的功能愈來愈強大。 Terrafrunt 則是一個用來管理大型 Terraform 專案的好工具,能夠幫助開發者更友善的管理眾多設定檔案。此外 TFSEC 則是一個針對安全性議題的整合工具,幫助開發者透過靜態分析的方式去檢查當前 Terraform 的內容是否會有潛在的安全性問題。隨者 DevSecOps 的概念慢慢出來,開發與維運者也要多注重些關於安全性的整合工具。
4. Tekton
CI/CD 市場上能夠選擇的工具實在太多,而 Tekton 則是一個基於 Kubernetes 的 CI/CD pipeline 系統,相對於大部分的系統是透過單一 Yaml 去描述 Pipelin, Tekton 則是透過 CRD 的方式於去定義每個 Stage,其帶來的好處就是相同的 stage 可以重複利用,不需要針對每個 pipeline 都去重新設計
個人看法: Tekton 的架構有好有壞,隨者所有的 stage 都變成單一小CRD,管理者想要一目瞭然整個 pipeline 變得非常繁瑣,使用上也常搭配 JenkinsX 來提供複雜的 CI/CD 功能
5. Trivy
如同前面提過,DevSecOps 的概念出來後,任何部分都要去考慮安全性,而 Container Image 本身也是個不容忽視的地方。因此也有不少的開源專案針對 Container Image 來進行掃描與偵測。有些 Contianer Image Registry 直接整合相關的掃描工具,自動掃描所有更新的 Image 並且提供報告給管理人員。 掃描工具諸如 Trivy, Falco, Clair, Anchore Engine 等都值得大家多多注意。
6. ShellCheck
儘管現在有愈來愈多的工具幫助開發者來管理整個叢集,然而 shell script 的定位還是不可動搖,太多時候我們還是需要自行撰寫相關的 shell scrtip 來完成一些任務。 ShellCheck 則是一個針對 shll script 的靜態分析工具,透過 lint 與常見錯誤等分析,讓開發者能夠寫出有更好品質且更好維護的 shell script.
7. Litmus
2011 Netflix 提出 Chaos Monkey 這類型的環境檢測工具,這方面的議題就沒有減少過,即是到了充滿 Kubernetes 的今日,還是有不少的開源專案或是商業平台在提供這方面的服務,譬如 chaoskube, kube-monkey, PowerfulSeal 以及 Gremlin.
作者這邊想要強調另外一套更容易使用且容易擴充的專案 Litmus,該專案基於 Kubernetes Operator 的概念去開發,透過 ChaosEngine, ChaosExperiment 以及 ChaosResult
原文: https://medium.com/dev-genius/technologies-tools-to-watch-in-2021-a216dfc30f25
azure pipeline 在 Integrate Your GitHub Projects With Azure Pipelines - Azure ... 的推薦與評價
Objectives. Install Azure Pipelines from the GitHub Marketplace. Integrate a GitHub project with an Azure DevOps pipeline. Track pull ... ... <看更多>
azure pipeline 在 microsoft/azure-pipelines-tasks - GitHub 的推薦與評價
Azure Pipelines Tasks. Tasks. Overview. This repo contains the tasks that are provided out-of-the-box with Azure Pipelines and Team Foundation Server. ... <看更多>