บิล เกตส์แสดงความคิดเห็นต่ออนาคตของ Cloud Computing ผ่านนิตยสาร PC Magazine ว่า Cloud Storage จะเติบโตได้เร็วกว่า Cloud Computing โดยเกตส์กล่าวว่า Cloud Storage ทำให้คนเราสามารถจัดเก็บไฟล์ไว้กับผู้ให้บริการ และสามารถดาวน์โหลดไฟล์ได้จากทุกที่ทั่วโลก ส่วนการสำรองข้อมูลก็ยกให้เป็นภาระของผู้ให้บริการ
เกตส์ให้เหตุผลว่า Cloud Computing จำเป็นต้องลงทุนกับต้นทุนบางอย่างที่มีผลกระทบต่อประสิทธิภาพของการประมวลผล อาทิเช่น การลดความหน่วง (latency) และการเพิ่มแบนด์วิธ (bandwidth) เป็นต้น ต่างจาก Cloud Storage ที่ไม่ต้องลงทุนกับปัจจัยเหล่านี้เลย ทำให้ Cloud Storage เป็นเทคโนโลยีที่สามารถเติบโตได้เร็วกว่า Cloud Computing
อย่างไรก็ตาม ไมโครซอฟต์เองก็มีโครงการที่กำลังพัฒนาบริการ Cloud Computing ในนามว่า "Red Dog" ไว้ต่อกรกับ Cloud Computing ของ Google และ Amazon นั่นคือ Amazon EC2 และ Google App Engine ส่วนบริการพื้นที่จัดเก็บข้อมูลออนไลน์ของฝั่งไมโครซอฟต์ที่เปิดให้บริการในตอนนี้คือ SkyDrive ซึ่งยังไม่นับว่าเป็น Cloud Storage อย่างเต็มตัว
ปัจจุบันนี้ มีบริการที่เป็น Cloud Storage อยู่หลายตัวด้วยกัน อาทิเช่น Amazon S3, Apple's MobileMe, Symantec's SwapDrive, Humyo, XDrive, และ ADrive เป็นต้น ท่านสามารถดูตารางการเปรียบเทียบบริการบางตัวได้ที่ electronicportfolios.org
ที่มา - ByteAndSwitch
Comments
มีตัวไหนเป็น unlimit แล้วราคาถูกกว่า $35USD ต่อปีมั้ยครับ (เผื่อมี)
มีครับ! ผมจะได้ค่านายหน้าไหมเนี่ย ของ Flickr Unlimited uploads and storage! จ่ายต่อปี $24.95 ผมยังไม่ได้ลองเลยไม่ทราบว่าดีเปล่า แต่จำกัดที่คงต้องเป็นไฟล์ภาพและวิดีโอ อย่างไรก็ดี มันมีเทคนิคแปลงไฟล์ใดๆเป็นรูปภาพครับ ซึ่งอาจจะต้องลงทุนเวลาในการ convert ไฟล์หน่อยครับ
Sivadon Chaisiri (JavaBoom)
http://javaboom.wordpress.com
My Blog
เปลี่ยนนามสกุลของไฟล์ให้เป็น .jpg เฉยๆ ได้หรือเปล่าหว่า อุอุอุ :P
ผมลองกับ flickr แล้ว เอาไฟล์ .pdf แล้วแก้นามสกุลเป็น .jpg ตอน upload มันขึ้นว่า "Bonk! 1 file didn't make it" สรุปคือมันเช็คอยู่ครับว่ารูปภาพมีฟอร์แมทถูกต้องหรือเปล่า
Sivadon Chaisiri (JavaBoom)
http://javaboom.wordpress.com
My Blog
ผมขอรายละเอียดข้อมูลเชิงเทคนิคเพิ่มเติมแยกไว้ใน comment นี้
นับว่าบิลได้ใช้ศาสตร์ด้านคอมพิวเตอร์ในการทำนายของเขา คำว่าการลงทุนที่เขากล่าว จากแหล่งข่าวคือคำว่า tradeoff หมายถึงการแลกเปลี่ยน/ได้อย่างก็ต้องเสียอย่าง นั่นคือ ถ้าจะได้มาซึ่งประมวลผล (Computing) ที่มีประสิทธิภาพนั้น จะคำนึงถึง overhead ที่กระทบต่อการประมวลผลด้วยนั่นคือ Latency กับ Bandwidth
Latency ของการประมวลผลมีอยู่หลายตัวด้วยกัน ได้แก่ เวลาในการคำนวณโดยโปรเซสเซอร์ (Execution time), เวลาที่เกิดจากการสลับโปรเซส (Context switching), เวลาของโปรเซสอื่นๆ (เช่น โปรเซสในการจัดการบัฟเฟอร์ โปรเซสของบริการ Interrupt ต่างๆ), และความหน่วงอันเกิดจากอุปกรณ์เครือข่าย เป็น ส่วน Bandwidth ในที่นี้หมายถึง Bandwidth ของเครือข่าย
การประมวลผลบน Cloud Computing หากต้องการประสิทธิภาพที่สูง ต้องลดค่า Latency และเพิ่มค่า Bandwidth แน่นอน เราจำเป็นต้องลงทุนให้กับอุปกรณ์เครือข่ายที่มีความเร็วสูง และคอมพิวเตอร์ที่มีสมรรถนะตามไปด้วย
ขอวิเคราะห์เพิ่มอิงตามประสบการณ์ส่วนตัว ผมมองว่าบิลให้เหตุผลได้ดีมาก เพราะการประมวลผลมันควบคุมยากกว่าการจัดเก็บข้อมูล นั่นถือเป็นการลงทุนกับปัจจัยที่ทำนายลำบาก อย่างเช่น มันยากที่จะทำนายเวลาในการประมวลผลรวมถึง Latency ที่เกี่ยวข้องว่ามากเท่าไหร่ ต่างจากการจัดเก็บข้อมูลบน Cloud Storage ที่ทำนายหรือคำนวณได้ไม่ยาก เช่น ถ้าไฟล์ 100 GB จะใช้เวลาในการ upload / download นานเท่าไหร่ เป็นต้น ซึ่งปัจจัยของการทำนายต้นทุนนี่เองจึงเป็นเหตุให้ Cloud Storage สามารถวางแผนการจัดสรรทรัพยากรได้ดีกว่า Cloud Computing เช่น ลงทุนกับ SAN หรือ NAS ที่ประเมินค่า Latency และ Bandwidth ของการให้บริการ Cloud Storage ได้ และยืดหยุ่นต่อการเพิ่มหรือลดขนาดพื้นที่จัดเก็บข้อมูล เป็นต้น
มองในแง่ Demand ของลูกค้าแล้ว ผู้ให้บริการสามารถให้ Supply ของ Storage ได้มีประสิทธิภาพกว่าการให้ Supply ของ Computing ขอให้นึกถึงเวลาลูกค้า upload ไฟล์ขนาด 1,000 GB มาเก็บที่ storage ที่คงเหลือพื้นที่ 900 GB ซึ่งผู้ให้บริการสามารถจัดหาพื้นที่เพิ่มเติมอีก 100 GB ได้ก่อนที่ไฟล์จะ upload เสร็จ ถ้าหากเป็น Computing โปรแกรมมันอาจจะใช้ CPU สูงเต็มที่ 100% หรือ 0% เมื่อไหร่ก็ได้และก็เกิดขึ้นได้ทันที ดังนั้น การจัดเตรียม Supply ที่ดีต้องอาศัยการการทำนายความต้องการใช้ CPU ของโปรแกรมที่แม่นยำ (และก็ทำได้ยาก)
นอกจากนี้ Storage เกี่ยวข้องกับสรรพสิ่งที่คงสภาพได้ (stateful) เช่น เก็บไฟล์ 10 MB บนดิสก์ก็ยังเป็นไฟล์ 10 MB เป็นต้น ต่างจาก Computing ที่ไร้สภาพหรือสภาพไม่คงที่ (Stateless) เช่น คำสั่งและตัวแปรของโปรแกรมย่อมเปลี่ยนไปตาม Flow Control ดังนั้น เพื่อประกันความคงสภาพของ Computing หรือจะทำให้ Computing มีคุณสมบัติ Stateful จำเป็นต้องลงทุนสูง อาทิ การใส่ snapshot ให้กับโปรแกรมที่กำลังรันอยู่ เป็นต้น
อย่างไรก็ดี Cloud ที่น่าเชื่อถือจำเป็นต้องให้การรับประกันคุณภาพของบริการ ซึ่งการรับประกันจำเป็นต้องลงทุน เช่น ถ้าเป็น Cloud Storage ก็จำเป็นต้องสำรองข้อมูลให้กับลูกค้ามากกว่า 1 สำเนา เป็นต้น ในทางธุรกิจมีเอกสารที่เรียกว่า Service-Level-Agreement (SLA) สำหรับเป็นข้อตกลงในการให้บริการ รวมถึงค่าปรับในกรณีที่ผู้ให้บริการไม่สามารถทำได้ตามข้อตกลง
ในคำพูดของบิล เกตส์กล่าวว่า Cloud Storage ไม่มี tradeoff หรือไม่ต้องลงทุน นั้นออกจะเป็นการมองข้ามการรับประกันบริการหรือสินค้า (อย่างที่เราเจอกันบ่อยๆ) ผมจึงมองว่า Cloud Storage ก็มีต้นทุนเช่นกัน นั่นคือการรับประกัน ยกเว้นซะว่า ไมโครซอฟต์ไม่คิดจะรับประกัน :)
Sivadon Chaisiri (JavaBoom)
http://javaboom.wordpress.com
My Blog
เห็นชัดมาก ขอบคุณครับ
ประเด็นเรื่องต้นทุนต่อหน่วยของ storage คำนวณได้ง่ายกว่า computing แบบนี้
อาจจะมองได้ว่าเป็นความท้าทายในการคิด commercial model ให้ computing grid
ด้วยความยินดีครับ
ใช่ครับ เป็นความท้าทายของนักวิจัยมากเลยทีเดียวครับ
Sivadon Chaisiri (JavaBoom)
http://javaboom.wordpress.com
My Blog
เรื่องความเสถียรเอง ขนาด EC2/S3 (หรือแม้กระทั่ง Gmail เอง) ก็ยังมีปัญหาอยู่บ้างประปราย คงต้องพัฒนากันต่ออีกสักพักกว่าจะมั่นคงแข็งแรงดี
จากประสบการณ์ของผมคือ เสถียรภาพมีปัจจัยเสริมเยอะมาก แค่การไฟฟ้าตัดไฟ (ไม่เกี่ยวกับประท้วงนะครับ แบบว่าซ่อมไฟ) ก็แทบทำอะไรไม่ได้แล้ว ถ้าอยากสร้างเสถียรภาพสูงๆ ระดับ five nines ต้องสามารถควบคุมได้เยอะมาก ตั้งแต่ปั่นไฟเองได้จนถึงเป็นเจ้าของอาคาร (เช่าเขาเอานี่ลำบาก) ขนาดกูเกิลมีสุดยอด data center เอง มี replica 3 ชั้น (จาก GFS) ยังจอดบ้างในบางที
flickr มันเก็บได้แต่ภาพ
megaupload premium เก็บได้1 TB
ผมไช้ GMail Drive (shell extension) ด้วยหละ ... ^^
samsung ใหญ่แค่ใหน ?
https://youtu.be/6Afpey7Eldo
ผมใช้ mozy อยู่ด้วยเหตุผลเรื่องโปรแกรม client แต่เวอร์ชันฟรีได้แค่ 2GB ซึ่งเก็บพวกไฟล์เอกสารสำคัญๆ ถ้าไม่รวมรูปภาพ วิดีโอ เพลง 2GB ก็เอาอยู่
เห็นคุณ sirn บอกว่า mozy มีปัญหาเรื่องนโยบาลกู้ข้อมูล ซึ่งอันนี้ไม่ทราบเพราะยังไม่เคยลองกู้ (และไม่ควรจะเคยลอง)
ถ้าเป็นวินโดวส์ตัวเลือกมีเยอะกว่า เห็นที่ดังๆ ของเมืองนอกพูดถึง XDrive กันเยอะ ส่วนบนลินุกซ์มีน้อยมาก ทำ rsync น่าจะดีกว่า
Computing ประมวลผล
แค่จาก
$a = 100 ;
กับ
$a = 1000 ;
มี 0 เพิ่มมา 1 ตัว
ข้อมูลเพิ่มแค่ 1 byte แต่ประมวลผลต่างกัน 10 เท่า
ถ้า $a เป็น integer ปกติ integer มันใช้ 32 bit หรือ 4 bytes เท่ากันครับ ดังนั้น 100 กับ 1000 ต่างเก็บอยู่ใน 4 bytes เหมือนกันทุกอย่างครับ ไม่ได้หมายถึงเพิ่มมา 1 หลักแล้วเพิ่ม 1 byte ครับ แม้เลขศูนย์ตัวเดียวโดดๆถ้า integer 32 bit ก็เก็บ 4 bytes เหมือนกันครับ ในระดับ circuit แล้ว ฟังก์ชัน add จำนวน integer 32-bit ไม่ว่าจะกี่หลักก็ตามควรจะให้เวลาเท่ากัน เพราะใช้ clock cycle เท่ากันครับ
แต่ลูป 100 ครั้งกับ 1000 ครั้ง เวลาก็ควรแตกต่างครับแต่อาจจะไม่ได้ 10 เท่า (น้อยกว่า / มากกว่าก็ได้) โดยเฉพาะถ้าภายในลูปมีการคำนวณเยอะแยะมากมาย หรืออาจจะต้อง context switching เยอะไปด้วยก็อาจจะกินเวลาขึ้น
Sivadon Chaisiri (JavaBoom)
http://javaboom.wordpress.com
My Blog
ยังจำกันได้ป่าวครับ ราวๆปี 1994
เกต เคยฟันธงว่า Internet ไม่รุ่ง
ที่จะไปได้รุ่งกว่าคือ Network service
และประกาศลงทุนใน Microsoft Network ทั้งในอเมริกา และ ยุโรป
ล้อยันลูกบวชละคับ อันนี้
พี่แกคงจำไปจนตาย 55
ถ้าิลุงบิลแกพูดถูก คิดถึงทุกอย่าง ป่านนี้คงไม่มีที่ให้หลาย ๆ คนได้ยืน
มันก็ต้องมีถูกบ้างผิดบ้าง มั่วบ้าง โลกถึงได้ก้าวมาอย่างทุกวันนี้
นึกภาพไม่ออกจริง ๆ ถ้าทุกอย่างที่ลุงแก คิดถูกหมด MS ทำอะไรแล้วดีหมดตอนนี้เราจะเป็นยังไงกันบ้าง โลกของคอมพิวเตอร์จะดีกว่ารึแย่กว่านี้มั้ย
ที่แน่ๆ คงเป็นโลกของ MS :-)
ใน php
$a = 100 ;
กับ
$a = 1000 ;
sourcecode file เพิ่ม 1 byte (file เก็บไว้ที่ server ผมเทียบกับการ storage ครับ)
การทำงาน+ผลลัพทธ์ เพิ่มขึ้น 10 เท่า แน่นอนครับ
ลองคิดถึงการ echo 10 ครั้งกับ 100 ครั้ง ผลลัพธ์ต่างกัน 10 เท่า
แต่เวลาในการประมวลผล+process ของ server ทำงาน อาจขึ้นไม่ถึง 10 เท่าจริงครับ
ถูกต้องครับใน sourcecode มันเพิ่ม 1 byte ครับ แต่ตอนรันมันเก็บในหน่วยความจำบนพื้นที่ที่เท่ากันครับ เช่น 4 bytes เท่ากัน ไม่ใช่แน่ๆที่ 1000 จะเก็บไว้ในหน่วยความจำมากกว่า 1 byte เมื่อเทียบกับ 100
ส่วน echo 10 ครั้งกับ echo 100 ครั้ง มันแน่นอนอยู่แล้วว่าจำนวนผลลัพธ์ต่างกัน 10 เท่า แต่ที่คุณพิมพ์ก่อนหน้านี้ ผมว่าหลายคนใน blognone ก็เข้าใจเหมือนผมน่ะครับ และที่แน่ๆ หากพิมพ์แค่ว่า $a = 100 กับ $a = 1000 ไม่สามารถสรุปได้ว่าประมวลผลหรือให้ผลลัพธ์เพิ่มขึ้น 10 เท่า คุณควรจะพิมพ์เน้นว่าประมวลผล 100 ครั้งกับ 1000 ครั้ง (เช่นการ echo) มันย่อมเพิ่มขึ้น 10 เท่า :) แต่มันก็เป็นสมการที่ทราบๆกันอยู่แล้วน่ะครับ
เอาเป็นว่าที่คุณพิมพ์ไว้ก่อนหน้านี้ ข้อมูลคุณน้อยไปน่ะครับ เพราะคุณพิมพ์ว่า "มี 0 เพิ่มมา 1 ตัว ข้อมูลเพิ่มแค่ 1 byte แต่ประมวลผลต่างกัน 10 เท่า" คุณไม่ได้พูดถึง echo หรือแม้แต่ว่าเพิ่มขึ้น 1 byte ใน sourcecode ผมเลยเข้าใจว่าคุณหมายถึงตอนรันแล้วข้อมูลคุณใหญ่ 1 byte แล้วรันนานขึ้น 10 เท่า เอาเป็นว่าผมเข้าใจ comment คุณผิดแล้วกันครับ ขออภัย ณ ที่นี้ด้วยครับ
Sivadon Chaisiri (JavaBoom)
http://javaboom.wordpress.com
My Blog