นี่คือสรุปเนื้อหาโดยละเอียดจากการบรรยายของคุณเม (Cloud Engineer จาก Krungsri Nimble) โดยแบ่งเป็นหัวข้อหลักพร้อมรายละเอียดเชิงลึกครับ
-
DevOps คือวัฒนธรรม: ไม่ใช่แค่ชื่อตำแหน่ง แต่เป็นกระบวนการที่ทีม Development (ผู้เขียนโค้ด/ออกแบบ) และทีม Operation (ผู้วางระบบเซิร์ฟเวอร์) ทำงานร่วมกันเพื่อลดช่องว่าง (Gap) ในการทำงาน
-
CI (Continuous Integration): คือการนำโค้ดที่นักพัฒนาเขียนมา Build และตรวจสอบคุณภาพ (Code Quality) รวมถึงหาข้อบกพร่องของซอฟต์แวร์โดยอัตโนมัติ
-
CD (Continuous Deployment & Delivery):
-
Deployment: การนำแอปพลิเคชันขึ้นเซิร์ฟเวอร์โดยอัตโนมัติหลังจากผ่านขั้นตอน CI
-
Delivery: ความสามารถในการส่งมอบงานให้ลูกค้าได้อย่างต่อเนื่องและรวดเร็ว
-
Infrastructure as Code (IaC): การจัดการโครงสร้างพื้นฐาน (เช่น VM หรือ Server) ผ่านการเขียนโค้ดแทนการกดตั้งค่าด้วยมือ
-
ช่วยให้เห็นประวัติการแก้ไขผ่าน Git (Version Control)
-
ลดความผิดพลาดจากมนุษย์ (Human Error) และสามารถทำซ้ำ (Reproducible) ได้ง่าย
-
ข้อดีของ Cloud: มีความยืดหยุ่นสูง จ่ายตามการใช้งานจริง (Pay-per-use) และขยายระบบ (Scale) ได้รวดเร็ว
-
การเพิ่มทรัพยากรบน Cloud ทำได้ในไม่กี่นาที ในขณะที่ On-premise อาจใช้เวลาจัดซื้อและติดตั้งนาน 1-2 เดือน
-
ประเภทของ Cloud:
-
Public Cloud: เข้าถึงได้ทั่วโลกผ่านอินเทอร์เน็ต เช่น AWS, Azure, Google Cloud
-
Local Cloud: ผู้ให้บริการภายในประเทศ เช่น INET, AIS, True IDC
-
Private Cloud: ระบบที่ล้อมรั้วไว้ใช้เฉพาะในองค์กรเพื่อความปลอดภัยสูงสุด ไม่สามารถเข้าถึงจากอินเทอร์เน็ตทั่วไปได้
-
Hybrid Cloud: การใช้งานร่วมกันระหว่าง Public และ Private Cloud
-
Service Models:
-
IaaS (Infrastructure as a Service): เช่าใช้ทรัพยากรพื้นฐาน เช่น Storage, Network และ VM
-
PaaS (Platform as a Service): เช่าใช้แพลตฟอร์มสำหรับรันแอปพลิเคชัน เช่น Google Service หรือ App Service
-
SaaS (Software as a Service): ซอฟต์แวร์สำเร็จรูปพร้อมใช้งาน เช่น Office 365, อีเมล, ปฏิทิน
-
เครื่องมือหลัก (Stack):
-
GitLab: ใช้เก็บ Source Code และทำ Version Control
-
Jenkins: ใช้เป็นเครื่องมือหลักในการรัน Pipeline สำหรับ Build และ Deploy
-
Harbor: ระบบเก็บ Docker Image แบบ Private (ใช้แทน Docker Hub เพื่อความปลอดภัยและความเป็นส่วนตัวขององค์กร)
-
SonarQube: ตรวจสอบคุณภาพโค้ด (Code Smell/Bugs) โดยทีมจะตั้งเกณฑ์ว่าต้องได้คะแนน "A" เท่านั้นถึงจะผ่าน
-
การสแกนความปลอดภัย: ใช้ Dependency Check เพื่อค้นหาช่องโหว่ (CVE) ใน Docker Image ก่อนนำไปใช้งาน
-
บริการ AWS ที่สำคัญ:
-
VPC (Virtual Private Cloud): เปรียบเสมือนการแบ่งห้องหรือคณะในมหาวิทยาลัย เพื่อแยกโปรเจกต์ออกจากกัน
-
EC2: เครื่องเซิร์ฟเวอร์เสมือน (VM) สำหรับรันระบบ
-
S3: ระบบเก็บข้อมูลประเภท Object Storage (ไฟล์รูปภาพ, วิดีโอ)
-
EKS (Elastic Kubernetes Service): บริการจัดการ Kubernetes บน AWS
-
หัวใจสำคัญ: ทำหน้าที่เป็น Orchestrator หรือวาทยกรที่คอยควบคุมจังหวะการทำงานของคอนเทนเนอร์จำนวนมาก
-
ความสามารถหลัก:
-
Auto Scaling: เพิ่ม/ลดจำนวนโหนดอัตโนมัติตามโหลดของผู้ใช้งาน (เช่น เพิ่มโหนดในช่วงเวลาที่คนเข้าแอปธนาคารเยอะๆ และลดลงเมื่อคนใช้น้อยเพื่อประหยัดค่าใช้จ่าย)
-
Self-Healing: เมื่อระบบตรวจพบว่าคอนเทนเนอร์ทำงานผิดปกติ (Unhealthy) จะทำการลบและสร้างใหม่ให้เองโดยอัตโนมัติ
-
Zero Downtime: การอัปเดตเวอร์ชันใหม่จะทำแบบค่อยเป็นค่อยไป ทำให้ผู้ใช้งานไม่รู้สึกว่าระบบหยุดทำงาน
-
Load Balancing: กระจายการทำงานไปยังคอนเทนเนอร์หลายๆ ตัวเพื่อให้ระบบรับโหลดได้ดีขึ้น
-
SLA (Service Level Agreement): ธนาคารมีข้อตกลงระดับการให้บริการที่เข้มงวด เช่น ระบบล่มได้ไม่เกินกี่นาทีต่อปี (หากเกินอาจมีค่าปรับหรือผลกระทบสูง)
-
DC/DR (Data Center & Disaster Recovery):
-
DC: ศูนย์ข้อมูลหลัก
-
DR: ศูนย์ข้อมูลสำรองกรณีเกิดภัยพิบัติ โดยปกติธนาคารจะมีสำรองไว้อย่างน้อย 3 แห่ง
-
ลำดับการซัพพอร์ต (Support Tiers):
-
Tier 1: Call Center รับเรื่อง
-
Tier 2: ทีม Monitor ตรวจสอบเบื้องต้น
-
Tier 3: ทีม Engineer (เช่น ทีมของคุณเม) ที่เป็นคน Implement และแก้ปัญหาเชิงลึก รวมถึงสลับระบบไปยังศูนย์สำรอง
-
การสื่อสาร (Communication): เป็นทักษะอันดับหนึ่ง เพราะต้องทำหน้าที่เป็นคนกลางในการ "แปลภาษาเทคนิค" ให้เป็น "ภาษาคน" เพื่อคุยกับทีม PM, Business และ Developer ให้เข้าใจตรงกัน
-
การเรียนรู้ด้วยตัวเอง: ทักษะการรีเสิร์ชเครื่องมือใหม่ๆ อย่างรวดเร็วเป็นสิ่งจำเป็น เพราะเทคโนโลยี Cloud เปลี่ยนแปลงตลอดเวลา
-
ความรู้พื้นฐาน: ควรศึกษาเรื่อง Network (OSI 7 Layers) ให้แม่นยำ เพราะจะช่วยให้ Debug ปัญหาได้ง่ายขึ้นมาก