borntoDev Tutorial
  • 🔙 กลับสู่หน้าหลัก
  • 👋Hello World !!
  • 🏆Vision and Values
  • 🗺️Road Map & Learning Path
  • Open Access Tutorial
    • 🧑‍🔬 Computer Science
      • Computer Architecture
      • Computer Graphic
      • Computer Network
      • Algorithms
      • Data Structures
      • Problem Solving Skills
      • Discrete Mathematics
      • Object Oriented Programming
    • 👨‍💻 Software Development
      • 💻C#
      • 🐍Python
      • 👨‍💻TypeScript
        • 🐥 Get started with TypeScript
          • 1 - Introduction
          • 2 - Setting up & Tools
          • 3 - Hello World!
          • 4 - TypeScript Syntax
          • 5 - Variable & Data Types
          • 6 - All in One Data Type
          • 7 - Operators
          • 8 - Decision
          • 9 - Loops
          • 10 - Functions
          • 11 - Object Oriented
          • 12 - Modules
      • 🎮Unreal Engine
      • 🎰Unity Engine
    • ☁️ System & Cloud
      • Amazon Web Services
      • Microsoft Azure
        • Get started with Azure App Service
          • 1-รู้จักกับ Cloud concept และ Microsoft Azure
          • 2-รู้จักกับ Azure App Service
          • 3-วิธีการ Deploy web app ไปยัง App Service
          • 4-การทำ Authentication และ authorization ใน App Service
          • 5-App Service networking features
          • 6-Workshop มาลองสร้าง static HTML web app โดยใช้ Azure Cloud Shell
          • 7-รู้จักกับ Configure application settings
          • 8-รู้จักกับ Configure general settings
          • 9-รู้จักกับ Configure path mapping
          • 10-Enable diagnostic logging
          • 11-Configure security certificates
          • 12-Manage app features
          • 13-การทำ Autoscale factors
          • 14-Identify autoscale factors
          • 15-Enable autoscale ใน App Service
          • 16-Auto scale best practices
          • 17-Staging environments
          • 18-การ Swap deployment slots
          • 19-Route traffic in App Service
    • 📊Data Science & AI
    • 🎨UX / UI Design
    • 🏢IT Business
  • The Formal Stuff
    • Requesting Time Off
    • Filing Expenses
  • About Us
    • 🧑‍🤝‍🧑Meet the Team!
    • 💟Support Us
Powered by GitBook
On this page
  • Azure App service คืออะไร
  • สร้างสรรค์เนื้อหาที่แสนจะเข้าใจง่ายโดย

Was this helpful?

  1. Open Access Tutorial
  2. ☁️ System & Cloud
  3. Microsoft Azure
  4. Get started with Azure App Service

2-รู้จักกับ Azure App Service

สวัสดีครับ จากบทความที่แล้วเราได้รู้จัก Cloud Computing และ Microsoft Azure กันไปแล้วในบทความนี้ เราจะมารู้จักกับบริการยอดฮิตของ Azure ที่ชื่อว่า App Service กันครับ

Previous1-รู้จักกับ Cloud concept และ Microsoft AzureNext3-วิธีการ Deploy web app ไปยัง App Service

Last updated 3 years ago

Was this helpful?

Azure App service คืออะไร

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.

| | |

Facebook
YouTube
Instagram
TikTok
ภาพจาก: https://www.azurebarry.com/how-to-autoscale-azure-app-services-cloud-services/
ภาพจาก https://docs.microsoft.com/en-us/azure/app-service/deploy-staging-slots
https://azure.microsoft.com/en-us/services/app-service/#overview