วันพุธที่ 28 สิงหาคม พ.ศ. 2556

เทคโนโลยี cloud computing
Cloud Computing คือวิธีการประมวลผลที่อิงกับความต้องการของผู้ใช้ โดยผู้ใช้สามารถระบุความต้องการไปยังซอฟต์แวร์ของระบบCloud Computing จากนั้นซอฟต์แวร์จะร้องขอให้ระบบจัดสรรทรัพยากรและบริการให้ตรงกับความต้อง การผู้ใช้ ทั้งนี้ระบบสามารถเพิ่มและลดจำนวนของทรัพยากร รวมถึงเสนอบริการให้พอเหมาะกับความต้องการของผู้ใช้ได้ตลอดเวลา โดยที่ผู้ใช้ไม่จำเป็นต้องทราบเลยว่าการทำงานหรือเหตุการณ์เบื้องหลังเป็น เช่นไร
ผมได้นิยามคำว่า Cloud Computing ในรูปแบบที่ (น่าจะ) เข้าใจง่ายขึ้นที่ นิยามคำว่า Cloud Computing ภาค 2 สำหรับท่านที่กำลังค้นหาหัวข้อวิจัยและพัฒนาเกี่ยวกับ Cloud Computing สามารถไปอ่านบทความของผมได้ในหัวข้อชื่อ หมวดงานวิจัยเกี่ยวกับ Cloud Computing
รายละเอียดของนิยามมีอีกครับ เข้ามาติดตามได้เลย

ผมขอนิยามความหมายของคำหลักๆ 3 คำที่เกี่ยวข้องกับ Cloud Computing ต่อไปนี้
ความต้องการ (Requirement) คือโจทย์ปัญหาที่ผู้ใช้ต้องการให้ระบบคอมพิวเตอร์แก้ไขปัญหาหรือตอบปัญหาตาม ที่ผู้ใช้กำหนดได้ ยกตัวอย่างเช่น ความต้องการพื้นที่จัดเก็บข้อมูลขนาด 1,000,000 GB, ความต้องการประมวลผลโปรแกรมแบบขนานเพื่อค้นหายารักษาโรคไข้หวัดนกให้ได้สูตร ยาภายใน 90 วัน, ความต้องการโปรแกรมและพลังการประมวลผลสำหรับสร้างภาพยนต์แอนนิเมชันความยาว 2 ชั่วโมงให้แล้วเสร็จภายใน 4 เดือน, และความต้องการค้นหาข้อมูลท่องเที่ยวและโปรแกรมทัวร์ในประเทศอิตาลีในราคา ที่ถูกที่สุดในโลกแต่ปลอดภัยในการเดินทางด้วย เป็นต้น
ทรัพยากร (Resource) หมายถึง ปัจจัยหรือสรรพสิ่งที่เกี่ยวข้องกับการประมวลผลหรือเกี่ยวข้องกับการแก้ไข ปัญหาตามโจทย์ที่ความต้องการของผู้ใช้ได้ระบุไว้ อาทิเช่น CPU, Memory (เช่น RAM), Storage (เช่น harddisk), Database, Information, Data, Network, Application Software, Remote Sensor เป็นต้น
บริการ (Service) ถือว่าเป็นทรัพยากร และในทางกลับกันก็สามารถบอกได้ว่าทรัพยากรก็คือบริการ โดยเฉพาะอย่างยิ่งในด้านCloud Computingแล้ว เราจะใช้คำว่าบริการแทนคำว่าทรัพยากร คำว่าบริการหมายถึงการกระทำ (operation) เพื่อให้เกิดผลลัพธ์ที่สนองต่อความต้องการ (requirement) แต่การกระทำของบริการจะเกิดขึ้นได้จำเป็นต้องพึ่งพาทรัพยากร โดยการใช้ทรัพยากรที่เกี่ยวข้องเพื่อแก้ปัญหาให้เกิดผลลัพธ์สนองต่อความต้อง การ
สำหรับCloud Computingแล้ว ผู้ใช้ไม่จำเป็นต้องสนใจเลยว่าระบบเบื้องล่างทำงานอย่างไร ประกอบไปด้วยทรัพยากร(resource) อะไรบ้าง ผู้ใช้แค่ระบุความต้องการ(requirement) จากนั้นบริการ(service)ก็เพียงให้ผลลัพธ์แก่ผู้ใช้ ส่วนบริการจะไปจัดการกับทรัพยากรอย่างไรนั้นผู้ใช้ไม่จำเป็นต้องสนใจ สรุปได้ว่า ผู้ใช้มองเห็นเพียงบริการซึ่งทำหน้าที่เสมือนซอฟต์แวร์ที่ทำงานตามโจทย์ของ ผู้ใช้ โดยที่ผู้ใช้ไม่จำเป็นต้องรับทราบถึงทรัพยากรที่แท้จริงว่ามีอะไรบ้างและถูก จัดการเช่นไร หรือไม่จำเป็นต้องทราบว่าทรัพยากรเหล่านั้นอยู่ที่ไหน

นิยามที่หลากหลาย


วิดีโอชื่อ “What is Cloud Computing” จากงาน Web 2.0 Expo

เนื่องจากมีความหลากหลายในเรื่องวิธีและ แนวทางในการพัฒนาระบบCloud Computing ดังนั้น จึงเป็นสาเหตุให้ผู้คนนิยามคำว่าCloud Computingแตกต่างกันไปตามแต่เทคโนโลยีหรือวิธีการที่ใช้พัฒนาหรือแม้แต่มุม มองของแต่ละบุคคล ยกตัวอย่างเช่น จากblogของคุณsoowoiได้ทำการค้นคว้านิยามภาษาไทยของคำว่าCloud Computing(ที่แปลโดยทีมblognone) ไว้ดังนี้

  1. บริษัท Gartner กล่าวว่า ระบบการประมวลผลแบบกลุ่มเมฆคือ แนวทางการประมวลผลที่พลังของโครงสร้างทางไอทีขนาดใหญ่ที่ขยายตัวได้ถูกนำ เสนอยังลูกค้าภายนอกจำนวนมหาศาลในรูปแบบของบริการ
  2. ฟอเรสเตอร์กรุ๊ป กล่าวว่า การประมวลผลแบบกลุ่มเมฆคือ กลุ่มของโครงสร้างพื้นฐานที่ถูกบริหารจัดการและขยายตัวได้อย่างมาก ซึ่งมีขีดความสามารถในการรองรับโปรแกรมประยุกต์ต่างๆของผู้ใช้และเก็บค่า บริการตามการใช้งาน

หมายเหตุ อ่านรายละเอียดจากแหล่งข้อมูลได้ที่ http://lib.blognone.com/Cloud_Computing

ผมวิเคราะห์ได้ว่านิยามแรกของ Gartner นั้นอิงตามวิธีการประมวลผลแบบกระจาย (Distributed Computing) โดยเน้นไปที่คุณสมบัติที่เรียกว่าความสามารถในการขยายตัวได้ของระบบ (Scalability) ส่วนนิยามจากฟอเรสเตอร์ (Forrester)ก็ คล้ายๆกับของGartnerที่กล่าวถึงความสามารถในการขยายตัวได้ และยังเสริมอีกว่ารองรับโปรแกรมประยุกต์และเก็บค่าบริการตามการใช้งานจริง (Pay per use หรือ Post paid นั่นเอง) สำหรับประโยคหลังนี้ที่แตกต่างไปจากของGartner โดยการอิงหลักการของ Grid Computing, Utility Computing และ SaaS

แนะนำสักนิดสำหรับผู้ที่ไม่ทราบว่าอะไรคือ Grid Computing, Utility Computing และ SaaS

  • Grid Computing คือวิธีการประมวลผลที่เกิดจากการแชร์ทรัพยากร(อย่างเช่น CPU สำหรับการประมวลผล)ระหว่างองค์กรหรือหน่วยงานที่ใช้นโยบายแตกต่างกันไป (คนละบริษัทหรือคนละแผนก) อย่างเช่น องค์กร A กับองค์กร B ต้องการแชร์คอมพิวเตอร์ส่วนหนึ่งเพื่อประมวลผลโปรแกรมหรือระบบงานเดียวกัน เมื่อองค์กรที่แตกต่างแชร์ทรัพยากรร่วมกันย่อมมีนโยบายที่ไม่เหมือนกัน เช่นการกำหนดสิทธิและขอบเขตในการใช้ทรัพยากรที่แตกต่างกัน เป็นต้น และจำเป็นต้องอาศัยระบบรักษาความปลอดภัยที่มีประสิทธิภาพ รวมไปถึงความต้องการระบบ Single-Sign-On (หรือการล็อกอินครั้งเดียว แต่สามารถเข้าถึงคอมพิวเตอร์ได้หลายเครื่องหรือใช้โปรแกรมได้หลายโปรแกรม) ทั้งนี้ เนื่องจากมีคอมพิวเตอร์ขององค์กรที่แตกต่างกันเข้ามาเกี่ยวข้อง ระบบuser accountในการล็อกอินเข้าใช้งานระบบย่อมไม่เหมือนกัน จึงต้องพึ่งพาระบบ Single-Sign-On นั่นเอง
  • Utility Computing เป็นหลักการแชร์ทรัพยากรที่คล้ายกับGrid Computing เพียงแต่ว่าทรัพยากรจะถูกมองเสมือนว่าเป็นบริการสาธารณูปโภค (เช่น ไฟฟ้า น้ำประปา และโทรศัพท์) โดยบริการเหล่านี้ ผู้ใช้สามารถจ่ายเงินเพื่อใช้งานได้ตามที่ต้องการ และเวลาจ่ายเงิน ก็จ่ายตามจำนวนหรือช่วงเวลาที่ใช้งานจริง
  • SaaS ย่อมาจาก Software as a Service เป็นรูปแบบการให้บริการซอฟต์แวร์หรือapplicationบนเครือข่ายอินเตอร์เน็ต ทำให้ลูกค้าที่ออนไลน์บนเครือข่ายอินเตอร์เน็ตใช้บริการซอฟต์แวร์เหล่านี้ ได้โดยไม่จำเป็นต้องติดตั้งซอฟต์แวร์ไว้ที่หน่วยงานหรือคอมพิวเตอร์ของ ลูกค้า โดย SaaS เป็นหลักการที่ตรงกันข้ามกับ On-premise software อันเป็นการติดตั้งซอฟต์แวร์ไว้ที่ทำงานหรือคอมพิวเตอร์ของลูกค้า

จากที่blognoneแปล ไว้ ทำให้เราได้คำศัพท์สำหรับเรียก Cloud Computing แบบไทยคือ “ระบบการประมวลผลแบบกลุ่มเมฆ” ถือว่าบัญญัติชื่อเรียกภาษาไทยได้ลงตัวดีครับ ทำให้มโนภาพเห็นเมฆลอยบนท้องฟ้า และเมื่อไหร่ก็ตามที่เราอยากได้อะไร เราก็เงยหน้ามองฟ้าวาดเมฆให้ได้ดั่งใจเราต้องการ
มาดูนิยามจากทางเจ้าพ่อสารานุกรมออนไลน์Wikipediaบ้าง เขาได้ให้นิยามไว้ว่า

Cloud computing refers to computing resources being accessed which are typically owned and operated by a third-party provider on a consolidated basis in Data Center locations. Consumers of cloud computing services purchase computing capacity on-demand and are not generally concerned with the underlying technologies used to achieve the increase in server capability. There are however increasing options for developers that allow for platform services in the cloud where developers do care about the underlying technology.  – โปรดดูต้นฉบับของ Wikipedia ประกอบ
แปลได้ว่า: Cloud Computing หมายถึงทรัพยากรสำหรับการประมวลผลที่จัดเตรียมและจัดการโดยบุคคลหรือองค์กร ที่สาม (Third Party) โดยทรัพยากรเหล่านี้ถูกจัดเตรียมไว้ที่Data Center จากนั้น ผู้ใช้ของCloud Computing สามารถเข้าไปใช้งานทรัพยากรเหล่านี้โดยการซื้อ(หรือเช่า)ได้ตามที่ต้องการ โดยที่ผู้ใช้ไม่ต้องคำนึง(หรือแม้แต่กังวล)เลยว่าทางผู้ให้บริการทรัพยากรจะ บริหารทรัพยากรให้มีความสามารถขยายตัวด้วยวิธีอะไร (หรือว่าได้หรือไม่ เพราะยังไงก็ต้องทำให้ได้ :) )
แต่ประโยคสุดท้ายเขาได้กล่าวว่า การที่ Cloud Computing จัดเตรียมความสามารถที่ระบบสามารถขยายตัวได้ตามความต้องการของผู้ใช้ (increasing option) ก็เป็นเรื่องท้าทายที่ผู้พัฒนาระบบจำเป็นจะต้องเป็นห่วงเป็นกังวลแทน นั่นหมายความว่า ถ้าหากผู้ใช้ต้องการทรัพยากรมากกว่าที่ผู้ให้บริการจะเตรียมให้ได้ ผู้ให้บริการจะต้องค้นหาวิธีใดๆก็ตามเพื่อสนองต่อความต้องการที่เพิ่มมาแบบ ฉับพลันนี้ให้ได้ อย่างเช่น ผู้ให้บริการอาจจะต้องกลายเป็นผู้ใช้หรือลูกค้าของผู้ให้บริการเจ้าอื่นๆ เป็นทอดๆ เป็นต้น

เมื่อท่านอ่านบทความนี้จบ กรุณาอ่านบทความ “มุมมองในเรื่องCloud Computingของผู้เชี่ยวชาญ” เพื่อดูนิยามและความเข้าใจในเรื่องCloud Computingของบุคคลท่านอื่น

ทำไมต้องเป็นCloud

สาเหตุที่มีชื่อว่า Cloud Computing ก็มาจากสัญลักษณ์รูปเมฆ(Cloud)ที่เราใช้แทนเครือข่ายอินเตอร์เน็ต ลองดูตัวอย่างได้จากโปรแกรมMicrosoft Visio อย่างเวลาเราจะวาดแผนผังเครือข่าย สัญลักษณ์ของเครือข่ายอินเตอร์เน็ตก็คือรูปเมฆ
ในเมื่อรูปเมฆแทนอินเตอร์เน็ต แล้วทำไมอินเตอร์เน็ตจึงไปเกี่ยวกับCloud Computingได้? คำตอบมาจากการที่เราต่อคอมพิวเตอร์หรืออุปกรณ์ต่างๆเข้ากับเครือข่าย อินเตอร์เน็ต เราก็สามารถได้บริการหรือได้ใช้ทรัพยากรที่อยู่ระยะไกลเพื่อสนองต่อความต้อง การของเราได้นั่นเอง นี่จึงเป็นสาเหตุที่เขามองว่า Cloud Computing คือเมฆที่ปกคลุมทรัพยากรและบริการอยู่มากมาย เทียบได้กับเครือข่ายอินเตอร์เน็ตที่ต่อกับบริการและทรัพยากรจำนวนมหาศาล เมื่อเป็นCloud Computing เราจะมองว่าอินเตอร์เน็ตคือเมฆ และเมื่อไหร่ที่เราต่อคอมพิวเตอร์เข้ากับเมฆแล้ว เราก็สามารถเข้าถึงและใช้ทรัพยากรจำนวนมหาศาลที่ต่อกับเมฆ…เทียบ ได้กับเมฆปกคลุมทรัพยากรคอมพิวเตอร์และผู้ใช้จำนวนมหาศาลไว้อยู่ ทั้งนี้ผู้ใช้มองเห็นเมฆผ่านทางบริการที่จะนำพาผู้ใช้เข้าถึงพลังในการ ประมวลผลและทรัพยากรต่างๆที่อยู่ใต้เมฆ หรือภายใต้ท้องฟ้าเดียวกันคือเครือข่ายอินเตอร์เน็ตนั่นเอง
มีผู้เชี่ยวชาญหลายท่านกล่าวว่าเนื่องด้วย Web 2.0 อันเป็นยุคของอินเตอร์เน็ตที่รุ่งเรืองในเรื่องของสมาคมออนโลน์หรือสังคมดิจิตอล เป็นเหตุให้ผู้คนจำนวนมากเข้าถึงบริการ World Wide Web (WWW) เพื่อขอใช้บริการที่มีความหลากหลาย และการใช้บริการเริ่มจะทวีคูณเพิ่มมากขึ้นเรื่อยๆและถี่ขึ้นเรื่อยๆ เราจะพบว่าเราอยู่หน้าจอคอมพิวเตอร์เพื่อใช้งานอินเตอร์เน็ตมากขึ้น ไม่ใช่แค่เพียง chat, เช็ค email,และเปิดหน้าเว็บเพื่ออ่านข่าวเท่านั้น หากแต่เป็นการใช้งานเพื่อเข้าสังคมผ่านGroup และ Web board รวมไปถึงBlogส่วนตัว และ Community อย่าง Hi5 หรือ Facebook รวมไปถึงการแชร์ไฟล์ต่างๆไม่ว่าจะแชร์รูปภาพผ่านFlickr แชร์วิดีโอผ่านYoutube รวมไปถึงการเข้าไปใช้งานapplicationต่างๆที่ออนไลน์บนโลกอินเตอร์เน็ต อย่างที่ Hi5 และ Facebook ได้บริการ application แบบต่างๆไว้ให้ผู้ใช้สามารถติดตั้งไว้บนหน้าเว็บส่วนตัวได้ และอย่างที่ Google ได้เตรียม Google Doc ไว้เป็นโปรแกรมสร้างเอกสารที่สามารถเข้าถึงได้ทุกที่ทุกเวลา
เราจะเห็นตัวอย่างของ Web 2.0 ที่เป็นจุดพลิกผลันให้เกิด Cloud Computing ได้จาก Google Apps ที่รวมapplicationต่างๆผ่านจุดเดียว รวมไปถึงบริการที่มีอยู่มากมาย ตั้งแต่ search engine, gmail, picasa, google video, google doc, google calendaryoutube, google maps, google reader และ blogger เป็นต้น และเมื่อไหร่ก็ตามที่บริการและapplicationต่างๆเหล่านี้ทำงานร่วมกันเสมือน เป็นระบบเดียว รวมไปถึงสามารถแชร์ทรัพยากรและใช้งานร่วมกันระหว่างผู้ใช้อื่นๆได้ก็จะทำให้ เกิด Cloud computing ขึ้นมาในที่สุด และตัวอย่างของความสำเร็จนี้เกิดขึ้นจริง แล้ว ในกรณีระหว่าง Salesforce.com และ Google ได้ร่วมมือกันสร้างเครือข่ายดังกล่าวขึ้นเพื่อการทำงานร่วมกันระหว่าง พนักงานขายของบริษัทเดียวกันหรือแม้แต่ระหว่างบริษัท ทำให้เพิ่มประสิทธิภาพในการขายสินค้าและบริการได้มากยิ่งขึ้น

ไม่มีความคิดเห็น:

แสดงความคิดเห็น