Cloud Computing การบริการประมวลผลจากเครื่องคอมพิวเตอร์บนเครือข่าย Internet

“อะไรคือ Cloud Computing และมันน่าใช้ยังไง แล้วต้องเลือกแบบไหนถึงจะเหมาะกับองค์กร”

  • ขอขอบคุณข้อมูล Sipa จากการอบรม Cloud Computing รุ่นที่ 1
  • และขอขอบคุณข้อมูลจากท่านวิทยากร ผศ.ดร.ภุชงค์ อุทโยภาส ม.เกษตรศาสตร์

  แนวคิดและความหมายของ Cloud Computing

cloud1

Cloud Computing เป็นบริการประมวลผลจากเครื่องคอมพิวเตอร์บนเครือข่ายอินเทอร์เน็ต รวมถึงการ
ใช้งานทรัพยากรเครื่องคอมพิวเตอร์ร่วมกันโดยไม่มีข้อจำกัด โดยสามารถเลือกปรับแต่งการใช้งานได้ตามต้องการ และสามารถเข้าถึงได้จากที่ใดก็ได้
ซึ่งสามารถสรุปคุณสมบัติเป็นข้อ ๆ ตามคำนิยามของ NIST (National Institute of Standards and Technology) * ได้ดังนี้
On-demand self-service – สามารถใช้งานทรัพยากรได้ตามที่ต้องการ
Broad network access – สามารถเข้าถึงจากที่ใดก็ได้
Resource pooling – สามารถนำทรัพยากรหลาย ๆ อย่างมารวมกันเพื่อใช้งานร่วมกัน
Rapid elasticity – สามารถปรับเปลี่ยนได้ตลอดเวลาที่ต้องการ
Measured Service – สามารถวัดปริมาณการใช้งานได้ทุกบริการ (เพื่อสามารถนำไปคิดค่าใช้จ่ายได้ด้วย)cloud2

Reference : * The NIST Definition of Cloud Computing, http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf

สถาปัตยกรรม Cloud Ecosystem

cloud3

ตามคำนิยามของ NIST ได้มีการกำหนด Cloud Ecosystem หรือเรียกว่า Cloud Service Model ได้ 3 รูปแบบดังนี้
Software As A Service (SAAS)
เป็นบริการใช้งานซอฟต์แวร์ประยุกต์ (Application) ที่ผู้ให้บริการจัดหาให้ โดยสามารถเข้าถึงได้จาก
Web Browser รวมถึง Application ทั้งที่อยู่ในเครื่องคอมพิวเตอร์หรืออุปกรณ์มือถือ การบริการรูปแบบนี้ผู้ใช้จะไม่สามารถจัดการเครื่องหรือระบบปฏิบัติการได้ ทุกอย่างผู้ให้บริการจัดการให้ทั้งหมด
Platform As A Service (PAAS)
เป็นบริการเครื่องมือสำหรับพัฒนาระบบ โดยผู้ใช้ไม่สามารถเข้าถึงการจัดการโครงสร้างพื้นฐานใด ๆ ได้ เช่นระบบเครือข่าย เครื่องเซิร์ฟเวอร์ ระบบปฏิบัติการ โดยผู้ให้บริการจะจัดการให้ทั้งหมด
Infrastructure As A Service (IAAS)
เป็นบริการที่ผู้ใช้สามารถจัดการระบบปฏิบัติการ ระบบเครือข่าย รวมถึงจัดหาโปรแกรมประยุกต์ เพื่อสามารถดูแลควบคุมการปรับแต่งระบบให้สามารถรองรับความต้องการที่หลากหลาย แต่การจัดหาทรัพยากร รวมถึงโครงสร้างพื้นฐานยังเป็น
หน้าที่ของผู้ให้บริการจัดหาให้ตามความต้องการของผู้ใช้

รูปแบบของการให้บริการ

สามารถแบ่งรูปแบบการให้บริการ (Deployment Models) ออกแบบ 4 รูปแบบได้ดังนี้
Private cloud
เป็นการใช้งานระบบภายใต้โครงสร้างพื้นฐานขององค์กร ผู้ใช้อาจเป็นผู้ดูแลด้วยตนเอง หรือจ้างบุคคลที่สามดูแลก็ได้ อุปกรณ์อาจจะติดตั้งภายในสำนักงานหรืออยู่ภายนอกทั้งหมด หรือบางส่วนก็ได้
Community cloud
เป็นการใช้งานระบบภายใต้การร่วมการของกลุ่มสมาชิก โดยมีข้อปฏิบัติร่วมกัน ตามเงื่อนไขของรัฐ หรือขององค์กร โดยสมาชิกดูแลบริหารจัดการโครงสร้างด้วยสมาชิกเอง หรือทำผ่านบุคคลที่สาม โดยอุปกรณ์อาจจะติดตั้งภายในสถานที่ของชุมชน หรือนอกสถานที่ก็ได้
Public cloud
เป็นการใช้งานระบบร่วมกันกับสาธารณะชน องค์กรทั่วไปและกลุ่มองค์กรขนาดใหญ่ โดยผู้ให้บริการเป็นผู้ลงทุนโครงสร้างพื้นฐานไอทีและระบบซอฟต์แวร์ที่เกี่ยวข้องทั้งหมด
Hybrid cloud
เป็นการใช้งานผสมผสานระหว่าง Private cloud, Public cloud หรือ Hybrid cloud โดยขึ้นอยู่กับผู้ใช้บริการต้องการด้านใด โดยอาจจะทำงานเป็นอิสระ หรือมีการเชื่อมโยงเข้าหากัน แต่จะต้องสามารถทำงานร่วมกันในระดับข้อมูลและระบบซอฟต์แวร์ประยุกต์ได้ โดยการใช้งานทั่วไปมักจะใช้ Private cloud ก่อน จนเมื่อต้องการเพิ่ม Capacity ชั่วคราวจึงใช้ Public cloud เพิ่มเติม

โครงสร้างของระบบ Cloud

cloud4

โดยมีการแบ่งออกเป็น Front End และ Back End เชื่อมต่อกันด้วยอินเทอร์เน็ต โดยแบ่งอุปกรณ์พื้นฐาน ได้ดังนี้
1) Server
2) Storage
3) Network
4) Cloud runtime ซึ่งจะเป็น Middleware ที่ใช้บริหารจัดการใน Back End
ซึ่งจะมีระบบ Management และ Security ช่วยบริหารจัดการอุปกรณ์ต่าง ๆ ให้สามารถทำงานได้เป็น เนื้อเดียวกันและมีความปลอดภัยในการเข้าถึง

บริการ Virtualization
cloud8

เมื่อก่อนระบบใดอยู่บนเครื่องใดแล้ว ถ้าเสียก็จะเสียไปด้วย ต้องหาเครื่องใหม่มาทดแทน โดยต้องทำการติดตั้งระบบใหม่ นำเข้าข้อมูลจากที่สำรองไว้ แถมเครื่องซื้อมาใช้งานไม่เต็มประสิทธิภาพ จึงมีการสร้างระบบ Virtualization ขึ้นมาเพื่อแก้ไขปัญหาดังกล่าวโดยจะมี Middleware ระหว่าง OS กับ Resource ที่เรียกว่า Virtualization software หรือ Hypervisor โดยข้อดีคือแต่ละบริการในเครื่องเดียวกันสามารถมี OS หรือ Application เป็นของตนเอง และแยกอิสระออกจากกัน สามารถติดตั้งโปรแกรมที่มีความต้องการเฉพาะได้ รวมถึงสามารถใช้พื้นที่กลางในการจัดเก็บข้อมูล เพื่อในกรณีที่เครื่องมีปัญหาสามารถย้ายไปรันเครื่องอื่นได้โดยกระทบต่อการบริการน้อยที่สุด ทำให้การใช้เครื่องเต็มประสิทธิภาพมากขึ้น โดยเราสามารถนำเครื่องที่มี Peak Load คนละช่วงเวลามารวมในเครื่องเดียวกันได้ โดยไม่กระทบต่อการให้บริการโดยรวม

วิวัฒนาการของ Virtualization

cloud9

1st Generation : Full virtualization (Binary rewriting)
– ใช้ Software จัดการทั้งหมด
– มีปัญหาที่ต้องมีการ Compile กับ Kernel เมื่อมีการเปลี่ยน Kernel ใหม่จะไม่สามารถใช้งานต่อได้ ต้องทำการ Patch Kernel ก่อน
2nd Generation : Paravirtualization
– มีการเขียน Hypervisor ขึ้นมาคั่นก่อนเข้าถึง Hardware
– ข้อเสียคือช้ากว่า 1st Gen และเมื่อผู้ผลิต CPU หรืออุปกรณ์อื่น ๆ ต้องการเพิ่ม Feature ไม่สามารถทำได้ทันทีต้องทำการแก้ Hypervisor ให้รองรับ Feature ใหม่ ๆ
3rd Generation : Silicon-based (Hardware-assisted)
– ไม่จำเป็นต้องแก้ Hypervisor ให้รองรับ Feature ใหม่ ๆ ผู้ผลิต CPU หรืออุปกรณ์อื่น ๆ ออกแบบให้รองรับ Virtualization มาให้เลย โดยมีการใส่เข้าไปในอุปกรณ์ให้เลย
– ทำงานด้วย Hardware ทำให้รวดเร็วกว่า 2nd Gen

ประโยชน์ของ Virtualization

– สามารถใช้ Hardware ได้อย่างมีประสิทธิภาพ
– ลดพื้นที่ของ Data Center ในการต้องวางเครื่องจำนวนเยอะที่ใช้งานได้ไม่เต็มประสิทธิภาพ (ประหยัดเครื่องลง)
– ใช้พลังงานน้อยลง เพราะเครื่องมีจำนวนน้อยลง
– สามารถเพิ่มเครื่องได้อย่างรวดเร็ว ไม่ต้องรอซื้อเครื่องนาน
– สามารถสร้างระบบทดสอบ หรือเครื่องสำหรับพัฒนาได้ง่าย และรวดเร็ว

การเลือกใช้บริการ Cloud

cloud5

ในส่วนของ Private cloud ในประเทศไทย มีการใช้งานเกิน 50% โดยมีความต้องการใช้งาน Vmware, Microsoft, Openstack ตามลำดับ

โดยมีการใช้งาน SaaS เป็นหลักรองลงมาจะเป็น IaaS และ ทุกท้ายจะเป็น PaaS โดย เหตุผลหลักที่ใช้ Cloud คือต้องการลดค่าใช้จ่าย และมีความยืดหยุ่นนการใช้งาน ส่วนสาเหตุที่ใช้ Public cloud เนื่องมาจากราคาถูกกว่าลงทุนเองในระยะยาว และไม่ต้องซื้อเครื่องแพง ๆ ที่มี Peak Load แค่บางช่วง ช่วงที่ไม่ได้ใช้งานจะไม่คุ้มกับราคาที่ลงทุน

บริการ Cloud ที่มีในปัจจุบัน

Amazon AWS
มีการให้บริการหลาย Service ดังนี้
AWS Compute :
– EC2 : ให้บริการ Virtual Machine
– Elastic Load Balance (ELB) : ให้บริการกระจายโหลดระหว่าง EC2
AWS Storage :
– S3 : ให้บริการพื้นที่ Storage
– Elastic Block Store : ให้บริการพื้นที่ Storage เพิ่มเติมสำหรับ EC2
AWS Database :
– Relational Database Service (RDS) : ให้บริการฐานข้อมูลประเภท Relational Database เช่น MySQL
– DynamoDB : ให้บริการฐานข้อมูล NoSQL
AWS Analytic :
– Elastic MapReduce : ให้บริการ Big Data Processing
AWS Machine Learning :
บริการ Machine Learning
AWS loT
บริการ Internet of Things

 

Google Cloud Platform

cloud6Compute :
– Compute Engine เป็นบริการ Virtual Maching
– App Engine เป็นบริการแบบ PaaS
Storage :
– Cloud Storage เป็นบริการ Storage
– Cloud SQL เป็นบริการฐานข้อมูล
App Services :
– ให้บริการ Application Service รวมถึง Development Application รวมถึง Cache Service

 

Microsoft Azure

cloud7App Services :
ให้บริการ Application ในกลุ่มของ Microsoft และในกลุ่มของ Linux โดยครอบคลุมทุกบริการของ
Microsoft เป็นหลัก และเพิ่มบริการของ Linux เพิ่มมากขึ้นเรื่อย ๆ
Compute :
ให้บริการเครื่อง Virtual Machine รองรับทั้ง Website, Cloud services และ Mobile services
Storage :
ให้บริการฐานข้อมูล SQL Database โดยเฉพาะในส่วนของ Microsoft SQL Server ทั้งนี้รองรับในส่วน
ของฐานข้อมูลอื่น ๆ ด้วย เช่น HDInsight ทั้งในส่วนของ SQL และ NoSQL

6 ข้อดีของการใช้ Cloud Computing

1) ไม่ต้องลงทุน Infrastructure เอง จ่ายราคาตามปริมาณที่ใช้ได้
2) ผู้ให้บริการลงทุนมหาศาล บริการให้คนมหาศาล ทำให้ค่าบริการต่อหัวลดลงมาก
3) เลิกคาดเดาว่าเราจะต้องการทรัพยากรเท่าไหร่ถึงจะพอ หรืออาจจะซื้อมามากเกินไปหรือเปล่า
4) สามารถเพิ่มความเร็วในการจัดหาทรัพยากร์
5) หยุดใช้เงินในการจัดการ Data Center
6) สามารถ Deploy Application ให้ใช้ได้ทั่วโลกได้อย่างรวดเร็ว โดยรวมถึงคนทั่วโลกสามารถ Access ได้อย่างรวดเร็ว

การนำ Cloud มาใช้งาน

– ผู้บริหารต้องเห็นด้วย และเป็นผู้ผลักดันในการใช้งานให้เกิดเป็นรูปธรรม
– โดยในแต่ละธุรกิจ หรือแต่ละองค์กรมีวิธีการใช้งานในรูปแบบที่แตกต่างกันตามลักษณะงานที่ทำ
– การเปลี่ยนแปลงจะต้องเปลี่ยนในสิ่งต่อไปนี้
1) งานที่ทำ
2) ความสามารถ ทักษะ ที่ต้องการเพิ่มขึ้นในองค์กร
3) ความสัมพันธ์ระหว่างคนในองค์กรและผู้บริหารระบบไอที
4) กระบวนการทำงาน
– ระดับของการใช้งาน Cloud มีทั้งแบบ ไม่มีใช้งาน, ใช้งานภายใน, ใช้งานภายนอกทั้งหมด ซึ่งสุดท้ายแล้วจะไม่มีผู้ดูแลระบบภายในเหลืออยู่เลย
– แต่ก็ยังต้องมีฝ่าย IT ภายในองค์กร แต่จะใช้ในการดูแลเรื่องความปลอดภัยของการเข้าถึงข้อมูล การจัดการบริการ Cloud และการเฝ้าระวัง
– การเริ่มที่ง่ายที่สุด ต้องเริ่มจากความซับซ้อนน้อยที่สุด
– สิ่งที่ควรนำขึ้น Cloud ก่อนคืองานที่ใช้ทดสอบหรือพัฒนา, งานที่ไม่กระทบต่อธุรกิจโดยรวม, งานที่รันเป็น Batch
– สุดท้ายแล้วงานที่จะขึ้น Cloud ช่วงหลังก็จะเป็นงานที่มีโหลดสูง, งานที่มีการใช้งานร่วมกัน, งานที่ต้องใช้กับ Desktop, งานทั้งที่เป็นงานทั่วไป และงานสำคัญ

ความเสี่ยงในการใช้งาน Cloud

– ข้อมูลสูญหาย
– การใช้บริการของที่หนึ่งแล้วจำเป็นต้องย้ายไปยังอีกผู้ให้บริการ
– Data lock-in ข้อมูลอาจจะไม่สามารถย้ายไปใช้กับ Application อื่นได้
– ขนาดของเครื่อง ซึ่งผู้ให้บริการไม่สามารถจัดหาให้ได้
– เครื่องมือจัดการระบบ Cloud ซึ่งการที่ย้ายไปยังผู้บริการอื่นใช้เงินลงทุนที่สูง

การป้องกันความเสี่ยงในการใช้งาน Cloud

– Data lock-in ใช้รูปแบบมาตรฐานของข้อมูลเช่น JSON, XML
– VM lock-in ใช้รูปแบบมาตรฐานของ VM Image
– App lock-in ใช้รูปแบบ API มาตรฐาน
– การยืนยันตัวตนให้ใช้มาตรฐาน เช่น OAuth, OpenID, Facebook Authentication