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) ดังต่อไปนี้
ระบบเว็บไซต์ที่พัฒนาจะถูกติดตั้งขึ้นไปบนระบบประมวลผลแบบกลุ่มเมฆ โดยจะบันทึกตัวเว็บไซต์ของเราไว้ใน 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) ดังต่อไปนี้
3. Infrastructure Services
เป็นบริการโครงสร้างพื้นฐาน (IaaS) สำหรับให้เราปรับแต่งและนำระบบที่พัฒนาสำหรับใช้งานผ่านระบบอินเทอร์เน็ตและอินทราเน็ตขึ้นสู่บริการประมวลผลแบบกลุ่มเมฆ โดยบริการโครงสร้างพื้นฐานที่จัดเตรียมไว้ให้บนระบบประมวลผลแบบกลุ่มเมฆนั้นมีดังต่อไปนี้
โดยผู้พัฒนาระบบที่ใช้ในบริการประมวลผลบนกลุ่มเมฆเหล่านี้ต้องนำมาประยุกต์ใช้งานร่วมกัน เพื่อสร้างระบบที่ออกแบบได้เองตั้งแต่การเลือกใช้งานระบบปฏิบัติการ (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
เป็นระบบประมวลผลบนกลุ่มเมฆสำหรับข้อมูลสื่อมัลติมีเดีย โดยเป็นบริการแบบครอบวงจรได้แก่
จากข้อมูลของ 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 มีบริการที่รองรับการใช้งานนักพัฒนาเพื่อนำไปประยุกต์เพื่อสนองตอบต่อผู้บริโภคที่หลากหลายและลดการดูแลรักษาเครื่องแม่ข่ายที่มีแต่จะเสื่อมราคาลงลงไปทุกวัน และมุ่งให้นักพัฒนามองไปที่การพัฒนาตัวซอฟต์แวร์เพื่อต่อสนองการใช้งานมากกว่าการมาดูแลระบบเครื่องแม่ข่ายและระบบเครือข่ายที่แสนจะยุ่งยาก
สำหรับในตอนต่อไปจะมาพูดถึงเรื่องการคิดค่าบริการ รูปแบบการจ่ายเงินและความแตกต่างระหว่างการใช้งาน Shared Hosting, Virtual Private Server, Windows Azure Web Sites และ Windows Azure Virtual Machine กัน