Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

DevOps: CI/CD using Jenkins, Maven, Git, Sonar, OWASP, Trivy

DevOps: CI/CD sử dụng Jenkins, Maven, Git, Sonar, OWASP, Trivy

DevOps: CI/CD sử dụng Jenkins, Maven, Git, Sonar, OWASP, Trivy

Khóa học DevOps thực hành để thành thạo pipeline CI/CD với các công cụ Jenkins, Maven, Git, Sonar, OWASP & Trivy.

4.6
(1,513 đánh giá)
11,658 học viên
Giảng viên
Shikhar Verma
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
12.0 giờ video
163 bài giảng
12 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 28/04/2026

Bạn sẽ học được gì

Hiểu nguyên lý cơ bản của DevOps, vòng đời và lợi ích trong việc phân phối phần mềm hiện đại.
Thiết lập và cấu hình AWS EC2 instances cho Jenkins, SonarQube và các công cụ hỗ trợ.
Sử dụng Git và GitHub để quản lý phiên bản và kho lưu trữ cho các dự án thực tế.
Cài đặt, cấu hình và quản lý Jenkins cho Tích hợp Liên tục và Triển khai Liên tục (CI/CD).
Tích hợp Maven với Jenkins để xây dựng, đóng gói và quản lý các ứng dụng dựa trên Java.
Thực hiện phân tích mã tĩnh và tuân thủ tiêu chuẩn chất lượng mã với SonarQube.
Cấu hình tích hợp cơ sở dữ liệu PostgreSQL với SonarQube cho phân tích mã cấp doanh nghiệp.
Thiết lập kho lưu trữ Nexus để quản lý artifacts build với Maven và Gradle.
Xây dựng và triển khai ứng dụng web bằng Maven, Gradle và Jenkins pipelines.
Thực hiện kiểm tra bảo mật với các công cụ OWASP Dependency-Check và Trivy.
Container hóa ứng dụng bằng Docker và đẩy images lên DockerHub hoặc AWS ECR.
Tự động hóa quy trình triển khai với Ansible Playbooks cho Continuous Deployment.
Cấu hình và quản lý kiến trúc Jenkins Master-Slave cho các bản build phân tán.
Triển khai pipeline CI/CD thực tế để đưa ứng dụng web Node.js Bingo lên AWS.
Đăng ký tên miền, cấu hình Nginx và bảo mật ứng dụng web với chứng chỉ SSL.
Có kinh nghiệm thực hành dự án DevOps để làm mạnh hồ sơ và CV.
Áp dụng thực hành CI/CD vào các dự án doanh nghiệp thực tế để cải thiện năng suất và phân phối phần mềm.
Xây dựng sự tự tin để giải quyết các câu hỏi phỏng vấn DevOps thông qua triển khai dự án từ đầu đến cuối.

Yêu cầu

Hiểu biết cơ bản về lệnh Linux (Ubuntu hoặc Amazon Linux) sẽ rất hữu ích.
Cần có tài khoản AWS hợp lệ (Free Tier hoặc trả phí) để thiết lập máy chủ và thực hành dự án thời gian thực.
Máy tính chạy Windows, Linux hoặc macOS và ít nhất 8 GB RAM để chạy các công cụ mượt mà.
Kết nối internet ổn định để truy cập các dịch vụ AWS, GitHub và DockerHub.
Không yêu cầu kinh nghiệm DevOps trước đó – tất cả khái niệm và công cụ sẽ được dạy từng bước với phòng lab thực hành.

Đối tượng phù hợp

Người mới bắt đầu với DevOps muốn học từng bước cách các công cụ như Git, Jenkins, Maven, SonarQube, Docker, Trivy và Ansible phối hợp trong dự án thực tế.
Lập trình viên phần mềm muốn hiểu pipeline CI/CD và tự động hóa việc triển khai ứng dụng trên AWS.
Quản trị viên hệ thống và Kỹ sư Đám mây muốn nâng cao kỹ năng về thực hành DevOps và tích hợp công cụ.
Kỹ sư QA/Kiểm thử muốn học cách tích hợp kiểm tra chất lượng mã và bảo mật vào pipeline CI/CD.
Bất kỳ ai chuẩn bị phỏng vấn DevOps muốn có kinh nghiệm dự án thực hành để làm mạnh CV và portfolio.

Nội dung khóa học

13 phần • 163 bài giảng
1 Giới thiệu
2 DevOps là gì và lợi ích?
3 Vòng đời DevOps: CICD (Tích hợp Liên tục, Triển khai & Phân phối Liên tục)
1 Tạo tài khoản AWS
2 Tạo một EC2 Instance - Amazon Linux
3 Tạo một cặp khóa - Khóa Công khai & Riêng tư
4 MobaXterm - Kết nối EC2 Instance
5 Putty - Kết nối EC2 Instance
6 Gitbash - Kết nối tới EC2 Instance
7 Tạo một EC2 Instance - Ubuntu
8 Lọc Instances
9 Truy cập Instance Với Tên người dùng & Mật khẩu
10 Tổng quan về Khóa Riêng tư & Công khai
11 Xác thực không mật khẩu từ Linux tới Ubuntu
12 Phiên Thực hành 1
13 Phiên Thực hành 2
14 Phiên Thực hành 3
15 Phiên Thực hành 4
1 Tổng quan về công cụ Maven
2 Vòng đời Maven: Default, Clean & Site
3 Kho lưu trữ trong Maven
4 Lab: Build gói Springboot trong Môi trường AWS
5 Lab: Vị trí của Artifacts & các phụ thuộc gói đã build
6 Lab: Khám phá file pom.xml
7 Lab: Thực thi & truy cập ứng dụng đã đóng gói
8 Lab: Khám phá các phụ thuộc của một gói đã build
9 Lab: Vòng đời Build
10 Lab: Build một dự án ứng dụng web bằng maven
11 Lab: Build một dự án ứng dụng web bằng maven
1 Về công cụ SonarQube & các tính năng
2 Cài đặt SonarQube
3 Dịch vụ SonarQube, logs
4 Truy cập SonarQube qua URL
5 Cấu hình Maven (CI Server)
6 Tích hợp Maven với SonarQube
7 Lab - SonarQube kiểm tra mã xấu
8 Lab - Sửa mã & kiểm tra lại bằng Sonarqube
1 Về Cơ sở dữ liệu PostgreSQL
2 Thiết lập Cơ sở dữ liệu PostgreSQL với SonarQube
3 Tạo Database, User và Cấp Quyền
4 File cấu hình SonarQube sonar.properties
5 Xử lý sự cố Cơ sở dữ liệu PostgreSQL cho SonarQube
1 Cài đặt & cấu hình Nexus Server
2 Cấu hình Sonatype Nexus Repository Manager
3 Cấu hình CI Server và Build Dự án Maven Springboot
4 Yêu cầu Nexus trong pom.xml
5 Định nghĩa thông tin đăng nhập nexus
6 Triển khai Artifacts lên Kho lưu trữ Nexus
1 Cài đặt Nexus server
2 Cài đặt Gradle Server làm CI
3 Build dự án springboot tomcat bằng công cụ gradle
4 Thêm plugin vào build.gradle
5 Thêm Kho lưu trữ Nexus vào build.gradle
6 Sử dụng điều kiện if else trong build.gradle
7 Thêm thông tin đăng nhập Nexus vào gradle.properties
8 Tải Thư viện Gradle bằng Continuous Deployment
1 Về Jenkins
2 Tổng quan tích hợp Jenkins với Git
3 Cài đặt Jenkins, Java, Maven & Git trên EC2 Instance
4 Cấu hình Jenkins trên EC2 Instance
5 Cấu hình GitHub Credentials & Maven trên Jenkins
6 Tạo & Build dự án dựa trên Java bằng công cụ Maven
7 Thêm Maven Plugins trong Jenkins
1 Giải thích Quy trình CI/CD: Tổng quan
2 Thiết lập Build Server với Java, Git, Maven và Docker
3 Cài đặt SonarQube trên Ubuntu Server
4 Cấu hình Sonar-Maven-Plugin
5 Khởi động Dịch vụ SonarQube trên Ubuntu
6 Phân tích Chất lượng Mã với SonarQube
7 Tổng quan Dockerfile: Build Docker Images
8 AWS ECR: Tạo Repo mới
9 Tạo IAM Role để Cho phép CI Server Truy cập AWS ECR
10 Build và Đẩy Docker Image lên AWS ECR
11 Thiết lập CD Server cho Continuous Deployment
12 Kéo và Chạy Docker Image từ AWS ECR trên CD Server
13 Pipeline CI/CD: Tóm tắt Toàn bộ Quy trình
1 Về Jenkins
2 Cài đặt Jenkins Server (CI Server)
3 Cấu hình Jenkins
4 Tạo pipeline Jenkins để Checkout & build dự án
5 Cài đặt SonarQube Server sử dụng Docker container
6 Cài đặt plugins & thêm sonar login Credentials trên Jenkins Server
7 Thêm SonarQube trên Jenkins Server
8 Pipeline cho SonarQube Scanner for Jenkins
9 Pipeline cho thành công hoặc bị hủy do lỗi quality gate
10 Cấu hình webhook trong SonarQube Server của bạn
11 Thêm stage trong pipeline để tạo docker Image bằng DockerFile
12 Thêm Plugins - CloudBees AWS, ECR, Docker, v.v.
13 Thêm stage trong pipeline để Đẩy Docker Image lên AWS ECR
14 Cấu hình SES để gửi Thông báo Email
15 Tích hợp SES với Jenkins bằng pipeline
16 Nhận Thông báo Email sau khi Jenkins Pipeline thành công hoặc thất bại
1 Cấu hình CD Server sử dụng Ubuntu Server
2 Thiết lập Ansible trên Jenkins Server
3 Cài đặt packages trên CD Server
4 Tạo Playbook để thiết lập kết nối từ CD Server tới AWS ECR
5 Playbook để kéo image từ ECR về CD Server
6 Playbook để chạy Container bằng Docker Image
7 Truy cập Ứng dụng Springboot đang chạy trên CD Server
1 Tổng quan Jenkins Master & Slave Server
2 Kiến trúc Jenkins Master và Slave hoạt động như thế nào?
3 Lab - Cài đặt Jenkins Master Server trong Môi trường AWS
4 Lab - Cấu hình Jenkins Master Server
5 Lab - Quản lý Nodes và Clouds
6 Lab - Thiết lập Slaves với Jenkins Master
7 Lab - Xử lý sự cố khi thêm slave server
8 Lab - Tạo job cho Slave Sử dụng Freestyle project
9 Lab - Tạo job cho Slave Sử dụng pipeline project
10 Lab - Tạo job cho Slave Sử dụng pipeline project
11 Cấu hình trong máy slave
12 Lab - Thiết lập kết nối giữa Master & Slave Sử dụng SSH keys
13 Lab - Launch agent trên Slave Machine
14 Lab - Tạo job để build dự án Springboot trên Slave Machine
15 Bài giảng cuối cùng
1 Tổng quan Khóa học
2 Tạo kho lưu trữ GitHub cho ứng dụng Bingo
3 Cài đặt Git Bash
4 Clone kho lưu trữ GitHub về hệ thống cục bộ
5 Tạo personal access token
6 Đẩy mã nguồn lên kho lưu trữ GitHub
7 Thiết lập máy ảo cho Jenkins và SonarQube servers
8 Cài đặt Docker trên SonarQube server
9 Xác thực với DockerHub từ SonarQube server
10 Chạy SonarQube bằng Docker
11 Truy cập SonarQube Server qua URL sử dụng cổng 9000
12 Cài đặt Jenkins
13 Truy cập Jenkins Server qua URL sử dụng cổng 8080
14 Tùy chỉnh Jenkins Server
15 Các Plugin cần thiết trên Jenkins Server
16 Cấu hình công cụ JDK
17 Cấu hình công cụ SonarQube Scanner
18 Cấu hình công cụ Node.js
19 Cấu hình công cụ Dependency-Check
20 Cấu hình công cụ Docker
21 Thiết lập kết nối từ Jenkins tới SonarQube server
22 Về Webhook
23 Cấu hình webhook
24 Thêm SonarQube Server
25 Tạo job để dọn workspace
26 Thêm stage trong pipeline để check out dự án
27 Thêm stage vào pipeline cho phân tích SonarQube
28 Lệnh Phân tích SonarQube sử dụng `withSonarQubeEnv`
29 Chạy job và kiểm tra báo cáo SonarQube
30 Thêm stage WaitforQualityGate
31 Chạy job để xác minh WaitforQualityGate
32 Thêm stage để Cài đặt các phụ thuộc Node.js
33 Thêm stage để thực hiện quét OWASP
34 Khám phá báo cáo OWASP
35 Thêm stage để thực hiện quét trivy fs
36 Khám phá báo cáo trivy
37 Về Docker Build
38 Thêm stage để build Docker image cho dự án Node.js
39 Dockerfile để build Docker image
40 Chạy job để xác minh Docker Image
41 Đẩy Docker Image lên DockerHub
42 Thêm stage để quét docker image
43 Khám phá báo cáo trivy
44 Thêm bước triển khai Docker Image/Dự án Node.js
45 Truy cập ứng dụng web Node.js qua URL
46 Đăng ký miễn phí một tên miền
47 Cài đặt nginx
48 Chỉnh sửa bản ghi DNS loại 'A' cho tên miền đã đăng ký
49 Cài đặt và lấy Chứng chỉ SSL

Giới thiệu khóa học

Disclaimer

This course requires you to download and install the following software and tools before starting:

Prerequisites

  1. AWS Account – A valid AWS account is required.

  2. Java Development Kit (JDK)

    • Headless Amazon Corretto 11 (java-11-amazon-corretto-headless)

    • OpenJDK 11 (openjdk-11-jre-headless, openjdk-11-jdk-headless)

  3. Apache Maven – Version 3.8.5 or the latest.

  4. Git – Required for version control.

  5. SonarQube – Version 9.3 or the latest.

  6. Maven Repository Access – Must have access to maven repo website to build packages.

Additional Requirements for Amazon Linux (AWS)

If using an Amazon Linux machine on AWS, install the following packages:

  • PostgreSQL 13

  • Vim

  • EPEL (Extra Packages for Enterprise Linux)

Other Required Tools

  • Nexus Server

  • Gradle Server

  • Jenkins

  • Ansible

Ensure all dependencies are installed before proceeding with the course for a smooth learning experience.

 

The entire DevOps course is based on AWS Environment.

In this course module, you will learn in addition to Jenkins, crossing technologies that go hand in hand with this service, such as Docker, AWS, Ansible, Git, Maven, Gradle, Pipelines, and many more!

Every section of this course has a different set of quizzes, and there is also many project lab assignment that will help you demonstrate what you have learned.

Project: Integration of Jenkins with Maven Tool

Project: CICD Process - Manual Approach Using Maven, SonarQube, Docker, AWS ECR.

Project: CI/CD Process Using Jenkins

Project: Continuous Deployment using Ansible Playbook

Project: Jenkins Master and Slave Server Configuration

Project: Hands-On DevOps Project: Deploy a Node.js Web App with Jenkins CI/CD

Introduction

  • What are DevOps & benefits?

  • DevOps LifeCycle :

    — Continuous Development

    — Continuous Integration

    — Continuous Testing

    — Continuous Feedback

    — Continuous Deployment

    — Continuous Monitoring

Linux for DevOps

  • Create an AWS Account

  • Create an EC2 Instance - Amazon Linux

  • Create a key pair - Public & Private Key

  • MobaXterm - Connect EC2 Instance

  • Putty - Connect EC2 Instance

  • Gitbash - Connect to EC2 Instance

  • Create an EC2 Instance - Ubuntu

  • Filter Instances

  • Access Instance using User Name & Password (Without using Private key)

  • More about private & public key

  • Passwordless authentication from Linux to Ubuntu Server

  • Lab - Access the Amazon Linux Instance other than the default user

  • Lab - Access the Ubuntu Linux Instance other than the default user

  • Lab - Passwordless Authentication between Amazon Linux & Ubuntu and Vice versa

Maven Tool

  • Overview of Maven Tool

  • Maven Lifecycle: Default, Clean & Site

  • Repositories used in Maven

  • Lab - Build the Springboot package in AWS Environment

  • Lab: Location of Artifacts & built package dependencies

  • Lab: Exploring pom.xml file

  • Lab: Execute & access the package application

  • Lab: Exploring dependencies of a built package

  • Lab: Build Lifecycle

  • Lab: Build a Web Application project using maven

  • Lab: Build a Web Application project using maven

SonarQube tool in Continuous Integration

  • About SonarQube tool & its features

  • Installation of SonarQube

  • Check SonarQube logs & configuration

  • SonarQube Service & port

  • Access SonarQube via URL

  • Configure Maven (CI Server)

  • Checkout & build the project using Maven

  • Integrate Maven with SonarQube to check the code quality

  • Add Sonar-maven-plugin

  • Lab - Bad code detected by SonarQube

  • Lab - Rectified the code & re-check by SonarQube

PostgreSQL Database for SonarQube

  • About PostgreSQL Database

  • Setup PostgreSQL Database with SonarQube

  • Create Database, User, and Grant Privileges

  • Sonarqube Configuration file sonar properties

  • Troubleshooting PostgreSQL Database for SonarQube

Integration of Maven with Nexus Repositories

  • Install & configure Nexus Server

  • Configure Sonatype Nexus Repository Manager

  • Configure CI Server to check out the project & Build the package

  • Configure springboot maven nexus deploy

  • Nexus Requirements in the pom.xml

  • Define Nexus login credentials

  • Deploy the Artifacts to Nexus Repository

Integration of Gradle with Nexus Repositories

  • Installation of Nexus server

  • Configuration of Gradle Server as CI

  • Build the springboot tomcat project using gradle tool

  • Add plugin in build.gradle

  • Add Nexus repositories details in build.gradle

  • Use if-else condition in build.gradle

  • Add credentials in gradle properties

  • Publish the project artifacts into Nexus Server

  • Download the Artifacts using Continuous Deployment

Integrate Jenkins with Git & Maven project

  • About Jenkins

  • Overview of Jenkins integration with GitHub & how to build a java based project

  • Installation of Jenkins, Java, Maven & Git on EC2 Instance

  • Configure Jenkins on EC2 Instance

  • Configure GitHub Credentials & Maven Location on Jenkins

  • Create & Build the Java-based project using Maven Tool

  • Add Maven Plugins in Jenkins

CI/CD Pipeline – Manual Implementation with Maven, SonarQube, Docker & AWS ECR

  • CI/CD Process Explained: An Overview

  • Setting Up a Build Server with Java, Git, Maven, and Docker

  • Installing SonarQube on an Ubuntu Server

  • Configure Sonar-Maven-Plugin

  • Starting the SonarQube Service on Ubuntu

  • Analyzing Code Quality with SonarQube

  • Dockerfile Overview: Build Docker Images

  • AWS ECR: Create a New Repo

  • Create IAM Role to Allow CI Server Access to AWS ECR

  • Build and Push Docker Image to AWS ECR

  • Set Up a CD Server for Continuous Deployment

  • Pull and Run Docker Image from AWS ECR on CD Server

  • CI/CD Pipeline: Full Process Recap

CICD Process Using Jenkins

  • Overview of CICD Process using Jenkins

  • Install a Jenkins Server (CI Server)

  • Add maven in Jenkins Server from Global Tool Configuration

  • Create a Jenkins pipeline for Checkout & build the project

  • Install SonarQube Server using Docker container

  • Generate the token from SonarQube Server

  • Add Sonar Login Credentials on Jenkins Server

  • Install SonarQube Scanner plugins on Jenkins

  • Add SonarQube on Jenkins Server

  • Pipeline for SonarQube Scanner for Jenkins

  • Pipeline for success or aborted due to quality gate failure

  • Configure a webhook in your SonarQube Server

  • Add stage in pipeline to create a Docker Image using DockerFile

  • Create an IAM User to have access to AWS ECR and add it to Jenkins Server

  • Add stage in pipeline to Push the Docker Image to AWS ECR

  • Configure SES to send an email notification

  • Integrate SES with Jenkins using pipeline

  • Receive an Email Notification after the success or failure of Jenkins Pipeline

Continuous Deployment using Ansible Playbook

  • Configure a CD Server using Ubuntu Server

  • Ansible Setup on Jenkins Server

  • Install packages on CD Server

  • Create a Playbook to establish a connection from CD Server to AWS ECR

  • Playbook to pull the image from ECR to CD Server

  • Playbook to run the Container using the Docker Image

  • Access the Springboot Application running on CD Server

Jenkins Master and Slave Server

  • Overview of Jenkins master & slave server

  • How does Jenkins Master and Slave Architecture work?

  • Lab - Install Jenkins Master Server in AWS Environment

  • Lab - Configure Jenkins Master Server

  • Lab - Manager Nodes and Clouds

  • Lab - Setting up Slaves with Jenkins Master

  • Lab - Troubleshooting while adding a slave server

  • Lab - Create a job for the Slave Using Freestyle project

  • Lab - Create a job for Slave Using a pipeline project (Springboot Appl)

  • Lab - Create a job for Slave Using a pipeline project (Springboot Appl)

  • Configurations in slave machine

  • Lab - Establish connectivity between Master & Slave Using SSH keys

  • Lab - Launch agent on Slave Machine

  • Lab - Create a job for building a Springboot project on Slave Machine

Hands-On DevOps Project: Deploy a Node.js Web App with Jenkins CI/CD

  • Introduction

  • Course Overview

Git Bash and GitHub

  • Create a GitHub repository for a Bingo application

  • Install Git Bash

  • Clone the GitHub repository to your local system

  • Generate a personal access token

  • Push the source code to a GitHub repository

Set up the DevOps Environment on AWS

  • Set up virtual machines for Jenkins and SonarQube servers

  • Installation of Docker on a SonarQube server

  • Authenticate to DockerHub from the SonarQube server

  • Run SonarQube using Docker

  • Access the SonarQube Server via the URL using port 9000

  • Installation of Jenkins

  • Access the Jenkins Server via the URL using port 8080

  • Customize the Jenkins Server

Plugins required on the Jenkins server

  • Required Plugins on Jenkins Server

Configure tools on the Jenkins server

  • Configure JDK tool

  • Configure SonarQube Scanner tool

  • Configure Node.js tool

  • Configure Dependency-Check tool

  • Configure Docker tool

Set up a connection from Jenkins to the SonarQube server

  • Set up a connection from Jenkins to the SonarQube server

  • About Webhook

  • Configure a webhook

  • Add SonarQube Server

Jenkins CI/CD pipeline job to clean and check out the project

  • Create a job to clean the workspace

  • Add a stage in the pipeline to check out the project

SonarQube - Code quality tool for better code

  • Add a stage to the pipeline for SonarQube analysis

  • SonarQube Analysis command using `withSonarQubeEnv`

  • Run the job and check the SonarQube report

  • Add a stage WaitforQualityGate

  • Run the job to verify the WaitforQualityGate

Install Node.js dependencies, use npm command

  • Add a stage to Install Node.js dependencies

OWASP tool -Security testing tool

  • Add a stage to perform OWASP scanning

  • Explore the OWASP report

Trivy scanning tool

  • Add a stage to perform trivy fs scanning

  • Explore the trivy report

Build the Docker image and then push it to DockerHub

  • About the Docker Build

  • Add a stage to build the Docker image for a Node.js project

  • Dockerfile for building the Docker image

  • Run the job to verify the Docker Image

  • Push the Docker Image to DockerHub

Trivy - Scanning on Docker Image

  • Add a stage to scan the docker image

  • Explore the trivy report

Deploy the Node.js web Application

  • Add a stage to deploy the Docker Image/Node.js Project

  • Access the Node.js web application through the URL

Domain Registration and SSL Certification

  • Register a free domain

  • Install nginx

  • Modify the 'A' record DNS for the registered domain

  • Install and obtain the SSL Certificate

  • Last lecture

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Ci Cd
Hiển thị tất cả khoá học Devops
Hiển thị tất cả khoá học Jenkins
Hiển thị tất cả khoá học Maven
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊