KBTG 2024 :: Microservices Series - up1/training-courses GitHub Wiki
KBTG Course 2024 :: Microservices Series
1. Microservices 101 (Evolution of Software Architecture)
- Lecture
กลุ่มเป้าหมาย
- Software Developer/Programmer
- Software Analyst
- Software Architect
- Operation/Infrastructure
Outline
-
การออกแบบ
- วิวัฒนาการของสถาปัตยกรรมของ software
- Monolith
- Tier/Layer
- Service-Oriented Architecture (SOA)
- Microservices
- Function-as-a-Service (FaaS)
- Why, What Microservices ?
- ความรู้พื้นฐานของ Microservice
- ประโยชน์ของการออกแบบด้วยแนวคิด Microservice
- คุณสมบัติหลักของการออกแบบระบบงานด้วยแนวคิด Microservice
- ข้อดีและข้อเสียของการออกแบบด้วยแนวคิด Microservice
- ปัญหาและความท้าทายของการนำ Microservice มาใช้งาน
- การแบ่งหรือแยกส่วนการทำงานต่าง ๆ ออกจากกัน เพื่อให้ทำงานได้อย่างมีอิสระต่อกัน
- การจัดการการติดต่อสื่อสารระหว่าง service หรือระบบงานย่อย ๆ
- การจัดการข้อมูล
- Monitoring และ Observability
- Centralized logging
- Distributed tracing
- Application metric
- วิวัฒนาการของสถาปัตยกรรมของ software
-
Domain-Driven Design(DDD) for Microservices
- Boundary context
- Context map
- Strategic phase
- Workshop with Event storming
- Types of relationships
- Open Host
- Published language
- Anti-Corruption Layer (ACL)
- Separate way
- Tactical phase
- Entity and Value Object
- Aggregation
- Domain service
- Domain event
2. Microservices Testing in practice
- Lecture and workshop
กลุ่มเป้าหมาย
- Software Developer/Programmer
- Software Analyst
- Software Architect
- Operation/Infrastructure
- QA/Tester
Outline
- Microservices Testing
- Why wee need testing ?
- Manual vs Automated Testing ?
- แนวทางการทดสอบระบบงาน
- Unit testing
- Integration testing
- Component testing
- Contract testing
- End-to-End testing
- Workshop
- Design (What)
- Develop (How)
- Automated testing in local
- Automated testing in CI/CD pipeline
3. Microservices Develop and Deploy
- Lecture and workshop
กลุ่มเป้าหมาย
- Software Developer/Programmer
- Software Architect
- Operation/Infrastructure
Outline
-
Develop (Develop and Testing)
- การติดตั้งและ setup เครื่องมือในการพัฒนา
- Development concern for Microservices (แนวทางในการพัฒนาด้วยแนวคิด Microservices)
- Testing Microservices Strategy (แนวทางการทดสอบระบบงาน)
- Unit testing
- Integration testing
- Component testing
- Contract testing
- End-to-End testing
- Workshop :: Develop your service
-
Deploy
- Continuous Integration and Continuous Delivery
- Continuous Integration Practices
- Continuous Delivery Practices
- Continuous Delivery vs Continuous Deployment
- Deployment strategies
- Bigbang deployment
- Canary deployment
- Blue-green deployment
- Introduction to 12-factor (How to develop the Cloud Native Application)
- Concerns and Issues
- Loggings
- Centralize Logging System :: ELK stack (Elasticsearch, Logstash and Kibana)
- Tracings
- Working with Zipkin
- Metrics
- Working with Prometheus and Grafana
- Security
- Loggings
- Introduction to Containerization
- Manage container with Docker
- Scale containers with Docker
- Workshop :: Deploy your service
4. Microservices Design patterns
- Lecture and workshop
กลุ่มเป้าหมาย
- Software Developer/Programmer
- Software Analyst
- Software Architect
- Operation/Infrastructure
Outline
- Microservices design patterns
- Good patterns
- Anti-patterns
- Microservices design patterns
- Application
- Infrastructure
- Application and Infrastructure
- Application patterns
- Decomposition services
- Data patterns (database, query, data consistency)
- Testing patterns
- Application and Infrastructure
- Communication patterns and integration patterns
- Observability patterns
- Resilience patterns
- Working with external systems
- Infrastructure
- Deployment patterns