Microservices Workshop - up1/training-courses GitHub Wiki
Microservices Workshop (Design -> Develop -> Deploy)
เป้าหมาย
Microservices architecture เป็นอีกแนวคิดหนึ่งสำหรับการออกแบบและพัฒนา software ซึ่งทำการแบ่งส่วนการทำงานของ software ออกเป็นส่วนการทำงานเล็ก ๆ เพื่อช่วยทำให้แต่ละส่วนการทำงานเป็นอิสระต่อกัน สามารถ deploy และรองรับการขยายตัวได้อย่างอิสระ
ใน course นี้จะอธิบายให้เข้าใจว่า Microservices คืออะไร ทำไม Microservices จึงได้รับความนิยม Microservices ช่วยแก้ไขปัญหาและมีประโยชน์อย่างไร ตลอดจนข้อเสียต่าง ๆ ที่ต้องรับมือจากการนำ Microservices มาปรับใช้งาน
จากนั้นใน course จะมีการลงมือทำ workshop เพื่อออกแบบ พัฒนาและ deploy ระบบงาน ตลอดจนเรื่องของการ maintain และ monitoring ระบบงาน
กลุ่มเป้าหมาย
- Software Developer/Programmer
- Software Analyst
- Software Architect
- Operation/Infrastructure
Duration
- 2-4 Days
- 70% Workshop (design + develop + deploy)
- 30% Theory
Tools
- Docker
- Kubernetes (optional)
Course Outlines
-
Design
- Cloud Native Application
- DevOps
- Continuous Delivery
- Microservices
- Containerization
- Evolution of Architecture (วิวัฒนาการของสถาปัตยกรรมของ software)
- Monolith
- Tier/Layer
- Service-Oriented Architecture (SOA)
- Microservices
- Function-as-a-Service (FaaS)
- Why we need Microservices ? (เหตุผลว่าทำไมจึงต้องการ Microservice)
- Basic of Microservices (ความรู้พื้นฐานของ Microservice)
- Benefits (ประโยชน์ของการออกแบบด้วยแนวคิด Microservice)
- Characteristics (คุณสมบัติหลักของการออกแบบระบบงานด้วยแนวคิด Microservice)
- Trade-offs (ข้อดีและข้อเสียของการออกแบบด้วยแนวคิด Microservice)
- Problem/Challenge of Microservices (ปัญหาและความท้าทายของการนำ Microservice มาใช้งาน)
- How to break/isolate services into Microservices ? (การแบ่งหรือแยกส่วนการทำงานต่าง ๆ ออกจากกัน เพื่อให้ทำงานได้อย่างมีอิสระต่อกัน)
- Communication between services ? (การจัดการการติดต่อสื่อสารระหว่าง service หรือระบบงานย่อย ๆ)
- Synchronous (Request-Response Model)
- Asynchronous (Observer/Event)
- Workshop :: design your services
- Use case from E-commerce system
- Cloud Native Application
-
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