ສອບຖາມຫຼັກສູດເລືອກຊ່ອງທາງທີ່ສະດວກ ທີມງານຕອບເອງທຸກຊ່ອງທາງ
LINE @itgeniusຕອບໄວທີ່ສຸດ · ຈ–ສ 9:00–17:00 ໂມງ
ໂທລະສັບ
02-570-8449ຫ້ອງການ088-807-9770ມືຖື
ອີເມວ ແລະ ໂຊຊຽວ
contact@itgenius.co.thສຳລັບໃບສະເໜີລາຄາ ແລະ ເອກະສານFacebookitgeniusonlineYouTubeitgeniusengຂໍຄຳປຶກສາຈັດຝຶກອົບຮົມໃຫ້ທີມ
ພັດທະນາເວັບໄຊ · WDC-57

Building Microservices with .NET

หลักสูตร Building Microservices with .NET เป็นการอบรมออกแบบและพัฒนาระบบ Microservices ด้วย .NET 10 ตั้งแต่แบ่งขอบเขตเซอร์วิส สื่อสารผ่าน HTTP, gRPC และ RabbitMQ จัดการ Transaction ด้วย Saga จนถึงทดสอบและรันระบบด้วย Aspire เหมาะกับนักพัฒนาที่มีพื้นฐาน C# และ Software Architect ที่วางโครงสร้างระบบ

ອັບເດດລ່າສຸດ
ລາຄາເລີ່ມຕົ້ນ 9,000 ບາດ / ທ່ານ 10,000 −10% ຍັງບໍ່ລວມ VAT 7% · ມີລາຄາໝູ່ຄະນະ
PDFດາວໂຫຼດ Course Outline
  • ໄລຍະເວລາ18 ຊົ່ວໂມງ · 3 ມື້
  • ຮູບແບບຢູ່ສະຖາບັນ / ອອນລາຍສົດ
  • ຮອບຕໍ່ໄປເປີດຕາມຄຳຂໍ
  • ໃບຢັ້ງຢືນມີໃບຢັ້ງຢືນ

ພາບລວມຫຼັກສູດ

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

หลักสูตรนี้พาผู้เรียนออกแบบและสร้างระบบ Microservices ด้วย .NET 10 และ ASP.NET Core 10 ตั้งแต่ตัดสินใจว่าเมื่อไรควรแยกระบบ แบ่งขอบเขตเซอร์วิสด้วยแนวคิด DDD สร้างเซอร์วิสที่มีฐานข้อมูลของตัวเอง แล้วประกอบและรันทั้งระบบด้วย Aspire จากนั้นฝึกการสื่อสารแบบ HTTP, gRPC และ Message ผ่าน RabbitMQ เพิ่ม Resilience จัดการ Transaction ข้ามเซอร์วิสด้วย Saga และ Outbox วาง API Gateway ด้วย YARP ทำ Event Sourcing และ CQRS ดูแลความปลอดภัยและ Observability ด้วย OpenTelemetry ทดสอบด้วย xUnit และ Testcontainers ปิดท้ายด้วยการ Build เป็น Container และ Capstone ระบบร้านค้าแบบ Microservices (อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง ระดับ Intermediate)

ສິ່ງທີ່ທ່ານຈະໄດ້ຮັບ

  • ตัดสินใจได้ว่าเมื่อไรควรใช้ Microservices และเมื่อไร Modular Monolith เหมาะกว่า
  • แบ่งขอบเขตเซอร์วิสด้วย DDD และออกแบบฐานข้อมูลแยกตามเซอร์วิส
  • สร้างเซอร์วิสด้วย ASP.NET Core 10 และรันทั้งระบบด้วย Aspire
  • สื่อสารระหว่างเซอร์วิสด้วย HTTP, gRPC และ Message ผ่าน RabbitMQ พร้อม Resilience
  • จัดการ Transaction ข้ามเซอร์วิสด้วย Saga และ Outbox Pattern
  • ประยุกต์ Event Sourcing, CQRS และ API Gateway ได้อย่างเหมาะสม
  • ติดตามระบบด้วย OpenTelemetry และทดสอบ Microservices ได้หลายระดับ
  • Build เซอร์วิสเป็น Container และเตรียม Deploy ด้วย Docker Compose

ຫຼັກສູດນີ້ເໝາະສຳລັບ

  • นักพัฒนา .NET และ C# ที่ต้องการออกแบบระบบแบบ Microservices
  • นักพัฒนาที่ดูแลระบบ Monolith ขนาดใหญ่และกำลังพิจารณาแยกระบบ
  • Software Architect และ Tech Lead ที่ต้องตัดสินใจเรื่องสถาปัตยกรรมของระบบ
  • ทีม DevOps ที่ต้องรองรับการ Deploy และติดตามระบบที่มีหลายเซอร์วิส
  • ครู อาจารย์ และนักศึกษาสายคอมพิวเตอร์ที่สนใจสถาปัตยกรรมซอฟต์แวร์สมัยใหม่

ພື້ນຖານຂອງຜູ້ເຂົ້າຝຶກອົບຮົມ

  • เขียนภาษา C# ได้ดี และเคยสร้าง Web API ด้วย ASP.NET Core มาก่อน
  • รู้จักฐานข้อมูลเชิงสัมพันธ์ คำสั่ง SQL และ Entity Framework Core เบื้องต้น
  • เข้าใจ HTTP, JSON และหลักการของ RESTful API
  • เคยใช้ Docker และ Git ขั้นพื้นฐาน
  • โน้ตบุ๊ก RAM 16 GB ขึ้นไป ที่ติดตั้ง .NET 10 SDK และ Docker Desktop ได้ พร้อมสิทธิ์ติดตั้งโปรแกรม

ຫົວຂໍ້ການຝຶກອົບຮົມ

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

หลักสูตรนี้เป็นฉบับปรับปรุงใหม่ปี 2026 ที่มาแทนหลักสูตร Building Microservices with .NET รุ่นเดิมซึ่งสอนบน .NET Core เนื้อหาเขียนใหม่ทั้งหมดสำหรับ .NET 10 (LTS), ASP.NET Core 10 และ Aspire 13 อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง (09:00-16:00 น.) รูปแบบบรรยายพร้อม Lab บนระบบร้านค้าตัวอย่างชุดเดียวที่ค่อย ๆ แยกเป็นเซอร์วิส ระดับ Intermediate คงหัวข้อเดิมเรื่องการแยกระบบ การสื่อสาร Transaction, Event Sourcing, Querying, การเชื่อมต่อ API ภายนอก การทดสอบ และการ Build เป็น Container แล้วเพิ่ม Modular Monolith, Aspire, gRPC, Resilience, RabbitMQ, Saga และ Outbox, YARP และ OpenTelemetry ผู้เรียนได้ Lab Guide ซอร์สโค้ดครบทุก Lab และไฟล์ docker-compose กลับไปใช้งานต่อ

Day 1 ออกแบบและสร้างเซอร์วิสแรก

Section 1: Lab: เตรียม .NET 10 และ Aspire

  • ภาพรวม .NET 10 (LTS), C# 14 และ ASP.NET Core 10
  • ติดตั้ง .NET 10 SDK, Docker Desktop และ Aspire CLI
  • สร้างโซลูชันด้วย aspire new และรู้จัก AppHost กับ ServiceDefaults
  • สำรวจ Aspire Dashboard: Resource, Log, Trace และ Metric
  • Lab: รันระบบตัวอย่างแรกด้วย aspire run

Section 2: Monolith, Modular Monolith และ Microservices

  • ข้อดีและต้นทุนของ Microservices ที่มักถูกมองข้าม
  • Modular Monolith เป็นจุดเริ่มต้นที่ปลอดภัยกว่าสำหรับหลายทีม
  • สัญญาณที่บอกว่าถึงเวลาแยกเซอร์วิส และสัญญาณที่บอกว่ายังไม่ควร
  • ความท้าทายของระบบกระจาย: Network, Latency และ Consistency

Section 3: แยกระบบเป็นเซอร์วิสด้วย DDD

  • Bounded Context และ Ubiquitous Language
  • Aggregate และการวาง Business Logic ให้อยู่ในเซอร์วิสที่ถูกต้อง
  • Database per Service และเหตุผลที่ไม่ควรแชร์ฐานข้อมูล
  • Workshop: แบ่งระบบร้านค้าเป็นเซอร์วิส Catalog, Ordering และ Payment

Section 4: Lab: สร้างเซอร์วิสด้วย ASP.NET Core 10

  • สร้าง Catalog Service ด้วย Minimal API และเอกสาร OpenAPI ในตัว
  • จัดการข้อมูลด้วย EF Core 10 กับ PostgreSQL และ Migration
  • Validation, Problem Details และรูปแบบ Error มาตรฐาน
  • Health Check และ Configuration ของแต่ละเซอร์วิส
  • Lab: สร้าง Catalog และ Ordering Service ที่มีฐานข้อมูลแยกกัน

Section 5: Lab: ประกอบทั้งระบบด้วย Aspire

  • ประกาศ Resource ใน AppHost ด้วย AddProject และ AddPostgres
  • ส่ง Connection String และ Endpoint ด้วย WithReference
  • Service Discovery ระหว่างเซอร์วิสโดยไม่ต้องกำหนด URL เอง
  • Hosting Integration และ Client Integration ของ Aspire
  • Lab: รันทุกเซอร์วิสพร้อมฐานข้อมูลด้วยคำสั่งเดียว
Day 2 การสื่อสารระหว่างเซอร์วิส

Section 6: การสื่อสารแบบ Synchronous

  • เรียกเซอร์วิสอื่นด้วย Typed HttpClient และ Service Discovery
  • gRPC สำหรับการสื่อสารภายในที่ต้องการความเร็ว
  • เลือกระหว่าง REST และ gRPC และการทำ Versioning ของสัญญา
  • Lab: Ordering Service ตรวจราคาสินค้าจาก Catalog ผ่าน gRPC

Section 7: Lab: Resilience และการเชื่อมต่อ API ภายนอก

  • Timeout, Retry และ Circuit Breaker ด้วย Microsoft.Extensions.Http.Resilience
  • Standard Resilience Handler และการปรับค่าให้เหมาะกับแต่ละปลายทาง
  • Idempotency เพื่อให้เรียกซ้ำได้อย่างปลอดภัย
  • เชื่อมต่อ API ภายนอก เช่น Payment Gateway จำลอง
  • Lab: ทดลองปิดเซอร์วิสปลายทางแล้วดูพฤติกรรมของระบบ

Section 8: Lab: Asynchronous Messaging ด้วย RabbitMQ

  • Command เทียบกับ Event และรูปแบบ Publish/Subscribe
  • เพิ่ม RabbitMQ ใน AppHost และเชื่อมด้วย RabbitMQ.Client รุ่น 7 แบบ Async
  • Exchange, Queue, Acknowledgement และ Dead Letter Queue
  • ภาพรวมไลบรารี Messaging อื่นและเงื่อนไขสิทธิ์การใช้งาน
  • Lab: ส่ง Event OrderCreated ไปให้ Payment Service ประมวลผล

Section 9: Transaction ข้ามเซอร์วิส

  • เหตุผลที่ไม่ใช้ Distributed Transaction และแนวคิด Eventual Consistency
  • Saga แบบ Choreography และ Orchestration พร้อม Compensation
  • Outbox Pattern เพื่อบันทึกข้อมูลและส่ง Event ให้สอดคล้องกัน
  • Lab: Saga สั่งซื้อที่ยกเลิกคำสั่งเมื่อชำระเงินไม่สำเร็จ

Section 10: Lab: API Gateway ด้วย YARP

  • บทบาทของ API Gateway และรูปแบบ Backend for Frontend
  • เพิ่ม YARP ใน AppHost และกำหนด Route ไปยังแต่ละเซอร์วิส
  • ตรวจสอบสิทธิ์และจำกัดจำนวนคำขอที่ Gateway
  • Lab: เปิดระบบร้านค้าให้ Client เรียกผ่าน Gateway จุดเดียว
Day 3 ข้อมูล คุณภาพ และการนำขึ้นระบบ

Section 11: Event Sourcing และ CQRS

  • แนวคิด Event Sourcing: เก็บเหตุการณ์แทนสถานะล่าสุด
  • Event Store, Projection และการสร้าง Read Model
  • CQRS แยกฝั่งเขียนและฝั่งอ่าน และเมื่อไรจึงคุ้มค่า
  • Lab: เก็บประวัติคำสั่งซื้อแบบ Event Sourcing บน PostgreSQL

Section 12: Querying ข้ามเซอร์วิส

  • API Composition สำหรับรวมข้อมูลจากหลายเซอร์วิส
  • สร้าง Read Model จาก Event เพื่อลดการเรียกข้ามเซอร์วิส
  • Distributed Cache ด้วย Redis ผ่าน Aspire
  • Lab: หน้าสรุปคำสั่งซื้อที่รวมข้อมูลจาก Catalog และ Ordering

Section 13: ความปลอดภัยและ Observability

  • ยืนยันตัวตนด้วย JWT Bearer จาก Identity Provider เช่น Keycloak
  • การยืนยันตัวตนระหว่างเซอร์วิสและการจัดการ Secret
  • Log, Metric และ Distributed Tracing ด้วย OpenTelemetry
  • ไล่หาสาเหตุปัญหาข้ามเซอร์วิสจาก Trace ใน Aspire Dashboard

Section 14: Lab: ทดสอบ Microservices

  • Unit Test ของ Business Logic ด้วย xUnit
  • Integration Test ด้วย WebApplicationFactory และ Testcontainers for .NET
  • ทดสอบทั้งระบบด้วย Aspire.Hosting.Testing
  • แนวคิด Contract Testing เพื่อป้องกันการเปลี่ยน API ที่กระทบเซอร์วิสอื่น

Section 15: Workshop: Container, Deploy และ Capstone

  • Build Container Image ด้วย dotnet publish โดยไม่ต้องเขียน Dockerfile
  • สร้างไฟล์ Docker Compose จาก AppHost ด้วย aspire publish
  • ภาพรวมการ Deploy ขึ้น Kubernetes หรือ Cloud และ CI/CD
  • Capstone: เพิ่มเซอร์วิสใหม่เข้าระบบร้านค้าพร้อม Event, Test และ Trace
  • นำเสนอผลงานและรีวิวการออกแบบร่วมกัน

ຮອບຝຶກອົບຮົມ ແລະ ຮູບແບບການຝຶກອົບຮົມ

ສຳລັບບຸກຄົນ — ຮອບຝຶກອົບຮົມທົ່ວໄປ

ຂະນະນີ້ຍັງບໍ່ມີຮອບຝຶກອົບຮົມເປີດຮັບສະໝັກ ລົງຊື່ຈອງໄວ້ໄດ້ເລີຍ ທີມງານຈະຕິດຕໍ່ກັບເປັນກຸ່ມທຳອິດເມື່ອເປີດຮອບຕໍ່ໄປ ຫຼື ສອບຖາມທາງ LINE ຫຼື ໂທ 02-570-8449 ຫຼື 088-807-9770

ສຳລັບອົງກອນ — In-house / Private Training

  • ປັບເນື້ອໃນໃຫ້ກົງກັບເຄື່ອງມື ແລະ ວຽກຈິງຂອງທີມ
  • ເລືອກວັນເອງ ຝຶກອົບຮົມທີ່ບໍລິສັດ ຫຼື ອອນລາຍສົດ
  • ອອກໃບສະເໜີລາຄາໃນນາມນິຕິບຸກຄົນໃຫ້ຝ່າຍຈັດຊື້
ຂໍໃບສະເໜີລາຄາຝຶກອົບຮົມອົງກອນ

ວິທະຍາກອນຜູ້ສອນ

ຄຳຖາມທີ່ພົບເລື້ອຍ

Microservices ต่างจาก Monolithic อย่างไร

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

เซอร์วิสใน Microservices สื่อสารกันแบบไหนได้บ้าง

มีสองแบบหลัก แบบ Synchronous คือเรียกกันตรง ๆ ผ่าน HTTP REST หรือ gRPC แล้วรอผล เข้าใจง่ายแต่ถ้าปลายทางล่มผู้เรียกก็ติดไปด้วย จึงควรใส่ Timeout, Retry และ Circuit Breaker และแบบ Asynchronous คือส่งข้อความหรือ Event ผ่าน Message Broker เช่น RabbitMQ หรือ Azure Service Bus ให้เซอร์วิสอื่นรับไปทำต่อ ทำให้แต่ละตัวผูกกันน้อยลงและรับภาระช่วงพีกได้ดีกว่า ระบบจริงมักใช้ทั้งสองแบบตามลักษณะงาน

Event Sourcing คืออะไร

Event Sourcing คือการเก็บข้อมูลเป็นลำดับเหตุการณ์ทั้งหมดที่เกิดขึ้น เช่น สร้างคำสั่งซื้อ เพิ่มสินค้า และชำระเงินแล้ว แทนการเก็บแค่สถานะล่าสุด สถานะปัจจุบันได้จากการนำเหตุการณ์มาประมวลผลซ้ำตามลำดับ จึงมีประวัติตรวจสอบย้อนหลังได้ครบและสร้างมุมมองข้อมูลใหม่ได้ภายหลัง มักใช้คู่กับ CQRS ที่แยกฝั่งเขียนออกจากฝั่งอ่านเพื่อให้การ Query เร็ว แต่เพิ่มความซับซ้อน จึงควรใช้เฉพาะส่วนที่ต้องการประวัติหรือการตรวจสอบย้อนหลังจริง

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

เหมาะกับนักพัฒนา .NET ที่อยากนำแนวคิด Microservices ไปใช้กับโปรเจกต์ของตัวเอง ทีมที่ดูแลระบบ Monolith ขนาดใหญ่ Software Architect และ Tech Lead รวมถึงครู อาจารย์ และนักศึกษาที่สนใจสถาปัตยกรรมซอฟต์แวร์ ควรเขียนภาษา C# ได้ดี เคยสร้าง Web API ด้วย ASP.NET Core ใช้ฐานข้อมูลและ Entity Framework Core เบื้องต้นได้ และเคยใช้ Docker มาบ้าง

เรียนจบหลักสูตร Building Microservices with .NET แล้วทำอะไรได้บ้าง

ตัดสินใจได้ว่าระบบควรแยกเป็น Microservices หรือยัง แบ่งขอบเขตเซอร์วิสด้วย DDD พัฒนาเซอร์วิสด้วย ASP.NET Core 10 และรันทั้งระบบด้วย Aspire สื่อสารระหว่างเซอร์วิสด้วย HTTP, gRPC และ RabbitMQ พร้อม Resilience จัดการ Transaction ด้วย Saga และ Outbox ใช้ Event Sourcing, CQRS และ API Gateway ติดตามระบบด้วย OpenTelemetry ทดสอบเซอร์วิส และ Build เป็น Container ผู้ผ่านการอบรมได้รับใบประกาศนียบัตร (Certificate of Completion) ที่มีเลขที่ของตัวเองและตรวจสอบออนไลน์ได้

จัดอบรมหลักสูตร Building Microservices with .NET ให้ทีมในองค์กรได้ไหม

ได้ หลักสูตรนี้จัดเป็นการอบรมแบบ In-house ให้ทีมในองค์กรได้ และปรับตัวอย่างให้ตรงกับงานของทีม เช่น ฝึกแบ่งขอบเขตของระบบที่ทีมกำลังพิจารณาเปลี่ยนเป็น Microservices หรือเลือก Message Broker ตามสภาพแวดล้อมขององค์กร ขอใบเสนอราคาได้จากหน้านี้ หรือติดต่อทาง LINE @itgenius โทร 02-570-8449