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

DevOps and CI/CD Workshop (Design-Develop-Deploy)

Duration 2 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
  • Docker
  • Kubernetes

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
    • Automated process to compile -> testing -> packaging
    • Demo with Java
      • Using Apache Maven or Gradle
      • Life Cycle of Apache Maven or Gradle
      • Workshop
  • Continuous Integration (CI)
    • CI fundamental and benefit
    • CI principle
    • Build pipeline (Build -> Testing -> Packaging -> Deploy)
    • CI tool such as Jenkins
    • Workshop with Jenkins
      • Installation
      • Basic configuration
      • Design and develop the build pipeline
        • Working with Git
        • Working with Apache Maven or Gradle
        • Artifatory management
        • Testing

Day 2

  • 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
    • Definition of Done (DoD)
  • Infrastructure management
    • Cloud Native Application
      • DevOps
      • Continuous Delivery
      • Microservices
      • Containerization
    • Container management with Docker
      • Docker fundamental
      • Container vs Virtual Machine (VM)
      • Architecture of Docker
      • Basic command with Docker
      • Improve deployment process with Docker and Kubernetes
      • Infrastructure as a Code
      • Workshop
  • Automated Deployment and Continuous Delivery/ DevOps
    • Continuous Delivery concept
    • DevOps end-to-end process and tool
    • Continuous Monitoring
    • Continuous Logging
  • Docker
    • 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