2-รู้จักกับ Azure App Service
สวัสดีครับ จากบทความที่แล้วเราได้รู้จัก Cloud Computing และ Microsoft Azure กันไปแล้วในบทความนี้ เราจะมารู้จักกับบริการยอดฮิตของ Azure ที่ชื่อว่า App Service กันครับ
Last updated
Was this helpful?
สวัสดีครับ จากบทความที่แล้วเราได้รู้จัก Cloud Computing และ Microsoft Azure กันไปแล้วในบทความนี้ เราจะมารู้จักกับบริการยอดฮิตของ Azure ที่ชื่อว่า App Service กันครับ
Last updated
Was this helpful?
App service เป็นบริการรูปแบบ Platform as a Service (PaaS) สำหรับใช้ในการโฮสต์ตัวเว็บแอปพลิเคชัน, REST API และบริการต่างๆหลังบ้านสำหรับแอปพลิเคชันบนมือถือนั่นเอง โดยบริการของเค้ารองรับภาษาทั้ง .NET, .NET Core, Java, Ruby, Node.js, PHP หรือ Python ตัวแอปพลิเคชันของเราเมื่อทำการรันอยู่บน App service แล้วสามารถทำการสเกลปรับขนาดได้อย่างง่ายมากและสามารถทำ auto scale ได้เพียงไม่กี่คลิกเท่านั้น ทั้งยังมีสภาพแวดล้อมให้เลือกได้ทั้ง Windows และ Linux อีกด้วย
เมื่อพูดถึง Built-in auto scale แล้วเรามาดูความสามารถนี้กันต่อดีกว่าครับ Azure App Service มีความสามารถในการเพิ่ม/ลดขนาดอยู่ 2 แบบนั้นคือ
1.scale up/down เป็นการสเกลเพิ่มหรือลดขนาดของทรัพยากรเครื่องที่ใช้ในการประมวลผลในการโฮสต์ตัวเว็บแอปของเรา แบบนี้เราจะเรียกว่า “Vertical Scaling”
2.scale out/in เป็นการสเกลเพิ่มหรือลดขนาด จำนวนคอร์หรือจำนวน RAM ที่พร้อมใช้งาน เป็นการเพิ่มหรือลดจำนวนอินสแตนซ์ของเครื่องที่กำลังเรียกใช้เว็บแอป โดยการสเกลแบบนี้เราจะเรียกว่า “horizontal scaling”
ที่ขึ้นอยู่กับการใช้งานของเว็บแอป เราสามารถสเกลแอปของคุณ ขึ้น/ลงทรัพยากรของเครื่องต้นแบบที่โฮสต์เว็บแอพของคุณ ทรัพยากรรวมถึงจำนวนคอร์หรือจำนวน RAM ที่พร้อมใช้งาน การขยาย/ขยายคือความสามารถในการเพิ่มหรือลดจำนวนอินสแตนซ์ของเครื่องที่กำลังเรียกใช้เว็บแอปของคุณ
ต่อมาเรามาดูความสามารถในการทำ CI/CD หรือ Continuous integration/deployment กัน
Azure portal (ส่วนหน้าเว็บหลัก) จะรองรับการทำ continuous integration and deployment ด้วยไม่ว่าจะต่อกับบริการของ Azure อย่าง Azure DevOps เองหรือจะต่อกับบริการจากแหล่งอื่นๆ อย่าง GitHub, Bitbucket หรือจะทำการนำขึ้นผ่าน File Transfer Protocol (โปรโตคอลการโอนย้ายไฟล์)หรือเก็บในเครื่อง local Git ก็สามารถเชื่อมต่อกับ Azure App service ได้ส่วนนี้จะช่วยให้การจัดการส่วนและการซิงค์โค้ดอัตโนมัติง่ายขึ้น สะดวกต่อการเปลี่ยนแปลงโค้ดในเว็บแอปในอนาคต
ต่อมามารู้จักกับฟีเจอร์เจ๋งๆที่เรียกว่า Deployment slots กันครับ
โดยฟีเจอร์นี้สามารถใช้งานได้ผ่าน Azure portal หรือ command-line ก็ได้ เป็นฟีเจอร์ที่ช่วยให้สามารถเพิ่มช่องการ deploy เว็บแอปของเราได้ง่ายขึ้น โดยเราสามารถสร้างสล็อตสำหรับทดสอบหรือเตรียมเว็บแอปของเราเพื่อรอที่จะทำการ push โค้ดนั้นไปยังสล๊อต production ของเราได้นั่นเอง ซึ่งเราสามารถสลับสล๊อตปมาได้อย่างง่ายดาย ด้วยการคลิกเมาส์ไม่กี่คลิกในหน้า Azure portal นั่นเอง
ส่วนต่อมาเรามาดู App service บน Linux กันครับ บริการ App Service มีความสามารถในการโฮสต์เว็บแอปแบบเนทีฟบน Linux อีกด้วย อีกทั้งยังสามารถเรียกใช้คอนเทนเนอร์ Linux แบบกำหนดเอง (หรือที่เรียกว่า Web App for Containers) ได้ App Service บน Linux รองรับอิมเมจในตัวหลายภาษา โดยภาษาที่รองรับ ได้แก่ Node.js, Java (JRE 8 & JRE 11), PHP, Python, .NET Core และ Ruby หากอิมเมจในตัวไม่รองรับรันไทม์ที่แอปต้องการ คุณสามารถ deploy เป็น custom container ได้อีกด้วย โดยภาษาและเวอร์ชันที่รองรับจะได้รับการอัปเดตเป็นประจำ
แต่ App service บน Linux ก็มีข้อจำกัดอยู่นะ App Service บน Linux ไม่รองรับในระดับราคาที่ใช้ร่วมกัน หรือ Shared pricing tier ไม่สามารถผสมแอประหว่าง Windows และ Linux ใน App Service plan เดียวกันได้ ใน Azure portal จะแสดงเฉพาะฟีเจอร์ที่ใช้งานได้กับแอป Linux ในปัจจุบันเท่านั้น
ส่วนสุดท้ายเรามาดูในส่วนของ Azure App Service plans กัน ใน App Service ตัวแอป (เว็บแอป, API หรือแอปบนมือถือ) จะทำงานใน App Service plans ที่เราได้เลือกไว้เสมอ Azure App Service plans เป็นส่วนกำหนดว่าชุดทรัพยากรการประมวลผลสำหรับเว็บแอปทั้งหมดจะสามารถใช้งานฟีเจอร์อะไรได้บ้าง และราคาค่าใช้จ่ายประมาณเท่าไหร่
โดยแพลนจะถูกใส่ลงใน App Service plan โดยการคำนวณทรัพยากรเหล่านี้ถูกกำหนดไว้ในแผน App Service ที่เราเลือกแล้ว โดยแต่ละ App Service plan จะมีการกำหนดดังนี้:
Region หรือ ภูมิภาคที่ตั้งของ data center จำนวน VM instances ขนาดของ VM instances (เล็ก กลาง ใหญ่) ระดับราคา (Free, Shared, Basic, Standard, Premium, PremiumV2, PremiumV3, Isolated) ระดับราคาของแผน App Service เป็นตัวกำหนดว่าฟีเจอร๋ไหนใน App Service ที่ใช้ได้บ้าง Shared compute: จะมีทั้งแบบฟรีและแบบแชร์พูลทรัพยากรของแอปของเรากับแอปของลูกค้ารายอื่น โดย tiers เหล่านี้จัดสรร CPU ให้กับแต่ละแอปที่ทำงานบนทรัพยากรที่ใช้ร่วมกัน และทรัพยากรไม่สามารถ scale out ได้ Dedicated compute หรือ การประมวลผลเฉพาะ: ในระดับ Basic, Standard, Premium, PremiumV2 และ PremiumV3 จะสามารถเรียกใช้แอปบน Azure VM ได้เฉพาะใน App service plan เดียวกันเท่านั้น โดยจะมีการแชร์ทรัพยากรการประมวลผลเดียวกัน ยิ่ง tiers ชั้นสูงขึ้นเท่าใด VM instances ก็จะพร้อมให้ scale-out มากขึ้นเท่านั้น Isolated: คือ tier ที่รัน Azure VM เฉพาะบน Azure Virtual Networks โดยให้การแยกเครือข่ายออกจากกาการประมวลผลสำหรับแอป ให้ความสามารถในการ scale-out สูงสุด
และสำหรับการเลือกแพลนสามารถทำได้ทั้งสองวิธีคือ
1.เลือกแพลนตอนสร้าง App service
2.เมื่อสร้างเสร็จแล้วต้องการเปลี่ยนแพลน สามารถมาเปลี่ยนได้ที่หน้า Azure portal เลย
เป็นไงบ้างครับ เราก็ได้รู้จักกับบริการดีๆ สำหรับโฮสต์ตัวเว็บแอปพลิเคชัน, REST API และบริการต่างๆหลังบ้านสำหรับแอปพลิเคชันบนมือถือด้วย Azure App service กันไปแล้ว เพื่อนๆสามารถเรียนรู้เพิ่มเติมได้ที่ Overview - Azure App Service | Microsoft Docs
🐲 Sirasit Boonklang (แอดเอฟ) - Tech & Coding Consultant @ borntoDev Co., Ltd.
| | |