สอบถามหลักสูตรเลือกช่องทางที่สะดวก ทีมงานตอบเองทุกช่อง
LINE @itgeniusตอบเร็วที่สุด · จ–ศ 9:00–17:00 น.
โทรศัพท์
02-570-8449สำนักงาน088-807-9770มือถือ
อีเมลและโซเชียล
contact@itgenius.co.thสำหรับใบเสนอราคาและเอกสารFacebookitgeniusonlineYouTubeitgeniusengขอคำปรึกษาจัดอบรมให้ทีม
พัฒนาเว็บไซต์ · WDC-92

Building Microservices with NestJS

หลักสูตร Building Microservices with NestJS เป็นการอบรมการแบ่งระบบหลังบ้านเป็นบริการย่อยด้วย NestJS 12 ตั้งแต่ออกแบบบริการและ API Gateway สื่อสารผ่าน RabbitMQ, NATS และ gRPC ทำ Saga ไปจนถึง Tracing และ Deploy ด้วย Docker Compose เหมาะกับ Backend Developer ที่เขียน NestJS เป็นแล้ว Tech Lead และทีม DevOps

อัปเดตล่าสุด
ราคาเริ่มต้น 9,000 บาท / ท่าน 10,000 −10% ยังไม่รวม VAT 7% · มีราคาหมู่คณะ
PDFดาวน์โหลด Course Outline
  • ระยะเวลา18 ชั่วโมง · 3 วัน
  • รูปแบบออนไซต์ / ออนไลน์สด
  • รอบถัดไปเปิดตามคำขอ
  • ใบรับรองมี Certificate

ภาพรวมหลักสูตร

Microservices คือการแบ่งระบบใหญ่ออกเป็นบริการเล็กตามหน้าที่ทางธุรกิจ เช่น ผู้ใช้ สินค้า คำสั่งซื้อ และการชำระเงิน แต่ละบริการพัฒนา Deploy และขยายแยกกันได้ แลกกับงานที่ซับซ้อนขึ้นทั้งการสื่อสารระหว่างบริการ ความสอดคล้องของข้อมูล และการติดตามปัญหา NestJS มีแพ็กเกจ @nestjs/microservices ที่รองรับ Transport หลายแบบด้วยรูปแบบการเขียนเดียวกัน จึงเหมาะกับทีมที่ต้องการวางระบบแบบนี้บน Node.js

หลักสูตรนี้ต่อยอดจาก Basic NestJS และ Advanced NestJS โดยใช้ NestJS 12 รุ่นปัจจุบัน เริ่มจากออกแบบขอบเขตของแต่ละบริการ สร้าง Microservice และ API Gateway สื่อสารผ่าน TCP, RabbitMQ, NATS และ gRPC แยกฐานข้อมูลของแต่ละบริการ จัดการ Transaction ข้ามระบบด้วย Saga และ Outbox จากนั้นทำให้ระบบทนต่อความล้มเหลว ติดตามได้ด้วย Log และ Tracing แล้วปิดท้ายด้วยการ Deploy ระบบร้านค้าทั้งชุดด้วย Docker Compose (อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง ระดับ Intermediate)

สิ่งที่คุณจะได้รับ

  • อธิบายข้อดีและข้อแลกเปลี่ยนของ Microservices และแบ่งบริการตามขอบเขตธุรกิจได้
  • สร้าง Microservice และ Hybrid Application ด้วย NestJS 12 ได้
  • เลือกใช้รูปแบบ Request-Response และ Event ได้เหมาะกับงาน
  • สื่อสารระหว่างบริการผ่าน TCP, RabbitMQ, NATS และ gRPC ได้
  • ออกแบบฐานข้อมูลแยกตามบริการและจัดการ Transaction ข้ามระบบด้วย Saga ได้
  • ทำให้ระบบทนต่อความล้มเหลว และติดตามปัญหาด้วย Health Check, Log และ Tracing ได้
  • Deploy ระบบหลายบริการด้วย Docker Compose ได้

หลักสูตรนี้เหมาะสำหรับ

  • Backend Developer ที่ใช้ NestJS อยู่แล้วและต้องการแบ่งระบบเป็นบริการย่อย
  • ผู้ที่เรียน Basic NestJS หรือ Advanced NestJS แล้วต้องการต่อยอด
  • Software Architect และ Tech Lead ที่วางโครงสร้างระบบขนาดกลางถึงใหญ่
  • DevOps และผู้ดูแลระบบที่ต้อง Deploy และดูแลระบบหลายบริการ

พื้นฐานของผู้เข้าอบรม

  • เขียน NestJS ได้ ทั้ง Module, Controller, Provider และ Dependency Injection
  • เขียน TypeScript และใช้ async กับ await ได้
  • เคยสร้าง REST API และใช้ฐานข้อมูลมาบ้าง
  • ใช้คำสั่ง Docker เบื้องต้นได้ และมีโน้ตบุ๊กที่รัน Docker Desktop ได้ (แนะนำ RAM 16 GB)

หัวข้อการฝึกอบรม

รายละเอียดหลักสูตร

หลักสูตรนี้เป็นฉบับปรับปรุงใหม่ปี 2026 ของหลักสูตร Building Microservices with NestJS อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง (09:00-16:00 น.) รูปแบบบรรยายพร้อม Lab ระดับ Intermediate ฉบับเดิมสอนการสร้าง Microservice ด้วย TCP และ Deploy ด้วย PM2 ฉบับนี้ย้ายมาใช้ NestJS 12 ที่เป็น ESM วางโปรเจกต์แบบ Monorepo และเพิ่ม API Gateway, RabbitMQ, NATS, gRPC,

ฐานข้อมูลแยกตามบริการ, Saga และ Outbox, Resilience, Health Check และ Distributed Tracing ด้วย OpenTelemetry แล้ว Deploy ทั้งระบบด้วย Docker Compose หลักสูตรนี้ต่อยอดจาก Basic NestJS และ Advanced NestJS ซึ่งสอน ORM, JWT และ OpenAPI ไว้แล้ว ทุก Lab ใช้เครื่องมือโอเพนซอร์สหรือใช้ฟรีที่รันบนเครื่องของผู้เรียน ผู้เรียนได้ Lab Guide และซอร์สโค้ดระบบร้านค้าแบบ Microservices กลับไปใช้งานต่อ

Day 1 แนวคิด Microservices, Transport แรก และ API Gateway

Section 1: Microservices คืออะไร และเมื่อไรควรใช้

  • เปรียบเทียบ Monolith, Modular Monolith และ Microservices
  • ข้อดีและข้อแลกเปลี่ยนที่ทีมต้องรับ
  • แบ่งบริการตามขอบเขตธุรกิจด้วยแนวคิด Bounded Context
  • สื่อสารแบบ Synchronous และ Asynchronous ต่างกันอย่างไร
  • Workshop: ออกแบบบริการของระบบร้านค้าออนไลน์

Section 2: Lab: เตรียมโปรเจกต์แบบ Monorepo

  • ทบทวน NestJS 12 ที่เป็น ESM และต้องใช้ Node.js 20 ขึ้นไป
  • สร้าง Monorepo ด้วย Nest CLI และเพิ่ม Application หลายตัว
  • แยกโค้ดที่ใช้ร่วมกันเป็น Library เช่น DTO และค่าคงที่
  • ตั้งค่าแต่ละบริการด้วย @nestjs/config และไฟล์ .env
  • Lab: โครงโปรเจกต์ร้านค้าที่มีบริการสินค้าและคำสั่งซื้อ

Section 3: Lab: Microservice แรกด้วย TCP

  • ติดตั้ง @nestjs/microservices และสร้างด้วย createMicroservice
  • รับคำขอด้วย @MessagePattern และส่งค่ากลับ
  • เรียกบริการอื่นด้วย ClientProxy และ send
  • ลงทะเบียน Client ด้วย ClientsModule.registerAsync
  • Lab: บริการสินค้าที่ตอบข้อมูลให้บริการคำสั่งซื้อ

Section 4: Message Pattern และ Event Pattern

  • Request-Response กับ Event-based ต่างกันอย่างไร
  • ส่ง Event ด้วย emit และรับด้วย @EventPattern
  • อ่าน Context และ Payload ด้วย @Ctx และ @Payload
  • จัดการ Error ด้วย RpcException และ Exception Filter
  • Lab: แจ้งเหตุการณ์สร้างคำสั่งซื้อให้หลายบริการ

Section 5: Lab: API Gateway และ Hybrid Application

  • บทบาทของ API Gateway ในระบบหลายบริการ
  • สร้าง Gateway ที่รับ HTTP แล้วส่งต่อไปยังบริการภายใน
  • Hybrid Application ด้วย connectMicroservice
  • ตรวจข้อมูลที่ Gateway และแปลง Error ให้เป็น HTTP Status
  • Lab: REST API ของร้านค้าที่เรียกบริการภายในทั้งหมด
Day 2 Message Broker, gRPC และข้อมูลข้ามบริการ

Section 6: Lab: สื่อสารผ่าน RabbitMQ

  • Message Broker ช่วยลดการผูกกันระหว่างบริการอย่างไร
  • รัน RabbitMQ บน Docker และใช้ Management UI
  • ตั้งค่า Transport.RMQ ทั้งฝั่ง Server และ Client
  • Queue แบบ Durable, การ Ack และการส่งซ้ำเมื่อประมวลผลไม่สำเร็จ
  • Lab: ส่งงานออกใบเสร็จผ่าน Queue

Section 7: NATS, Redis และภาพรวม Kafka

  • ใช้ NATS สำหรับข้อความความเร็วสูงและ Queue Group
  • ใช้ Redis เป็น Transport แบบ Pub/Sub
  • ภาพรวม Kafka สำหรับ Event Stream ปริมาณมาก
  • เกณฑ์เลือก Transport ให้เหมาะกับงาน
  • Lab: เปลี่ยน Transport ของบริการแจ้งเตือนเป็น NATS

Section 8: Lab: gRPC และ Protocol Buffers

  • gRPC คืออะไร และเหมาะกับการเรียกภายในแบบใด
  • เขียนไฟล์ .proto เพื่อกำหนด Service และ Message
  • ตั้งค่า Transport.GRPC และใช้ @GrpcMethod
  • เรียก gRPC จาก Gateway และจัดการ Status Code ของ gRPC
  • Lab: บริการตรวจสต็อกสินค้าแบบ gRPC

Section 9: ฐานข้อมูลแยกตามบริการ

  • หลัก Database per Service และข้อควรระวัง
  • รัน PostgreSQL แยกของแต่ละบริการด้วย Docker
  • ทำสำเนาข้อมูลที่ต้องใช้ร่วมกันผ่าน Event
  • Idempotency เพื่อรับข้อความซ้ำได้อย่างปลอดภัย
  • Lab: บริการสินค้าและคำสั่งซื้อที่มีฐานข้อมูลของตัวเอง

Section 10: Workshop: Saga และ Outbox Pattern

  • ทำไม Transaction ข้ามบริการจึงทำแบบเดิมไม่ได้
  • Saga แบบ Choreography และแบบ Orchestration
  • เขียน Compensating Action เมื่อขั้นตอนใดล้มเหลว
  • Outbox Pattern เพื่อบันทึกข้อมูลและส่ง Event ให้ตรงกัน
  • Workshop: ขั้นตอนสั่งซื้อ ตัดสต็อก และชำระเงินแบบ Saga
Day 3 ความทนทาน ความปลอดภัย การติดตาม และ Deploy

Section 11: Lab: Resilience ของระบบหลายบริการ

  • ตั้ง Timeout ให้การเรียกบริการด้วย RxJS
  • Retry แบบเว้นระยะและเมื่อไรไม่ควร Retry
  • แนวคิด Circuit Breaker และ Fallback
  • Graceful Shutdown ด้วย enableShutdownHooks
  • Lab: Gateway ที่ยังตอบได้เมื่อบริการปลายทางล่ม

Section 12: ความปลอดภัยระหว่างบริการ

  • ยืนยันตัวตนที่ Gateway ด้วย JWT แล้วส่งข้อมูลผู้ใช้ต่อ
  • ตรวจสิทธิ์ในบริการภายในด้วย Guard
  • แยกเครือข่ายภายในและไม่เปิดพอร์ตบริการสู่ภายนอก
  • เก็บ Secret อย่างปลอดภัยและแนวคิด TLS ระหว่างบริการ
  • Lab: ป้องกันบริการคำสั่งซื้อให้รับเฉพาะคำขอที่ผ่าน Gateway

Section 13: Lab: Health Check, Log และ Tracing

  • Health Check ของบริการ ฐานข้อมูล และ Broker ด้วย @nestjs/terminus
  • Structured Log พร้อม Correlation ID ข้ามบริการ
  • Distributed Tracing ด้วย OpenTelemetry
  • ดูเส้นทางของคำขอใน Jaeger
  • Lab: ตามหาบริการที่ทำให้คำสั่งซื้อช้า

Section 14: Lab: Test และ Deploy ด้วย Docker Compose

  • Unit Test ของ Handler ด้วย Vitest และการจำลอง ClientProxy
  • เขียน Dockerfile แบบ Multi-stage ให้แต่ละบริการ
  • รวมทุกบริการ Broker และฐานข้อมูลใน docker-compose.yml
  • ขยายจำนวน Instance และกระจายงานผ่าน Queue
  • PM2 สำหรับเซิร์ฟเวอร์เดี่ยว และภาพรวมการขยายสู่ Kubernetes

Section 15: Workshop: Capstone ร้านค้าแบบ Microservices

  • รวม Gateway, บริการผู้ใช้ สินค้า คำสั่งซื้อ และแจ้งเตือน
  • เชื่อมบริการด้วย RabbitMQ, NATS และ gRPC ตามที่ออกแบบ
  • ทดสอบกรณีบริการล่มและข้อความซ้ำ
  • ติดตามการทำงานทั้งระบบผ่าน Health Check และ Tracing
  • Workshop: นำเสนอสถาปัตยกรรมและแนวทางต่อยอดในองค์กร

รอบอบรมและรูปแบบการอบรม

สำหรับบุคคล — รอบอบรมทั่วไป

ขณะนี้ยังไม่มีรอบอบรมเปิดรับสมัคร ลงชื่อจองไว้ได้เลย ทีมงานจะติดต่อกลับเป็นกลุ่มแรกเมื่อเปิดรอบถัดไป หรือสอบถามทางไลน์ หรือโทร 02-570-8449 หรือ 088-807-9770

สำหรับองค์กร — In-house / Private Training

  • ปรับเนื้อหาให้ตรงกับเครื่องมือและงานจริงของทีม
  • เลือกวันเอง อบรมที่บริษัทหรือออนไลน์สด
  • ออกใบเสนอราคาในนามนิติบุคคลให้ฝ่ายจัดซื้อ
ขอใบเสนอราคาอบรมองค์กร

วิทยากรผู้สอน

คำถามที่พบบ่อย

Microservices ต่างจากระบบแบบ Monolith อย่างไร

Monolith คือระบบที่รวมทุกส่วนไว้ในแอปเดียวและ Deploy พร้อมกันทั้งก้อน เริ่มต้นง่ายแต่เมื่อระบบใหญ่ขึ้นจะแก้ไขและขยายยาก ส่วน Microservices แบ่งระบบเป็นบริการเล็กตามหน้าที่ทางธุรกิจ เช่น ผู้ใช้ สินค้า และคำสั่งซื้อ แต่ละบริการมีฐานข้อมูลของตัวเอง พัฒนา Deploy และขยายแยกกันได้ แลกกับการสื่อสารระหว่างบริการ การติดตามปัญหา และความสอดคล้องของข้อมูลที่ซับซ้อนขึ้น ทีมเล็กหรือระบบที่ยังไม่ใหญ่จึงอาจเริ่มจาก Modular Monolith ก่อน

NestJS สื่อสารระหว่าง Microservices ด้วยวิธีใดได้บ้าง

แพ็กเกจ @nestjs/microservices รองรับ Transport หลายแบบ เช่น TCP, Redis, NATS, MQTT, RabbitMQ, Kafka และ gRPC โดยเขียนโค้ดรูปแบบเดียวกัน มีสองรูปแบบหลัก คือ Request-Response ที่ส่งด้วย send และรับด้วย @MessagePattern เมื่อต้องการคำตอบกลับ และแบบ Event ที่ส่งด้วย emit และรับด้วย @EventPattern เมื่อแค่แจ้งว่ามีเหตุการณ์เกิดขึ้น ส่วน gRPC ใช้ไฟล์ .proto เป็นสัญญาระหว่างบริการ และผู้ใช้ภายนอกมักเรียกผ่าน API Gateway ที่เปิดเป็น REST API

จัดการ Transaction ที่ข้ามหลายบริการอย่างไร

เมื่อแต่ละบริการมีฐานข้อมูลของตัวเองจะใช้ Transaction เดียวครอบทั้งหมดไม่ได้ จึงใช้ Saga ที่แบ่งงานเป็นขั้นตอนย่อยในแต่ละบริการ ถ้าขั้นตอนใดล้มเหลวจะเรียก Compensating Action เพื่อย้อนผลของขั้นตอนก่อนหน้า เช่น คืนสต็อกเมื่อชำระเงินไม่สำเร็จ ใช้คู่กับ Outbox Pattern ที่บันทึก Event ลงตารางในฐานข้อมูลเดียวกับข้อมูลหลักก่อนส่งออก และออกแบบให้รับข้อความซ้ำได้อย่างปลอดภัย (Idempotency)

Deploy ระบบ Microservices ที่สร้างด้วย NestJS อย่างไร

แนวทางที่ใช้ในหลักสูตรคือเขียน Dockerfile แบบ Multi-stage ให้แต่ละบริการ แล้วรวมบริการ Message Broker และฐานข้อมูลไว้ในไฟล์ docker-compose.yml เพื่อสั่งรันทั้งระบบด้วยคำสั่งเดียว ตั้ง Health Check ด้วย @nestjs/terminus และเปิด Graceful Shutdown เพื่อให้บริการปิดตัวอย่างเรียบร้อย สำหรับเซิร์ฟเวอร์เดี่ยวยังใช้ PM2 ได้ ส่วนระบบที่ใหญ่ขึ้นสามารถต่อยอดไปสู่ Kubernetes

หลักสูตร Building Microservices with NestJS เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน

เหมาะกับ Backend Developer ที่ใช้ NestJS อยู่แล้ว ผู้ที่เรียน Basic NestJS หรือ Advanced NestJS มาแล้ว Software Architect และ Tech Lead รวมถึงทีม DevOps ที่ต้องดูแลระบบหลายบริการ ควรเขียน NestJS และ TypeScript ได้ เคยสร้าง REST API และใช้ฐานข้อมูลมาบ้าง และใช้คำสั่ง Docker เบื้องต้นได้

เรียน Building Microservices with NestJS ต้องเตรียมอะไรบ้าง

ใช้โน้ตบุ๊กที่ติดตั้ง Node.js รุ่น LTS, Nest CLI, VS Code และ Docker Desktop ได้ แนะนำ RAM 16 GB เพราะต้องรันหลายบริการพร้อม RabbitMQ, NATS, Redis, PostgreSQL และ Jaeger บน Docker ในเครื่องเดียว เครื่องมือทั้งหมดเป็นโอเพนซอร์สหรือใช้ฟรีและไม่ต้องสมัครบริการคลาวด์