สรุปเนื้อหาจากงาน Santa Cloud in Town
จัดงานโดยบริษัท Seven Peaks
ส่วนตัวแล้วดีใจมากๆที่มีโอกาสได้มางานนี้ครับ เพราะชื่นชมบริษัท Seven Peaks มานานแล้ว เห็นมีการจัด Tech Meetup ดีๆขึ้นบ่อยๆ รวมถึง Technology ที่ใช้ ทั้ง .NET หรือ Azure ก็เป็นส่วนที่ผมให้ความสนใจอยู่เสมอ เหมือนได้มาเจอคนที่มีประกบการณ์ทำงานที่คล้ายๆกัน อบอุ่นอย่างบอกไม่ถูกเลยครับผม
แนะนำบริษัท Seven Peaks
Seven Peaks เป็นบริษัทระดับสากลที่ดำเนินกิจการในการให้บริการทางด้านของเทคโนโลยี ไม่ว่าจะเป็นเรื่องของ Digital Transformation, ออกแบบระบบที่รองรับการใช้งานระดับโลก โดยคำนึงถึงผลลัพธ์ที่ดีในทางธุรกิจ
ปัจจุบันบริษัทมีสำนักงานหลักอยู่ที่ กรุงเทพ ใกล้ๆกับ MRT ศูนย์สิริกิต โดยมีทีมงานมากประสบการณ์ในสายงานเทคโนโลยีนี้มากกว่า 200 คน, มาจาก 25 ประเทศ ที่มีความถนัดทางด้านของ Native Mobile App Development, Web Technology และ UX/UI Design
ติดตามเนื้อหาของบริษัทเพิ่มเติมได้ที่ลิ้งข้างล่างนี้นะครับผม เย้
บรรยากาศงาน
งานมาในตีมคริสมาสต์ บรรยากาศอบอุ่น มีเครื่องดื่มชาสีเหลืองนุ่มคอ ทานคู่กับพิซซ่าและโดนัท เป็นมือเย็นที่สนุกสนานและยังได้ความรู็อีกเพียบเลยครับผม
🏆 คุณ Mean Kaenchan — How to containerize your applications
Container Technology คืออะไร
เป็นเทคโนโลยีที่ช่วยทำให้มั่นใจว่าระบบที่เราพัฒนาขึ้นมานั้นจะได้ผลลัพธ์ในการทำงานที่เหมือนกันในทุกๆเครื่องที่เรานำไปติดตั้งครับ
ที่สามารถทำได้แบบนี้ เพราะ Container นั้นนอกจากจะมี Code ที่เราเขียนแล้ว ยังรวมไปถึง File System, Configuration, Library DLL ที่เกี่ยวของติดไปอีกด้วยครับ
ทำไมเราถึงต้องการ Containerize Applications
- เพิ่มความเร็วในการพัฒนาเพื่อส่งมอบงานให้กับลูกค้าได้ไวขึ้น
- ติดตั้งได้อย่างยืดหยุ่น พัฒนาครั้งเดียว ติดตั้งได้หลายที่
- นักพัฒนาสามารถใช้คอมตัวเองในการจำลองการทำงานได้หลากหลายมากขึ้น
ตัวอย่างของ Containerize Application ที่เขียนด้วย .NET
ขั้นตอนการพัฒนา Containerize ก็จะประมาณตามภาพนี้นะครับ
- ขั้นตอนแรกให้สร้าง
Dockerfile
เพื่อติดตั้ง File System, Configuration, Library DLL และ Code ของเรา - สั่ง Build
Dockerfile
มาเป็นDocker Image
- นำ
Docker Image
ไปรันที่ไหนก็ได้ ที่ติดตั้งDocker Engine
อยู่ !!
🏆 คุณ Jose Barbosa — Deploying your Apps using Kubernetes
ด้วยเทคโนโลยีของ Microservice ที่เข้ามาช่วยในการรองรับการขยายของระบบได้มากขึ้น โดยทำการแบ่งส่วนการทำงานออกมาเป็นระบบย่อยๆที่สามารถทำงานแยกออกจากกันได้อย่างอิสระนั้น ทำให้เกิด Services จำนวนมากที่เราต้องคอยดูแลและจัดการครับ
ถ้าเราใช้แนวทางแบบเก่าจะทำให้การจัดการตรงนี้ทำได้ลำบากมาก เพราะเราต้องการ Automation มาช่วยลดภาระในการดูแลตรงนี้ลง และต้องการระบบที่สามารถจัดการ Services ต่างๆได้อย่างพร้อมกัน หรือที่เรียกกันว่า Orchestration
Introduction to Kubernetes
หลังจากกล่าวถึงปัญหาข้างต้นไปแล้ว ก็มาถึงแนวทางการแก้ไขโดยการใช้ Orchestration Tool
ซึ่งในที่นี้จะใช้ Kubernetes ครับผม
Kubernetes ประกอบไปด้วย
Kubectl
เป็น Commandline Tool ที่ใช้ในการจัดการ Kubernetes นะครับPods
เป็นหน่วยที่เล็กที่สุดที่เก็บ Docker Container อยู่ข้างในNamespaces
เป็นที่รวบรวมPods
เข้าด้วยกันNodes
คือคอมพิวเตอร์ที่จัดการระบบ โดยจะแบ่งเป็นMaster Node
ที่เป็นเสมือนสมองของการทำงาน และมีWorker Node
ที่คอยจัดการกับPod
Services
ทำหน้าที่เป็น Load Balanceretcd
เอาไว้รวบรวมข้อมูลทั้งหมดที่เกี่ยวกับ Kubernetes ซึ่งสำคัญมากๆ
Introduction to Azure Kubernetes Service (AKS)
AKS เป็น Managed Service ของ Microsoft Azure ที่ช่วยในการจัดการ Node ให้กับเรา โดยเฉพาะ Master Node ที่มีความสำคัญกับระบบมากๆ เราต้องการความมั่นใจว่าตัว Master Node จะไม่ล่ม ซึ่งการติดตั้งและดูแลรักษาทำได้ยากมาก การใช้ AKS จะช่วยลดช่องว่างของปัญหาลง ให้เราได้พุ่งเป้าไปที่การพัฒนา Code ของระบบมากขึ้นครับ
🏆 คุณ Giorgio Desideri — Speaking about Event-Driven Architecture
เนื่องจากผมเข้ามาฟังเนื้อหาไม่ทัน ผมเลยขออนุญาตแบ่งปันคำแนะนำที่ได้รับแทนนนะครับ
รวมถึงผมขออนุญาอธิบายการทำงานแบบ Event-Driven Architecture เพิ่มเติมดังนี้นะครับ
Request-Response Driven
เป็นระบบที่ควบคุมมีการทำงานระหว่างบริการ (Service) ต่างๆ โดยมีการ Request จาก Client เข้ามายัง Server หลังจากนั้น ระบบจะทำการประมวลผลเป็นลำดับขั้นตอนระหว่าง Service จาก 1 ไป 2 ไป 3 จนกระทั่งได้ Response กลับไปยัง Client
ตัวอย่างเช่น ระบบลงทะเบียนคนไข้
- Registration Service — คนไข้ (Client) กรอกแบบฟอร์มเพื่อลงทะเบียนในระบบ เสร็จแล้ว Registration Service ทำการเรียกบริการอีก 3 ส่วนเพื่อดำเนินการลงทะเบียนจนแล้วเสร็จ
- User Profile Service — ระบบ (Server) จัดเก็บข้อมูลการลงทะเบียนลงฐานข้อมูล
- Notification Service — ระบบ (Server) ส่ง Email ไปยืนยันที่ Mailbox ของคนไข้
- Report Service — ระบบ (Server) เก็บข้อมูลสถิติของการลงทะเบียนในรอบเดือน
ระบบจะทำงานและถูกควบคุมตามลำดับด้วย Registration Service จนแล้วเสร็จ ซึ่งก่อให้เกิดการรอการทำงาน (Synchronous) และก่อให้เกิดการเชื่อมโยงระหว่างบริการต่างๆ (Service) ในระบบจะค่อนข้างยึดกันอย่างแน่นหนา (High Coupling)
ขั้นตอนการทำงานแบบตามลำดับ (Synchronous)
ซึ่งการทำงานในรูปแบบนี้เหมาะสมกับการรับส่งข้อมูลภายในระบบดี เพราะโครงสร้างที่ไม่ซับซ้อนและจัดการง่าย
Event-Driven Architecture
จะมีความแตกต่างตรงที่จะมีตัวกลางคอยเชื่อมบริการต่างๆ (Service) กันอย่างหลวมๆ (Loosely Coupling) และการทำงานจะไม่ต้องรอกันตามลำดับ (Asynchronous) โดยจะใช้เหตุการณ์ (Event) ที่เกิดแทนในการเริ่มการทำงานแทนครับ
ขั้นตอนจะเปลี่ยนไปคือ เมื่อมี Event นึงได้เกิดขึ้น ระบบจะส่งผลกระทบไปยังบริการอื่นๆที่สนใจ Event นี้ และนำผลลัพธ์ที่ได้ไปประมวลผลกันเองต่อไป โดยที่ผู้สร้าง Event ไม่จำเป็นต้องทราบว่าแต่ละบริการอื่นๆเหล่านี้จะทำงานอะไรต่อบ้าง
ซึ่งเราจะเรียกผู้สร้างเหตุการณ์ว่า Event Producer
, ผู้สนใจเหตุการณ์ว่า Event Consumer
, ช่องทางในการรับและส่ง Event ว่า Event Broker
รูปแบบการสื่อสารจะเกิดขึ้นเมื่อ
Event Producer
มีการลงทะเบียน (Publish) ว่าจะส่งข้อมูลเข้ามาที่Event Broker
เมื่อมี Event เกิดขึ้นEvent Consumer
มีการลงทะเบียน (Subscribe) ที่Event Broker
เพื่อแจ้งความประสงค์ที่จะรับข้อมูลที่เกิดจาก Event- เมื่อมีการทำงานเกิดขึ้น
Event Producer
จะ Publish Event ขึ้นที่Event Broker
หลังจากนั้นEvent Broker
จะส่งต่อ Event ไปยังEvent consumer
ที่ Subscribe ไว้ (Notification)
ฝากส่งท้าย
สุดท้ายนี้ทาง Seven Peaks กำลังประกาศรับสมัครงานหลากหลายตำแหน่งเลยครับผม ท่านใดสนใจผมแนะนำมากๆ ได้โอกาสทำงานในบริษัทระดับสากล บรรยากาศการทำงานที่ดี เพื่อนร่วมงานน่ารัก เงินเดือนและสวัสดิการก็ดีมากๆเลยครับ ได้ฝึกภาษาอังกฤษด้วยน้าาาา
สมัครกันได้เลยที่ลิ้งข้างล่างนี้นะครับ
ขอบคุณผู้อ่านทุกท่านมากๆเลยครับผม
Happy Coding and Sleeping : D
นายป้องกัน