บทความ Scientific Cloud Computing: Early Definition and Experience ของ Lizhe Wang and Gregor von Laszewski
บทความ Cloud computing: utility computing over the Internet ของ Taneli Korri
บทความ Community Cloud Computing ของ Alexandros Marinos และ Gerard Briscoe
http://en.wikipedia.org/wiki/Cloud_computing
http://www.cloudessential.com/cloudcomputing/types_of_cloud_computing.html
http://docs.amazonwebservices.com/AWSEC2/latest/DeveloperGuide/concepts-flow.html
วันเสาร์ที่ 22 สิงหาคม พ.ศ. 2552
อ้างอิง
ความคิดเห็นเกี่ยวกับ Cloud Computing
คิดว่า Cloud Computing จะทำให้เกิดการเปลี่ยนแปลงทางด้านไอที ไม่ว่าจะเป็นด้านซอฟท์แวร์และฮาร์ดแวร์ โดยอนาคตคอมพิวเตอร์ของผู้ใช้งานโดยทั่วไปจะเป็นเพียงแค่เทอร์มินอลแล้วแต่ละคนก้อใช้บริการCloud ของ Vendor ทำให้ผู้ใช้ลดความซับซ้อนและค่าใช้จ่ายอย่างเช่น ไม่จำเป็นจะต้องอัพเดทฮาร์ดแวร์ของเราให้ทันสมัยเพื่อรองรับกับ Application ที่เปลี่ยนไป ค่า Software ที่ต้องจ่ายค่าลิขสิทธิ์ที่ซื้อมาใช้ โดยเราอาจจะจ่ายค่าใช้งานทรัพยากรตามจริงคล้ายกับโทรศัพท์มือถือ เราสามารถเลือกทรัพยากรได้ตามความต้องการเราเช่น ตอนนี้เราพิมพ์งาน หรือใช้ Application ที่ต้องการใช้ Computing Resource น้อยเราก็จ่ายในราคาถูกในเวลาถัดมาเมื่อเราต้องการใช้งาน Application ที่ต้องการ Resource มากขึ้น ณ เวลานั้น เราก็จ่ายเพิ่มขึ้น เช่นเดียวกันกับ network ที่ยุคหนึ่งเราใช้ leased line ต่อมาเราเปลี่ยนมาใช้ Virtual Circuit แทน
Eucalyptus
EUCALYPTUS (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems)
โครงการจาก UCSD เป็น software infrastructure ที่เป็นโอเพ่นซอร์สสำหรับนำไปสร้าง Elastic/Utility/Cloud computing โดยใช้ computing clusters และหรือ workstation ฟาร์ม ตัว EUCALYPTUS นั้นมีฟีเจอร์ต่างๆที่น่าสนใจ เช่น สามารถทำงานร่วมกับ interfaces ของ Amazon EC2, ติดตั้งและจัดการได้ง่าย รวมถึงรองรับ virtual privet network ของผู้ใช้
รูป The Eucalyptus architecture
จากรูปข้างบนแสดงให้เห็นว่าสถาปัตยกรรม EUCALYPTUS ที่เข้ากันกับ Amazon EC2 อินเตอร์เฟส.
โดย EUCALYPTUS ได้อิมพลีเมนท์ Service ตัวกลางเพื่อที่จะแปลความต้องการของผู้ใช้ไปยังส่วนของ Cloud Back Ends: ส่วน client-side API translator และ cloud controller
Amazon EC2
รายละเอียดเพิ่มเติมนั้น User สามารถ
- สร้าง Amazon Machine Image (AMI) ซึ่งประกอบด้วยแอพพลิเคชั่น ไลบรารี ข้อมูล และ การตั้งค่าที่ เกี่ยวเนื่อง หรือ ใช้การตั้งค่าเริ่มต้น รวมทั้งอิมเมจเท็มเพล็ทเพื่อที่จะเริ่มและใช้งานได้ในทันที
- อัพโหลด AMI ไปใน Amazon Simple Storage Service(S3) ซึ่งปลอดภัย เชื่อถือได้ และเป็นคลังข้อมูลที่รวดเร็วในการเก็บอิมเมจของ Virtual machine และตัวข้อมูล
- ให้ Amazon EC2Web service สำหรับการตั้งค่าความปลอดภัยและการเข้าถึงผ่านเน็ตเวิร์ค
- เลือกประเภทของ Instance ที่ผู้ใช้ต้องการใช้งาน
- เริ่ม ปิด หรือ มอนิเตอร์ Instance ได้โดยผ่าน Web service API
รูป Amazon อธิบาย Basic flow ของการใช้งาน EC2
ภาพจาก http://docs.amazonwebservices.com/AWSEC2/latest/DeveloperGuide/concepts-flow.html
สถาปัตยกรรม Cloud Computing
สถาปัตยกรรม Cloud Computing เป็น System Architecture ของ Software System ที่เกี่ยวข้องการจัดการ Cloud Computing ประกอบทั้งด้วยฮาร์ดแวร์และซอฟต์แวร์ที่ออกแบบโดย Cloud Architect ผู้ที่ทำหน้าที่เพื่อจะการ integrate cloud รวมทั้งการติดต่อระหว่าง cloud component กับ application programming interface ซึ่งโดยทั่วไปเป็น web service
นอกจากนั้นยังคล้ายกับหลักของ Unix ที่มีหลายโปรแกรมทำงานซึ่งทำงานร่วมกันผ่าน universal interface ความซับซ้อนจึงถูกควบคุมและส่งผลให้มีระบบการจัดการดีกว่า แบบกว่า monolithic counterpart
สถาปัตยกรรม Cloud ยังรวมไปถึง เว็บเบราเซอร์และ / หรือซอฟท์แวร์แอพพลิเคชั่นเพื่อใช้ในการเข้าถึง Cloud Application
สถาปัตยกรรม Cloud Storage คือการดำเนินการ metadata เพื่อให้เป็นลักษณะศูนย์กลางของ data node
ที่สามารถ scale ได้และมีอิสระในการรับส่งข้อมูลไปยังแอพพลิเคชั่นหรือ User
รูปตัวอย่าง GrepTheWeb Architecture
ประเภทของ Cloud Computing
Public cloud เป็น Cloud computing แบบที่ใช้ทรัพยากรที่ได้เตรียมเอาไว้ให้บริการผ่านทางอินเทอร์เน็ต เว็บแอพพลิเคชั่น หรือเว็บเซอร์วิส ซึ่งให้บริการการแชร์ทรัพยากรและยูทีลิตี้ขั้นพื้นฐาน ตัวอย่าง Amazon Web Service แต่ก็มีข้อจำกัดในด้าน SLA และในบริษัทขนาดใหญ่ต่างมี Data center เป็นของตนเองแล้วพวกเข้ายังไม่ต้องการที่จะย้ายไปใช้ Public cloud ในเวลาอันสั้น
Private cloud เป็นการจำลอง Cloud computing ขึ้นมาเพื่อใช้งานบนเน็ตเวิร์กส่วนตัวสำหรับบริษัทระดับ Enterprises และ Coporates ขนาดใหญ่ โดยมีประโยชน์ทำให้เกิด Data center รวมกันเป็นแหล่งเดียว (consolidation) และเกิดความยืดหยุ่นในเรื่อง Cycle times และ internal Quality of Services
Hybrid cloud คือ Private Cloud ที่ต่ออยู่กับ Public Cloud โดยการจัดการเมื่อเกิด Overflow และ Peak adaptation นั้นกระทำผ่าน Public Cloud
Layer of Abstraction ของ Cloud Computing
2) Platform-as-a-Service (PaaS) ระดับ Abstraction ซึ่งสูงขึ้น บริการเช่น Google App Engine ที่จัด programming environment ให้โดยซ่อนรายละเอียดของ instances machine และรายละเอียดทางเทคนิคจาก developer โดยโปรแกรมจะรันบน data center โดยที่ developer ไม่ต้องสนใจเกี่ยวกับการ allocate พื้นที่ แต่สิ่งที่ต้องแลกคือ developer จะต้องยอมรับเงื่อนไขของ environment ตัวอย่างเช่นการใช้ key-value stores แทนการใช้ฐานข้อมู
3) Software-as-a-Service (SaaS) เป็นระดับ Abstraction สูงที่สุดของ Cloud Computing โดยกำหนดแอปพลิเคชันให้กับผู้ใช้แบบออนไลน์ รวมทั้งทรัพยากรและการจัดเก็บ โดย SaaS แตกต่างจากเว็บไซต์หรือเว็บแอปพลิเคชันแบบเดิมที่ไม่อินเตอร์เฟส กับข้อมูลผู้ใช้ (เช่นเอกสาร) หรือทำได้ลักษณะที่มีข้อจำกัด ตัวอย่างที่เป็นที่นิยมเช่น Microsoft (Windows Live) Hotmail, ชุด Office เช่นของ Google Documents และ Zoho, และธุรกิจซอฟต์แวร์ออนไลน์ เช่น Salesforce.com
จากบทความ Community Cloud Computing ของ Alexandros Marinos และ Gerard Briscoe
เพื่อความเข้าใจ Cloud Computing ดีขึ้นเราสามารถแบ่งบทบาทของแต่ละคนได้ คือ Vendor เป็นผู้ให้บริการทรัพยากรดังที่ได้กล่าวมาแล้ว นักพัฒนาแอพพลิเคชันใช้ประโยชน์จากทรัพยากรเพื่อสร้างบริการให้กับ end user การแยกบทบาทนี้ช่วยในการกําหนดหน้าที่ของผู้ที่มีส่วนร่วม อย่างไรก็ตามแต่ละคนสามารถทำหน้าที่ได้หลายบทบาท เช่น Vendor นั้นเป็นผู้พัฒนา บริการสำหรับ end user ด้วย หรือนักพัฒนาใช้ประโยชน์จากบริการของผู้อื่นเพื่อสร้างบริการของตนเอง แต่ภายในแต่ละ Cloud ผู้ที่มีบทบาทในการควบคุมคือ Vendor นั่นเอง
ข้อดีและข้อเสียของ Cloud Computing
ประโยชน์หลายอย่างในการใช้โครงสร้างพื้นฐานทางคอมพิวเตอร์แบบ Cloud Computing คือ
การประหยัดต้นทุนเริ่มต้น คือเมื่อบริษัทหรือบุคคลออกผลิตภัณฑ์และบริการใหม่ที่พวกเขาไม่จำเป็นต้องมีลงทุนเริ่มต้นมากนักกับสถาปัตยกรรมคอมพิวเตอร์ Cloud Computing โดยแพลตฟอร์มนี้จัดหาฮาร์ดแวร์และทำให้แน่ใจแพลตฟอร์มและฮาร์ดแวร์ดังกล่าวจะทำหน้าที่ตามที่คาดหวังไว้ ซึ่งประหยัดต้นทุนได้ทั้งสองด้าน 1.การลงทุนในฮาร์ดแวร์ 2.ค่าใช้จ่ายค่าใช้จ่ายประจำ พวก ค่า Maintenance และ ค่าไฟฟ้าเป็นต้น ค่าใช้จ่ายทั้งสองแบบนี้จะไม่มีเมื่อหันมาใช้ Cloud Computing เนื่องฮาร์ดแวร์ได้ใช้บริการเช่าจาก Cloud Computing ที่ให้บริการและราคาจะขึ้นอยู่ในการใช้งาน
ความสามารถในเรื่อง scalability คือ แพลตฟอร์ม Cloud Computing มีความสามารถในการเพิ่มหรือลดความสามารถในการคำนวณอาจเช่น จำนวน Instance ได้ตามการใช้งานโดยอัตโนมัติ ซึ่งเดิมดูเหมือนว่าจะเป็นไปไม่ได้ที่เราจะไม่ทุ่มเงินลงทุนในโครงสร้างพื้นฐานเพิ่มเติม และแม้เราลงทุนในโครงสร้างพื้นฐานเพิ่มนั้น ก็ไม่รับประกันว่าเราจะได้ประโยชน์ตามที่เราคาดไว้ ซึ่งต่างจากการใช้บริการ Cloud Computing เมื่อมีการใช้งานเพิ่มขึ้นแพลตฟอร์มที่สามารถเพิ่มความสามารถในการคำนวณได้ไม่มีขีดจำกัดเรื่อง scaling แต่ในตัวผู้ให้บริการ Cloud มีรับหน้าที่เรื่องการติดตั้งและ Scaling แทนเพื่อให้ Cloud ทั้ง Cloud ทำงานได้และทำงานอย่างมีเสถียรภาพ เนื่องจากเป็นบริการลักษณะดังกล่าวความรับผิดชอบจึงเปลี่ยนจากผู้ใช้ไปยังผู้ให้บริการซึ่งทำให้ผู้ใช้ชีวิตสะดวกมากยิ่งขึ้น
นอกจากการเพิ่มขนาด scaling แล้วแน่นนอนยังสามารถลดขนาดบริการ Cloud ลงได้ เมื่อเราไม่จำเป็นที่ต้องใช้งานโครงสร้างพื้นฐานที่นั้นตลอดเวลา ซึ่งเมื่อเปรียบเทียบกับโครงสร้างพื้นฐานแบบเดิมเรื่อง scaling Cloud Computing สามารถใช้ให้ฮาร์ดแวร์ ได้อย่างมีประสิทธิภาพยิ่งขึ้น และเมื่อมีผู้ใช้เพิ่มขึ้นบริการของเราก็จะไม่ Overload และเมื่อมีการเข้าใช้เพียงเล็กน้อยหรือไม่การใช้บริการก็สามารถ Scaling ให้ลดลงทำให้ใช้งานของทรัพยากรที่มีประสิทธิภาพซึ่งนำไปสู่ การใช้ฮาร์ดแวร์ได้อย่างคุ้มค่าตลอดเวลา ซึ่งต่างจากเดิมโครงสร้างพื้นฐานคอมพิวเตอร์จะเพิ่มขึ้นตามปริมาณโหลด แต่เมื่อความต้องการใช้บริการดังกล่าวลดลงหรือไม่มีการเข้าใช้ฮาร์ดแวร์ดังกล่าวก็จะไม่ได้ถูกใช้งานเต็มประสิทธิภาพ
ข้อเสียของ Cloud Computing
แม้ว่า Cloud Computing มีประโยชน์อย่างมากในเรื่องโครงสร้างพื้นฐาน หากเปรียบเทียบกับแบบเดิมแต่ยังมีข้อเสีย เนื่องการกำหนดราคาที่แตกต่างกันในแต่ละผู้ให้บริการและมีค่าใช้จ่ายที่ค่อนข้างซับซ้อน
ตัวอย่างเช่นสำหรับ Amazon Web Services ที่ราคาที่ต้องจ่ายจริงนั้นประกอบด้วย ค่าบริการรายชั่วโมง ค่าบริการสตอเรจ และ ค่าบริการตามปริมาณการรับส่งข้อมูล ทั้งหมดอาจยากที่จะคำนวณค่าใช้จ่ายที่ต้องจ่ายได้อย่างชัดเจนและข้อเสียใหญ่ที่สำคัญอีกข้อคือ การขาดมาตรฐานเปิด (open standard)ระหว่าง Cloud Computing ผู้ให้บริการซึ่ง ต่างคนต่างมี application programming interfaces (API) เป็นของตนเองซึ่งนำไปสู่การผูกขาด ซึ่งเป็นสิ่งที่ทุกคนต้องคำนึงถึงก่อนจะหันมาใช้บริการ Cloud Computing แทน
สิ่งที่ต้องคำนึงถึงอีกคือเรื่องความน่าเชื่อถือของบริษัท เช่นบริษัทผู้ให้บริการ Cloud จะอยู่ถึงห้าปีไหมราคาเท่าไหร่ที่จะต้องจ่ายในด้านเทคโนโลยีหากบริษัทไม่ต้องการใช้งานบริการต่อ และจะเกิดอะไรขึ้นถ้ามีค่าบริการจากการใช้เป็นค่าใช้จ่ายที่สูงเกินไป เหล่านี้คือคำถามทั้งหมดลูกค้าควรคิดก่อนที่จะเลือก Cloud Computing รวมถึงผู้ให้บริการ
แม้ว่าจากตัวอย่างที่ผ่าน Cloud Computing จะมีข้อดีมากมายเมื่อเปรียบเทียบกับแบบเดิม แต่ผู้ให้บริการบางรายอาจหายและมีรายอื่นเข้ามาแทนที่ แต่เนื่องจากยังไม่มี Common API ดังนั้นจึงต้องระมัดระวังเป็นอย่างมากในการเลือกผู้ให้บริการ ซึ่งหากเราเลือกผู้ให้บริการไม่ดีอาจมีค่าใช้จ่ายที่สูงขึ้นกว่าในส่วนที่ประหยัดไว้ได้
อีกข้อเสียซึ่งส่งผลในด้านความปลอดภัยของข้อมูล คือ เรื่องความเชื่อถือได้และความปลอดภัยของผู้ให้บริการ นอกจากนี้ยังมีเรื่องกฎหมายซึ่งรัฐบาลและบริษัทต้องทำตาม โดยพวกเขาจำเป็นต้องรู้ชัดเจนว่าข้อมูลที่ถูกเก็บไว้ที่ไหนและให้ใครเข้าถึงได้บ้าง แต่ Cloud Computing ทั้งหมดเป็นลักษณะของโปรแกรมที่กำลังทำงานอยู่ในฮาร์ดแวร์เดียวกันแต่ในสภาพแวดล้อมที่ virtualized ต่างกัน ดังนั้นในทฤษฎีที่เป็นไปได้ที่อาจจะมีคนสามารถเข้าถึงข้อมูลส่วนตัวของลูกค้าคนอื่นผ่านช่องโหว่ เนื่องจากแอปพลิเคชันที่ทำงานฮาร์ดแวร์จริงเครื่องเดียวกัน
จากบทความ Cloud computing: utility computing over the Internet ของ Taneli Korri
ประวัติของ Cloud Computing
คำว่า Cloud นั้นเรายืมมาจากการสื่อสารแบบโทรศัพท์ในยุคปี 90 ดาต้าเซอร์กิจได้เกิดขึ้น (บนเครือข่ายข้อมูลอินเทอร์เน็ต) เป็นการยากที่จะเดินสายเชื่อมต่อระหว่างปลายทางแต่ละจุด ดังนั้นผู้ให้บริการเริ่มมีบริการเครือข่ายส่วนตัวเสมือน หรือที่เรียกว่า VPN โดยผู้ให้บริการ VPN สามารถรับประกันแบนด์วิธเทียบเท่ากับที่การใช้วงจรแบบฟิกส์ในราคาที่ต่ำกว่า เพราะสามารถสวิตช์ทราฟฟิกส์และใช้ประโยชน์จากเครือข่ายโดยรวมได้อย่างมีประสิทธิภาพ จากการที่อาศัยสวิตช์นี้เองจึงเป็นการยากที่จะบอกล่วงหน้าได้ว่าข้อมูลเดินทางผ่านเส้นทางใด คำว่า "Telecom cloud" จึงถูกใช้เพื่ออธิบายเครือข่ายประเภทนี้ และ Cloud Computing ก็มีคอนเซพต์ค่อนข้างคล้ายกัน Cloud Computing อาศัยพื้นฐานเครื่องเสมือน (virtual machine) ซึ่งเกิดขึ้นหรือลดจำนวนเพื่อให้ตรงกับความต้องการของผู้ใช้ เพราะว่า Virtual instances สามารถที่จะเกิดตามความต้องการ จึงเป็นการยากการที่จะตรวจสอบได้ว่ามี virtual machine เท่าไรที่ทำงานให้ขณะนั้น รวมถึง virtual machine ดังกล่าวทำงานอยู่ที่ไหน
เหมือน Cloud network
แนวคิดของ Cloud Computing ย้อนกลับไปยังเมื่อ 1960 เมื่อ John McCarthy ได้เสนอความคิดเห็นว่าวันหนึ่งการคำนวณจะถูกจัดการให้สามารถใช้มันได้อย่างสาธารณะ โดยลักษณะการแชร์บริการกัน แต่ส่วนคำว่า Cloud เข้ามาใช้ในเชิงพาณิชย์
ในช่วงต้นปี 1990 นั้น คือ Asynchronous Transfer Mode หรือที่เรียกเครือข่ายแบบ ATM ต่อมา General Magic เริ่มออกผลิตภัณฑ์ Cloud Computing ได้เพียงช่วงหนึ่งในปี 1995 โดยร่วมกับพันธมิตรหลายราย เช่น ATT&T ก่อนที่ผู้บริโภคหันไปยังอินเตอร์เน็ต ในศตวรรษที่ 21 คำ " Cloud Computing " เริ่มปรากฏอย่างแพร่หลายแต่ส่วนมากจะมุ่งไปในลักษณะ SaaS
ในปี 1999 Salesforce.com ได้ก่อตั้งขึ้นโดย Marc Benioff และ Parker Harris พวกเขาใช้เทคโนโลยีหลายอย่างที่พัฒนาโดยบริษัทเช่น Google และ Yahoo! เพื่อประยุกต์ในเชิงธุรกิจ นอกจากนี้ยังให้แนวคิดของ "On demand" และ SaaS กับธุรกิจของเค้าและลูกค้าที่ประสบความสำเร็จ กุญแจสำหรับ SaaS อยู่ที่ลูกค้าสามารถปรับแต่งได้โดยให้การสนับสนุนทางเทคนิคเท่าที่จำเป็น ซึ่งผู้ใช้พอใจกับความยืดหยุ่นและความเร็วที่ได้
ในช่วงต้นปี 2000 Microsoft ขยายแนวคิดของ SaaS ผ่านการพัฒนา Web service ต่อมาไอบีเอ็มเพิ่มแนวคิดเหล่านี้ในปี 2001 กับ Autonomic Computing Manifesto ซึ่งอธิบายถึงเทคนิคอัตโนมัติขั้นสูง เช่น self-monitoring , self-healing, self-configuring, and self-optimizing เพื่อเพิ่มประสิทธิภาพในการจัดการระบบไอทีที่ซับซ้อนโดยมี สตอเรจ เซิร์ฟเวอร์ แอปพลิเคชัน และเน็ตเวิร์ค ระบบความปลอดภัย และองค์ประกอบอื่นๆที่แตกต่างกันนั้นสามารถ virtualize ข้าม enterprise กันได้Amazon เริ่มมีบทบาทสำคัญในการพัฒนา cloud computing โดยพัฒนา data center ของพวกเขา และพบว่า Cloud architecture ใหม่ปรับปรุงประสิทธิภาพ พวกเขาผ่านได้เปิดให้เข้าถึงระบบของเข้าได้ผ่านทาง Amazon Web Services ในปี 2005
ในปี 2007 ของ Google และ IBM และมหาวิทยาลัยจำนวนหนึ่งได้เริ่มวิจัย cloud computing กันอย่างกว้างขวางโครงการวิจัย ในเดือนสิงหาคม 2008 Gartner Research พบว่า องค์กรต่างๆเริ่มวางแผนจากเดิมที่บริษัทนั้นเป็นเจ้าของฮาร์ดแวร์และซอฟต์แวร์เพื่อให้บริการ ได้มีแผนที่จะย้ายไปยัง cloud computing ซึ่งกำลังเติบโต
คำจำกัดความของ Cloud Computing
"A computing Cloud is a set of network enabled services, providing scalable, QoS guaranteed ,normally personalized, inexpensive computing platforms on demand, which could be accessed in a simple and pervasive way. "
Cloud Computing เป็นเซตของเครือข่ายที่ให้บริการโดยมีคุณลักษณะในการปรับขนาดทรัพยากร และ ขีดความสามรถ (Scalable) รวมถึงการรับประกันคุณภาพของบริการ (Quality of Service) การทำให้มีลักษณะเป็นส่วนตัวโดยมีค่าใช้จ่ายในการคำนวณตามต้องการ และสามารถเข้าถึงได้โดยง่ายจากหลายทาง