Microservices Workshop for Dime - up1/training-courses GitHub Wiki
Microservices Workshop
- Design
- Develop
- Testing
- Monitoring
เป้าหมาย
Microservices architecture เป็นอีกแนวคิดหนึ่งสำหรับการออกแบบและพัฒนา software ซึ่งทำการแบ่งส่วนการทำงานของ software ออกเป็นส่วนการทำงานเล็ก ๆ เพื่อช่วยทำให้แต่ละส่วนการทำงานเป็นอิสระต่อกัน สามารถ deploy และรองรับการขยายตัวได้อย่างอิสระ
ใน course นี้จะอธิบายให้เข้าใจว่า Microservices คืออะไร ทำไม Microservices จึงได้รับความนิยม Microservices ช่วยแก้ไขปัญหาและมีประโยชน์อย่างไร ตลอดจนข้อเสียต่าง ๆ ที่ต้องรับมือจากการนำ Microservices มาปรับใช้งาน
กลุ่มเป้าหมาย
- Software Developer/Programmer
- Software Tester/QA
- Software Analyst
- Software Architect
- Operation/Infrastructure
Software requirements
Duration
- 2 Days
Course Outlines
-
Foundation of Software Architecture
- วิวัฒนาการของสถาปัตยกรรมของ software
- Monolith
- Tier/Layer
- Service-Oriented Architecture (SOA)
- Microservices
- Event-Driven Architecture (EDA)
- เหตุผลว่าทำไมจึงต้องการ Microservice
- No silver bullet
- All about trade-offs
- ความรู้พื้นฐานของ Microservice
- ประโยชน์ของการออกแบบด้วยแนวคิด Microservice
- คุณสมบัติหลักของการออกแบบระบบงานด้วยแนวคิด Microservice
- ข้อดีและข้อเสียของการออกแบบด้วยแนวคิด Microservice
- ปัญหาและความท้าทายของการนำ Microservice มาใช้งาน
- การแบ่งหรือแยกส่วนการทำงานต่าง ๆ ออกจากกัน เพื่อให้ทำงานได้อย่างมีอิสระต่อกัน
- การจัดการการติดต่อสื่อสารระหว่าง service หรือระบบงานย่อย ๆ
- Synchronous (Request-Response Model)
- Asynchronous (Observer/Event)
- Microservices patterns
- Decomposition
- Data
- Communication
- Testing
- Observability
- Metric, Trace, Log and Exception tracking
- วิวัฒนาการของสถาปัตยกรรมของ software
-
การพัฒนาและทดสอบระบบ
- แนวทางในการพัฒนาด้วยแนวคิด Microservices
- แนวทางการทดสอบระบบงาน
- Unit testing
- Integration testing
- Component testing
- Contract testing
- End-to-End testing
- Workshop
- Go and Gin framework
- Design REST API
- Documentation of API with Swagger or OpenAPI
- Event-base with Watermill and RabbitMQ
- Design Events
- Documentation of Event with AsyncAPI
- Go and Gin framework
-
Workshop Design workshop by use case !!
- Design services
- Decomposition services ?
- Communication between services ?
- Data modeling in each service ?
- Caching strategies
- How to develop ?
- Project structure
- How to test ?
- Test strategies
- Testable application
- Design services
-
ระบบ Monitoring และ Observability ของ service
- Application metric
- Tools => Opentelemetry, Prometheus and Grafana
- Distributed tracing
- Tools => Opentelemetry, Jaeger and Tempo
- Log aggregation
- Tools => Opentelemetry, Loki
- Exception tracking
- Workshop with Observability
- Go
- Opentelemetry
- Prometheus
- Jaeger
- Loki
- Grafana
- Application metric