ในหัวข้อนี้จะมาอธิบายความหมายของคำว่า Platform as a Service หรือที่เรารู้จักกันในชื่อย่อว่า PaaS แม้ปัจุบันคำจัดกัดความของคำว่า Cloud Computing และประเภทของแต่ละประเภทยังคงสร้างความสับสนให้ผู้ใช้งานกันอยู่ในปัจุบัน โดยบริการของ Ruk-Com Cloud นั้นจัดว่าเป็นการให้บริการแบบ PaaS ซึ่งในความหมายคือ เราให้บริการชุดเครื่องมือสำหรับสร้าง Application ที่มีเครื่องมือสำหรับ DevOps / SysAdmin ช่วยลดความซับซ้อนของการทำงาน รองรับการขยายตัวอย่างไม่จำกัด รองรับกับเทคโนโลยีในปัจุบัน และมีการตั้งค่าพื้นฐานให้พร้อมใช้งาน ยกตัวอย่างเช่น ระบบ Database Cluster / Load Balancer / Container Technology / Docker / Kubernetes เป็นต้น
เรามาดูภาพรวมของ Platform as a Service จากหลายๆมุมมองโดยแยกเป็น 3 ส่วนดังนี้
- วัตถุประสงค์ (purpose)
- สิ่งที่เป็นนามธรรม (abstraction)
- ฟังก์ชั่นการทำงาน (functionality)
วัตถุประสงค์ของผู้ให้บริการ PaaS
ผู้ให้บริการ PaaS ในปัจจุบันจะนำเสนอแนวทางใหม่ ๆ ในการพัฒนาแอปพลิเคชันและโฮสติ้งในระบบคลาวด์โดยจะจัดหาเครื่องมือต่างๆที่สร้างขึ้นสำหรับบริการเฉพาะทาง หากพิจารณาจากภาพรวมจะแยกประเภทออกได้ 3 ประเภทด้วยกันได้แก่ วัตถุประสงค์ทั่วไป (general-purpose), สิ่งที่เกิดขึ้นใหม่ (emerging), สิ่งที่พัฒนาขึ้นมาเป็นพิเศษ (specialized)
General-Purpose สำหรับบริหารจัดการแอปพลิเคชันทั่วไปทั้งแบบ Stateful และแบบ N-Tier รองรับงานจำนวนมากๆได้และสามารถเพิ่มลดทรัพยากรณ์ได้ตามความต้องการด้วยเทคโนโลยีสมัยใหม่ รวมถึงรองรับการทำงานของ stateless , cloud-native, microservices อีกทั้งยังช่วยให้ลดการใช้งานของทรัพยากรณ์บุคคลลงไปอย่างมหาศาล
Emerging สร้างแนวทางการให้บริการรูปแบบใหม่ๆสู่ตลาด มักใช้สำหรับงานเฉพาะทาง หรือแอปพลิเคชันรูปแบบใหม่ ยกตัวอย่างเช่นการทำงานแบบ Serverless , การประมวลผลแบบกระจาย (distributed processing) , machine learning และอื่นๆอีกมากมาย
Specialized ตัวแพลตฟอร์มจะสร้างมาสำหรับงานเฉพาะทางที่มีความต้องการสูงในตลาด เช่นแพลตฟอร์ม Ecomerce สำเร็จรูป, การประมวลผล Big Data เพื่องานธุรกิจ ซึ่งแพลตฟอร์มลักษณะนี้จะถูกเรียกเป็นหมวดหมู่ย่อยๆลงไปอีกเช่น CMSaaS, eCommerce-as-a-Service, DBaaS (Database as a service), BPaaS (Business Process as a Service), Firewall as a service และอื่นๆอีกมากมาย
สิ่งที่เป็นนามธรรม (Abstraction)
โซลูชั่นของ PaaS เริ่มมุ่งเน้นมากขึ้นเรื่อยๆในเรื่องของระบบจัดการทุกอย่างแบบอัตโนมัติของการ Deploy แอปพลิเคชันและกระบวนการทำ CI/CD ต่างๆแบบครบถ้วน สิ่งต่างๆเหล่านี้จะช่วยลดงานและลดความผิดพลาดของนักพัฒนาและผู้ดูแลระบบได้อย่างมาก ตัวอย่างเช่น การตั้งค่า Server หรือ Storage ,การดูแลในส่วนของความปลอดภัย, การทำ auto scaling, load balancing และอื่นๆอีกมากมาย
ฟังก์ชั่นการทำงาน (Functionality)
เราสามารถแยกฟังก์ชั่นการทำงานของ PaaS ออกเป็น 3 หมวดหมู่ใหญ่ๆได้ดังนี้
- Deployment Automation
PaaS จำเป็นจะต้องมีเครื่องมือที่ใช้ในการ Deploy และจัดการ life cycle ของแอปพลิเคชันที่ใช้งานง่ายๆ ใช้เวลาในการเรียนรู้ไม่มาก เช่นการทำเครื่องมือ “One Click Auto install” , “git-push” รวมถึงการทำ pre-configuration , CI/CD และเครื่องมือที่ใช้บริหารจัดการโปรเจค - Infrastructure Management
PaaS ยังมุ่งเน้นไปที่การตั้งค่า Infrastructure สำหรับงานต่างๆและจำเป็นจะต้องมีเครื่องมือให้ผู้ใช้งานสามารถดูแล Infrastructure ด้วยตัวเองแบบง่ายๆเช่น ระบบ Monitoring, ระบบ Health check , Security, performance check, การควบคุมค่าใช้จ่าย รวมถึงเครื่องมือที่ช่วยให้อัพเกรดหรือ MA ระบบได้ง่าย - Container Orchestration
อีก 1 ความท้าทางของ PaaS คือการบริหารจัดการ Container ที่ต้องการทั้งความเร็ว,ความปลอดภัย,และต้องพร้อมใช้งานอยู่ตลอดเวลา กรณีมี Container ที่เสียหาย หรือใช้งานไม่ได้จะต้องมีระบบการ recovery กลับมาให้ใช้งานได้แบบอัตโนมัติ หากต้องการขยายระบบก็จะต้องดำเนินการได้ทันที
การเลือกใช้งาน PaaS
กรณีที่องค์กร หรือ ท่าน ต้องการจะเลือกใช้งาน PaaS ทางทีมงาน Ruk-Com แนะนำให้พิจารณาเป็นหัวข้อดังนี้
- PaaS ที่จะเลือกมาใช้งานนั้นซัพพอตกับเทคโนโลยีเดิมหรือไม่
- ภาษาที่พัฒนารองรับหรือไม่
- แผนในอนาคตทั้งเรื่องของการ Programing Lanuage และ Software stack ที่ใช้
- แนะนำให้หลีกเลี่ยง vendor lock-in
- ควรบริหารจัดการทุกอย่างได้ด้วยตัวเองผ่านแพลตฟอร์ม
- ค่าใช้จ่ายในระยะยาว
- ทีมงาน Support