กระแสของ Cloud Computing  กำลังมาแรงมาก และทำให้บริษัทซอฟต์แวร์ต้องเริ่มปรับรูปแบบของซอฟต์แวร์ตัวเองจาก Product เป็น Service และเริ่มที่จะให้บริการเป็นแบบ  SaaS (Software as a Service) แต่จริงๆแล้ว SaaS เป็นเพียง Business Model ของ Cloud Computing แต่ในแง่ทางด้านเทคนิคการพัฒนาซอฟต์แวร์ให้เป็น Cloud Application ไม่ใช่เป็นแค่การทำซอฟต์แวร์ตัวเองให้เป็น Web Application แล้วก็คิดค่าใช้จ่ายแบบ SaaS

ในทางเทคนิคการพัฒนาซอฟต์แวร์ขึ้น Cloud Platform จะมีจุดที่ต้องพิจารณาหลายด้านอาทิเช่น

  • Reliability ระบบ  Server  จะต้องมีความน่าเชื่อถือ สามารถรองรับ  SLA ทีเหมาะสมได้ ดังนั้นการทำ   Web Application โดยไม่คำนึงถึง  Hosting  ที่เหมาะสม ไม่ใช่การทำ Cloud App ที่ถูกต้อง
  • Redundancy ระบบ Cloud จะต้องระบบสำรองที่ดี (DR Site)  ซึ่งโดยมากมักจะเป็นระบบที่ให้บริการและติดตั้งบน Data Center ขนาดใหญ่
  • Elastic ระบบ  Cloud Server จะต้องมีความยืดหยุ่น กล่าวคือเมื่อมีผู้ใช้มากระบบก็จะมีทรัพยากรเพียงพอ และสามารถที่จะทำ Virtualization และ Multi-Tenancy ได้
  • Scalability : ประเด็นนี้จะเป็นเรื่องยากที่สุด เพราะการทำ  Web Server หรือ Hosting เอง จะไม่สามารถรองรับผู้ใช้จำนวนมากได้ ลองคิดดูว่าถ้าผู้พัฒนาซอฟต์แวร์เปลี่ยนรูปแบบการคิดราคาเป็นแบบ SaaS แล้วมีผู้ใช้เข้ามาใช้จำนวนมาก แต่การออกระบบไม่ได้รองรับไว้ก็จะทำให้ระบบล่มได้

ดังนั้นการพัฒนาซอฟต์แวร์ขึ้น Cloud Platform  ที่ดี จะต้องไปใช้บริการของ Cloud Provider ที่เป็น IaaS (Infrastructure as a Service) หรือ PaaS (Platform as a Service) อย่างเช่น Amazon EC2, Microsoft Azure, Google App Engine, Heroku, OpenShift, Force.com  หรืออาจใช้ผู้บริการในประเทศอย่าง True IDC เป็นต้น

การพัฒนาซอฟต์แวร์ขึ้น Cloud โดยใช้บริการ IaaS และ PaaS จะมีความแตกต่างกันดังนี้

  • การพัฒนาซอฟต์แวร์โดยใช้ IaaS  ผู้พัฒนาจะต้องบริหารจัดการหลายๆอย่างเองหมด อาทิเช่น การติดตั้ง  Web Server  และ Database Server, การทำ Load Balance, การบริหารจัดการ  VMware  หรือ DBMS และ การพัฒนา Application ดังรูป 
การพัฒนา Cloud App โดยใช้ IaaS (Source: Comparing IAAS and PAAS: A Developer’s Perspective by Wely Lau)
  •  การพัฒนาบน PaaS นักพัฒนาซอฟต์แวร์จะสามารถที่จะมุ่งเป้าไปที่การพัฒนาและติดตั้ง Application ได้อย่างเดียว โดยการทำงานและบริหารระบบอื่นๆทาง  Cloud Provider  จะเป็นผู้ดำเนินการให้ดังรูป
การพัฒนา App โดยใช้ PaaS (Source: Comparing IAAS and PAAS: A Developer’s Perspective by Wely Lau)

แต่การพัฒนาบน PaaS ก็จะมีข้อจำกัดตามที่ Cloud Provider กำหนดเช่น ภาษาที่ใช้ หรือการกำหนด Web Server หรือ Database Server  ข้อสำคัญในปัจจุบันเรายังไม่มีผู้ให้บริการ PaaS  ภายในประเทศจึงยังต้องพึี่งการให้บริการจากต่างประเทศ ก็อาจมีปัญหาเรื่องของการสื่อสารและการชำระเงิน

สำหรับนักพัฒนาซอฟต์แวร์ที่สนใจการพัฒนา  Cloud Application ก็สามารถที่จะเลือก Platform  ต่างๆได้ดังนี้

  • Amazon Web Services (AWS) : เป็น  IaaS ที่น่าสนใจเพราะผู้พัฒนาสามารถที่จะติดตั้ง Middleware  ต่างๆได้ และทดลองใช้งานได้ฟรี จึงเหมาะกับนักพัฒนาที่ใช้ภาษาต่างๆเช่น PHP, Java, Python ที่ต้องการความคล่องตัว
  • Microsoft Azure: เป็นทั้ง IaaS และ PaaS จึงทำให้นักพัฒนาสามารถที่จะพัฒนาโปรแกรมทั้งภาษาที่เป็นของ Microsoft หรือภาษาอื่นๆเช่น PHP หรือ Java ก็้ได้  แต่อยากจะแนะนำให้พัฒนาด้วย .NET และใช้  Tool อย่าง Visual Studio จะง่ายกว่า (ซึ่งถ้าสนใจศึกษาเพิ่มเติม ทาง IMC Institute ได้เปิด Course  อบรม  Windows Azure for .NET Quick Start)
  • Google App Engine: เป็น PaaS  ที่ทำงานบน  Infrastructure ของ Google ที่นักพัฒนาสามารถเลือกใช้ภาษาอย่าง  Java หรือ Python มาพัฒนาได้  โดยสามารถจะเลือกใช้ฐานข้อมูลที่เป็น BigTable ของ Google หรือ MySQL หรือแม้แต่จะเชื่อมต่อกับ Database ของตัวเองก็ได้  (ซึ่งถ้าสนใจศึกษาเพิ่มเติม ทาง IMC Institute ได้เปิด  Slideshare ให้ Download เอกสารการบรรยายและแบบฝึกหัดภาษาไทยให้ทดลองทำ และยังมี Course  อบรม Google App Engine for Java Developers )
  • OpenShift: เป็น  PaaS ของ RedHat ที่นักพัฒนาสามารถจะเลือกพัฒนา Application โดยใช้ภาษาอย่าง Java, Ruby, Node.JS,  Python, PHP และ Perl   โดยรันบน  JBoss Server ซึ่งเมื่อ 2012   OpenShift ได้รับเลือกเป็น PaaS ที่ดีที่สุด
  • Heroku: เป็น  PaaS อีกอันหนึ่งที่สามารถใช้ภาษาที่หลากหลายในการพัฒนาได้อาทิเช่น  Ruby, Node.js, Clojure, Java, Python, and Scala ซึ่ง Cloud Platform นี้ได้ถูกซื้อไปโดย Salesforce  (ซึ่งถ้าสนใจศึกษาเพิ่มเติม ทาง IMC Institute ได้เปิด Course  อบรมการพัฒนา Java Web Application เป็นมีตัวอย่างการพัฒนา App ขึ้น Heroku ใน course Java Web Programming  Using Cloud Platform)
  • Force.com : เป็น PaaS รายแรก ที่ใช้  Platform ของ SalesForce  เหมาะสำหรับนักพัฒนาที่ต้องการพัฒนาระบบ CRM หรือ ERP อย่างรวดซึ่งผู้พัฒนาสามารถนำ  App  ที่พัฒนาขึ้นไปขายใน AppExchange ของ SalesForce ได้ (ทาง IMC Institute จะเปิดการอบรม Training of The Month ในเดือนเมษายน เพื่อให้ผู้สนใจการพัฒนา Force.com เป็นพิเศษ)

ดร.ธนชาติ นุ่มนนท์

www.imcinstitute.com

www.facebook.com/imcinstitute

5 thoughts on “การพัฒนาซอฟต์แวร์ขึ้น Cloud Platform โดยใช้ PaaS/IaaS

ใส่ความเห็น

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