สรุปงาน Cloud Native Bangkok 2022

สรุปจากทางบ้าน ลองฟัง Live และจดๆดูนะครับ ^__^

Cloud Native 101

  • Convention#01
    • Coding - สร้าง Application ตาม Requirement
    • Build and Run - แปลง Code เป็นตัวพร้อมติดตั้ง Executable File
    • Go-live - ใช้งานจริง
- ทำไมต้อง Cloud
  • เพราะ มี load / request จาก user เข้ามามากขึ้น มันจะเกิด Red Zone ติดข้อจำกัดของ Resource CPU หรือ RAM เต็ม - แต่สิ่งที่ควรทำให้อยู่สถานะปกติ Green Zone (Available Resource)
    • Traditional - Upgrade เครื่อง Server ให้ Spec สูงขึ้น แต่มันจะคุ้ม หรือป่าว ?
    • Cloud - สามารถปรับได้เลย เพิ่ม Resource และ Scale ได้ Manual และ Auto
- Cloud มาจากไหน ?
  • มาจากแนวคิดของ Cloud Computing เน้นการประมวล และปรับมาใช้งานต่างๆ โดยสิ่งที่ต้องจัดการต้องตั้ง Cloud
    • Key Management
    • Database
    • Storage - แยกออกจาก Database เราไม่ได้เก็บข้อมูล อาจจะวาง App หรืออะไร
  • และตัว Cloud นอกจากการปรับ Resource + Scale แล้วยังเป็นการจ่ายตามการใช้งานจริง Pay as you go
  • Summary of Cloud
  • Cloud Service Platform - ผู้ให้บริการ Cloud ให้เราใช้งาน เช่น AWS / Azure / GCP / Alibaba Cloud
- Cloud Native คือ อะไร ?
  • มันไม่ใช่ Cloud และไม่ใช่พวก Tool Set
  • มัน คือ Architecture ที่สำหรับสร้าง Application ให้มันตามโจทย์ Business ได้อย่างรวดเร็ว และดีที่สุด เช่น ถ้าเราทำงานด้าน Big Data ตัว Cloud Native เกี่ยวกับ Big Data Tool Set + Concept + Culture การทำงาน
  • มันไม่ได้สนใจ Server สนใจ Service
- How to transform to Cloud Native
  • ยกตัวอย่างจากส่วน Application management
  • Convention#02
    • Server - Host Application / PC - Personal Use ใช้ ทำงานทั่วๆไป
    • VM (Virtual Machine) - แยก Resource ชัดเจน โดยมีตัว Hypervisor ซึ่งมี 2 Type Type 1 ไม่จำเป็นต้นมี OS พวก VMWare ExSI / Type 2 มี OS ก่อน Virtual Box
  • Deployment Stack ปกติเรามี Static Web หรือ Front End + Back End + Database
  • The Matrix from Hell - เราจะมั่นใจได้ไงว่า Dev / Prod หรือ เพื่อนในทีมตรงกัน ต้องมี Step Setup มากมาย
  • Containerization - เอาแนวคิดของการขนส่งมา เอาทุกอย่าง เช่น Static Web มาใส่กล่องที่เรียกว่า Container โดยมีตัว Container Runtime Engine จัดการ อาทิ เช่น docker / podman / LXD / Containerd / cri-o เป็นต้น
  • แนวคิด Container มาใช้ และแก้ไขปัญหา The Matrix from Hell เพราะ Container จะเป็น Immutable Infrastructure (Run ที่ไหนก็ได้ผลลัพธ์เหมือนกัน
- Container กับ VM
  • จากตัวกล่องทางซ้ายสังเกตุว่าฝั่ง Server จะเป็น VM ที่ลงตัว Container Runtime Engine
- How to manage a lot of traffic
  • เพราะ App ของเรา อาจจะมีคนใช้เยอะๆ นอกจากการ Scale Resource แล้ว ตัว Application ต้องรองรับ Request เข้ามาเยอะๆ ต้องมี Load Balancer ที่ค่อยมาจัดการว่าแต่ละ Request เข้ามาใช้งานที่ Application Instance ไหน
  • งานนี้แรกๆจะใช้ Operation หรือ คนทำหน้าที่เพิ่ม Instance ขึ้นมา โดย Flow ของการสร้าง Instance คร่าวๆตามรูปเลย
  • แต่คนมีข้อจำกัดเหมือนกัน จึงต้องมี Tool เข้ามาจัดการ Instance ขึ้นมา ทำหน้าที่เป็น Orchestrator ที่ดังๆ K8S / Docker Swarm
- Cloud Native Area
  • ลองดูเพิ่มเติมได้จาก
  • ปิดท้ายด้วย Slide นี้ที่แสดงเห็นการเปลี่ยนแปลงในแต่ละยุค อย่างไปตีว่ามัน คิด Toolset เพราะมันประกอบไปด้วยหลายอย่างเลย
- Q&A
  • Q ณ จุดไหนที่เราควรใช้ VM หรือ ใช้ Serverless
    A Serverless เรา Application โยนบน Cloud ไม่ต้องมาจัดการ VM ด้วย อนาคตอาจจะย้ายไป Orchestrator อย่าง K8S (ตามที่ Cloud Provider มีให้) แต่ต้องดู Cost ด้วย พวก Serverless มันจ่ายตาม Compute ส่วนใหญ่
  • Q ถ้ามี Service A / B บน Cloud แล้ว Service C Local ต้องทำยังไง
    A ถ้าใช้งานจริง ต้องทำให้ Network มันถึงกัน ซึ่งตรงนี้ Cloud Provider มี Solution ให้ ถ้าทำได้ต้องดูว่าใช้ K8S เหมือนกันไหม ถ้าไม่ใช้ External Load Balance (External Ingress)
  • Q จากถ้าเป็น Dev แล้วจะลองต้องทำอย่างไร ?
    A ใช้ Skaffold / Azure-Bridge to Kubernetes

จากนั้นเป็นการแนะนำโครงการ The Cloud Camp สำหรับคนที่สนใจงานด้าน Cloud ลองคิดตามที่ Page ต้นทางได้เลยครับ

Automate your Event by IFTTT

- Cloud Event คือ อะไร ?
  • Event ที่เกิดขึ้นรอบตัวเราแหละ แต่ไม่ใช่สนใจทุกอัน โดยสนใจอันที่
    • Spikes - อะไรที่มันโดดขึ้นมา จากปกติ
    • Abnormal Events
    • Special Event
  • เพื่อเอา Event ที่ได้มาช่วยตัดสินใจได้ทัน ก่อนจะเกิดปัญหาขึ้น
- IFTTT คือ อะไร
  • IFTTT = IF THIS THEN THAT ถ้าเกิดอะไรขึ้นมาแล้ว ต้องทำอะไรต่อ
  • ตัวมีทั้งส่วน User และ Developer //เพิ่งรู้อันหลัง ปกติใช้แบบ User
  • 1 IFTTT จะเป็น 1 Applet โดยที่ free account สร้างได้ 5 Applet
- Use Case
  • เริ่มจาก Webhooks เตรียมไว้ IFTTT จากนั้นตัดสินใจ ว่าเป็น event ที่สนใจ หรือป่าว และส่งต่อ Pushbullet โดยที Pushbullet เป็น Tool ที่ช่วยมาจัดการ Notification
  • ตัวอย่างอื่นๆ
    • ถ้ามีคนกรอก Google Form แล้วมาทำ Notify ผ่าน Line Notify ได้
  • Q&A
    • Q ตัว IFTTT รองรับ Condition ได้ซับซ้อนขนาดไหน ทำ Multiple Webhook ได้ไหม
      A ต้องดูใน IFTTT Developer เพิ่ม แต่
    • Q ทำ Chaining หรือเป็น Sequence ได้ไหม
      A แต่ต้องเป็นแบบ 1 ต่อ 1
  • Summary
    • ตัว IFTTT เหมาะกับใช้งานแบบ Personal หรีอ ad-hoc / POC เพราะบางทีอาจจะเจอ API Limit ได้ มันจะมี Tool อื่นๆ อย่าง Grafana / Datadog / PagerDuty (สาย Operation / SRE)
    • Automation with Care - บางทีเราอาจจะต้องเสียเวลาไปดู System จริงๆ แต่ อาจจะทำ Notify เผื่อเคส Error (ดู Log ที่จำเป็นจริงๆ) และ Restore
    • Monitor & Alert - ที่จำเป็นตรงตาม Requirement

อะไร อะไรก็ IOT

- IoT History
  • ยุคแรกพวก Vending Machine ปี 1982 ที่ทาง ม Carnegie Mellon ได้ให้ตู้ส่งสัญญาณว่าสินค้าในตู้หมดแล้ว เหลือเท่าไหร่
  • 1990 John Romkey ทดลองสั่งเครื่องปิ้งขนมปังผ่าน Internet
  • 1991 John Romkey เอาจาก version 1990 มาดัดแปลง มี Lego มาเป็น Robot
  • 1996 Nokia มีมือถือที่ต่อ Internet ได้
  • WiFi มีการตกลงมาตรฐานกลางตาม IEEE 802.11 แต่ละเจ้ามีทำมาตรฐานตัวเอง
  • iBook G3 Notebook ต่อ WiFi
  • และโตมาถึงปัจจุบัน
-Building Block of IoT
  • End Device / Nodes - อุปกรณ์มี
    • Sensor จับแสง / การเคลื่อนไหว (Motion) / การมองเป็น (Vision) / Temperature / Humidity (ความชื้น) / Proximity (ระยะห่าง)
    • Object - อุปกรณ์
    • RFID Tags - เป็นข้อมูล และสถานะ ยกตัวอย่าง เช่น Uniqlo ใช้ติด RFID Tag ที่เสื้อผ้าจากโรงงาน มาจนถึงร้านขาย เพื่อ Tag การเดินทาง
    • Actuators - การควบคุม Controller เช่น Relay Switch (หน่วงเวลา เช่นเปิดากระโปรง แล้วไฟติดตามเวลา)
  • Gateway / Local Processing Nodes - Middleware / IoT Reader / Signal receivers / Transceivers
  • Connectivity - Protocol ในการสื่อสาร HTTP(API) หรือการสื่อสารผ่านคลื่นความถี่ เช่น Bluetooth / SIGFOX / sstv (คลื่นวิทยุ ตัวอย่าง รับภาพจากสถานีอวกาศ) เป็นต้น
  • Cloud Based Application and Storage - ส่วนที่รับข้อมูลมาประมวลผล
- MicroPython & IoT
  • MicroPython - ภาษา Python สำหรับ IoT
  • Editor thonny เขียน Code / Write Firmware ลงอุปกรณ์ IoT
  • Fritzing - ออกแบบวงจร Arduino
  • MicroPython on Unicorn - เป็น Emulator Online เราสามารถเขียน Code และทดสอบ //ส่วนตัวคิดว่ามันคงคล้าย LC-3 ที่เรียนตอนปี1 มั้ง
  • พวก IoT มันโตไว้ เพราะอุปกรณ์มันต่อ WiFi ได้ง่าย หลังจากเรารู้ Step และ Tools แล้วขั้นตอนต่อมาวาง IoT Architecture ในพื้นที่ที่เราสนใจ และออกแบบการแสดงผลขึ้นมา

Resource


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.