10830574_418142598333086_2678415922263012096_o

ผู้ผลิตซอฟต์แวร์ในปัจจุบันจำนวนมากต่างก็พยายามบอกว่า ซอฟต์แวร์ของตัวเองเป็น Cloud และให้บริการบน Cloud แล้ว พอถามไปถามมาบางทีก็เป็นเพียงแค่ Web Application รันอยู่บน Server ของบริษัท บางรายก็แค่เปลี่ยนรูปแบบการคิดราคาซอฟต์แวร์จากการขาย License เป็นการเช่าแบบ  Subscription ที่จ่ายเป็นรายปี แต่รูปแบบ Architecture ของซอฟต์แวร์ยังเป็นแบบเดิม ซึ่งจากที่พบมาซอฟต์แวร์ส่วนใหญ่มักจะไม่ใช่ซอฟต์แวร์บน Cloud ที่เป็น SaaS อย่างแท้จริง

image

SaaS (Software as a Service) คือหนึ่งในสามรูปแบบของการให้บริการบน Cloud (อีกสองบริการคือ IaaS และ PaaS) หลักการของ Cloud ส่วนหนึ่งคือ On-Demand และ Resource Pooling ซึ่งซอฟต์แวร์แบบเดิมที่เป็น Client/Servcer Architecture หรือ Web Architecture มักจะไม่ได้ออกแบบมาในลักษณะแบบนี้ การทำซอฟต์แวร์แบบ SaaS ที่สำคัญที่สุดเรื่องหนึ่งคือการมีคุณสมบัติ Multi-Tenant ซึ่งจะช่วยในเรื่องของการทำ Demand Poolingโดย SaaS ที่แท้จริง (true-SaaS) จะต้องให้ผู้ใช้สามารถทำ configuration สำหรับใช้ซอฟต์แวร์ที่ต่างกันได้ แต่ฟังก์ชั่นของซอฟต์แวร์จะต้องเหมือนกันสำหรับผู้ใช้ทุกคน แต่ผู้ใช้แต่ละรายมีที่เก็บข้อมูลที่ต่างกัน การมี configuration  ที่แตกต่างกัน ไม่ได้หมายความว่าผู้ใช้แต่ละรายจะสามารถปรับซอฟต์แวร์  (customization) ให้มีฟังก์ชั่นต่างกัน ข้อสำคัญอีกอย่าง true-SaaS จะทำงานอยู่บนกลุ่มของ  Instance ชุดเดียวกัน ไม่ใช่แยก Instance ในแต่ละผู้ใช้ ซึ่งการมีสถาปัตยกรรมแบบ Multi-Tenant on same instance group จะทำให้ง่ายต่อการขยายระบบ (scalability) และทำให้เกิด Economy of Scale

ดังนั้นการพัฒนาซอฟต์แวร์เดิมขึ้น Cloud จึงจำเป็นต้องมีการปรับปรุงโปรแกรมเดิมหรือเรียกว่า Re-engineering เพื่อให้รองรับการทำ Multi-tenant ซึ่งนักพัฒนาซอฟต์แวร์จำนวนมากก็จะเลือกที่จะใช้ PaaS (Platform as a Sevice) อย่างบริการของ Microsoft Azure, IBM Bluemix, Google App Engine, Heroku หรือ Openshift  เพราะ PaaS จะช่วยทำให้การพัฒนา SaaS เป็นไปได้โดยง่าย เมื่อเทียบกับการใช้  IaaS (Infastructure as a Sevice) หรือการใช้ Private Cloud ของตัวเองที่จะต้องไปหาวิธีจัดการซอฟต์แวร์ให้รองรับ  Multi-tenant

แต่เนื่องจากการปรับซอฟต์แวร์เป็นเรื่องยากบริษัทซอฟต์แวร์ที่มีซอฟต์แวร์แบบ Client/Server  หรือ Web Architecture จึงเลือกที่จะย้ายซอฟต์แวร์ตัวเองไปรันบน IaaS ทีมีผู้ให้บริการอย่าง  Amazon Web Services, Window Azure, IBM SoftLayer หริอ  Digital Ocean ที่คิดค่าบริการแบบ Pay-as-you-go  ซึ่งผู้ให้บริการเหล่านี้มักจะมีบริการพร้อมที่จะรองรับการติดตั้งซอฟต์แวร์ที่มีสถาปัตยกรรมเป็น  Client/Server  และสามารถทำงานแบบ Auto-scale ได้ แต่ลักษณะการติดตั้งของบริษัทจะเป็นในรูปแบบที่ลูกค้าที่จะใช้ซอฟต์แวร์แต่ละรายจะมี  instance ที่ต่างกันถ้าบางรายใช้งานเยอะก็อาจจะมีหลาย Instance  ระบบแบบนี้จะเป็น Multi-instance  มากกว่าที่จะเป็น Multi-tenant ทำให้การขยายซอฟต์แวร์เป็นไปได้ยาก และบริษัทซอฟต์แวร์จะต้องใช้บริการของผู้ให้บริการ  IaaS รายใหญ่ๆเท่านั้นเพราะจะต้องสามารถรองรับ Instance  จำนวนมากที่แปรผันตามจำนวนผู้ใช้ได้ เราเรียกการบริการแบบนี้ว่า  SoSaaS (Same old Software, as a Service) ซึ่งแน่นอนราคาของ SoSaaS ถึงได้สูงกว่า  true SaaS  เพราะบริษัทซอฟต์แวร์ต้องมีต้นทุนการเช่า instance ที่สูงกว่า  (ระบบ Multi-tenant อาจมีผู้ใช้ 1,000 รายที่รันบน  100  instance  แต่ระบบ SoSaaS  จะต้องมีอย่างน้อย 1,000 instance สำหรับผู้ใช้ 1,000 ราย)

SoSaaS ก็มีข้อดีในการที่ทำให้ซอฟต์แวร์แบบเก่าสามารถขึ้นมาให้บริการบน  Cloud ได้ ซึ่งถ้าพิจารณากันจริงๆแล้ว ระบบนี้เป็นแบบ Managed Hosting  มากกว่า SaaS  แต่ก็มีข้อดีรายประการเช่น

  • ผู้ใช้สามารถที่จะใช้ Application เดิมได้โดยไม่ต้องมาเรียนรู้ Application ใหม่
  • บริษัทซอฟต์แวร์สามารถที่จะย้ายซอฟต์แวร์ขึ้น Cloud ได้โดยไม่ต้องเรียนรู้ทักษะการพัฒนาโปรแกรมใหม่ เป็นเพียงการติดตั้ง Middleware และ Software เดิมบน IaaS
  • ผู้ใช้สามารถเลือกที่จะให้ผู้ให้บริการปรับซอฟต์แวร์ (customization) ตามความต้องการได้
  • ระบบเสมือนเป็นแบบ  on-premise ที่ผู้ให้บริการสามารถที่จะบริหารจัดการเสมือนติดตั้ง server บนระบบ DataCenter ของตัวเองได้
  • ผู้ใช้สามารถจะวางแผนการ Upgrade ซอฟต์แวร์เองได้ ซึ่งต่างกับการ upgrade ซอฟต์แวร์ SaaS ที่ผู้ให้บริการจะต้อง Upgrade ให้ผู้ใช้ทุกคนพร้อมๆกันเพราะเป็นระบบแบบ  Multi-tenant
  • การบริหารระบบความปลอดภัยจะดีกว่าแบบ  SaaS  ที่ผู้ใช้รายจะใช้กลุ่มของ Instance ชุดเดียวกัน

แต่ SoSaaS  ก็มีข้อด้อยหลายประการเมื่อเทียบกับ  true SaaS  อาทิเช่น

  • ต้นทุนของผู้ให้บริการจะสูงกว่ามาก
  • การขยายระบบเป็นไปได้ยาก เพราะต้องขยายให้กับลูกค้าแต่ละราย ยกเว้นจะมีระบบ Auto-Scaling แต่ก็จะเพียงการเพิ่มหรือลด instance ตามที่ผู้ใช้กำหนด ซึ่งยังไม่ยิดหยุ่นแบบ true SaaS  ที่ผู้ใช้รายๆหลายอาจใช้ instance แต่ละตัวร้วมกัน
  • การบำรุงรักษายากกว่ามากเพราะบริษัทซอฟต์แวร์จะต้องมาดูแยกดูแลลูกค้าแต่ละรายแยกตาม instance)

จากที่กล่าวมาทั้งหมดผู้ที่จะใช้บริการ SaaS  คงต้องตรวจสอบให้ดีว่าให้ว่า SaaS  ที่จะเรียกใช้เป็นซอฟต์แวร์แบบใด true-SaaS  หรือ SoSaaS ถ้าเป็น  SoSaaS ก็คงต้องถามต่อว่าแล้ว Server ใช้บริการของ IaaS ที่ใด ถ้าบอกว่าติดตั้งเอง ฟันธงนะตรงนี้ได้เลยครับว่าระบบแบบนั้นขยายไม่ได้ ไม่สามารถรองรับลูกค้าจำนวนมากได้ เว้นเสียแต่ว่าบริษัทจะต้องลงทุนค่า Infrastructure มหาศาล

ธนชาติ นุ่มนนท์

IMC Institute

One thought on “SoSaaS (Same old Software, as a Service) บริการซอฟต์แวร์บน Cloud แบบเดิมๆ ที่เราเข้าใจผิดว่าคือ true SaaS

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s