DevOps¶
หลักการ แนวปฏิบัติ และเครื่องมือของ DevOps ปรัชญาของ DevOps กระบวนการอัตโนมัติ และเทคโนโลยีที่เกี่ยวข้อง วงจรการส่งมอบซอฟต์แวร์ การควบคุมเวอร์ชัน การทดสอบอัตโนมัติ Pipelines, Containerization และ Orchestration, แพลตฟอร์มคลาวด์, Infrastructure as Code เครื่องมือสำหรับการเฝ้าระวังและบันทึกข้อมูล
ผลลัพธ์การเรียนรู้¶
ทำความเข้าใจหลักการและวัฒนธรรมหลักของ DevOps
ประยุกต์ใช้กลยุทธ์การควบคุมเวอร์ชันสำหรับการพัฒนาร่วมกัน
ออกแบบและสร้าง CI/CD Pipelines ที่แข็งแกร่งสำหรับการส่งมอบซอฟต์แวร์อัตโนมัติ
บรรจุรวม ปรับใช้และจัดการแอปพลิเคชันที่ใช้ Container ด้วยเครื่องมือ Orchestration
ประยุกต์ใช้หลักการ Infrastructure as Code (IaC) เพื่อจัดเตรียมและจัดการโครงสร้างพื้นฐาน
แผนการสอนรายสัปดาห์ (15 สัปดาห์)¶
สัปดาห์ที่ |
บรรยาย (1 ชั่วโมง) |
ปฏิบัติการ (2 ชั่วโมง) |
|---|---|---|
สัปดาห์ที่ 1 |
บทนำสู่ DevOps และวัฒนธรรม (Introduction to DevOps & Culture)
|
ตั้งค่าสภาพแวดล้อมและ Git พื้นฐาน
|
สัปดาห์ที่ 2 |
การควบคุมเวอร์ชันด้วย Git (Version Control with Git)
|
ฝึกฝน Git และ GitHub
|
สัปดาห์ที่ 3 |
บทนำสู่ Containerization ด้วย Docker (Introduction to Containerization with Docker)
|
ติดตั้ง Docker และทดลองใช้งาน
|
สัปดาห์ที่ 4 |
การจัดการ Docker Images และ Volumes (Docker Images & Volumes Management)
|
สร้าง Dockerfile ที่ซับซ้อนขึ้นและ Volume
|
สัปดาห์ที่ 5 |
การประกอบแอปพลิเคชันด้วย Docker Compose (Application Assembly with Docker Compose)
|
สร้าง Multi-container Application ด้วย Compose
|
สัปดาห์ที่ 6 |
บทนำสู่ Continuous Integration (CI) (Introduction to Continuous Integration)
|
สร้าง CI Pipeline ด้วย GitHub Actions
|
สัปดาห์ที่ 7 |
Continuous Delivery (CD) และ Deployment (CD & Deployment)
|
ขยาย GitHub Actions สู่ CD
|
สัปดาห์ที่ 8 |
Infrastructure as Code (IaC) ด้วย Ansible (IaC with Ansible)
|
ติดตั้งและใช้งาน Ansible พื้นฐาน
|
สัปดาห์ที่ 9 |
การจัดการ Configuration ด้วย Ansible (Configuration Management with Ansible)
|
สร้าง Ansible Roles และใช้ Vault
|
สัปดาห์ที่ 10 |
บทนำสู่ Container Orchestration ด้วย Kubernetes (Introduction to Container Orchestration with Kubernetes)
|
ติดตั้ง Minikube/K3s และ Deploy Pod
|
สัปดาห์ที่ 11 |
การจัดการ Kubernetes Workloads (Kubernetes Workload Management)
|
Deployments, Ingress และ ConfigMaps ใน K8s
|
สัปดาห์ที่ 12 |
การเฝ้าระวังและการบันทึกข้อมูล (Monitoring & Logging)
|
ติดตั้ง Prometheus และ Grafana
|
สัปดาห์ที่ 13 |
Advanced Monitoring & Troubleshooting (การเฝ้าระวังขั้นสูงและการแก้ไขปัญหา)
|
ตั้งค่า Alerting และฝึก Troubleshooting
|
สัปดาห์ที่ 14 |
Security ใน DevOps (DevSecOps) และ Best Practices
|
Image Scanning และการอภิปรายความปลอดภัย
|
สัปดาห์ที่ 15 |
สรุปและโครงงานกลุ่ม/นำเสนอ (Course Wrap-up & Project Presentation)
|
นำเสนอโครงงานและอภิปราย
|
สัดส่วนการประเมินผล¶
การมีส่วนร่วมในชั้นเรียน: 5%
งานบ้านและแบบฝึกหัด: 45%
โครงงานรายวิชา: 30%
การนำเสนอและรายงาน: 20%
หัวข้อหลัก |
แหล่งข้อมูล / เอกสาร |
คำอธิบายและลิงก์ |
|---|---|---|
1. Git และ Version Control |
Pro Git Book (Online Version) |
หนังสือ Pro Git เป็นแหล่งข้อมูลที่ครอบคลุมและละเอียดที่สุดเกี่ยวกับ Git ตั้งแต่พื้นฐานไปจนถึงขั้นสูง มีให้อ่านฟรีออนไลน์ เป็นภาษาอังกฤษ |
GitHub Docs |
เอกสารอย่างเป็นทางการของ GitHub ที่สอนวิธีการใช้งาน GitHub ตั้งแต่การสร้าง Repository, การ Pull Request ไปจนถึงฟีเจอร์อื่นๆ ที่เกี่ยวข้องกับการทำงานร่วมกัน ลิงก์: https://docs.github.com/ |
|
Git Cheat Sheet (PDF) |
สรุปคำสั่ง Git ที่ใช้งานบ่อยๆ พิมพ์ออกมาแปะไว้ข้างโต๊ะได้เลย ลิงก์: https://github.github.com/training-kit/downloads/github-git-cheat-sheet.pdf |
|
2. Docker และ Containerization |
Docker Documentation |
เอกสารทางการจาก Docker เป็นแหล่งข้อมูลที่ดีที่สุดในการเรียนรู้ Docker ทั้งแนวคิด, การใช้งาน Docker CLI, Dockerfile และ Docker Compose ลิงก์: https://docs.docker.com/ |
Play with Docker Classroom |
แพลตฟอร์มแบบอินเทอร์แอคทีฟที่ให้คุณทดลองใช้ Docker ในเบราว์เซอร์ได้ฟรี ไม่ต้องติดตั้งอะไรในเครื่อง เหมาะสำหรับการฝึกปฏิบัติเบื้องต้น |
|
3. CI/CD ด้วย GitHub Actions |
GitHub Actions Documentation |
เอกสารทางการของ GitHub Actions ซึ่งละเอียดและมีตัวอย่างการสร้าง Workflow สำหรับสถานการณ์ต่างๆ |
Awesome GitHub Actions |
แหล่งรวม Actions สำเร็จรูปและ Workflow ตัวอย่างมากมายจากชุมชน ช่วยให้เห็นไอเดียและนำไปปรับใช้ได้ง่ายขึ้น |
|
4. Infrastructure as Code (IaC) ด้วย Ansible |
Ansible Documentation |
เอกสารทางการของ Ansible ที่อธิบายตั้งแต่พื้นฐาน, การเขียน Playbook, Modules ต่างๆ ไปจนถึงการจัดการ Roles และ Vaults |
Ansible Tutorials (Red Hat) |
Red Hat (เจ้าของ Ansible) มีบทเรียนและ Lab ให้ทดลองทำ ช่วยให้เข้าใจการใช้งานจริงได้ดีขึ้น ลิงก์: https://www.ansible.com/resources/ansible-getting-started-labs-tutorials |
|
5. Kubernetes และ Container Orchestration |
Kubernetes Documentation |
เอกสารทางการของ Kubernetes ที่ครอบคลุมทุกแง่มุมของการใช้งาน K8s ตั้งแต่แนวคิดพื้นฐานไปจนถึงการจัดการ Cluster ที่ซับซ้อน |
Kubernetes by Example (Red Hat) |
บทเรียนพร้อมตัวอย่างโค้ดที่ช่วยให้เข้าใจ Components ต่างๆ ของ Kubernetes ได้ง่ายขึ้นผ่านการลงมือปฏิบัติจริง ลิงก์: https://developers.redhat.com/products/openshift/kubernetes-by-example |
|
Minikube Documentation |
เอกสารสำหรับ Minikube ซึ่งเป็นเครื่องมือสร้าง Kubernetes cluster บนเครื่องส่วนตัว เหมาะสำหรับการเรียนรู้และพัฒนา |
|
6. Monitoring และ Logging (Prometheus, Grafana) |
Prometheus Documentation |
เอกสารทางการของ Prometheus อธิบายแนวคิด, การติดตั้ง, การตั้งค่า Alerting และ PromQL (ภาษาสำหรับ Query ข้อมูล) ลิงก์: https://prometheus.io/docs/ |
Grafana Documentation |
เอกสารทางการของ Grafana ครอบคลุมการสร้าง Dashboard, การเชื่อมต่อ Data Sources และการทำ Alerting |