Building Microservices with Node.js
หลักสูตร Building Microservices with Node.js เป็นการอบรมสร้างระบบ Microservices ด้วย Node.js 24 LTS และ Fastify 5 ตั้งแต่แบ่ง Service สร้าง API Gateway สื่อสารผ่าน RabbitMQ จนถึงรันทั้งระบบด้วย Docker Compose และติดตามด้วย OpenTelemetry เหมาะกับ Node.js Developer, Backend Developer และทีม DevOps
- ระยะเวลา12 ชั่วโมง · 2 วัน
- รูปแบบออนไซต์ / ออนไลน์สด
- รอบถัดไปเปิดตามคำขอ
- ใบรับรองมี Certificate
ภาพรวมหลักสูตร
Microservices ช่วยให้แบ่งระบบใหญ่เป็นบริการเล็กหลายตัวที่พัฒนา Deploy และขยายแยกกันได้ ทีมจึงส่งงานได้เร็วขึ้นและขยายเฉพาะส่วนที่มีโหลดสูง Node.js เหมาะกับงานนี้เพราะเบา เริ่มเร็ว และจัดการงาน I/O จำนวนมากได้ดี แต่การแยก Service โดยไม่มีหลักคิดมักได้ระบบที่ซับซ้อนกว่าเดิม ทั้งเรียกกันเป็นลูกโซ่จนล่มตามกัน ข้อมูลไม่ตรงกันระหว่าง Service และหาไม่เจอว่าปัญหาเกิดที่ไหน
หลักสูตรนี้พาสร้างระบบ Microservices ด้วย Node.js แบบไม่พึ่ง Framework ใหญ่ เริ่มจากแบ่ง Service ตามงานธุรกิจ เตรียมโปรเจกต์ Node.js 24 LTS แบบ ES Modules สร้าง Service ด้วย Fastify 5 และ Express 5 ให้แต่ละ Service มีฐานข้อมูลของตัวเอง เรียกกันผ่าน HTTP อย่างทนทาน และสร้าง API Gateway ต่อด้วยการสื่อสารแบบ Event ผ่าน RabbitMQ การรักษาความถูกต้องของข้อมูลข้าม Service การรันทั้งระบบด้วย Docker Compose การ Load Balance ด้วย NGINX และการติดตามระบบด้วย OpenTelemetry แล้วปิดท้ายด้วย Workshop ระบบจองทริปแบบ Microservices (อบรม 2 วัน วันละ 6 ชั่วโมง รวม 12 ชั่วโมง ระดับ Intermediate)
สิ่งที่คุณจะได้รับ
- เข้าใจสถาปัตยกรรม Microservices ความต่างจาก Monolith และเกณฑ์ตัดสินใจว่าเมื่อไรควรใช้
- แบ่ง Service ตามงานธุรกิจ และออกแบบให้แต่ละ Service เป็นเจ้าของข้อมูลของตัวเอง
- สร้าง Service ด้วย Node.js 24 LTS, Fastify 5 และ Express 5 พร้อม Validation และ OpenAPI
- สร้าง API Gateway และเรียก Service อื่นผ่าน HTTP พร้อม Timeout และ Retry
- สื่อสารแบบ Event ผ่าน RabbitMQ และรับมือกับข้อมูลที่ต้องสอดคล้องกันข้าม Service
- รันทั้งระบบด้วย Docker Compose ขยายระบบด้วย NGINX และติดตามระบบด้วย Log, Health Check และ OpenTelemetry
หลักสูตรนี้เหมาะสำหรับ
- Node.js Developer ที่ต้องการแยกระบบ Monolith เป็น Microservices
- Backend Developer และ Full-stack Developer ที่ใช้ JavaScript หรือ TypeScript
- ผู้ดูแลระบบและทีม DevOps ที่ต้อง Deploy และดูแลระบบหลาย Service
- นักศึกษา ครู อาจารย์ และผู้สนใจที่มีพื้นฐาน Node.js และอยากเข้าใจ Microservices จากการลงมือทำ
พื้นฐานของผู้เข้าอบรม
- เขียน JavaScript ได้ ทั้ง Function, Object, Array และ async กับ await
- เคยสร้าง REST API ด้วย Node.js มาบ้าง
- ใช้งานฐานข้อมูลและ Command Line ขั้นพื้นฐานได้
- โน้ตบุ๊กที่ติดตั้ง Node.js รุ่น LTS, Docker Desktop และ VS Code ได้
หัวข้อการฝึกอบรม
รายละเอียดหลักสูตร
หลักสูตรนี้เป็นฉบับปรับปรุงใหม่ปี 2026 ของหลักสูตร Building Microservices with Node.js อบรม 2 วัน วันละ 6 ชั่วโมง รวม 12 ชั่วโมง (09:00-16:00 น.) รูปแบบบรรยายพร้อม Lab ระดับ Intermediate ฉบับนี้อัปเดตเป็น Node.js 24 LTS แบบ ES Modules ใช้ Fastify 5 เป็นหลักคู่กับ Express 5 เปลี่ยนการ Deploy หลักจาก PM2 เป็น Docker Compose เพิ่มการสื่อสารแบบ Event ผ่าน RabbitMQ และการติดตามระบบด้วย OpenTelemetry
โดยยังคงแกนเดิมคือการออกแบบสถาปัตยกรรม Microservices การแบ่ง Service ตามงานธุรกิจ MongoDB, API Gateway, Docker, การขยายระบบและ Load Balancing ด้วย NGINX และการมอนิเตอร์กับแจ้งเตือนเมื่อ Service ล้มเหลว ฉบับนี้ตัดส่วน React Test Harness ออก และใช้ Node.js ล้วนโดยไม่พึ่ง Framework ใหญ่ ต่างจากหลักสูตร Microservices ด้วย NestJS ผู้เรียนได้ Lab Guide และซอร์สโค้ดระบบจองทริปแบบ Microservices กลับไปใช้งานต่อ
Day 1 ออกแบบและสร้าง Service
Section 1: Microservices คืออะไร และเมื่อไรควรใช้
- Monolith, Modular Monolith และ Microservices ต่างกันอย่างไร
- แบ่ง Service ตามงานธุรกิจด้วยแนวคิด Bounded Context
- ต้นทุนที่ต้องจ่าย: เครือข่าย ข้อมูล การ Deploy และการติดตามระบบ
- Lab: แบ่งระบบจองทริปท่องเที่ยวเป็น Service และวาดภาพสถาปัตยกรรม
Section 2: Lab: เตรียมโปรเจกต์ Node.js 24 LTS
- Monorepo ด้วย npm Workspaces เทียบกับ Multi-repo
- ES Modules, async กับ await และ EventEmitter ที่ใช้ใน Service
- node --watch, --env-file และ Test Runner ในตัว (node:test)
- Lab: โครงโปรเจกต์ที่มีหลาย Service และไลบรารีใช้ร่วมกัน
Section 3: Lab: Service แรกด้วย Fastify 5
- Route, Plugin และ Validation ด้วย JSON Schema
- Logging ด้วย Pino และสร้างเอกสาร OpenAPI อัตโนมัติ
- เทียบกับ Express 5: Router, Middleware และการจัดการ Error ของ async
- Lab: Catalog Service ที่มี CRUD API พร้อม Schema และเอกสาร
Section 4: Lab: ข้อมูลของแต่ละ Service
- Database per Service และเหตุผลที่ไม่ควรใช้ฐานข้อมูลร่วมกัน
- เชื่อม MongoDB บน Docker และออกแบบข้อมูลของแต่ละ Service
- API Composition เมื่อหน้าจอต้องใช้ข้อมูลจากหลาย Service
- Lab: Booking Service ที่มีฐานข้อมูลแยกของตัวเอง
Section 5: Lab: เรียก Service อื่นผ่าน HTTP อย่างทนทาน
- เรียก Service ด้วย fetch ในตัวของ Node.js พร้อม AbortSignal.timeout
- Retry แบบ Backoff, Idempotency Key และการป้องกันการเรียกซ้ำ
- แนวคิด Circuit Breaker และ Fallback เมื่อปลายทางล่ม
- Lab: Booking เรียก Catalog เพื่อตรวจที่ว่างและรับมือเมื่อ Catalog ล่ม
Section 6: Lab: API Gateway
- หน้าที่ของ API Gateway: Routing, ยืนยันตัวตน และจำกัดจำนวน Request
- สร้าง Gateway ด้วย Fastify, @fastify/http-proxy และ @fastify/rate-limit
- ตรวจ JWT ที่ Gateway และส่งข้อมูลผู้ใช้ต่อให้ Service
- Lab: รวมทุก Service ไว้หลัง Gateway เดียว
Day 2 Messaging, Deploy และการติดตามระบบ
Section 7: Lab: สื่อสารแบบ Event ผ่าน RabbitMQ
- Synchronous เทียบกับ Asynchronous และเมื่อไรควรใช้ Event
- Exchange, Queue, Routing Key และ Durable Queue
- เขียน Publisher และ Consumer ด้วย amqplib พร้อม Ack และ Prefetch
- Lab: Booking ส่ง Event ให้ Notification Service ส่งอีเมลยืนยัน
Section 8: ความถูกต้องของข้อมูลข้าม Service
- Eventual Consistency และสิ่งที่ผู้ใช้จะเห็นระหว่างทาง
- Saga แบบ Choreography และการชดเชยเมื่อขั้นตอนใดล้มเหลว
- Outbox Pattern และ Consumer ที่รับข้อความซ้ำได้อย่างปลอดภัย
- Lab: ยกเลิกการจองอัตโนมัติเมื่อชำระเงินไม่สำเร็จ
Section 9: Lab: รันทั้งระบบด้วย Docker Compose
- Dockerfile แบบ Multi-stage สำหรับ Node.js และการรันแบบ Non-root
- Docker Compose สำหรับทุก Service, MongoDB และ RabbitMQ
- Environment Variable, Healthcheck และลำดับการเริ่มระบบ
- เทียบ PM2 กับ Container และภาพรวมการขึ้น Kubernetes
Section 10: Lab: ขยายระบบและ Load Balancing ด้วย NGINX
- ออกแบบ Service ให้ Stateless เพื่อเพิ่มจำนวน Instance ได้
- NGINX upstream แบบ Round Robin และ least_conn
- Graceful Shutdown เมื่อได้รับ SIGTERM
- Lab: เพิ่ม Instance ของ Catalog แล้วทดสอบด้วยคำขอจำนวนมาก
Section 11: Lab: Log, Health Check และ Tracing
- Structured Log ด้วย Pino และ Correlation ID ข้าม Service
- Health และ Readiness Endpoint สำหรับ Docker และ Load Balancer
- Distributed Tracing ด้วย OpenTelemetry แล้วดูผลใน Jaeger
- Lab: ไล่หา Service ที่ทำให้ Request ช้าจาก Trace
Section 12: Workshop: ระบบจองทริปแบบ Microservices
- ประกอบ Catalog, Booking, Payment และ Notification Service เข้าด้วยกัน
- เขียน Test ของ Service ด้วย node:test และทดสอบทั้งระบบบน Docker Compose
- ทดลองปิดบาง Service แล้วดูว่าระบบรับมืออย่างไร
- นำเสนอผลงาน รีวิวร่วมกัน และสรุป Checklist ก่อนขึ้น Production
รอบอบรมและรูปแบบการอบรม
สำหรับบุคคล — รอบอบรมทั่วไป
ขณะนี้ยังไม่มีรอบอบรมเปิดรับสมัคร ลงชื่อจองไว้ได้เลย ทีมงานจะติดต่อกลับเป็นกลุ่มแรกเมื่อเปิดรอบถัดไป หรือสอบถามทางไลน์ หรือโทร 02-570-8449 หรือ 088-807-9770
สำหรับองค์กร — In-house / Private Training
- ปรับเนื้อหาให้ตรงกับเครื่องมือและงานจริงของทีม
- เลือกวันเอง อบรมที่บริษัทหรือออนไลน์สด
- ออกใบเสนอราคาในนามนิติบุคคลให้ฝ่ายจัดซื้อ
วิทยากรผู้สอน
คำถามที่พบบ่อย
Microservices ต่างจากแอปพลิเคชันแบบ Monolithic อย่างไร
Monolithic รวมทุกฟังก์ชันไว้ในแอปเดียวและ Deploy พร้อมกันทั้งก้อน ส่วน Microservices แบ่งระบบเป็น Service เล็กหลายตัวตามงานธุรกิจ แต่ละตัวมีโค้ดและฐานข้อมูลของตัวเอง สื่อสารกันผ่าน API หรือ Event และ Deploy หรือขยายแยกกันได้ ข้อดีคือแต่ละทีมพัฒนาได้อิสระและขยายเฉพาะส่วนที่มีโหลดสูงได้ แต่ต้องแลกกับความซับซ้อนด้านเครือข่าย ข้อมูล การ Deploy และการติดตามระบบ ระบบขนาดเล็กจึงมักเริ่มจาก Modular Monolith ก่อน
ทำไมหลักสูตรนี้ใช้ Fastify คู่กับ Express
Fastify 5 เป็น Framework ที่เบาและเร็ว มี Validation ด้วย JSON Schema, Logging ด้วย Pino และระบบ Plugin มาในตัว จึงเหมาะกับการสร้าง Service จำนวนมากที่ต้องมีมาตรฐานเดียวกัน ส่วน Express 5 เป็น Framework ที่ทีมจำนวนมากใช้อยู่แล้ว และรุ่น 5 ส่ง Error จาก async Handler ไปยัง Error Middleware ให้อัตโนมัติ หลักสูตรจึงใช้ Fastify เป็นหลักและเทียบกับ Express 5 เพื่อให้ผู้เรียนนำหลักการไปใช้กับโค้ดเดิมของทีมได้
API Gateway คืออะไร จำเป็นแค่ไหนในระบบ Microservices
API Gateway คือจุดเข้าทางเดียวที่รับ Request จาก Client แล้วส่งต่อไปยัง Microservice ที่ถูกต้อง Client จึงไม่ต้องรู้ที่อยู่ของแต่ละ Service นอกจาก Routing แล้วยังใช้รวมงานส่วนกลาง เช่น การยืนยันตัวตน การจำกัดจำนวน Request และการบันทึก Log ไว้ที่เดียว เขียนเองด้วย Node.js ได้ หรือใช้ NGINX หรือบริการคลาวด์ทำหน้าที่นี้ หลักสูตรนี้ฝึกสร้าง Gateway ด้วย Fastify และใช้ NGINX สำหรับ Load Balancing
ทำ Load Balancing ให้แอป Node.js ด้วย NGINX ทำอย่างไร
เริ่มจากรัน Service เดียวกันหลาย Instance เช่น หลาย Container ใน Docker Compose จากนั้นในไฟล์ Config ของ NGINX สร้างบล็อก upstream ที่ระบุที่อยู่ของทุก Instance แล้วตั้ง location ให้ proxy_pass ไปยัง upstream นั้น ตรวจไฟล์ด้วยคำสั่ง nginx -t แล้ว Reload NGINX ค่าเริ่มต้นจะกระจาย Request แบบวนรอบ (Round Robin) และเปลี่ยนเป็น least_conn ได้ ทั้งนี้ Service ควรเป็น Stateless และปิดตัวอย่างนุ่มนวลเมื่อได้รับ SIGTERM
หลักสูตร Building Microservices with Node.js เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน
เหมาะกับ Node.js Developer, Backend และ Full-stack Developer ผู้ดูแลระบบและทีม DevOps รวมถึงนักศึกษา ครู อาจารย์ และผู้สนใจที่อยากเข้าใจ Microservices จากการลงมือทำ ควรเขียน JavaScript ได้รวมถึง async กับ await เคยสร้าง REST API ด้วย Node.js มาบ้าง ใช้ฐานข้อมูลและ Command Line ขั้นพื้นฐานได้ และเตรียมโน้ตบุ๊กที่ติดตั้ง Node.js รุ่น LTS กับ Docker Desktop ได้
จัดอบรมหลักสูตร Building Microservices with Node.js ให้ทีมในองค์กรได้ไหม
ได้ หลักสูตรนี้จัดเป็นการอบรมแบบ In-house ให้ทีมในองค์กรได้ และปรับตัวอย่างให้ตรงกับงานของทีม เช่น ฝึกแบ่ง Service จากระบบที่ทีมดูแลอยู่ หรือใช้ Message Broker และฐานข้อมูลที่องค์กรใช้จริง ขอใบเสนอราคาได้จากหน้านี้ หรือติดต่อทาง LINE @itgenius โทร 02-570-8449

