Microservices Series - up1/training-courses GitHub Wiki

Microservices Series

Day 1 :: Microservices 101 (Evolution of Software Architecture) and Design workshop

  • Lecture
  • Design workshop

กลุ่มเป้าหมาย

  • 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 ?
    • When to use/not use Microservices ?
    • ความรู้พื้นฐานของ Microservice
      • ประโยชน์ของการออกแบบด้วยแนวคิด Microservice
      • คุณสมบัติหลักของการออกแบบระบบงานด้วยแนวคิด Microservice
      • ข้อดีและข้อเสียของการออกแบบด้วยแนวคิด Microservice
    • ปัญหาและความท้าทายของการนำ Microservice มาใช้งาน
      • การแบ่งหรือแยกส่วนการทำงานต่าง ๆ ออกจากกัน เพื่อให้ทำงานได้อย่างมีอิสระต่อกัน
      • การจัดการการติดต่อสื่อสารระหว่าง service หรือระบบงานย่อย ๆ
      • การจัดการข้อมูล
      • Monitoring และ Observability
        • Centralized logging
        • Distributed tracing
        • Application metric
  • 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

Day 2 :: Develop and Testing workshop

  • Lecture and workshop

กลุ่มเป้าหมาย

  • Software Developer/Programmer
  • Software Analyst
  • Software Architect
  • Operation/Infrastructure
  • QA/Tester

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
  • 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

Day 3 :: Microservices Deploy and Pipeline

  • Lecture and workshop

กลุ่มเป้าหมาย

  • Software Developer/Programmer
  • Software Architect
  • Operation/Infrastructure

Outline

  • 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
      • Metrics
      • Security
    • Introduction to Containerization
      • Manage container with Docker
      • Scale containers with Docker
    • Workshop :: Deploy your service