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
- Cloud Native Application
- 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