What is Platform-as-a-Service

ในหัวข้อนี้จะมาอธิบายความหมายของคำว่า 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