ความเข้าใจผิดบางประการเกี่ยวกับ Cloud Computing

แม้เรื่องของ Cloud Computing จะเริ่มมีการพูดกันอย่างกว้างขวางมากขึ้น แต่เมื่อถามความเข้าใจที่แท้จริงเกี่ยวกับเทคโนโลยีด้านนี้ ก็จะพบว่ามีหลายคนมีความเข้าใจผิดในเรื่องของ Cloud Computing  ในหลายๆเรื่องดังนี้

20140315-160401.jpg

  • Cloud Computing ก็คือการใช้โปรแกรมบนอินเตอร์เน็ตข้อนี้หลายๆคนเข้าใจว่า  Cloud Computing ก็คือ Web/Internet Technology เสมือนการใช้โปรแกรมเว็บโดยทั่วไป แต่จริงๆแล้ว Cloud Computing  หมายถึงระบบขนาดใหญ่ที่ผู้ใช้ไม่จำต้องสนใจว่า Server อยู่ที่ไหน แล้วก็มีคุณสมบัติที่สำคัญอยู่ 5 ด้านคือ  สามารถเรียกใช้งานได้เองตามต้องการ (On Demand Self Service) สามารถเรียกใช้งานจากที่ไหนหรืออุปกรณ์ใดๆก็ได้  (Broad network access) ใช้ทรัพยากรร่วมกันกับระบบอื่นๆ  (Reseource Polling) ระบบมีความยืดหยุ่นสูงที่จะรองรับผู้ใช้จำนวนมากได้ (Elasticity) และสามารถวัดการใช้งานได้ (Measured Service)
  • Cloud Computing ก็คือ Virtualization หลายๆคนจะสับสนระหว่างคำว่า Cloud Computing กับ Virtualization จริงๆแล้ว Virtualization คือเทคโนโลยีที่ซ่อนระบบฮาร์ดแวร์ไว้จากระบบซอฟต์แวร์ ผู้ใช้สามารถที่จะเรียกใช้ระบบปฎิบัติการหรือซอฟต์แวร์ โดยไม่จำเป็นต้องติดต่อกับเครื่องคอมพิวเตอร์โดยตรง และสามารถที่จะใช้ระบบปฎิบัติการที่หลากหลายจากฮาร์ดแวร์ชุดเดียวกัน โดยมาก Virtualization จะถูกนำมาใช้ในการทำ Server Consolidation ส่วน Cloud Computing จะเป็นรูปแบบการดำเนินการทางธุรกิจ (Business Model) โดยอาจใช้เทคโนโลยีอย่าง Virtualization ในการติดตั้ง ทำให้ผู้ใช้ไม่สนใจว่าระบบอยู่ใด ซึ่งก็เป็นที่มาของคำว่า Cloud Computing ที่หมายถึงระบบประมวลผลที่อยู่บนก้อนเมฆ

images

  • Cloud Computing เป็นแค่รูปแบบการดำเนินธุรกิจแบบใหม่ของบริษัทไอที หลายๆครั้งบริษัทด้านไอทีมักจะมีคำพูดการตลาดๆใหม่ออกมาเสมอ บางคนเลยเข้าใจว่ากรณีของ Cloud Computing ก็น่าจะมาในทำนองเดียวกัน แต่จริงๆแล้ว Cloud Computing เปลี่ยนแปลงอุตสาหกรรมไอทีอย่างมาก บริษัทและบุคลากรด้านไอทีจะไม่สามารถพัฒนาธุรกิจในรูปแบบเดิมได้ และบุคลากรจำเป็นต้องเรียนรู้ทักบะใหม่ๆหลายๆด้าน อุตสาหกรรมไอทีกำลังเปลี่ยนเข้าสู่อุตสาหกรรมด้านบริการอย่างเต็มรูปแบบ
  • Cloud Computing จะช่วยลดค่าใช้จ่ายให้กับองค์กร ข้อความนี้อาจไม่เป็นจริงเสมอไป เพราะ Cloud Computing อาจช่วยลดการลงทุนเริ่มต้น (Capital Expense) เช่นการซื้อเครื่องฮาร์ดแวร์ ซอฟต์แวร์ หรือค่าติดตั้ง Data Center แต่ Cloud Computing จะมีค่าใช้จ่ายในการใช้งาน (Operation Expense) ที่แปรผันกับปริมาณการใช้งาน ดังนั้นหากขาดการควบคุมและตรวจสอบที่ดี มีปริมาณการใช้งานมากเกินไปก็อาจทำให้ค่าใช้จ่ายบานปลายได้ แต่อย่างไรก็ตาม Cloud Computing ก็ยังเหมาะกับองค์กรขนาดเล็กที่ไม่ต้องการลงทุนด้านไอทีมากนัก
  • Cloud Computing จะทำให้คนไอทีไม่มีงานทำ หลายๆคนคิดว่าการที่หน่วยงานนำเทคโนโลยีมาใช้ในองค์กร โดยเฉพาะการใช้ Public Cloud จะทำให้ตำแหน่งงานต่างๆด้านไอทีลดน้อยลง จริงๆแล้ว Cloud Computing จะมีส่วนช่วยในการเพิ่มตำแหน่งงานใหม่ๆให้กับคนไอที และคนไอทีจำเป็นต้องมีการปรับทักษะใหม่ๆในบางด้านเช่น การต่อรองทางด้านเทคนิคกับผู้ให้บริการ การดูแลและควบคุมระบบ การพัฒนาซอฟต์แวร์
  • Cloud Computing เป็นระบบที่ขาดความปลอดภัย ระบบ Cloud Computing ก็เหมือนระบบคอมพิวเตอร์อื่นๆ ที่หากขาดการควบคุมและดูแลที่เหมาะสมแล้วก็จะมีความเสี่ยงทางด้านความปลอดภัย แม้ระบบคอมพิวเตอร์ของ Cloud Computingโดยเฉพาะแบบ public cloud อาจไม่ได้อยู่ในความดูแลขององค์กรเราโดยตรงและบางอย่างเราไม่สามารถควบคุมได้ แต่มีข้อตกลงการบริการ (SLA) ที่เหมาะสมและพิจารณาเรื่องความเสี่ยงที่ดี องค์กรก็สามารถที่จะใช้ระบบ Cloud Computing ที่มีความปลอดภัยเหนือกว่าการพัฒนาระบบเองภายในองค์กรได้
  • Cloud Computing ไม่เหมาะในการใช้งานกับองค์กรขนาดใหญ่ หน่วยงานที่มี Data Center หรือบุคลากรด้านจำนวนมาก อาจสามารถที่จะพัฒนา private cloud ในองค์กรเพื่อลดค่าใช้จ่ายและเพิ่มประสิทธิภาพด้านการใช้ระบบไอที นอกจากนี้องค์กรขนาดใหญ่อาจนำ Public Cloud มาใช้ในบางงานอาทิเช่นด้าน SaaS (Software as a Service) สำหรับกรณีของแอปพลิเคชั่นอย่าง อีเมล์ หรือนำระบบ IaaS (Infrastructure as a Service) และ PaaS (Platform as a Service) มาใช้ใน Test Environment
  • องค์กรต่างๆสามารถเป็นผู้ให้บริการ Cloud Computing ได้โดยง่าย ในปัจจุบันมีหลายองค์กรในประเทศระบุว่าเปิดให้บริการ Cloud Computing แต่จริงๆแล้วการเปิดให้บริการ Cloud Computing จะต้องมีการลงทุนมูลค่าสูงมาก เพื่อให้ครอบคลุมคุณสมบัติของ Cloud Computing โดยเฉพาะในด้าน Elasticity และระดับของการให้บริการ Cloud ก็มีอยู่หลายระดับซึ่งผู้ให้บริการในประเทศส่วนใหญ่ก็มักจะอยู่ในขั้นเริ่มต้น เมื่อเทียบกับผู้ให้บริการต่างประเทศรายใหญ่ๆเช่น Amazon Web Services, Salesforce หรือ Microsoft Azure ที่มีระดับการให้บริการอยู่ในขั้นสูง
  • Cloud Computing เป็นระบบที่มีความยืดหยุ่นโดยอัตโนมัติ แม้ในหลักการ Cloud Computing จะมีคุณลักษณะ Elasticity ที่จะรองรับผู้ใช้จำนวนมากได้ แต่ก็เป็นหน้าที่ของผู้ให้บริการที่จะต้องคาดการณ์และเตรียมทรัพยากรหรือระบบเช่น Server Storage และ Network Bandwidth ให้เพียงพอต่อความต้องการเอง ถ้าขาดการวางแผนที่ดีระบบ Cloud Computing ก็จะขาดคุณลักษณะ Elasticity

เทคโนโลยี Big Data: Hadoop, NoSQL, NewSQL และ MPP

ผมเคยเขียนบล็อกอธิบายความหมายของ Big Data และได้บอกว่าความหมาย Big Data ไม่ได้มีความหมายแค่ข้อมูลมันใหญ่ แต่เรากำลังพูดถึงเทอม 3V  คือ Volume, Velocity และ Variety ซึ่งจะทำให้เราไม่สามารถที่จะใช้เทคโนโลยีฐานข้อมูลแบบเดิมวิเคราะห์ข้อมูลได้ทั้งหมด และอาจต้องพิจารณาเทคโนโลยีใหม่ๆเช่น Hadoop เข้ามาใช้งานในองค์กร (เนื้อหาสำหรับบล็อก Big Data และเทคโนโลยี Hadoop กับการพัฒนาองค์กรด้านการวิเคราะห์ข้อมูล สามารถดูได้ที่ tinyurl.com/pa2av55)

แต่ถ้าพูดถึงเทคโนโลยีสำหรับ  Big Data แล้วเราอาจเห็นเทคโนโลยีใหม่ๆอีกหลายอย่างที่อาจแบ่งออกได้เป็น 4 กลุ่มดังรูป

  • Hadoop คือเทคโนโลยีที่รองรับ Unstructure Data  ที่มีขนาดใหญ่หลาย PetaByte  ซึ่ง Hadoop เป็นเทคโนโลยี Opensource และมี vendor หลายรายนำไปเผยแพร่ต่อเช่น MapR หรือ CloudEra
  • NoSQL  คือเทคโนโลยีืที่เน้นเก็บข้อมูลขนาดใหญ่ที่ไม่ใช่ RDBMS แต่จะเน้นการเขียนและอ่านข้อมูลมากกว่าการใช้คำสั่งในการค้นหาที่ซับซ้อน จึงไม่ได้มีการใช้ภาษา SQL  ในระบบฐานข้อมูลแบบนี้ ตัวอย่างของซอฟต์แวร์ที่ใช้เทคโนโลยีนี้คือ MongoDB, GraphDB, BerkeleyDB และ CouchDB
  • NewSQL คือฐานข้อมูล  RDBMS แบบใหม่ที่ต้องการจะรองรับข้อมูลขนาดใหญ่ให้ได้เหมือนกับ NoSQL ซึ่งบางส่วนก็อาจนำ Cloud Comuputing มาใช้เช่น  Amazon RDS  หรือ SQL Azure แต่ก็มีตัวอย่างซอฟต์แวร์ฐานข้อมูลอีกหลายตัวที่สามารถรองรับข้อมูลจำนวนมากได้เช่น MySQL Cluster หรือ VoltDB
  • MPP หรือ  Massively Parallel Processing คือระบบที่สามารถประมวลข้อมูลขนาดใหญ่โดยใช้เทคโนโลยีแบบคู่ขนานได้อย่างรวดเร็ว  ซึ่งอาจเป็นเทคโนโลยีพวก Datawarehouse  หรือ  Applicance ของ อาทิเช่น Oracle Exadata, Netezza หรือ Greenplum

รูปภาพ

และหากพิจารณาเทคโนโลยีต่างๆในด้าน Big Data  เราจะพบว่ามีเทคโนโลยีต่างๆมากมายดังรูป โดย Hadoop อาจเป็นเทคโนโลยีที่นำหน้ารายอื่นๆ ในแง่ของการเป็นระบบสำหรับเก็บและวิเคราะห์ Unstructure Data  ขนาดใหญ่

รูปภาพ

ดังนั้นเราจะเห็นได้ว่าการจะพัฒนา  Big Data ในองค์กรจำเป็นจะต้องมีการพัฒนาระบบโครงสร้างด้านข้อมูล (Information Infrastructure) ซึ่งต้องมีเทคโนโลยีหลายๆด้าน โดยไม่ได้มีเพียงแค่ Hadoop  และก็ไม่ได้เป็นการนำเทคโนโลยีใหม่มาแทนระบบเดิม ซึ่งเราอาจเห็นตัวอย่างของเทคโนโลยีต่างๆดังรูป ที่จะเห็นว่ามีการนำเทคโนโลยีที่หลากหลายมาใช้ทั้ง RDBMS, NoSQL, Hadoop, MPP และ  BI

รูปภาพ,