Windows Azure คืออะไร?
Windows Azure เป็นรูปแบบการให้บริการที่ให้ใช้การประมวลผลแบบกลุ่มเมฆ (cloud computing) ที่สร้างขึ้น พัฒนา และบริหารโดยบริษัท Microsoft ซึ่งบริการทั้งหมดจะให้บริการภายในศูนย์ข้อมูล (data center) ของ Microsoft เองที่กระจายอยู่ทั่วโลกทั้งหมด 8 ศูนย์ข้อมูล ตั้งอยู่ใน 3 ทวีปด้วยกัน ซึ่งได้แก่
อเมริกา: ชิคาโก (North-central US), ซานอันโตนิโอ (South-central US), แคลิฟอร์เนีย (West US) และ เวอร์จิเนีย (East US)
เอเชีย: ฮ่องกง ประเทศจีน (East Asia) และสิงค์โปร์ (South East Asia)
ยุโรป: อัมสเตอร์ดัม ประเทศเนเธอร์แลนด์ (West Europe) และดับลิน ประเทศไอร์แลนด์ (North Europe)
ข้อมูลจาก Location of Customer Data และ Windows Azure Service Dashboard
โดยบริการประมวลผลแบบกลุ่มเมฆของ Microsoft ในชื่อ Windows Azure นั้นจะให้บริการใน 2 รูปแบบหลักคือ บริการแพลตฟอร์ม (Platform as a Service; PaaS) และ บริการโครงสร้างพื้นฐาน (Infrasfructure as a Service; IaaS) ซึ่งใน Windows Azure ไม่เพียงแต่สนับสนุนภาษาและเครื่องมือพัฒนาของ Microsoft เองเท่านั้น แต่ยังรวมไปถึงสนับสนุนภาษาและเครื่องมือพัฒนาของค่ายอื่นๆ ทั้งโอเพนซอร์สซอฟต์แวร์ (open source software) และซอฟต์แวร์กรรมสิทธิ์ (proprietary software) โดยสามารถนำมาใช้งานบน Windows Azure ได้เกือบทั้งหมด
นำมาจาก Windows Azure Introducing Virtual Machines (IaaS)
Mario Szpuszta (Platform Strategy Advisor, EMEA Windows Azure Incubation,
Microsoft Corporation)
รูปแบบการให้บริการล่าสุดที่เพิ่งประกาศไปเมื่อวันที่ 16 เมษายน 2556 ที่ผ่านมานั้น Microsoft ได้แบ่งส่วนการบริการบนกลุ่มเมฆของ Windows Azure ทั้ง บริการแพลตฟอร์ม (Platform as a Service; PaaS) และบริการโครงสร้างพื้นฐาน (Infrasfructure as a Service; IaaS) บน Windows Azure ออกเป็น 6 ส่วนหลักๆ โดยประเภทของบริการบางตัวนั้นไปตรงกับชื่อบริการด้วย ซึ่งทั้งหมดนั้นได้แก่
1. Windows Azure Web Sites หรือ Web Sites
เป็นบริการแพลตฟอร์ม (PaaS) สำหรับให้เรานำเว็บไซต์ที่พัฒนาขึ้นมาไปไว้บนบริการประมวลผลแบบกลุ่มเมฆ ซึ่งจะมีระบบฐานข้อมูล พื้นที่ และระบบเครือข่ายที่ถูกติดตั้งไว้รองรับการใช้งานไว้พร้อม เรามีหน้าที่เพียงนำระบบที่พัฒนาและฐานข้อมูล (ถ้ามี) ขึ้นไปติดตั้งและใช้งานได้ทันที
ซึ่ง Windows Azure Web Sites นั้นรองรับการพัฒนาระบบบนภาษาและซอฟต์แวร์เพื่อรองรับโครงร่างการพัฒนาโปรแกรมคอมพิวเตอร์ (Software Framework) ดังต่อไปนี้
– ASP.NET รองรับ .NET Framework versions 3.5 หรือ 4.5 โดยเมื่อพัฒนาตัวเว็บไซต์แล้วสามารถติดตั้งขึ้นบนระบบประมวลผลแบบกลุ่มเมฆ Web Sites ผ่านทาง Visual Studio, WebMatrix, PowerShell, TFS และ Git ได้
– Node.js รองรับ Node.js versions 0.6.17, 0.6.20 และ 0.8.4 โดย 0.6.20 เป็นค่าเริ่มต้น โดยเมื่อพัฒนาตัวเว็บไซต์แล้วสามารถติดตั้งขึ้นบนระบบประมวลผลแบบกลุ่มเมฆ Web Sites ผ่านทาง WebMatrix, PowerShell และ Git ได้
– PHP รองรับ PHP versions 5.3 หรือ 5.4 ผ่าน PHP/FastCGI โดยเมื่อพัฒนาตัวเว็บไซต์แล้วสามารถติดตั้งขึ้นบนระบบประมวลผลแบบกลุ่มเมฆ Web Sites ผ่านทาง FTP, WebMatrix และ Git ได้
– Python รองรับ Python version 2.7 ผ่าน wfastcgi.py โดยเมื่อพัฒนาตัวเว็บไซต์แล้วสามารถติดตั้งขึ้นบนระบบประมวลผลแบบกลุ่มเมฆ Web Sites ผ่านทาง PowerShell และ Git ได้
ระบบเว็บไซต์ที่พัฒนาจะถูกติดตั้งขึ้นไปบนระบบประมวลผลแบบกลุ่มเมฆ โดยจะบันทึกตัวเว็บไซต์ของเราไว้ใน File System Storage ของตัว Windows Server 2008 R2 หรือ Windows Server 2012 ที่เรากำลังใช้งานอินสแตนซ์ตัวนั้นอยู่ โดยจำกัดพื้นที่ 1GB สำหรับแบบฟรีหรือแบบแชร์การใช้งาน (Free/Shared instance) ส่วนสำหรับอินสแตนซ์แบบจองโหลดการใช้งาน (Reserved instance) จะได้พื้นที่ถึง 10GB และถ้าต้องการใช้งานมากกว่านี้ทาง Microsoft แนะนำให้ใช้งานผ่าน Windows Azure Storage แบบ “บลอบ” (Binary Large Object; Blob) ซึ่งจะรองรับพื้นที่ให้บริการถึง 100TB ต่อ 1 บัญชีพื้นที่ข้อมูลที่สร้างขึ้น
การใช้งานฐานข้อมูลของตัว Web Sites จะมีตัวเลือกในการใช้งานฐานข้อมูลอยู่ 2 แบบคือ ระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) และระบบฐานข้อมูลที่ไม่ใช่ภาษาสอบถามเชิงโครงสร้าง (NoSQL) โดยถ้าต้องการใช้ระบบการจัดการฐานข้อมูลเชิงสัมพันธ์จะมี 2 ตัวเลือกในขั้นต้นคือ Windows SQL Azure Database และ ClearDB MySQL Database โดยทั้ง 2 ตัวเลือกของระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ นี้จะทำงานบนระบบประมวลผลกลุ่มเมฆทั้งหมด สำหรับระบบฐานข้อมูลที่ไม่ใช่ภาษาสอบถามเชิงโครงสร้าง (NoSQL) นั้นจะทำงานบน Windows Azure Storage Table (Windows Azure Storage ในรูปแบบ Table)
เมื่อเราติดตั้งและใช้งานเว็บไซต์ที่ติดตั้งอยู่บน Windows Azure Web Sites ระบบเราจะอยู่บนระบบเครือข่ายส่งมอบข้อมูล (Content Delivery Network; CDN) ด้วยเช่นกัน ทำให้เว็บไซต์ของเรามีความสามารถในการส่งข้อมูลไปยังผู้ใช้งานจากศูนย์ข้อมูลที่ใกล้กับตัวผู้ใช้งานที่สุด และทำการเก็บเนื้อหาบางอย่างเช่นรูปภาพ หรือไฟล์ที่ไม่มีการเปลี่ยนแปลงบ่อยๆ ลงเครื่องแม่ข่ายตัวแทนแบบกลับข้าง (Reverse proxy server) เพื่อช่วยให้การเรียกข้อมูลจากผู้ใช้งานนั้นทำได้รวดเร็วขึ้นในครั้งต่อๆ ไปด้วย ซึ่งทั้งนี้ ยังมีระบบการจัดเก็บข้อมูลลงหน่วยความจำที่คาดว่าจะถูกใช้งานบ่อยๆ (Caching) ที่เราสามารถที่จะประยุกต์ใช้งานกับการเก็บข้อมูลที่ได้จากการฐานข้อมูล หรือช่วยในด้านคงค่าการติดต่อกับระบบ (session) ไว้ในระบบดังกล่าวเพื่อใช้เป็นฐานข้อมูลสำหรับคงค่าการติดต่อกับระบบที่ใช้งานแบบกลุ่มได้ด้วย เหมาะกับการพัฒนาเว็บไซต์ที่มีการแชร์ข้อมูลกันหลายๆ ส่วนหรือหลายๆ บริการเข้าด้วยกัน
2. Windows Azure Cloud Services
เป็นบริการแพลตฟอร์ม (PaaS) สำหรับให้พัฒนาซอฟต์แวร์บนระบบบริการแบบกลุ่มเมฆ (Cloud Services) ที่ทำงานในลักษณะส่วนของการนำเข้า-ออกข้อมูล (Web role) และส่วนประมวลผลข้อมูล (Worker role)
ซึ่งเป็นซอฟต์แวร์ที่ไม่ได้มุ่งเน้นการให้บริการแบบเว็บไซต์ที่ให้บริการกับผู้ใช้งานโดยทั่วไป แต่เป็นซอฟต์แวร์และโปรแกรมที่มุ่งเน้นการคำนวณที่ต้องการใช้พลังการประมวลผล การขยายระบบและการสื่อสารเบื้องหลังเป็นหลัก โดยมุ่งเน้นข้อมูลจากกลุ่มของข้อมูลที่เข้าและออกมาเพียงหนึ่งกลุ่มแล้วถูกนำไปใช้งานกับซอฟต์แวร์ตัวอื่นๆ ต่อไป
โดยใน Windows Azure Cloud Services นั้นรองรับการพัฒนาระบบบนภาษาและซอฟต์แวร์เพื่อรองรับโครงร่างการพัฒนาโปรแกรมคอมพิวเตอร์ (Software Framework) ดังต่อไปนี้
– .NET Framework รองรับ .NET Framework versions 3.5, 4.0 หรือ 4.5 โดยเมื่อพัฒนาตัว แล้วสามารถติดตั้งขึ้นบนระบบบริการแบบกลุ่มเมฆผ่านทาง Visual Studio 2010 SP1, Visual Studio 2012, PowerShell และ TFS ได้
– PHP รองรับ PHP versions 5.3 หรือ 5.4 ซึ่งพัฒนาและทำงานต้องติดตั้ง Windows Azure SDK for PHP โดยเมื่อพัฒนาตัวเว็บไซต์แล้ว สามารถติดตั้งขึ้นบนระบบบริการประมวลผลแบบกลุ่มเมฆผ่าน Windows Azure PowerShell
– Node.js รองรับ Node.js versions 0.6.17, 0.6.20 และ 0.8.4 โดย 0.6.20 เป็นค่าเริ่มต้น โดยเมื่อจะพัฒนาตัวซอฟต์แวร์ด้วย Node.js ต้องติดตั้ง Windows Azure SDK for Node.js เพื่อพัฒนา ทดสอบ และจะสามารถติดตั้งขึ้นบนระบบบริการแบบกลุ่มเมฆผ่านทาง PowerShell ได้
– Java รองรับ Java Developer Kit version 1.6 โดยรูปแบบการพัฒนานั้นจะสามารถรองรับ Java Application ที่ทำงานได้บน Application Server ต่อไปนี้ Tomcat 6/7, Glassfish OSE 3, JBoss 6/7 และ Jetty 7/8 โดยการพัฒนานั้นสามารถพัฒนาได้ผ่านซอฟต์แวร์พัฒนาโปรแกรมที่ชื่อว่า Eclipse แล้วติดตั้ง Windows Azure SDK for Java และ Windows Azure Plugin for Eclipse with Java เพื่อทดสอบซอฟต์แวร์ที่พัฒนาผ่าน Windows Azure Emulator ซึ่งสำหรับการติดตั้งนั้นจะทำผ่าน Windows Azure Deployment Project ที่มาพร้อมกับ Windows Azure Plugin
– Python รองรับ Python version 2.7 และ Django version 1.4 โดยเมื่อต้องการพัฒนาตัวซอฟต์แวร์ด้วย Python ต้องติดตั้ง Windows Azure SDK for Python เพื่อพัฒนา ทดสอบ และจะสามารถติดตั้งขึ้นบนระบบบบริการแบบกลุ่มเมฆผ่านทาง PowerShell ได้
3. Infrastructure Services
เป็นบริการโครงสร้างพื้นฐาน (IaaS) สำหรับให้เราปรับแต่งและนำระบบที่พัฒนาสำหรับใช้งานผ่านระบบอินเทอร์เน็ตและอินทราเน็ตขึ้นสู่บริการประมวลผลแบบกลุ่มเมฆ โดยบริการโครงสร้างพื้นฐานที่จัดเตรียมไว้ให้บนระบบประมวลผลแบบกลุ่มเมฆนั้นมีดังต่อไปนี้
2.1. Virtual Machines (VM) – ระบบเครื่องประมวลผลเสมือนที่รองรับทั้ง Windows และ Linux
2.2. Big Compute – ระบบเครื่องประมวลผลเสมือนสำหรับรองรับงานประมวลผลขนาดใหญ่
2.3. Storage – ระบบพื้นที่จัดเก็บข้อมูลทั้งแบบสำรองข้อมูลซ้ำซ้อนกันแยกภูมิภาค (Geo redundant storage; GRS) และสำรองข้อมูลซ้ำซ้อนกันภายในภูมิภาคเดียวกัน Locally redundant storage (LRS)
2.4. Virtual Private Networks (VPN) – ระบบเครือข่ายเสมือนส่วนตัว
2.5. Service Bus – ระบบสื่อสารและคิวสำหรับส่งข้อความต่อ (Messaging and Queues)
2.6. Content Delivery Network (CDN) – ระบบเครือข่ายส่งมอบข้อมูล
2.7. Connect and Traffic Manager – ระบบเชื่อมต่อและจัดการการแลกเปลี่ยนข้อมูล
2.8. Identity (Access Control Service and Active Directory) – ระบบควบคุมการเข้าถึงและยืนยันตัวตนแบบดรรชนี
2.9. Hyper-V Recovery Manager and Backup – ระบบเรียกคืนและสำรองข้อมูล
โดยผู้พัฒนาระบบที่ใช้ในบริการประมวลผลบนกลุ่มเมฆเหล่านี้ต้องนำมาประยุกต์ใช้งานร่วมกัน เพื่อสร้างระบบที่ออกแบบได้เองตั้งแต่การเลือกใช้งานระบบปฏิบัติการ (Operating System) การตั้งค่าการสื่อสารระหว่างตัวเครื่องประมวลผลเสมือน ติดตั้งซอฟแวร์สื่อสารระหว่างระบบ (Middleware) ซอฟต์แวร์ช่วยประมวลผลภาษาโปรแกรมมิ่ง (Software Runtime) ซอฟต์แวร์เพื่อรองรับโครงร่างการพัฒนาโปรแกรมคอมพิวเตอร์ (Software Framework) และระบบสำรองข้อมูลทั้งหมด ทำให้เราสามารถบริหารจัดการได้เสมือนเครื่องแม่ข่ายจริงๆ
โดยบริการโครงสร้างพื้นฐาน (IaaS) ทั้งหมดนี้ทำงานอยู่บนระบบจำลองเครื่องเสมือนด้วยซอฟต์แวร์ (Virtualization) นั้นแปลว่า นักพัฒนาสามารถได้ใกล้เคียงกับการติดตั้งระบบคล้ายๆ กับเครื่องแม่ข่ายจริงๆ ทำให้นักพัฒนามีอิสระในการเลือกได้สูงสุด โดยไม่ต้องคำนึงถึงว่าในบริการประมวลผลบนกลุ่มเมฆของ Windows Azure จะมีเครื่องแม่ข่าย (Server) มารองรับมากมายเท่าไหร่ มีพื้นที่จัดเก็บข้อมูล (Storage) ให้บริการมากแค่ไหน และเชื่อมต่อ (Network) กันด้วยอะไร เราเพียงแค่ออกแบบตามความต้องการที่ระบบมีตรียมไว้ให้ก็เพียงพอแล้ว
ข้อดีของการใช้ระบบจำลองเครื่องเสมือนด้วยซอฟต์แวร์ (Virtualization) นั้นทำให้เราไม่ต้องกังวลว่าอุปกรณ์ต่างๆ ที่ประกอบขึ้นเป็นเครื่องคอมพิวเตอร์และแม่ข่ายต่างๆ (Hardware and Network Connection) จะเสียหายจากเหตุสุดวิสัยไปเมื่อไหร่ โดยระบบประมวลผลบนกลุ่มเมฆเหล่านี้จะมีการจัดการและแก้ไขปัญหาเมื่อมีปัญหาเหล่านี้ให้แทนผู้พัฒนาระบบ เพราะระบบถูกออกแบบมาให้รองรับความเสี่ยงเหล่านี้ ทำให้ระบบที่เราพัฒนาขึ้นมานั้น สามารถที่จะทำงานได้เกือบจะตลอดเวลาที่เราสั่งให้ทำงาน ทำให้เรามุ่งเน้นไปที่การพัฒนาและดูแลระบบด้านอื่นๆ มากขึ้น
4. Big Data
เป็นบริการแพลตฟอร์ม (PaaS) สำหรับให้พัฒนาซอฟต์แวร์บนระบบประมวลข้อมูลขนาดใหญ่ (Big Data) โดยมีพื้นฐานของเทคโนโลยี 2 แบบได้แก่ HDInsight หรือ Microsoft’s Hadoop-based service เป็นบริการประมวลผลและจัดเก็บข้อมูลบนกลุ่มเมฆที่มีการพัฒนาเพิ่มเติมต่อจาก Apache Hadoop โดยเป็นระบบการจัดการข้อมูลขนาดใหญ่แบบกระจายจากฝั่งโอเพนซอร์สซอฟต์แวร์ (open source software) และ SQL Database หรือ Windows SQL Azure Database เป็นบริการประมวลผลและจัดเก็บข้อมูลบนกลุ่มเมฆที่พัฒนาต่อมาจาก Microsoft SQL Server โดยเป็นระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ของ Microsoft เอง เมื่อมีการจัดการและจัดเก็บข้อมูลแล้ว Windows Azure ยังมีส่วนบริการประมวลผลทางธุรกิจ (Business Analytics) เพื่อนำข้อมูลขนาดใหญ่ที่เก็บอยู่บนบริการ HDInsight มาประมวลผลออกมาเป็นรายงานได้ผ่านทาง BI Reporting โดยใช้งานร่วมกับ HiveODBC แล้วสามารถออกรายงานได้ด้วยการใช้ Microsoft Excel ในการเชื่อมต่อเข้าไปเป็นต้น สำหรับในส่วนของ SQL Database นั้นก็มีบริการ Windows Azure SQL Reporting ในการช่วยออกรายงานด้วยเช่นกัน ซึ่งทั้งหมดนี้สามารถนำมารองรับงานระบบ Data Marketplace ที่ทำงานอยู่ในระบบประมวลผลบนกลุ่มเมฆที่เป็นบริการที่เพิ่งเปิดตัวไป
ภาพจาก Introduction to Hadoop on Windows Azure
5. Mobile Services
ระบบบริการแบบเบื้องหลังบนกลุ่มเมฆเพื่องานซอฟต์แวร์ในอุปกรณ์พกพาขนาดเล็ก (Backend solution for mobile application) โดยเป็นบริการที่ถูกพัฒนาขึ้นเพื่อมารองรับการทำงานเบื้องหลังของอุปกรณ์พกพาขนาดเล็กที่ต้องการประหยัดพลังงาน และให้ระบบประมวผลบนกลุ่มเมฆจัดการประมวลผลข้อมูล ตั้งเวลาทำงาน จัดเก็บข้อมูล ยืนยันตัวตน ส่งอีเมล และส่งข้อมูลแจ้งเตือนขนาดเล็ก (process, schedule jobs, storage, authenticaion, push data)
ภาพจาก Windows Azure Mobile Services
การที่ใช้บริการประมวลผลบนกลุ่มเมฆทำการประมวลผลข้อมูลบางอย่างแทนตัวอุปกรณ์พกพาขนาดเล็ก มีจุดประสงค์เพื่อให้อุปกรณ์เหล่านี้ทำงานเพียงแค่ส่งข้อมูลมาให้ระบบทำการประมวลผลและรับข้อมูลมาแสดงผลให้ได้มากที่สุด
ซึ่งในปัจจุบัน Microsoft เปิดบริการให้รองรับทั้ง Windows 8 , Windows Phone, Android และ iOS เป็นที่เรียบร้อยแล้ว โดยสำหรับ Android และ iOS นั้น สามารถใช้การพัฒนาด้วยภาษา Objective-C หรือ Java ได้ แต่ต้องติดตั้ง Windows Azure Mobile Services SDK เพื่อใช้งานร่วมกับการพัฒนาซอฟต์แวร์ที่เรากำลังพัฒนาอยู่
โดยในด้านการประมวลผลข้อมูลนั้น จะทำงานผ่านบริการบนกลุ่มเมฆ (Cloud Services) อีกทีหนึ่งโดยสามารถที่จะขยายระบบได้ง่ายๆ ผ่านหน้าจัดการข้อมูล สำหรับการตั้งเวลาทำงานนั้นสามารถตั้งเพื่อให้บริการบนกลุ่มเมฆนั้นทำงานตามเวลาที่กำหนดไว้
ในด้านการจัดเก็บข้อมูลนั้นสามารถทำงานร่วมกับ Windows SQL Azure Database หรือ Windows Azure Storage Table ก็ได้
ต่อมาในด้านระบบยืนยันตัวตนบนกลุ่มเมฆนี้เป็นลักษณะแบบเข้าระบบเพียงครั้งเดียวแล้วสามารถใช้งานได้ตามบริการที่มีอยู่ (Single sign-on Services) โดยในตอนนี้ไมโครซอฟท์รองรับ Microsoft Account,
Facebook Account,
Twitter Account และ
Google Account ทำให้เราไม่ต้องไปพัฒนาระบบเชื่อมต่อกับบริการทั้ง 4 ตัว เองแต่อย่างใด (และอาจจะมีเพิ่มในอนาคต) ในด้านระบบส่งอีเมลผ่าน Sendgrid โดยช่วยให้นักพัฒนาซอฟต์แวรไม่ต้องจัดหาระบบส่งอีเมลจากภายนอก แต่ะจัดการได้ผ่านระบบของ Windows Azure ได้ทันที
สุดท้ายการส่งข้อมูลแจ้งเตือนขนาดเล็กนั้นทำงานร่วมกับบริการแจ้งเตือนของทั้ง Microsoft, Google และ Apple ได้โดยพัฒนาตัวสื่อสารและส่งข้อมูลเข้ามาใน Windows Azure เพียงครั้งเดียว ระบบจะทำการส่งต่อข้อมูลไปตามบริการแจ้งเตือนของทั้ง Microsoft, Google และ Apple ให้แทน ทำให้เราไม่ต้องเขียนซอฟต์แวร์เชื่อมต่อหลายๆ ระบบ
ชื่อบริการที่รองรับการแจ้งเตือนของทั้ง Microsoft, Google และ Apple ได้แก่
– Windows Push Notification Service (WNS) เพื่อรองรับ Windows Store app
– Microsoft Push Notification Service (MPNS) เพื่อรองรับ Windows Phone app
– Apple Push Notification Service (APNS) เพื่อรองรับ iOS app
– Google Cloud Messaging (GCM) เพื่อรองรับ Android app
6. Media Services
เป็นระบบประมวลผลบนกลุ่มเมฆสำหรับข้อมูลสื่อมัลติมีเดีย โดยเป็นบริการแบบครอบวงจรได้แก่
1. นำขึ้นและจัดเก็บสื่อ (Upload) ได้ทั้ง REST API ผ่าน HTTP(S) หรือส่งผ่านระบบ Aspera ที่ปลอดภัยและรวดเร็วกว่า FTP หรือ HTTP ตามปรกติและถูกจัดเก็บเป็นไฟล์บน Windows Azure Storage Blob
2. นำสื่อมัลติมีเดียมาแสดงผลให้เหมาะสมกับอุปกรณ์ที่กำลังแสดงผล (Encode and Convert ) รองรับทั้ง MPEG-4 (MP4), Apple Http Live Streaming (HLS), Adobe Open Source Media Framework (OSMF), IIS Smooth Streaming, HTTP Dynamic Streaming (HDS) และ Windows Media Audio/Video (WMA/WMV) เป็นต้น
3. กระจายและป้องกันสื่อมัลติมีเดีย (CDN Deliver and Protect) รองรับทั้งแบบไฟล์ปรกติ และ Streaming โดยสามารถใช้ระบบป้องกันการคัดลอกทั้ง Microsoft PlayReady DRM หรือ Apple AES Encryption ก็ได้ โดยจะสามารถกระจายสื่อมัลติมีเดียไปตามพื้นที่ต่างๆ บนโลกได้ผ่านเครือข่ายส่งมอบข้อมูลที่ใกล้กับผู้บริโภคสื่อ ทำให้ได้ประสบการณ์ในการรับเนื้อหาที่ดีที่สุด
4. แปลงสื่อมัลติมีเดียให้เหมาะสมตามสภาพแวดล้อมที่จะถูกนำไปใช้บนระบบประมวลผลแบบกลุ่มเมฆ (Convert and Consume) โดยจะปรับตัวการส่งข้อมูลหรือเลือกรับสื่อมัลติมีเดียที่เหมาะสมกับการใช้งานบน Windows, Mac OS X, iOS, Android, Xbox, เว็บไซต์ทั่วไปหรือสื่ออย่างทีวีตามปรกติเป็นต้น
จากข้อมูลของ Media Services นี้สามารถพัฒนาผ่าน Developer tools for Windows Azure Media Services ซึ่งสนับสนุนทั้ง Windows, Mac OS X, Android และระบบอื่นๆ อีกมากมาย
จากบริการทั้ง 6 กลุ่มและบริการย่อยนับ 10 รายการของระบบประมวลผลบนกลุ่มเมฆ Windows Azure ของ Microsoft นั้นทำงานอยู่บนระบบ ไฟร์วอล (Firewall) ที่มุ่งเน้นสร้างความปลอดภัยสูงสุด โดยกำหนดผ่านส่วนจัดการ Endpoints บน Windows Azure ที่มีในทุกๆ บริการซึ่งเป็นตัวช่วยในการควบคุมการเข้าถึงบริการต่างๆ ผ่านช่องทาง (port) ที่กำหนดไว้เท่านั้น โดยไมโครซอฟท์ได้กำหนดค่าเริ่มต้นเป็นปิดไว้เหลือเพียงส่วนที่ใช้สำหรับเข้าไปจัดการเท่านั้น (remote access)
จากทั้งหมดที่ได้กล่าวมานั้น Windows Azure มีบริการที่รองรับการใช้งานนักพัฒนาเพื่อนำไปประยุกต์เพื่อสนองตอบต่อผู้บริโภคที่หลากหลายและลดการดูแลรักษาเครื่องแม่ข่ายที่มีแต่จะเสื่อมราคาลงลงไปทุกวัน และมุ่งให้นักพัฒนามองไปที่การพัฒนาตัวซอฟต์แวร์เพื่อต่อสนองการใช้งานมากกว่าการมาดูแลระบบเครื่องแม่ข่ายและระบบเครือข่ายที่แสนจะยุ่งยาก
การคิดค่าบริการ
ใน Windows Azure นั้น การคิดเงินในการใช้งานโดยทั่วไปนั้นแบ่งออกเป็น 3 ส่วนหลักๆ ที่จำเป็นต้องนำมาคิดค่าบริการเกือบจะในทุกๆ บริการ ได้แก่
- Compute (Hours/Minutes)
- Storage (GB/TB)
- Bandwidth (GB/TB)
Compute
เป็นการคิดค่าใช้ระบบในด้านการประมวลผล (Compute) และมีพื้นที่หน่วยความจำหลัก (Memory) มาให้พร้อมกันเป็นคู่ โดยคิดเป็นหน่วยชั่วโมง แต่ในบางบริการจะเป็นการคิดแบบหน่วยนาที (ข้อมูลล่าสุด ณ วันที่ 17 มิถุนายน 2013) โดยบริการที่การคิดค่าบริการแบบนี้ได้แก่ Web Sites, Virtual Machines, Cloud Services, Biztalk Server, SQL Server และ SQL Reporting แต่มีบริการหนึ่งที่ทำงานด้านการประมวลผลและมีพื้นที่หน่วยความจำหลักเช่นกัน แต่เป็นลักษณะของโหนดประมวลผล (Compute Node) ที่ชื่อบริการว่า HDInsight อีกด้วย
โดยตัวเลือกของการประมวลผลของ CPU ได้ 3 รูปแบบ คือ
- Free Compute บน Virtual Cores ของ CPU ตัวหนึ่ง เป็นการให้ใช้งานฟรีในส่วนของ Web Sites เท่านั้น โดยให้ระยะเวลาในการประมวลผลเพียง 1 ชั่วโมงต่อวันเท่านั้น
- Shared Compute บน Virtual Cores ของ CPU ตัวหนึ่ง เป็นการให้ใช้งานในรูปแบบแชร์ทรัพยากร Core ใน CPU โดยให้ระยะเวลาในการประมวลผล 4 ชั่วโมงต่อวัน (หรือ 240 นาทีต่อวัน) โดยคิดระยะเวลาการใช้งานเป็นชั่วโมงหรือนาที โดยขึ้นอยู่กับรูปแบบการให้บริการ
- Reserved Compute บน Virtual Cores ของ CPU ตัวหนึ่ง เป็นการให้ใช้งานในรูปแบบในการจองและเป็นผู้ใช้งานทรัพยากร Core ของ CPU แต่เพียงผู้เดียวโดยคิดระยะเวลาการใช้งานเป็นชั่วโมงหรือนาที โดยขึ้นอยู่กับรูปแบบการให้บริการ
เมื่อเราเลือกรูปแบบการนำการประมวลผลได้แล้ว จะมีส่วนที่เรียกว่าประเภทของสัญญาอนุญาต (license) ที่เพิ่มเติมเข้ามาด้วยในบางรูปแบบ เช่น
- OS แบบ Windows หรือ Linux
- BizTalk Server แบบ Standard หรือ Enterprise
- SQL Server แบบ Web, Standard หรือEnterprise
โดยการเลือกรูปแบบของสัญญาอนุญาตเหล่านี้จะมีราคาที่แตกต่างกันไปในแต่ละแบบ ซึ่งด้านล่างนี้คือตารางจำนวน Virtual Cores และจำนวน RAM ที่ได้รับในแต่ละแบบ โดยใช้อ้างอิงได้ทั้ง
- Virtual Machines ที่เป็น OS แบบ Windows หรือ Linux
- Virtual Machines ที่เป็น BizTalk Server แบบ Standard หรือ Enterprise
- Virtual Machines ที่เป็น SQL Server แบบ Web, Standard หรือ Enterprise
- Cloud Services ที่เขียนระบบเพื่อรองรับงาน Web roles และ Worker roles
COMPUTE INSTANCE NAME | VIRTUAL CORES | RAM |
Standard Instances Extra Small (A0) |
Shared |
768 MB |
Standard Instances Small (A1) |
1 |
1.75 GB |
Standard Instances Medium (A2) |
2 |
3.5 GB |
Standard Instances Large (A3) |
4 |
7 GB |
Standard Instances Extra Large (A4) |
8 |
14 GB |
Memory Intensive Instances (A6) |
4 |
28 GB |
Memory Intensive Instances (A7) |
8 |
56 GB |
สำหรับในส่วนของ Web Sites นั้นจะอ้างอิงเพิ่มเติมในส่วนของการใช้งานแบบฟรี
FREE | SHARED | RESERVED | |
CPU | 60 min CPU/day |
240 min CPU/day |
Dedicated CPU |
Custom domain name |
No | Yes | Yes |
Sites | 10 | 100 | 100 |
Storage | 1 GB | 1 GB | 10 GB |
Storage transactions | Free | Free | Free |
Relational database |
20 MB, MySQL or SQL Databases |
||
Outbound data transfer | 165MB/day | Bandwidth rates |
Bandwidth rates |
Inbound data transfer | Free | Free | Free |
Dedicated CPU
SIZE | CPU CORES | RAM |
Small | 1 | 1.75 GB |
Medium | 2 | 3.5 GB |
Large | 4 | 7 GB |
สำหรับการคิดราคาใน HDInsight (Microsoft’s Hadoop-based service) นั้นจะคิดราคาตามชนิดของโหนด โดยมีโหนดอยู่ 2 แบบคือ
- Head Node โดยเป็น Virtual Machines แบบ Extra Large (A4)
- Compute Node โดยเป็น Virtual Machines แบบ Large (A3)
ซึ่งการใช้งาน HDInsight นั้นจะต้องสร้างโหนดทั้งสองแบบนี้มาอย่างละหน่วยประมวลผลเพื่อใช้งานและคิดค่าบริการรวมของการเปิดใช้งานทั้ง 2 แบบลงไป
ในด้านของ Mobile Services นั้นจะมีเพียงแบบฟรีและแบบคิดราคาเป็นชั่วโมงการเปิดใช้งาน โดยส่วนที่สำคัญคือ scheduled jobs เป็นสำคัญ โดยทั้งสองแบบนั้นในบัญชีการใช้งานจะสามารถสร้าง Mobile Services ได้ 10 บริการ สำหรับการส่งข้อมูลออก และการเชื่อมต่อฐานข้อมูลนั้นจะคิดตามการคิดค่าบริการของ Bandwidth และ SQL Database
FREE | RESERVED | |
CPU | Shared | 1 CPU Core (max 10 Core/subscription) |
Mobile Services supported | 10 per subscription | 10 per subscription |
Scheduled jobs | 1 scheduled job 700 executions/month |
10 scheduled jobs |
Inbound data transfer | Unlimited | Unlimited |
Outbound data transfer | 165MB/day | Bandwidth rates |
SQL Database (required) | SQL Database rates |
SQL Database rates |
ส่วนสุดท้ายในการการคิดราคาแบบประมวลผลคือ SQL Reporting ซึ่งจะคิดราคาเป็นหน่วยชั่วโมง โดยคิดราคาที่ 30 รายงาน (report) ต่อชั่วโมง เช่น ถ้ามีการรันรายงานที่ 40 รายงานจะคิดราคาที่ 2 ชั่วโมง เป็นต้น
ข้อมูลราคาล่าสุด
- Virtual Machines (Windows, Linux, SQL Server, BizTalk Server)
- Cloud Services
- Web Sites
- HDInsight
- Mobile Services
- SQL Reporting
Storage
เป็นการคิดค่าบริการตามพื้นที่ที่จัดเก็บข้อมูลไว้ระบบประมวลแบบกลุ่มเมฆ โดยจะมี 3 รูปแบบ
- Storage ซึ่งเป็นบริการที่รวมการจัดเก็บข้อมูลแบบ Blobs, Tables และ Queues ไว้เป็นรูปแบบบริการเดียว
โดยการคิดราคาจะมีอยู่ด้วยกัน 3 ย่อยดังนี้
Geo Redundant เป็นการคิดค่าบริการจัดเก็บไฟล์แบบสำรองต่างพื้นที่ IDC
Locally Redundant เป็นการคิดค่าบริการจัดเก็บไฟล์แบบสำรองภายในพื้นที่ IDC
Transactions เป็นการคิดราคาในการอ่านหรือเขียนข้อมูลจาก Blobs, Tables และ Queues
โดยคิดเงิน 1 ล้านครั้งต่อหน่วยราคา (ราคาวันที่เขียนบทความคือ 1 ล้านครั้งต่อ 0.10 USD) - Backup สำหรับคนที่ต้องการ Backup บน Windows Server Backup ของ Windows Server 2012 สามารถ Backup บน Storage ระบบประมวลแบบกลุ่มเมฆ ซึ่งจะไม่มีการคิดเงินในส่วนของ Bandwidth, Storage, Storage transactions และ Compute เพิ่มเติม แต่อย่างใด
- SQL Database โดยจะคิดราคาในรูปแบบขนาดที่จัดเก็บข้อมูลและจำนวนฐานข้อมูลที่ใช้งาน
ข้อมูลราคาล่าสุด
Bandwidth
มีรูปแบบการคิดราคา 2 แบบคือพื้นที่ที่ระบบอยู่ หรือเรียกว่า Regions และเครือข่ายการกระจายเนื้อหา หรือ Content Delivery Network
การรับและส่งข้อมูลเข้าพื้นที่ที่ระบบอยู่นั้น เป็นการคิดราคาของการเรียกข้อมูลออกมาหรือส่งข้อมูลกลับเข้าไปในเขต IDC ที่เราได้ตั้งค่าสำหรับติดต่อเข้ากับระบบประมวลผล (Compute) หรือพื้นที่จัดเก็บข้อมูล (Storage) โดยตรง ซึ่งจะแบ่งการคิดราคาเป็นโซน (zone) ทั้งหมด 2 โซน ได้แก่
- Zone 1: East US, West US, North Central US, South Central US, North Europe และ Western Europe
- Zone 2: East Asia และ Southeast Asia
โดย การคิดเงินนั้นในส่วนของ Zone ที่ 1 จะมีราคาถูกกว่า Zone ที่ 2 โดยการคิดราคาจะเริ่มต้นที่ 5GB เป็นต้นไป ถ้าใช้งานไม่ถึง 5GB จะไม่คิดเงินค่าใช้ข้อมูลแต่อย่างใด
สำหรับการคิดราคาของเครือข่ายการ กระจายเนื้อหา นั้นจะคิดราคาในด้านการเรียกใช้ข้อมูลตามการใช้งานจริงตั้งแต่เริ่มต้นส่ง ข้อมูล โดยไม่มีกรอบกำหนดเริ่มต้นที่ 5GB แต่ยังคงคิดราคาแบบ Zone เช่นเดียวกับแบบเขตในการรับ-ส่งข้อมูลเช่นเดียวกัน
โดยการคำนวณราคาใน ด้านของ Bandwidth นั้น จะมีการคิดราคาของ Transactions ในการเรียกใช้งานทั้งเรียกออกมาและส่งข้อมูลกลับเข้าไป โดยคิดเงิน 1 ล้านครั้งต่อหน่วยราคา (ราคาวันที่เขียนบทความคือ 1 ล้านครั้งต่อ 0.10 USD)
ข้อมูลราคาล่าสุด
Data Transfers
- Regions
- Content Delivery Network
สำหรับการคิดราคาในรูปแบบอื่นๆ
- Connection Hours สำหรับใช้บริการ Virtual Network
- Relay hours สำหรับใช้บริการ Service Bus
- Messages สำหรับใช้บริการ Service Bus
- GB Processed สำหรับใช้บริการ Media Services
- Reserved Units สำหรับใช้บริการ Media Services
- On-Demand Streaming Reserved Units สำหรับใช้บริการ Media Services
จะเป็นส่วนย่อยๆ ที่มีการคิดราคาโดยใช้พื้นฐานคล้ายๆ กับ Compute, Storage และ Bandwidth เป็นหลักทั้งหมด
ตัวอย่างการใช้บริการแบบ Windows Azure Virtual Machines
- Compute: Small (A1)
เป็น 1 Reserved Virtual Cores และ RAM ขนาด 1.75GB ติดตั้ง Linux Virtual Machines (Ubuntu Server 12.04 LTS) - Storage: 30GB ต่อเดือน
เป็น Image สำเร็จรูปของ Linux Virtual Machines ติดตั้งแบบ Geo Redundant (IDC Southeast Asia ใน Singapore และ IDC East Asia ใน Hong Kong) - Bandwidth: 45GB ต่อเดือน
เป็นราคาคาดการณ์การใช้งาน
ราคาที่คิดไว้คือ
- Compute: ~$45 ต่อเดือน ($0.06 ต่อชั่วโมง)
โดยคำนวณที่ 744 ชั่วโมง (ต่อเดือน) - Storage: $2.85 ต่อเดือน
โดยคำนวณที่ 744 ชั่วโมง (ต่อเดือน) และ 1TB มีค่าเท่ากับ 1,024 GB - Storage Transactions: ~$1-$5 ต่อเดือน
โดยขึ้นอยู่กับการอ่านเขียนตัวไฟล์ใน Storage มากน้อยแค่ไหน - Bandwidth: $4.80 ต่อเดือน
โดยคำนวณที่ 744 ชั่วโมง (ต่อเดือน) และ 1TB มีค่าเท่ากับ 1,024 GB
รวมแล้วต่อเดือนจะมีค่าใช้บริการที่ $53.65 – $58.65 โดยประมาณ
คำแนะนำ: ขอให้อ้างอิงการคำนวณราคาระบบประมวลผลบนกลุ่มเมฆ Windows Azure ล่าสุดได้จากเว็บ windowsazure.com ทั้งหมดเพื่อความถูกต้องสูงสุด
หมายเหตุ: บทความนี้ได้ถูกเผยแพร่ครั้งแรกใน blognone.com