สรุปจากทางบ้าน ลองฟัง 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
- ลองดูเพิ่มเติมได้จาก
- CNCF Cloud Native Interactive Landscape เน้นที่ตอบโจทย์ Business / Culture / Process
- หนังสือ Cloud Native Transformation [Book] (oreilly.com)
- ปิดท้ายด้วย 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
- Cariva Health Tech ในเครือ PTTEP (Ref: https://arv.co.th/)
- 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
- Q ตัว IFTTT รองรับ Condition ได้ซับซ้อนขนาดไหน ทำ Multiple Webhook ได้ไหม
- 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.