สรุปงาน Thailand Developer Day 2023

งานนี้มีจัดทั้ง Onsite และ Online เลยครับ จริงๆ แล้ววันนี้ - เอาความรู้ ❌️ มาเอาสติ๊กเกอร์ ✅️ 555

ล้อเล่นครับ สำหรับหัวข้อมีดังนี้ครับ

Opening Session Thailand Developer Day

เปิดโดยพี่วิน จากทาง MS เหมือนเดิมครับ โดยมากับ Keyword Do More with less ทุก บ ควรปรับเปลี่ยน tech intensity แล้วนะ ซึ่งการจะปรับได้ key ที่สำคัญ คือ ตัว developer โดยมีตัว developer velocity มากมาย ตอนนี้เด่นก็คงไม่พ้นต้ว GitHub-Copilot กลุ่มเดียวกับ ChatGPT ครับ โดยอื่นๆมี ดังนี้

  • CTO Tesla - GitHub Copilot เขียน Code 80% อีก 20% มาปรับแต่ง และทดสอบให้ใช้งานได้
  • ตอนนี้ในไทย ยอด User GitHub เพิ่มขึ้นเป็นอันดับ 2 ของ APAC แล้วนะ
  • MS love Open-Source นะ ตอนนี้คนที่ทำ Python กับ k8s อยู่กับ MS นะ เหมือนผมมีเขียน Blogในงาน Hacktoberfest อยู่นะ
  • DevSecOps ยังเป็นเทรนอยู่นะ
  • สุดท้ายเลย Azure OpenAI เปิดตัวตาม ChatGPT นั่นเองครับ นอกจากการของ AI แล้วงานใหม่ๆก็ตามมาด้วยครีบ อย่าง prompt engineer

สุดท้ายและปีนี้ทาง MS มีโครงการที่จะมาช่วยทำให้เกิด Developer Velocity หลายตัวเลย

  • ได้ยินแว่วๆ จะมีทำ Hackathon กับทาง BotNoi
  • Microsoft Cloud Squad ยังมีอยู่นะ แม้ว่าจะหมดช่วงการแจกสิทธิสอบ Certification ไป ยังมีอีกโครงการ Microsoft Cloud Squad for Business เป็นโครงการที่ Drive บ มาทำ Cloud
  • 2-4 Mar มี Global AI boot camp >> ของไทย สรุปงาน Global AI Bootcamp – Thailand 2023
  • 25 Mar Azure Open Source Day //เสียดายไม่ได้ไป ติดอีกงานแล้ว T__T
  • Azure Community Thailand | Facebook

Accelerate innovation with the world’s most complete cloud developer platform

Code to Cloud จากเดิม CI/CD ปกติ Deploy Cloud / On Premise ตอนนี้มี Edge เพิ่มมา เพื่อ Latency นอกจากนี้ยังมีอีก Keyword Observability - เห็นว่า App เรามีชีวิต Application Insight นี้เอง และฝั่ง MS มีเครื่องมือสำหรับทำงานในหลายๆส่วน ให้ Develop faster than ever before ดังนี้

  • Low Code - Power Platform + Dataverse //วันนี้เหมือนมีจัดงาน Power Platform Bootcamp ด้วย
  • Pro Code - งานในส่วน Dev เขียน Code และใช้ Azure Service และตอนนี้ GitHub Co-pliot และพลัง OpenAI มัน powerful มากๆ

หลังจาก ChatGPT มันดังขึ้นมาตอนนี้ AI บน MS มีดังนี้

ตัวอย่าง apply AI ตอนนี้ เอา AI มาช่วย Call DCenter ทำ Summary ของ Ticket นั้น เพื่อนำไปจัดการต่อได้ ว่ามี Sentiment อย่างไร ?

นอกจาก Code แล้ว Dev

  • อาจจะต้องเข้าใจถึง Quality Attribute เช่น Security ดังนั้นการวาง Architecture เพื่อคิดถึง Quality Attribute และ Shift Left คุยกับ Security จะได้ปรับตั้งแต่เนิ่นๆ เช่น การใช้ Private End Point เป็นต้น แต่สุดท้าย Code ต้องดีด้วยนะ แม้ว่า Infra จะแรงแค่ไหน ถ้า Code ไม่ดีก็จะเกิดปัญหา หรือ Cost ทีไม่จำเป็นได้
  • นำงาน Automation ต่างๆ เข้ามาช่วย ตอนนี้ DevOps / DevSecOps / MLOps แล้ว

DevOps ต้องใช้เวลาในการ Implement / DevOps จะไม่สำเร็จในองค์กร​ในเร็ววัน Tools ตัวช่วยคนสำคัญที่สุด

  • และการนำ App เดิมๆขึ้น Cloud ไป ไม่ได้ช่วยให้ใช้ Feature ของ Cloud เต็มที่ลองสนใจ Cloud Native ไหม ? //รูปด้านล่างเป็นท่าที่ใช้ Cloud Native บน K8S

Session พิเศษ Chat Bot Azure OpenAI Service

ต่อจากงาน National Coding Day เลย ผมไม่ได้เข้าไปในห้องนั้นพอดี จะเป็น Demo OpenAI Service โดยเป็นการนำ GitHub Coploit มาช่วยทำเว็บที่ใข้งาน OpenAI Service ให้มันช่วยตอบแบบ chat gpt โดยกำหนดเป็น model davinci

อ๋อ และเว็บนี้มีเสียงด้วยนะ จาก Language Service เสียงเนียนเหมือนกันนะ

resource: antronic/line-chatbot-openai-gpt-3-python:(github.com) / antronic/chatbot-gpt-3-ui (github.com)

อ๋อมีการ์ตูนแจกด้วย Azure Static Webapp

Innovate with Microsoft Azure and OpenAI

AI ไม่ใข้ของใหม่นะ เริ่มมาตั้งแต่ปี 1956 โน่นเลยนะ แต่ติดขัดจากเรื่อง Power ในการ Compute เรียกว่ายุค AI Winter พอผ่านอันนั้นมาได้ปี 201x มาไปอย่างไวเลย ตอนนี้เข้ายุค Generative AI แล้ว ตัวเด่นๆ

  • GitHub Copilot จริงๆ ตัว Visual Studio ก็มีนะ แปะ Comment แล้วมันเดา Code เลย
  • ถ้าสำหรับคนทั่วไป มีเหมือนกันนะ ChatGPT
  • อื่นๆ midjourney

AI As a Service - มีอยู่แล้ว แต่เพิ่มความสามารถมากขึ้นจากการที่ MS มีการลงทุนด้านนี้กับทาง OpenAI ซึ่งการใช้งานเรียกผ่าน Azure Open AI Service สะดวกเลย และมีคนดูแลด้าน Security / Privacy ให้นะ ถ้าต้องการให้มัน Specific เอา Pre-train Model มาเติม Data ของเรา แล้ว Train ต่อให้ใช้งานจริง (fine-tuned)

  • GPT-3 - use case เช่น แปลภาษา หรือสรุปเนื้อหาข่าว //แย่และ Blog วันนี้จะโดน AI แย่งานไหม 555
  • Codex - ทำมาสำหรับ Coding
  • DALL-E Preview -

ต่อไปจะเป็นการ Demo OpenAI มองว่าตัว OpenAI เป็น Resource โดยมี OpenAI Studio ให้เรามาจับการเลือก Model มา Deploy ได้เลย แต่ละตัวมีความสามารถที่ต่างกันนะ อย่าง

  • Davinci ฐานข้อมูลใหญ่ general สุด
  • Curri เตรียมมาสำหรับ Language Transalation เป็นต้น

เมื่อ Deploy เสร็จลองเล่นได้จาก Playground ได้เลย

  • ตอนนี้ต้องมาชวน AI คุย (Prompt) บอกบริบท (Context) ให้มัน เช่น ใส่ Hello มันจะตอบออกมา response (highlight สีเขียว ที่มันตอบ) ซึ่งถ้าไม่พอใจตรงไหนก็ปรับแต่ง Parameter เพิ่มได้
  • พอ Test เรียบร้อยแล้ว สามารถเปิด Endpoint และ Generate Code ได้เลย ตาม Style Azure

Skill สำหรับ AI ณ เวลานี้ prompt engineer(คิดคำถาม) / Domain Expert (มาเอา Proof)

Open AI Consideration - เราจะใช้ Open AI ในเคสไหนบ้างนะ

  • Multiple สรุปข่าว / แปลภาษา Model As API ต้องเลือกตามลักษณะงานที่ต้องการ.
  • Generate human liked Contenr
  • Quick Time to Market
  • Use model with little or no training

Resource: Getting Started Azure OpenAI service for developer / พล AI Stream by Nextflow - YouTube / A.I. User & Business Thailand / Teerasej (@teerasej) / Twitter

GitHub Like a Boss: What’s hot and new with GitHub

สำหรับ Session จะบอก Tip การใช้ GitHub ครับ ได้เปิดช่วงเที่ยงกินข้าวไปพอดีเลย เลยอาจจะจดมาไม่ได้ครบครับ //เหมือนตอนบ่ายเห็นหมูแผ่นด้วย ไม่รู้ของใครไม่กล้าหยิบ

ตอนมา Rewrite Blog ช่วงดึก เห็นรูปข้าวเที่ยงแล้วสั่งข้าวมันไก่มาต่อ ว่าจะให้ข้าวแมวแล้ว กินผลไม้พอ แต่ไม่รอด 55 กลับมาที่ Git ก่อน สำหรับ Session นี้ มาดู Tip ที่ให้ตัว GitHub ของเราใด้โดดเด่น และใช้งานสะดวก จะมีในมุม

  • Personalization
    - Profile
    >> Mark Down ทำอะไรได้มากกว่าที่เราคิดเยอะ รวมตัว Profile เราสามารถเอาข้อมูลอื่นๆ นอกจากทื่ Default มาแสดงได้ด้วยนะ
    >> Achievement เข้าใจว่าต้องมี Event ช่วงนั้นนะ อย่างตอน Hacktoberfest ปีที่แล้วได้มาแบบงงๆ
    >> GitHub Skyline - แปลง Stat การ Commit เป็น 3D ถ้าใช้กับ Gitlab ใน บ ได้น่าจะดี ชุมชนตึกหนาแน่น
    - notifications > ปรับได้จาก Profile > settings > notifications จะได้ Filter อะไรที่ไม่สำคัญออกได้
    - Dark Mode
    อ๋อ แล้วถ้าอยากทำ profile เจ๋งๆ มี Blog คนไทยแนะนำครับ >> แนะแนววิธีการทำ Github Profile ให้สวยงาม (mikkipastel.com)
  • Collaboration - Social Coding มันมีหลายตัวเลย
    - Feed - เอาจริงๆ ไม่เคยดูเลย ถาม Google ตลอดเวลามันพัง 55 โดย Feed มันแนะนำว่ามีอะไร
    ใหม่ๆ เผื่อเราเข้าไปช่วย Contribute.
    - Issues + Label จนไปถึง pull request //Mark Down ใส่ได้หมด
    - GitHub Project
    - ถ้ามันมี Pattern แบบแจ้ง Bug / เสนอ Feature ใช้ตัว issue forms - GitHub Docs
    - GitHub Discussions - ใสเพื่อ Vote หรือแสดง Idea แบบ Discord
    - Code Review
    - Web Editor / GitHub Desktop (Command มันยาก) / GitHub Copilot

ส่วน Tip อื่นๆ ถ้าเขียนไม่ครบลองตามไปดูได้ใน Live 1.30 หรือ Top tips for using GitHub - DEV Community

2023 Imagine Cup Thailand National Finals

ตอนเช้ามาก็งงๆ ว่าโต๊ะกลางห้อง กับกล้องจัดเต็ม อ๋อมีงานแข่งตัดสิน โดยมีเหลายทีมเข้ามาแข่งขัน Imagine Cup ที่ให้มาแสดง idea+business model คัดตัวแทนแต่ละประเทศ ไปชิงแชมป์ โลก มาฟังรอบชิงจากห้องสดครับ ว่าแต่ละทีม มี Idea อะไร

ทีม Centrio Lab / project SkinFine

  • Problem ความแออัดในโรงพยาบาล ทำให้เกิดปัญหาอื่นไปตามมา เช่น รอคิวนาน เหนื่อยการเดินทาง และไม่อยากมา เพราะขาดรายได้ ซึ่งโรคผิวหนังมองว่าเป็น target ที่ใหญ่
  • Solution ใช้ AI มาข่วยวิเคราะห์ผิวหนังจากรูปภาพ เพื่อมาคัดกรองลงก่อนพบแพทย์ ว่าเป็น common / specialist โดยเป็น web app ตาม architecture นำ model หลายตัวมาวิเคราะห์ แล้วทำ ensemble //วัดกันที่ความเจ๋งของ Model

ทีม ExReWaLI

  • Idea ได้มาจากเกมโชว์ "Hole in the wall” //นึกถึงพวก Ads เกมใน Facebook
  • Solution นำเสนอเกมแนว SVR (Semi Virtual Reality) ให้ทุกคนเล่นเกมนี้ได้โดยไม่ต้องใช้ Hardware VR เพิ่ม ลดขยะรักษ์โลกไปอีก

ทีม CS-M Tools (1)

  • Problem โรคหัวใจ ภัยเงียบ แล้วมองว่า Tools ในปัจจุบันยังไม่ตอยโจทย์มากพอ
  • Solution mobile app + steroscope tools เพื่อมาวิเคราะห์เสียงการเต้นของหัวใจว่าผิดปกติไหม ให้คำแนะนำทาว chatbot หรือแนะนำโรงพยาบาลที่ใกล้ที่สุด //Design เผื่อ Security ด้วย

ทีม imagine care / blooded (3)

  • Problem เลือดใน supply ของที่ต่างๆมันไม่เพียงพอ
  • Solution ใช้แนวคิด Gamification มาข่วยให้คนมาบริจาคเลือดได้มากขึ้น มา Match กับคูปองทำตามนี้แล้วได้ส่วนลด

ทีม JVS3 VATAR

  • Problem เวลาเราเสียสมาธิไป เช่น มีโทรศัพท์ เราหลุด Focus Concentration กว่าจะกลับมาได้นาน
  • Solution ใช้ virtual pet และเทคนิค neuroscience + gamification มาช่วยให้Focus กับงาน มีเพลง มาช่วย และเมื่อทำสำเร็จได้ reward ตอบแทนไปตกแต่ง virtual pet

ทีม O-RA (2)

  • Problem โรคข้อเข่าเสื่อม Osteoarthritis (OA) Joint Disease มันมีโอกาศเกิดได้ทุกวัย
  • Solution นำ AI ช่วยตรวจสอบการออกท่าทาง ทำกายภาพ ว่าถูกต้องไหม และมีแนวคิด Gamification มาเสริม เพื่อให้มาทำทุกวัน หรือ แชร์ผลผ่าน social network

ส่วนตัวผมชอบของทีม O-RA เป็นวัยออฟฟิตซินโครมพอดี 555 และน้องๆหลายทีม Design เผื่อเรื่อง Security มาพร้อมเลยดีมาก //พี่ๆอย่างผมยังหลุด 555

AI for Developers: ChatGPT & GitHub Copilot

ภาษามันพัฒนาขึ้นมาเพราะขี้เกียจ (ชอบอันนี้) จาก Assembly (Low Level) > C / Java (ยังยาว) > Python / Kotlin หรือ SQL ก็ปรับให้เป็นภาษามนุษย์มากขึ้น ฝั่ง Editor มีการปรับตามนะ มี Intellisense และ อนาคตตอนนี้ยุค GitHub Copilot + ChatGPT

GitHub Copilot - AI Pair Programmer ไม่ได้แย่งงานเรา แนะนำ แลเวให้เราตรวจสอบ ตอนนี้คิดเงินแล้วนะ ใช้ OpenAI Codex (เกิดมา Code) มี Feature เด่นๆ

  • พิมพ์ comment ให้มัน Generate Code ให้
  • ภาษามันก็ตรวจสอบได้นะ พวก comment ถ้าเขียนผิด มันจะช่วยแก้ให้ หรือแปลให้นะ ช่วยการสื่อสารได้นะ จะได้ไม่ตีความผิด
  • Testing ใช้ในข่วยสร้าง Test
  • Regular Expression มันช่วยได้ พิมพ์ comment บอก
  • เตรียมตัวสัมภาษณ์ก็ได้นะ แบบเรื่อง Data Structure แต่พิมพ์ให้มันแนะนำ

บทความเต็ม https://github.blog/2022-09-14-8-things-you-didnt-know-you-could-do-with-github-copilot/

GitHub Copilot Labs 《 ของใหม่

  • Translate ย้าย Logic เดิมไปภาษาใหม่ ได้ง่าย ใข้
  • หรือ Explain อธิบายการทำงานของ Code เดิมก็ได้ด้วย ดู BigO
  • หรือ ให้หาจุดที่คาดว่าเป็น Bug ได้ เช่น ⇒ หรือ ≥《《 อ๋อ อันนี้เอามาทำ Code Review ได้เลย
  • หรือ Document ทำ doc
  • หรือ Readable - Refacotor Code ให้ได้

ChatGPT ใช้ GPT-3 ทำได้เหมือน GitHub Co-Pilot แต่ถูก Design General Purpose
Tips ถ้าเป็น Context เดียวกัน ไม่ต้องแยก Chat มันจะได้อยู่ในบริบทเดิม

สรุป อยากได้อะไรก็พิมพ์เอาครับ แต่เราต้องมีความเข้าใจ Domain ในการตรวจสอบมันด้วย บางที่ AI ไมได้ถูกหมด Fundamental ยังสำคัญอยู่ นอกจากนี้ยังมี Notion AI (GPT-3 เหมือนกัน) / Bing

Modernize .NET enterprise applications with Microsoft Azure

Legacy System - ระบบเก่า ที่ Technology หรือวิธีการพัฒนามันเก่า แต่มันยังต้องใช้งานอยู่ โดยก่อนจะเข้ายุคของ Cloud Azure สาย Windows จะหา Hosting ลำบาก อาจจะไปทางเช่า VPS เองแต่จะเจอปัญหา Scale ไม่ได้ / SLA ของ Infra คุมไม่ได้นะ / Monitor Track ลำบาก และสุดท้าย Security

Cloud งานไหนคนอื่นทำดีกว่า ให้คนอื่นทำ ดูตาม shared responsibility มันจะมี 3 แบบ IaaS / PaaS และ SaaS ซึ่งถ้ายังคิดอะไรไม่ออกมีแนวทาง ดังนี้

  • Rehost - ใช้ IaaS - Azure VM ได้ SLA ของ Infra มาแล้ว
  • Improve ปรับ App บางส่วน เช่น
    - Database ย้ายมาใช้ PaaS
    - หรือ File Share ใน VM Drive D/E ย้ายไปใข้ Service Azure File Share หรือ Azure Blob
    - หรือ ตอน Deploy เอาตัว CI/CD มาช่วยได้
    ปัญหา Monitor Track ด้วย Application Insight มาช่วยดู ถ้าท่านี้ได้แล้วค่อยขยับไปส่วน Cloud-Native

Service เด่นๆของ Azure

  • App Service ดียังไง ? มี dockerfile หรือ Code ก็ Deploy ได้ + ทำ Auto Scale
  • Application Insight บอก dependency / code จุดที่ Faik หรือ SQL ที่ช้าได้
  • Database มีท่า
  • ทำ HA ก็ได้นะ ทำ Region Pair และให้ Azure Front Door มาช่วยจัดการ Request
  • งานเยอะๆใช้ Service Bus + Redis
  • DevOps - ไม่ Deploy มือแล้วนะ !!! มี Azure DevOps หรือ GitHub Action
  • GitOps - Git Action > Terraform (IoC) ส่ง Code ไปก็ Trigger Build & Deploy ระบบใหญ่ๆได้เลย ไม่ต้องลงด้วยมือ ทาง QA ทดสอบได้จาก Link ที่ Notification แต่พอจัดการระบบใหญ่ๆต้องระวังเรื่อง Cost ด้วย

นอกจาก Modern App > Modern Workstation

  • VS Code + WSL2 ไม่ต้องแยก VM ออกมาแล้ว
  • GitHub Desktop - ไม่เชี่ยว Command ใช้ Git ได้

Go serverless: Build cloud-native apps faster without managing infrastructure in Microsoft Azure

Evolution of Computing - ตอนนี้เราอยู่ R ไหนนะ ถ้าที่ บ ยังมีบางส่วน Rehost / Refactor / กำลังงมๆท่านี้ Rearchitect แต่ยังไม่ไปถึง ท่า Serverless
Serverless มีจุดเด่น no infrastructure management / event driven ทำหน้าที่ orchestrator / scale และ pay-per-use โดย azure serverless platform ดังนี้

  • Event Grid- Asynchronous Message รับ message และทยอยให้ consumer รับไปทำงาน //อ้าวอันนี้ Serverless เหรอ จัดลงกลุ่ม DB ตลอด 55
  • Function - Code First / Open Source / On K8S
  • Logic App - Design First

Serverless Use-Case

  • Automation of scheduled tasks
  • Real-time stream processing
  • Durable Function
  • Serverless as backend

Azure Application Service - Pack เป็น Container ได้ ใช้กับ Cloud เจ้าไหนก็ได้ จากนั้นจะเป็น Demo

  • โจทย์ เราจะรู้ได้ไง ว่ามีการสร้าง Resource ใหม่ ดู activity log อาจจะยากไป หรือ resource graph explore เขียน query KQL ดู activity แต่มันงานถึกอยู่
  • Need Automation: ให้ Notify E-mail / msteam ใช้ Azure Logic App + กำหนด Manage Identities เอา KQL ไป Execute และ Azure Function Parse Json
    //ตอนแรกฟังอ้าวใข้ Logic App ให้จบเลย parse json + html table สรุปว่าสอนทั้ง 2 แบบครับ

GitOps in weird places

Update 2023-02-27 แปะ Live ของ Speaker

GitOps (Operation by Pull Request) คือ อะไร ?

  • คำนี้เริ่มมาตอนปี 2017 ทีม Weaveworks Deploy พลาด แต่กูกลับมาได้ภายใน 40 นาที แล้วสรุปเป็น practice ใน OpenGitOps
  • ตัว GitOps นิยามของมัน แนวคิดของการดูแลระบบ และจัดการระบบที่ดูแล

"a set of principles for operating and managing software systems"

  • GitOps มักถูก Apply กับ K8S โดยมี Tools เด่นๆ Argo CD / Flux CD แต่ทว่างานที่ใช้ K8S Cost มันสูง Serverless ดูคุ้มค่ากว่า

GitOps Principle

  • Declarative - คำอธิบายในสภาพของระบบว่าตอนนี้เป็นอะไร แบบ Declarative (บอกว่าต้องการอะไร) Bicep / Terraform / Pulumi (TypeScript Base)
    NOTE: Imperative สั่งกดๆ GUI
  • Version Immutable - พวก Version Control
  • Pulled Automatically - มี Tool มาจัดการอย่างดึงมาทำงานอย่าง GitHub Action
  • Continuously Reconciled - มี Agent มาตรวจ State ให้มันตรงกันเสมอ ไม่ต้องสร้างเครื่องมือเองก็ได้นะ ใข้ของที่เค้าให้มาดีแล้ว เพราะมี หลายเคส handle ยกเว้นว่า tools นั้นๆ จะไม่มี provider ให้จริงๆ

Push-based & Pull Based

  • Push based - CI ต้องถือ Key ของ Target Environment มันเสี่ยง Security
  • Pull based - ฝัง GitOps Operator ใน K8S ให้มาตรวจสอบการเปลี่ยนแปลงใน Repo ข้อดี CI ไม่ต้องมาถือ Key

Sample Use-Case - มีหลายเคสเลยอย่าง

  • Cloud Resource Automation
  • แก้ไขข้อความ ใน Discord เพราะเค้าไม่ Implement ให้ ใช้ GitOps ยิง Discord Webhook แทน ตัว terraform มี discord provider
  • update DNS / YouTube metadata เป็นต้น

เจ้า GitOps ช่วยให้เกิดการ Contribute + Center Control ไม่ต้องต้องมาแจกสิทธิ จัดการสิทธิบ่อยๆ จาก use-case คุณไท จะใช้ Flow Pull Request มาคัดกรอง

Blog ของท่านอื่นๆครับ

Live งานนี้

อันนี้น่ารัก C# / TypeScript จากตัว Midjourney

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.