DevSecOps in practice with Gitlab, Jenkins, Sonarqube, Zap and Kubernetes
- TTDG39
- Classroom
- Fundamental
- Thai | 0

ในปัจจุบันมีเครื่องมือสำหรับใช้ในการช่วย deploy เยอะมาก แต่ตัวนึงที่ได้รับความนิยมมากคือ Kubernetes (K8s) ซึ่งเป็น server ที่ได้ช่วยให้การ deploy application ที่ซับซ้อนทำได้ง่ายขึ้น ซึ่งใน class จะทำการร้อยเรียงกันว่าจะสามารถนำ Kubernetes มาใช้ในส่วนไหนของ DevOps และใช้ร่วมกับ Gitlab ได้อย่างไร
Course description
Time
Instructor
Venue
DevSecOps in practice with Gitlab, Jenkins, Sonarqube, Zap and Kubernetes
DevSecOps คือรูปแบบวิธีการปฏิบัติ วัฒนธรรม และกระบวนการต่าง ๆ เพื่อแก้ไขปัญหาที่เกิดจากความขัดแย้งระหว่าง Development และ Operations ดังที่กล่าวมาแล้วในหัวข้อด้านบน รวมถึงช่วยเพิ่มประสิทธิภาพในการทำงานให้สามารถผลิต software ออกสู่ตลาดได้รวดเร็วขึ้น มีคุณภาพและเสถียรภาพมากขึ้นในขณะที่ cost ลดลง เพื่อให้บริษัทสำเร็จตามเป้าหมายที่วางไว้
หัวใจสำคัญในการประยุกต์ใช้งาน DevSecOps ในองค์กรคือการทำ CI/CD โดยการทำ CI/CD นั้นมีเครื่องมือที่สามารถทำงานแบบ automate หลากหลาย เช่น Jenkins, Circle CI เป็นต้น
SonarQube คือเครื่องมือที่ได้รับความนิยมในการตรวจสอบคุณภาพของ Code ว่ามีความปลอดภัยดูแลรักษาง่ายไหม มีช่องโหว่ อะไรบ้าง โดยนำหลักการ automate test มาใช้ร่วมกับ การทำ CI/CD
ถ้าหากในองค์กรเรามีการใช้ Gitlab แบบ on-premise อยู่แล้วการนำ Jenkins มาเป็นตัวช่วยในการทำ CI/CD ย่อมเป็นตัวเลือกที่ดีกว่า ทั้งในด้านการบริหารจัดการ การ Monitor และการ setup
ในปัจจุบันมีเครื่องมือสำหรับใช้ในการช่วย deploy เยอะมาก แต่ตัวนึงที่ได้รับความนิยมมากคือ Kubernetes (K8s) ซึ่งเป็น server ที่ได้ช่วยให้การ deploy application ที่ซับซ้อนทำได้ง่ายขึ้น ซึ่งใน class จะทำการร้อยเรียงกันว่าจะสามารถนำ Kubernetes มาใช้ในส่วนไหนของ DevOps และใช้ร่วมกับ Gitlab ได้อย่างไร
ในหลักสูตรนี้จะเริ่มตั้งแต่การติดตั้ง Server ต่าง ๆ แบบ On-premises ดังนี้
- Gitlab Server
- Jenkins
- SonarQube Server
- Kubernetes
ไปจนถึงการเขียน ci/cd script เพื่อให้ source code ที่เราพัฒนาเสร็จสามารถ deploy ไปยัง Kubernetes cluster ได้อย่างสมบูรณ์แบบ
Who Should Attend (กลุ่มลูกค้าเป้าหมาย):
- นักพัฒนาระบบ
- นักออกแบบระบบ
คุณสมบัติของผู้เข้าอบรม
- มีความเข้าใจในการพัฒนาระบบงานไอทีเป็นอย่างดี
- มีความรู้ด้าน Agile
- เพื่อเข้าใจหลักการทำงานของ DevSecOps
- เพื่อเรียนรู้และใช้เครื่องมือประกอบการพัฒนาระบบแบบ DevSecOps
- เพื่อเรียนรู้การใช้ Gitflow ใน GitLab
- เพื่อเรียนรู้การใช้ Jenkins ทำ Automate CI/CD
- เพื่อเรียนรู้การใช้ Kubernetes ในการ deploy application แบบ microservice
- เพื่อเรียนรู้การทำ Automate Test ในรูปแบบต่าง ๆ ดังนี้
- Unit testing ด้วย Pytest
- Static Application Security Testing (SAST) / Quality Testing ด้วย SonarQube
- Load Testing / Stress Testing ด้วย JMeter
- Dynamic Application Security Testing (DAST) ด้วย Zap
- เพื่อเรียนรู้การทำ System Monitor ด้วย Prometheus + Grafana
- เพื่อเรียนรู้การทำ Auto Scaling ด้วย Kubernetes
Day 1 DevOps
- Introduction to DevOps
- Continuous Integration and Continuous Deployment
- Source code repository with GIT
- Configure tools
- Create repositories
- Make changes
- Group changes
- Refactor filenames
- Suppress tracking
- Review history
- Synchronize changes
- DevOps Gitlab
- Getting started with Gitlab
- Continuous Integration with Gitlab
- Continuous Inspection with Gitlab
- Continuous Delivery with Gitlab
- Distributed Builds
- Workshop
- Create repository on Gitlab Server
- How to push source to Gitlab Server Repository
- How to use markdownHow to create new branch
- How to use issue for software life cycle management process
- How to use wiki for knowledge sharing process
- How to use merge request process
- Workshop
Day 2 Containerization
- Docker
- Get Started with Docker Technologies
- Comparing Containers and Virtual Machines
- Containers and Virtual Machines Together
- Docker engine
- Docker Architecture
- Docker command
- Docker Network
- How to create own docker image with Dockerfile
- Docker compose
- Workshop
- How to create Dockerfile for build custom docker image (Django, NodeJs)
- How to remote development
- How to debug custom docker image
- How to push custom docker image to Docker Registry
- Kubernetes
- Deploy application with Kubernetes
- Introduction to Kubernetes
- What is Pod, Deployment, Service, Ingress
- Kubernetes Command
- Manage Service
- Manage Deployment
- Manage Pod
- Deploy application with Kubernetes manifest file
- Workshop
- How to create deployment, service, ingress script for Kubernetes
- Deploy application with Kubernetes
Day 3 Jenkins
- Jenkins
- Getting started with Jenkins
- Unlock Jenkins
- Install Plugins
- Create Admin User
- Create New Jobs
- Jenkins Config Build Trigger
- Pipeline script
- Pipeline template
- Jenkins Job List
- Logs
- Credentials
- Master Slave with node manage
- How to user node in pipeline script
- Jenkins with K8
- Automate build
- Automate tag version
- Workshop
- How to register Jenkins agent for build, deploy process
- Jenkins script template (Jenkinsfile)
- How to run the script on the desired agent
- How to run the script only branch
Day 4 Automate testing
- Introduction to Automate Testing
- Unit testing with Pytest
- Unit testing with Jest
- Performance Testing (Load Testing / Stress Testing)
- Static Application Security Testing (SAST)
- Dynamic Application Security Testing (DAST)
- Workshop
- Unit testing with Django
- Unit testing with NodeJs
- How to automate scan code with Jenkins and SonarQube (SAST)
- How to automate scan code with Jenkins and Zap (DAST)
Day 5 Auto Scaling with Kubernetes
- Kubernetes advance topic
- How to enable HA feature
- How to manual scale service with k8s
- How to config auto scale service with k8s
- Workshop
- Load testing Django web application with JMeter
- Monitor Kubernetes
Payment can be made by:
- Cash or Credit Card or Bank Cheque payable to
สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ or National Science and Technology Development Agency
(a post-dated cheque is not accepted) on the first day of the service or within the last day of the service. - Account transfer and send the proof of the payment (the deposit slip) via email xxx@swpark.or.th
- ธนาคารกรุงเทพ สาขาอุทยานวิทยาศาสตร์
Saving Account Number: 080-0-00001-0
Account Name: สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ - ธนาคารกรุงไทย สาขาตลาดไท
Saving Account Number: 152-1-32668-1
Account Name: สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ
- ธนาคารกรุงเทพ สาขาอุทยานวิทยาศาสตร์
Notes:
- Withholding tax (3%) is exempt.
- Should you need to withdraw, you must send the notice of the withdrawal in writing no later than 7 working days before the commencement date. The cancellation less than 7 days will be subject to a fine of 40% of the fee.
- Software Park Thailand reserves the rights to cancel courses due to unforeseen circumstances.
Contact Person
For more information, contact our course coordinator on:
คุณภัสสร พรทิพย์
Ms. Patsorn Pornthip
Tel: +66-2583-9992 Ext. 81422
Email: patsorn@swpark.or.th
You are encouraged to use the course schedule as a guide to plan your training.
The schedule is accessible at www.swpark.or.th for more information.
15,000 THB .
สำคัญ!!! กรุณารอการยืนยันเปิดการอบรมจากเจ้าหน้าที่ก่อนการชำระค่าลงทะเบียน
Course Detail :
Instructor info
