บทความและข่าวสาร | Seven Peaks Insights

สรุปงาน Azure Developer Day 2023 ที่ Seven Peaks

Written by Seven Peaks | 17 ม.ค. 2024, 3:38:21

งานอีเวนต์สำคัญอย่าง Azure Developer Day 2023 จัดขึ้นที่อาคาร The PARQ โดย Seven Peaks เมื่อวันที่ 26 สิงหาคม 2023 ซึ่งงานนี้มี Azure developer หลายคนมาร่วมงานและมีผู้เชี่ยวชาญด้าน Azure มาร่วมเป็นวิทยากรเพื่อให้ความรู้และอัปเดตข่าวสารที่น่าสนใจ

หากคุณอยากรู้ว่างานนี้มีหัวข้ออะไรบ้าง เราได้สรุปเนื้อหาทั้งหมดมาให้คุณไว้ในบทความนี้แล้ว

เป็นผู้นำในยุคของ AI ด้วย Microsoft Cloud — คุณ Krit Kamtuo จาก Microsoft

เซสชันแรกเป็นของคุณ Krit โดยพูดถึงเหตุการณ์ตั้งแต่ครึ่งปีแรกเกี่ยวกับ Microsoft จนถึงงาน Microsoft Build ที่ Satya Nadella ออกมาอัปเดตข้อมูลครั้งสำคัญ

Copilot Stack

มีการเปิดตัว Copilot stack (พร้อมด้วย AI Orchestration) ที่ช่วยให้สามารถเสิร์ชและทำงานได้อย่างมีประสิทธิภาพมากยิ่งขึ้น

ใน Copilot stack เราสามารถใช้งาน GitHub Copilot และ GitHub Copilot X (with Chat) ที่อยู่ใน  Visual Studio Code เพื่อช่วยให้เราสามารถเขียนโค้ดได้เร็วและเป็นระเบียบมากขึ้น ซึ่ง Copilot ยังสามารถนำไปใช้งานกับ Power BI และ Power Automate ได้ด้วย

ความหมายของ White-Box และ Black-Box testing

  • White-box testing หรือ open box penetration testing: จุดประสงค์ของ white-box testing คือการตรวจสอบโค้ดและโครงสร้างภายในของโปรดักต์ จำลองสถานการณ์ที่แฮกเกอร์เข้าถึงสิทธิ์การใช้งานของผู้ใช้ระดับสูง โดยที่ tester สามารถตรวจสอบกระบวนการ input-output พร้อมทั้งโฟกัสกับการทำงานของโปรดักต์ได้เต็มที่
  • Black-box testing หรือ close box penetration testing: คือหลักการทดสอบที่ tester หรือ QA นั้นไม่รู้ว่ากำลังทดสอบอะไรอยู่ ไม่ว่าจะเป็นโครงสร้าง, รูปแบบการทำงาน, หรือดีไซน์ เพื่อจำลองการพยายามเจาะระบบของแฮกเกอร์ที่ยังไม่สามารถเข้าถึงข้อมูลได้ โดยการทดสอบรูปแบบนี้มักจะดูเรื่องของฟังก์ชันการทำงานเป็นหลัก

นอกจากนี้ยังมี grey-box testing เช่นกัน ซึ่งจะเป็นการผสมผสานระหว่าง white-box และ black-box testing ซึ่งสามารถสรุปความแตกต่างของทั้งสามแบบได้ดังตารางข้างล่างนี้

การเปรียบเทียบ Large Language Model และวิธีการเทรนโมเดล 

จากกราฟข้างต้นแสดงให้เห็นวิวัฒนาการในการเทรน Large Language Model การใช้งานไลบรารีของ Microsoft ช่วยให้บริษัทเทคโนโลยีทั้งหลายมีเครื่องมือประสิทธิภาพสูงในการทำงานร่วมกัน และเพิ่มข้อมูลในการนำไปใช้เทรนได้

นอกจากนั้น กระบวนการ Foundation Models เริ่มจากการรวบรวมข้อมูล ซึ่งอาจจะเป็นได้ทั้งข้อความ, รูปภาพ, คำพูด, หรืออื่นๆ จากนั้นนำมาเทรนด้วย transformer model หรือ foundation model แล้วปรับใช้กับ task ที่ต้องการในท้ายที่สุด

Microsoft Fabric

มีการเปิดตัว Microsoft Fabric ก่อนงาน Microsoft Build ซึ่งมันกลายมาเป็นหนึ่งในบริการที่สำคัญที่สุดสำหรับบริษัทที่ทำงานเกี่ยวกับข้อมูล บริการนี้ได้รับการปรับปรุงและมีประสิทธิภาพสูงขึ้นด้วยการใช้โมเดล AI อย่าง GPT-3 ฟังก์ชันหลักของมันคือการใช้งานข้อมูลสำหรับเทรนและ visualization อย่าง Power BI แต่มีประสิทธิภาพสูงกว่าเดิมมาก

อ่านรายละเอียดเพิ่มเติมเกี่ยวกับ Microsoft Fabric ได้ที่ What is Microsoft Fabric — Microsoft Fabric | Microsoft Learn

Serverless container บน Microsoft Azure — คุณ Mild Thada (T.T. Software)

ในยุคนี้เรามีตัวเลือกหลากหลายในการใส่ข้อมูลต่างๆ บนเซิร์ฟเวอร์ เริ่มตั้งแต่ฟอร์แมต Dockerfile จากนั้นนำมาพัฒนาเป็นไฟล์ Docker image แล้วกลายเป็น Docker container ที่สามารถรันทุกอย่างที่ห่อหุ้มเอาไว้ได้ 

Container คือชุดของแอปพลิเคชันที่เขียนโค้ดขึ้นมาด้วยกัน โดยมีการใช้ไฟล์ configuration และไลบรารีร่วมกัน รวมถึง dependencies ที่จำเป็นต้องใช้เพื่อให้สามารถรันแอปฯ นั้นๆ ได้

IAAS (Infrastructure as a Service)

คุณมายด์ได้อธิบายเกี่ยวกับ Azure Virtual Machine ซึ่งนับว่าเป็น IAAS ที่สามารถติดตั้งใน Container Engine เพื่อให้มันสามารถจัดการตัวเองได้ แต่ก็มีความกังวลบางอย่างเกี่ยวกับความยุ่งยากในการใช้งานบน production เช่น

  1. การเก็บ log
  2. Persistent Storage
  3. Horizontal Scaling
  4. ความปลอดภัย
  5. Container Orchestration
  6. เน็ตเวิร์ก
  7. ค่าใช้จ่าย

PAAS (Platform as a Service)

  • Azure App Service ได้รับการปรับปรุงสำหรับการทำงานร่วมกับ Web App ซึ่งรองรับทั้ง HTTP/2 and GRPC ที่ช่วยเรื่องการปรับขนาดและสำรองข้อมูลเช่นกัน แต่ก็ยังมีข้อจำกัดบางอย่าง เช่น 

> หากใครใช้งาน Redis จะพบกับข้อจำกัดบางอย่างเนื่องจากจำเป็นต้องใช้งาน TCP

> การคิดราคาจะคำนวณจากแพ็กเกจที่เลือกใช้

  • Azure Container Instances (ACI)

> สถาปัตยกรรมสำหรับ container ที่ช่วยให้เราสามารถรันและบริหารจัดการ serverless container ได้อย่างสะดวกรวดเร็ว

> รองรับหลากหลายโปรโตคอล เช่น HTTP / TCP / SFTP / GRPC

> 1 instance แต่สามารถ deploy ได้หลาย container ระบบจะหยุดคิดราคาเมื่อเราหยุดใช้งาน

> ACI เป็นเสมือนมือปืนรับจ้างที่จะทำงานให้เราเมื่อเราต้องการปรับขนาด AKS (สร้าง cluster ใหม่ ซึ่งมีราคาสูงขึ้น)

Serverless Functions-as-a-Service (FaaS)

  • Azure Function นั้นได้รับการปรับปรุงมาสำหรับการรันแอปพลิเคชันที่ทำงานแบบ event-driven ซึ่งมีการใช้งาน programming model

  • Azure Kubernetes Service (AKS) คือบริการของ Azure เกี่ยวกับ Kubernetes ที่มีการดูแลให้แบบเบ็ดเสร็จ รองรับการเข้าถึง Kubernetes API โดยตรงและสามารถรัน Kubernetes workload ใดๆ ก็ได้ เรียกได้ว่า ทีมงานไหนที่ต้องการ Kubernetes ที่มีการดูแลให้แบบนี้ AKS คือตัวเลือกในอุดมคติ

Azure Container Apps

Azure Container Apps คือ environment ที่มีการดูแลให้แบบเบ็ดเสร็จ ซึ่งช่วยให้คุณสามารถรัน microservice และ containerized application บนแพลตฟอร์ม serverless ได้ การใช้งาน Azure Container Apps ที่พบบ่อยได้แก่

  • การ deploy API endpoints
  • การโฮสต์แอปพลิเคชันที่ประมวลผลอยู่เบื้องหลัง
  • จัดการกับการประมวลผลแบบ event-driven
  • การรัน microservices
  • สร้างแอปฯ หรือ microservice ที่ทันสมัยและมีความแตกต่างกัน รองรับเรื่องของเน็ตเวิร์ก, observability, dynamic scaling, และ configuration สำหรับประสิทธิผลที่ดีขึ้น
  • ออกแบบ microservice ที่ยืดหยุ่น พร้อมด้วยการสนับสนุนอย่างเต็มรูปแบบจาก Dapr และ dynamic scaling ที่พัฒนาโดย KEDA
  • รองรับเฉพาะ Linux เท่านั้น

 

ข้างล่างนี้คือกระบวนการที่เป็นการทำงานพื้นฐานบน Azure Container Apps 

 

อ้างอิงจาก

Microservices with Azure Containers Apps | Microsoft Learn

5 บริการ Azure ที่ developer ทุกคนควรรู้ — José Barbosa จาก Seven Peaks

ในเซสชันนี้สามารถแบ่งออกเป็นประเด็นหลักๆ ได้ดังต่อไปนี้

การออกแบบแอปฯ ที่สามารถปรับขนาดได้ ควรทำอย่างไร?

ฐานข้อมูลสำหรับผู้ใช้



Scaling

  • มี 2 รูปแบบของ scale: Scale Up/Down และ Scale Out/In ซึ่งต้องมี load balancer เพื่อบริหารจัดการทราฟฟิกของ instance นั้น
  • ฐานข้อมูลทำให้เกิดคอขวด
    – Azure SQL > SQL Server Replication
    – Azure Cosmos ในกรณีที่ใช้ NoSQL
  • บริหารจัดการ traffic ด้วย Azure Load Balancer 

Caching and Optimization

  • Cache

— จัดเก็บ latency ชั่วคราวเมื่อ request ข้อมูลจากแหล่งต่างๆ เช่น ฐานข้อมูล บ่อยครั้ง แต่ก็มีความท้าทายคือ เรื่อง cache validation

Azure Cache for Redis

  • CDN — อีกประเภทหนึ่งของ cache ที่จัดเก็บทรัพยากรหลากหลายแบบ เช่น ไฟล์ CSS, HTML, JS, Image เพื่อที่จะได้ไม่จำเป็นต้อง request ไปยังเซิร์ฟเวอร์โดยตรงเพียงอย่างเดียว
  • Optimization — บนคลาวด์ เพิ่มเติมจาก cache, CDN, ศูนย์ข้อมูล (ปัจจัยอย่าง region และ availability zone ก็มีส่วนสำคัญเช่นกัน)

– ถ้าหากคุณจัดเก็บข้อมูลอื่นๆ เช่น ข้อความ หรือรูปภาพ ก็จะมีพื้นที่ในการจัดเก็บแยกต่างหาก เมื่อมีการประมวลผลข้อมูลเหล่านั้น Producer-Consumer Pattern (message queue) ก็จะต้องค่อยๆ ถูกดึงออกมา

– ถ้า trigger task นำ serverless มาช่วยในการทำงานของ Azure Functions

การเก็บล็อก ตัวชี้วัด และระบบอัตโนมัติ

  • ช่วยให้รู้ว่าต้องเก็บข้อมูลใดในส่วนของ visibility และ observability ซึ่งควรเริ่มทำตั้งแต่วันแรกๆ เพื่อหาคำตอบในเรื่องเหล่านี้ ซึ่งสามารถใช้ App Insight ควบคู่กับ Log Analytic Workspace ช่วยได้
  • Key Vault สามารถช่วยในหมวด Automation ได้

Final Architecture

เพิ่มประสิทธิภาพให้ Power BI ด้วย Azure Machine Learning — โดยคุณชลันธร ลิ้มสีโล นักศึกษาจากโครงการ Microsoft Learn Student Ambassador

  • ในเซสชันนี้ มีการสาธิตการนำเสนอด้วยกราฟเส้นสำหรับทำนายข้อมูลในโมเดล 
  • ก่อนที่จะ import ข้อมูลเข้าไปใน Power BI จำเป็นต้องสร้างระบบ machine learning ขึ้นมาเพื่อเทรนข้อมูลที่จะ import เข้าไป เริ่มจากการเลือกไลบรารีและ variable ที่สำคัญ แต่เท่านั้นอาจยังไม่พอ หากว่าต้องการ full code ด้วย Jupyter Notebook จะกลายเป็นเรื่องที่ยุ่งยากมาก ซึ่งสามารถใช้วิธี import training model ง่ายๆ จากไลบรารีอย่าง scikit-learn เพื่อเทรนโมเดลได้ หลังจากนั้นจึง import machine learning ที่ได้เข้าไปใน Power BI

ยกตัวอย่าง use case จริงที่สามารถพบเจอได้บ่อยๆ เช่น ประเมินโอกาสสูญเสียลูกค้า, ประเมินยอดขาย, และ ประเมินโอกาสที่เครื่องมือจะทำงานผิดพลาด เป็นต้น อย่างไรก็ตาม ยังคงมีข้อจำกัดในการใช้งานอยู่ โดยเฉพาะกับ Azure Machine Learning เพราะว่า Power BI นั้นรองรับเฉพาะ endpoint เวอร์ชัน 1 เท่านั้น นอกจากนั้นอาจเป็นที่ Schema Generator ได้เช่นกัน

อ่านรายละเอียดเพิ่มเติมเกี่ยวกับ Azure Machine Learning ได้ที่

ปรับคำตอบของ ChatGPT ด้วย Azure OpenAI Service — Phol Teerasej (Next Flow) 

ในเซสชันนี้เป็นการให้ข้อมูลอัปเดตเกี่ยวกับ Generative AI สำหรับ web app ด้วยการใช้ Azure OpenAI Studio และ Chat Playground

สิ่งใหม่ที่มีใน Chat Playground ก็คือ คุณสามารถเลือก print ระบบที่ต้องการได้ด้วยการใช้คีย์เวิร์ดจากบทสรุปย่อที่อยู่ในกล่องข้อความ สามารถอ่านรายละเอียดเพิ่มเติมได้ที่

Deploy เว็บไซต์บน Azure ด้วย Azure App Service — Ponggun Wittawat (T.T. Software)

ข้างล่างนี้คือแผนภูมิ Azure Compute Decision Tree ที่เป็นเสมือนแผนที่ในการตัดสินใจเลือกใช้บริการของ Azure

เมื่อคุณเข้าใจแผนที่นี้แล้ว คุณก็ต้องทำความเข้าใจบริการแต่ละประเภทเช่นกัน ซึ่ง Microsoft Azure จะแบ่งออกเป็น IaaS, PaaS, SaaS และ On-Premises ในเซสชันนี้ คุณ Ponggun ได้อธิบายเกี่ยวกับ Azure App Service ซึ่งก็คือบริการ PaaS อย่างหนึ่งของ Azure 

Azure App Service

รูปจากคุณชาตรี งามเบญจวงศ์

  • รองรับหลายแพลตฟอร์ม
    - OS: Linux/Windows
    - สามารถเลือก runtime ได้ เช่น Dotnet, Nodejs, Python, PHP, หรือ Go
  • Deploy
    - Code: Azure Repo, Git, Bitbucket, Local Git (ผ่าน FTP)
    - Docker Image
  • Deployment Slot
    - Staging (Acceptance Test)
    - Production Slot พร้อมทำงาน และสามารถสลับสล็อตหรือค่อยๆ แบ่งทีละส่วนได้
  • ปรับขนาด
    - เพิ่มหรือลดสเปก
    - เพิ่มหรือลดจำนวน instance
  • App Insight — ช่วยตอบคำถามได้ว่าเกิดอะไรขึ้น ถ้าหากคุณใช้งาน App Service ร่วมกับ App Insight มันก็จะสามารถช่วยในเรื่องเหล่านี้ได้

ข้อมูลอ้างอิง

บริหารจัดการฐานข้อมูลบน AKS ได้ง่ายๆ ด้วย KubeDB solution — คุณ Napat Wongpratoom (CloudNatician)

KubeDB คือ Kubernetes Native Database Management Solution ที่ช่วยให้การจัดการฐานข้อมูลง่ายขึ้นและสามารถสร้างระบบอัตโนมัติสำหรับ task ที่ต้องทำเป็นประจำ เช่น Provisioning, Monitoring, Upgrading, Patching, Scaling, Volume Expansion, Backup, Recovery, Failure detection, และ Repair ได้ รองรับฐานข้อมูลยอดนิยมมากมายทั้งบน private และ public cloud ฐานข้อมูลที่ KubeDB รองรับ ได้แก่ MongoDB, MariaDB, MySQL, Elasticsearch, Redis, PostgreSQL, Percona XtraDB, ProxySQL, Memcached, และ PgBouncer

ความท้าทายที่ผู้ใช้อาจต้องเจอและ use case

  • มีความท้าทายบางอย่างเกี่ยวกับการบริหารจัดการ stateful services ใน Kubernetes และการกระตุ้นให้คนในชุมชนร่วมกันพัฒนา KubeDB1 อย่างไรก็ตาม KubeDB1 ก็มีโซลูชันที่ช่วยให้การจัดการฐานข้อมูลง่ายขึ้นและสามารถสร้างระบบอัตโนมัติสำหรับ task ที่ต้องทำเป็นประจำได้
  • คุณสามารถใช้ KubeDB เพื่อบริหารจัดการฐานข้อมูลของ MariaDB บน Kubernetes และใช้ Prometheus กับ Grafana เพื่อติดตามสถานะฐานข้อมูลได้ ตามที่แสดงในแผนภูมิข้างล่างนี้

การพัฒนา Azure OpenAI Service ด้วย Semantic Kernel — คุณ Born Surasuk (Infinitas by Krungthai)

Azure OpenAI:

  • Azure OpenAI คือแพลตฟอร์ม cloud-based AI ที่มีเครื่องมือและบริการให้ developer ที่ต้องการสร้างแอปพลิเคชันฉลาดๆ
  • มีโมเดล AI แบบพร้อมใช้และ APIs ที่สามารถนำมาใช้เพิ่มความฉลาดให้กับแอปพลิเคชันของคุณได้
  • นอกจากนั้นยังมีเครื่องมือในการสร้างโมเดลแบบคัสตอมและสามารถเทรนด้วยข้อมูลของคุณเองได้

Semantic Kernel:

  • Semantic Kernel คือเครื่องมือ natural language processing (NLP) ที่สามารถนำมาใช้ดึงความหมายภายในข้อความให้ออกมาเป็นข้อมูลที่เข้าใจได้
  • มันใช้อัลกอริทึม machine learning ในการวิเคราะห์ข้อความและหาความเชื่อมโยงระหว่างคำกับวลี
  • สามารถนำมาปรับใช้ได้หลากหลายรูปแบบ ไม่ว่าจะเป็น sentiment analysis, topic modeling, และ entity recognition

ข้อมูลอ้างอิง

ชมคลิปวิดีโองานนี้ได้ที่

ข้อมูลและภาพประกอบ โดย คุณชลันธร ลิ้มสีโล

https://medium.com/@boatchrnthn/recapping-2023-azure-developer-day-at-seven-peaks-73f90cbbc7c8