Thailand

ปัจจุบันชื่อแบรนด์ Azure กลายเป็นแบรนด์ร่มใหญ่ของบริการด้านคลาวด์เกือบทั้งหมดของไมโครซอฟท์ โดยมีบริการย่อยๆ ในสังกัดเป็นจำนวนมาก ต่างไปจากในอดีตที่มีเพียงแค่การรัน Virtual Machine บนคลาวด์เท่านั้น
บริการหลายตัวของ Azure เป็นการนำองค์ประกอบของระบบเซิร์ฟเวอร์เดิม (เช่น ฐานข้อมูล) ย้ายมาอยู่บนคลาวด์ แต่บริการอีกหลายตัวก็เป็นบริการใหม่ๆ ที่เกิดขึ้นมาสำหรับยุคของคลาวด์โดยเฉพาะ เช่น การประมวลผลข้อมูล BIg Data หรือการรับส่งข้อมูลกับอุปกรณ์ IoT จำนวนมาก
บทความนี้เป็นกรณีศึกษาของไมโครซอฟท์ประเทศไทย ที่นำบริการจาก Azure เข้าไปช่วยปรับปรุงระบบซอฟต์แวร์ที่มีอยู่แล้วของสตาร์ตอัพในบ้านเรา เพื่อให้ทำงานมีประสิทธิภาพสูง รองรับการขยายตัวมากขึ้น

1. ระบบเดิมและโจทย์ของลูกค้า

บริษัท Transcode จำกัด เป็นสตาร์ตอัพไทยที่ทำระบบจัดการการขนส่งอัจฉริยะ (Intelligent Transportation Services - ITS) โดยมีผลิตภัณฑ์แพลตฟอร์มแท็กซี่อัจฉริยะ GTaxi ไว้ให้บริการบริษัทแท็กซี่ไทย ที่ต้องการมอนิเตอร์พฤติกรรมของคนขับแท็กซี่ในสังกัด และช่วยให้บริหารแท็กซี่ได้มีประสิทธิภาพมากขึ้น
ระบบ GTaxi เก็บข้อมูลผ่านอุปกรณ์แท็บเล็ต Android ที่ติดตั้งในรถแท็กซี่ และเซ็นเซอร์เก็บข้อมูล Advance TREK-570 ที่รัน Windows Embedded Standard 7 คอยเก็บข้อมูลจากพอร์ต OBD ของรถ จากนั้นส่งข้อมูลกลับมายังเซิร์ฟเวอร์ของ Transcode ที่เก็บข้อมูลลงฐานข้อมูล MongoDB และมีแอพพลิเคชันที่เขียนด้วย Node.js

ตัวแพ็กเกจของข้อมูลที่ส่งเป็นฟอร์แมต JSON มีขนาดเล็กกว่า 4KB แต่มีอัตราการส่งค่อนข้างถี่คือทุก 1 นาทีสำหรับพิกัด GPS และสถิติของรถ ส่วนข้อมูลอื่นอย่างล็อกของระบบและข้อมูลการคิดค่าโดยสาร เป็นการส่งเมื่อเกิดอีเวนต์ขึ้นเท่านั้น การส่งแพ็กเกจใช้โพรโทคอล MQTT ที่เป็นมาตรฐานของอุตสาหกรรม ผ่านเครือข่ายที่เข้ารหัส TLS
โจทย์ของ GTaxi คือมองหาวิธีสเกลระบบให้เติบโตกว่าเดิม สามารถรองรับผู้ใช้ได้อย่างน้อย 200,000 คน โดยสำรวจหาเทคโนโลยีคลาวด์เข้ามาช่วย แต่ก็มีข้อจำกัดว่าคลาวด์ที่ใช้งานต้องมีผลกระทบต่อแอพพลิเคชันเดิมให้น้อยที่สุด เพื่อลดภาระของทีมพัฒนาที่มีทักษะด้าน Android และ Node.js อยู่แล้ว

2. วิเคราะห์แนวทางที่เป็นไปได้

ทีมงานของไมโครซอฟท์เข้าไปให้คำปรึกษากับ Transcode และวิเคราะห์จุดที่สามารถปรับปรุงด้วยการนำบริการบางตัวของ Azure มาใช้แทนได้ ทั้งหมด 4 จุด ดังนี้

  • การรับข้อมูล (Ingestion) โดยให้ทีม Android ของ Transcode เข้ามาใช้งานบริการ Azure IoT Hub ในการรับข้อมูลจากอุปกรณ์ขึ้นไปยังคลาวด์
  • การประมวลผลข้อมูล (Processing) เป็นขั้นตอนของการนำข้อมูลจาก IoT มาประมวลผลด้วย Azure Stream Analytics เพื่อเตรียมนำข้อมูลไปใช้งานในขั้นตอนอื่นๆ ต่อไป
  • การเตรียมข้อมูล (Staging) หาความเป็นไปได้ในการใช้บริการฝั่ง Azure Data ทั้งฐานข้อมูล Azure Cosmos DB (Document DB เดิม) และ Azure Storage Table
  • การให้บริการ (Serving) ให้ทีมพัฒนาที่มีประสบการณ์ Node.js สามารถรันแอพพลิเคชันเดิม ที่เชื่อมต่อกับบริการต่างๆ ของ Azure และ Power BI

3. แนะนำบริการ Azure ที่เลือกใช้งาน

เนื่องจาก Microsoft Azure มีบริการย่อยเป็นจำนวนมาก เราจึงต้องคัดเลือกเฉพาะบริการบางตัวที่เหมาะสมกับโจทย์ที่ได้รับในงานนี้ ดังนี้

Azure IoT Hub


บริการ Azure IoT Hub เป็นตัวกลางที่คอยเชื่อมต่อกับอุปกรณ์ IoT จำนวนมาก หน้าที่หลักของมันคือคอย "รับ" ข้อมูลจำนวนมหาศาลจาก IoT เข้ามาเก็บไว้บนคลาวด์เพื่อไปใช้งานต่อ ในอีกด้าน มันยังสามารถใช้สื่อสาร ส่งคำสั่งไปยังอุปกรณ์ IoT ได้เช่นกัน
Azure IoT Hub รองรับโพรโทคอลมาตรฐานในวงการ IoT ทั้ง Message Queuing Protocol (AMQP) และ MQ Telemetry Transport (MQTT) หรือแม้แต่ผ่าน HTTP/HTTPS แถมยังมีฟีเจอร์ authentication เป็นรายอุปกรณ์เพื่อการันตีว่าอุปกรณ์ที่เข้ามาเชื่อมในเครือข่ายเป็นของจริง
ระบบ GTaxi ส่งข้อมูลจากแท็กซี่มายังเซิร์ฟเวอร์ด้วยโพรโทคอล MQTT อยู่แล้ว โดยตัวรับข้อมูล (broker) เดิมเป็นระบบที่ Transcode เขียนขึ้นมาเอง การเปลี่ยนมาใช้ Azure IoT Hub จึงสามารถทำได้ทันที เพราะใช้โพรโทคอล MQTT เหมือนเดิมทุกประการ

Azure Stream Analytics


ในการประมวลผลข้อมูลยุคใหม่ที่มีข้อมูลปริมาณมหาศาลไหลบ่าเข้ามา การคัดเลือกข้อมูลที่ต้องการให้ได้แบบเรียลไทม์จึงเป็นเรื่องสำคัญ บริการ Azure Stream Analytics จึงเข้ามารับหน้าที่นี้
Azure Stream Analytics สามารถรับข้อมูลได้จากหลายแหล่ง ไม่ว่าจะเป็นจากอุปกรณ์ IoT เซ็นเซอร์ หรือข้อมูลจากโซเชียล จากนั้นเราสามารถ "กรอง" หรือดัดแปลงข้อมูลได้ก่อนนำไปใช้งานต่อ ด้วยคำสั่งแบบเดียวกับ SQL ที่คุ้นเคย
จุดเด่นของ Azure Stream Analytics คือศักยภาพในการรองรับข้อมูลมากถึง 1GB/s บนสถาปัตยกรรมคลาวด์ของ Azure ที่ดีอยู่แล้ว ช่วยให้เราสามารถสเกลระบบได้ง่ายโดยที่ไม่ต้องเสียเวลามาพัฒนาส่วนนี้เอง

Azure SQL Database


Azure SQL Database บริการตัวนี้หลายคนอาจรู้จักกันอยู่แล้ว มันคือการนำเอนจินของฐานข้อมูลแบบ relational database ของไมโครซอฟท์คือ Microsoft SQL Server ไปรันอยู่บนคลาวด์ Azure เพื่อให้ขยายงานได้ง่ายขึ้น โดยรักษาความเข้ากันได้กับ Microsoft SQL Server เอาไว้ สามารถใช้โปรแกรมเดิม คำสั่งเดิม เครื่องมือเดิมที่เคยใช้กับ SQL Server ได้โดยไม่ต้องเรียนรู้ใหม่
รายละเอียดเพิ่มเติมดูได้ที่ Azure SQL Database

PowerBI Embed


PowerBI เป็นแอพสำหรับวิเคราะห์ข้อมูลธุรกิจ (Business Intelligence) โดยสามารถแสดงผลกราฟิก กราฟ และชาร์ทต่างๆ ได้อย่างสวยงาม ตัวของ PowerBI เป็นแอพแยก แต่ไมโครซอฟท์ก็นำความสามารถด้านการแสดงผลของ PowerBI ให้ไปฝังในแอพอื่นๆ ได้
รายละเอียดอ่านเพิ่มเติมได้จากบทความ ไมโครซอฟท์ออก Power BI Embedded บริการวิเคราะห์ข้อมูลและ Visualization บนคลาวด์
กรณีนี้เราเลือกใช้ PowerBI สำหรับแสดงผลกราฟิกในหน้าแดชบอร์ด (dashboard) ของระบบ GTaxi อีกทีหนึ่ง

Azure App Service – Web Apps


Azure App Service เป็นบริการแบ็คเอนด์ (backend) สำหรับให้บริการแอพหลากหลายชนิด โดยตัวระบบรันอยู่บนคลาวด์ที่บริหารจัดการได้ง่ายกว่า รองรับทั้งโมบายล์แอพและเว็บแอพ
Azure App Service แบ่งออกเป็น 4 บริการย่อยคือ Web Apps, Mobile Apps, API Apps, Logic Apps ซึ่งในที่นี้ เราเลือกใช้งาน Web Apps เอาไว้รันแอพตัวเดิมที่เขียนด้วย Node.js
ตัวของ Azure App Service ที่เป็น Web Apps รองรับภาษา .NET, Java, Node.js, PHP, Python ซึ่งแอพของ Transcode เขียนด้วย Node.js อยู่แล้ว นำมารันได้ทันทีโดยไม่ต้องแก้ไขอะไรเพิ่ม

4. เริ่มแปลงระบบเดิมมาสู่ Azure

หลังวางแผนการปรับปรุงสถาปัตยกรรมเดิมของ GTaxi ด้วย Azure แล้ว ทางทีมของ Transcode และไมโครซอฟท์ก็ไปเข้าแคมป์ Hackathon กันที่สิงคโปร์เป็นเวลา 2 วัน เพื่อทดลองสร้างต้นแบบของ data flow แบบง่ายๆ ขึ้นมาก่อน
ต้นแบบแรกดึงข้อมูลจาก Azure IoT Hub ส่งมาประมวลผลยัง Stream Analytics และเก็บข้อมูลลง Azure SQL Database ก่อนส่งข้อมูลต่อไปยังเว็บแอพ และแสดงผลผ่าน Power BI
จากนั้นเมื่อทีมงานกลับมายังประเทศไทย ก็ปรับปรุงสถาปัตยกรรมให้ดีขึ้น โดยเพิ่มบริการบางตัวของ Azure เข้ามาอีก ดังนี้

Azure Cosmos DB (ชื่อเดิมคือ Document DB)


ถ้า Azure SQL Server คือบริการที่ตอบโจทย์ฐานข้อมูลแบบ relational database (SQL) เราก็สามารถเปรียบเทียบได้ว่า Azure Costmos DB (เดิมทีรู้จักกันในชื่อ Document DB) คือการนำฐานข้อมูลแบบ NoSQL ไปทำงานบนคลาวด์
จุดเด่นของ Cosmos DB คือมันสามารถกระจายฐานข้อมูลไปทั่วโลก (ตามที่ตั้งของศูนย์ข้อมูล Azure) โดยมีอัตรา latency ที่ต่ำมาก, มีอัตรา SLA สูงถึง 99.99% และมี API ที่เข้ากันได้กับ MongoDB แบบ 100%
ดังนั้น ระบบของ GTaxi เป็นฐานข้อมูล MongoDB อยู่แล้ว ก็สามารถสลับมาใช้ Cosmos DB ได้ทันที แอพพลิเคชันสามารถรันได้ต่อเนื่องโดยไม่ต้องแก้ไขโค้ดเลย

Azure Data Factory


Azure Data Factory เป็นบริการที่ใช้สร้าง data pipeline จากแหล่งข้อมูล (data source) หลายแหล่ง เช่น ฐานข้อมูลแบบ SQL และ NoSQL หลากหลายยี่ห้อ, Hadoop, ไฟล์จาก FTP หรือแม้กระทั่งตารางแบบ HTML
การใช้งาน Azure Data Factory เหมาะกับการที่มีแหล่งข้อมูลกระจายอยู่หลายที่ ทั้งอยู่บนคลาวด์หรืออยู่ในองค์กร (on premise) โดย Azure Data Factory จะช่วยจัดการเรื่องการย้ายที่ของข้อมูลให้เรา โดยมีระบบมอนิเตอร์และตัวจัดตารางเวลาคอยช่วยเหลือ

Azure Storage


Azure Storage เป็นบริการเก็บข้อมูลบนคลาวด์ รองรับข้อมูลหลายรูปแบบ เช่น ไฟล์ (file), ดิสก์ (disk), ออบเจคต์ (blob), คิว (queue) และตาราง (table)
ในกรณีนี้ เราเลือกใช้บริการสองตัวคือ Azure Storage blob สำหรับเก็บข้อมูลอ้างอิง (reference data) เอาไว้เปรียบเทียบ และ Azure Storage table สำหรับเก็บข้อมูลเพื่อบันทึกไว้ (archive data)

Azure Event Hubs


Azure Event Hubs เป็นบริการ Azure ตัวสุดท้ายที่เราจะนำมาใช้งาน มันคือบริการที่คอยรับข้อมูลจำนวนมากจากแหล่งต่างๆ ไม่ว่าจะเป็นเว็บไซต์ แอพ เซ็นเซอร์ ที่ใหญ่ในระดับหลายล้านเหตุการณ์ต่อวินาที เข้ามารวมเป็นสตรีมข้อมูลสายเดียวกัน เพื่อนำไปประมวลผลต่อ
ในระบบ GTaxi ที่ออกแบบใหม่ วางตัว Event Hubs ไว้คอยรับข้อมูลจาก Stream Analytics เพื่อนำไปทำระบบแจ้งเตือน (notification) สำหรับเว็บแอพนั่นเอง
ดังนั้น สถาปัตยกรรมของระบบ GTaxi เวอร์ชันที่สอง มีการเปลี่ยนแปลงให้มีความสามารถเพิ่มขึ้นดังนี้

  1. นำข้อมูลจาก Stream Analytics ลงมาเก็บในฐานข้อมูล Cosmos DB / DocumentDB ผ่าน API ของ MongoDB ที่ทีมงานคุ้นเคยอยู่แล้ว
  2. อย่างไรก็ตาม การเปลี่ยนฐานข้อมูลมาใช้ Cosmos DB / DocumentDB เจอข้อจำกัดในการใช้งานร่วมกับ PowerBI ที่ยังไม่รองรับ ทำให้ทีมงานยังต้องมี Azure SQL Database เอาไว้ต่อกับ PowerBI อยู่ และใช้บริการ Azure Data Factory ช่วยคัดลอกข้อมูลจาก DocumentDB มาสู่ SQL Database
  3. ขั้นตอนการประมวลผลด้วย Stream Analytics จำเป็นต้องมีชุดข้อมูลอ้างอิง (reference data) เพื่อเปรียบเทียบ ทีมงานจึงใช้ข้อมูลเก่าที่เก็บไว้ใน SQL Server ดึงออกมาผ่าน Data Factory ลงไปเก็บใน Azure Data Storage (เก็บแบบ blob)
  4. เพิ่มขั้นตอนการใช้ Event Hubs เป็นข้อมูลสำหรับแจ้งเตือน (alert) เพื่อส่งไปยังเว็บแอพอีกทีหนึ่ง

สถาปัตยกรรมแบบใหม่ของ GTaxi (คลิกเพื่อดูภาพขนาดเต็ม)

5. บทสรุป

ความร่วมมือระหว่าง Transcode กับไมโครซอฟท์ แสดงให้เห็นว่าสามารถใช้บริการของ Azure ช่วยขยายขีดความสามารถของระบบโดยไม่จำเป็นต้องเรียนรู้เทคโนโลยีใหม่ทั้งหมด และใช้ PowerBI ช่วยเรื่องการวิเคราะห์และแสดงผลข้อมูลเพิ่มเติม
โครงการนี้ใช้เวลาพัฒนาประมาณ 3 เดือน โดยมีทีมงานจากไมโครซอฟท์ 1 คน ร่วมกับนักพัฒนา 2 คนจาก Transcode ขณะนี้โครงการกำลังเตรียมไปสู่ขั้นตอนการใช้งานจริง และมีแผนจะพัฒนาความสามารถอื่นๆ เพิ่มเติม เช่น การวิเคราะห์และแยกแยะใบหน้าของคนขับ
สำหรับผู้สนใจนำ Azure มาใช้งานเพื่อขยายศักยภาพของระบบ สามารถเข้าร่วมกลุ่ม Azure Thailand Developer Group เพื่อสอบถามข้อมูลได้โดยตรง

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand