Cloud native คือรูปแบบทางเลือกใหม่ในการพัฒนาแอปพลิเคชันโดยออกแบบมาเพื่อสนับสนุนการประมวลผลในรูปแบบคลาวด์ (Cloud computing model) เช่น รองรับความยืดหยุ่นตาม Workload ของงาน รองรับการใช้ทรัพยากรร่วมกัน และมีแนวคิดในการนำเทคโนโลยีมาช่วยองค์กรให้สร้างและรันระบบที่ปรับเพิ่ม/ลดขนาดได้ง่ายขึ้น (Scalable)
Cloud native รองรับได้ทุก environment โดยแนวคิดและเทคนิคนี้คือการทำให้ระบบเป็นอิสระจากกัน (Loosely coupled) สามารถ Recovery ระบบจากความผิดพลาดต่างๆ ได้ (Resilient) และสามารถจัดการได้ง่าย (Manageable) รวมทั้งตรวจดูการทำงานได้ (Observable)
Cloud Native ประกอบด้วย 4 เรื่องหลัก ดังนี้
- Microservice
เป็นแนวคิดในการแยกโมดูลการทำงานแต่ละส่วนให้เป็นอิสระจากกัน โดยแต่ละส่วนมีหน้าที่จัดการข้อมูลของตัวเองและสามารถสื่อสารระหว่างไมโครเซอร์วิสผ่าน APIs ได้
หลักการออกแบบนี้จะช่วยให้การพัฒนาแอปพลิเคชันมีความยืดหยุ่นมากยิ่งขึ้น สามารถแบ่งงานให้กับหลายๆ ทีมเพื่อช่วยกันพัฒนาแอปพลิเคชันได้ ส่งผลให้สร้างแอปพลิเคชันได้เร็วยิ่งขึ้น และยังสามารถปรับปรุงหรือแก้ไขแอปพลิเคชันได้ง่าย ไม่ส่งผลกระทบทำให้แอปพลิเคชันทั้งระบบต้องหยุดทำงานระหว่างการแก้ไข
2. Container
การจัดการสภาพแวดล้อมให้แอปพลิเคชันสามารถทำงานได้โดยไม่จำเป็นต้องดำเนินการตั้งค่าใหม่ (Zero configure) ซึ่ง Cloud native จำเป็นจะต้องใช้เทคโนโลยี Container ในการติดตั้งแอปพลิเคชัน เพื่อช่วยจัดการขนาดพื้นที่จัดเก็บการติดตั้ง
ข้อดีของ Container เมื่อเทียบกับเทคโนโลยีเครื่องเสมือน (Virtual machine) ในรูปแบบเดิมคือ Container มีขนาดเล็กกว่ามากถึง 100 เท่า และการใช้ทรัพยากรในการประมวลผลตามจริงส่งผลให้สามารถขยายการใช้งานแอปพลิเคชันได้มากขึ้น ภายใต้ความสามารถด้านฮาร์ดแวร์เท่าเดิม
สำหรับการใช้งานบนคลาวด์ด้วยคุณลักษณะของ Container ที่กล่าวมาข้างต้นจะให้สามารถย้ายการทำงานระหว่าง Public / Private / Hybrid Cloud ได้อย่างสะดวกรวดเร็ว รวมถึงมีการคิดค่าใช้จ่ายตามการใช้งานจริงซึ่งช่วยให้ประหยัดงบประมาณ
3. Continuous Delivery
การส่งมอบแอปพลิเคชันแบบอัตโนมัติ ช่วยตอบสนองความต้องการของธุรกิจอย่างรวดเร็ว โดยการใช้งานระบบ Continuous Delivery จะช่วยให้สามารถคาดการณ์เวอร์ชั่นถัดไปที่จะนำมาใช้งานได้ นอกจากนี้การส่งมอบแอปพลิเคชันจะทำผ่านระบบอย่างต่อเนื่อง ส่งผลให้ธุรกิจตอบรับความต้องการของลูกค้าได้รวดเร็วมากยิ่งขึ้น
4. Development and Operation Culture
DevOps (Development Operations) คือการทำงานเป็นทีมเพื่อลดข้อจำกัดของสายบังคับบัญชาภายในองค์กร รูปแบบการทำงานจะเป็นการเปลี่ยน Mind Set ของทีมงานฝั่ง Developer และ Operations ให้มีเป้าหมายร่วมกันในการพัฒนา ไปจนถึงการส่งมอบแอปพลิเคชันให้กับลูกค้า ทำให้ธุรกิจมีการเติบโตได้เร็วยิ่งขึ้นและใช้ทรัพยากรที่มีอย่างจำกัดได้คุ้มค่ามากที่สุด
ประโยชน์และข้อดีของการใช้งาน Cloud Native
- สามารถทำงานได้ในทุก Infrastructure ไม่ว่าจะเป็น Cloud รูปแบบใด หรือแบรนด์ไหน ทำให้ขยับขยายหรือย้าย Platform ได้โดยมีข้อจำกัดน้อย และทำได้ทันทีไม่ต้องเสียทรัพยากรและเวลาเพิ่ม
- สามารถทำการ Scale up และ Scale down ได้อย่างรวดเร็ว
- สามารถคุยกันระหว่าง Services ผ่านทาง API (Application Programming Interface)
- สามารถทำให้ Workload บน Cloud เป็นแบบอัตโนมัติมากที่สุด เพื่อให้ออกแอปพลิเคชันได้โดยไม่ลดคุณภาพของงานลง
- สามารถให้ทีม Development กับ Operations ทำงานร่วมกันได้โดยไม่ต้องจำกัดหน้าที่ของแต่ละคนในทีม (สร้าง DevOps Culture)
- สามารถควบคุมการใช้งานและการขยายแอปพลิเคชันตามการใช้งานจริง ธุรกิจจะควบคุมค่าใช้จ่ายในการลงทุน (Capital Expenditures) ด้านไอทีได้ เช่น ในกรณี On-Premise สามารถจัดซื้อฮาร์ดแวร์รองรับการขยายแอปพลิเคชัน และยังควบคุมค่าใช้จ่ายในการดำเนินการ (Operation Expenditures) ได้ เช่น การเช่า Cloud ตามการใช้งานจริง
บทสรุป
Cloud native เป็นรูปแบบของการพัฒนาแอปพลิเคชันเพื่อมารองรับ Cloud computing model หรือการประมวลผลในรูปแบบคลาวด์ แอปพลิเคชันจะถูกออกแบบมาให้มีความยืดหยุ่นเพื่อให้เข้ากับการประมวลผลบนคลาวด์ที่ทันสมัยและสามารถปรับขนาดได้ตามต้องการ
ในยุคดิจิทัลที่เกิดความเปลี่ยนแปลงด้วยปัจจัยที่หลากหลาย Cloud Native เป็นแนวคิดที่ก้าวขึ้นมามีผลกับการใช้งาน Cloud Computing ของธุรกิจ ซึ่งทำให้เกิดเทคโนโลยีใหม่ๆ เพื่อรองรับการแข่งขันของตลาดที่ต้องใช้ต้นทุนให้เกิดความคุ้มค่าที่สุด
ที่มา: