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