DevOps, CI CD and Monitoring Observability Workshop - up1/training-courses GitHub Wiki

DevOps, CI/CD and Monitoring/Observability Workshop

Duration 3 days

สิ่งที่จะได้รับ/วัตถุประสงค์

DevOps เป็นแนวคิดที่ประกอบไปด้วย People, Process และ Product เพื่อช่วยให้ส่งมอบระบบงานที่มีคุณค่าไปยังผู้ใช้งานอย่างต่อเนื่อง ซึ่งมีทั้งกระบวนการที่รวดเร็วและมีคุณภาพสูง โดยใน course นี้จะทำการแนะนำให้เข้าใจเกี่ยวกับ DevOps เพื่อให้สามารถนำไปประยุกต์ใช้งานในองค์กรได้อย่างถูกต้อง ประกอบไปด้วย

ประวัติความเป็นมาของ DevOps คุณค่าต่าง ๆ ของ DevOps

  • เข้าใจขั้นตอนการพัฒนาระบบงาน และ ปัญหา รวมทั้งการปรับปรุง
  • เข้าใจเกี่ยวกับ Principles และ Practices ต่าง ๆ ของ DevOps
  • เข้าใจปัญหา และ วิธีการปรับปรุงการทำงานร่วมกันระหว่างทีม Development และ Operation
  • เข้าใจเกี่ยวกับ Continuous Integration, Testing และ Deployment
  • เข้าใจเกี่ยวกับการจัดการเรื่อง Release management, Configuation และ Monitoring
  • เข้าใจเกี่ยวการใช้งานเครื่องมือต่าง ๆ เช่น Docker และ Kubernetes

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

  • ทีมออกแบบระบบงาน
  • ทีมพัฒนาระบบงาน
  • ทีม Infrastructure/Network/Operation
  • ฝ่าย management ระบบงาน

เครืองมือใช้ในการอบรม

  • Jenkins, GitLab CI
  • Docker and Kubernetes
  • Monitoring and Observability

Course Outline

Day 1

  • DevOps fundamental
    • Waterfall and Agile concept
    • Different between Dev and Ops team
    • DevOps and Agile
    • DevOps definition and need/goal
    • DevOps Principle and Practice
    • DevOps Life cycle and need of tools
      • Software Configuration Management (SCM)
      • Automated Software Build process
      • Continuous Integration (CI)
      • Automated testing and code coverage
      • Infrastructure management
      • Automated Deployment and Continuous Delivery
  • Software Configuration Management (SCM)
    • Purpose and basic concept
    • Branch Strategy
    • SCM tools such as Git, GitLab and Github
    • Workshop with Git
  • Automated Software Build process
    • Working with Docker
    • Automated process to build -> testing -> packaging -> deployment
    • Workshop
  • Docker and Kubernetes
    • Manage container with Docker
    • Basic components
      • Image
      • Container
      • Registry
    • Build image with Dockerfile
    • Working with Docker compose
    • Deploy container with Docker swarm (Cluster mode)
  • Kubernetes
    • Manage container with Kubernetes
    • Kubernetes components
      • Pods
      • Service
      • Deployment and ReplicaSet
      • HPA (Horizontal Pod Autoscaler)
    • Monitoring and Observability

Day 2

  • Continuous Integration (CI)
    • CI fundamental and benefit
    • CI principle
    • Build pipeline (Build -> Testing -> Packaging -> Deploy)
    • CI tools such as GitLab CI and Jenkins
    • Workshop with CI tools
      • Installation
      • Basic configuration
      • Design and develop the build pipeline
        • Working with Git
        • Working with Docker
        • Build
        • Artifatory management
        • Testing
        • Deployment
  • Automated testing and code coverage
    • Testing process in software development
    • Manual testing vs Automated testing
    • Pyramid testing
      • Unit testing
      • Integration testing
      • API testing
      • User Interface testing
    • Test-first vs Test-last
    • Static code analysis
  • Automated Deployment and Continuous Delivery/ DevOps
    • Continuous Delivery concept
    • DevOps end-to-end process and tool
    • Continuous Monitoring
    • Continuous Logging

Day 3

  • Monitoring and Observability

    • Centralized log
    • Application metric
    • Distributed tracing
    • Exception tracking
    • Alert system
  • Monitoring stack and platform

    • Dashboard with Grafana
    • Application metric with prometheus
      • Node
      • Database
    • Workshop with Docker and Kubernetes