Giới thiệu chung
Khi tham gia khóa học Java Backend chuyên sâu, bạn sẽ làm chủ được DevOps và SysOps - Hai quy trình quan trọng trong ngành phát triển phần mềm hiện nay. Ngoài ra học viên cũng được tiếp cận với rất nhiều công nghệ hiện đại như: Microservice, Spring, Operation...

Đối tượng tham gia
- Sinh viên ngành CNTT muốn tìm hiểu, phát triển nghề nghiệp theo hướng DevSysOps
- Lập trình viên junior, senior muốn tiếp cận và phát triển hệ thống theo hướng Microservices
- Leader, Senior có kinh nghiệm về lập trình, phát triển phần mềm học để cập nhật kiến thức, nâng cao trình độ bản thân, hỗ trợ team và quản lý các dự án
Học xong làm ở đâu?
- Apply vào tất cả công ty tuyển dụng về lập trình đặc biệt là DevSysOps Developer
- Các công ty outsourcing - gia công phần mềm
- Công ty, tập đoàn trong nước và nước ngoài...
- Các công ty startup - khởi nghiệp
- Nhận các job freelance về DevSysOps
LÝ DO LỰA CHỌN CHÚNG TÔI?




.png)


Giá trị nhận được sau khóa học
- Trang bị và làm chủ kiến thức cơ bản về lập trình: Database (MySQL), JavaCore
- Nắm bắt chuyên sâu về Spring Framework và phát triển dịch vụ theo hướng Microservices
- Có kiến thức nền tảng về Docker, Container, triển khai được các services theo quy trình CI/CD trên môi trường AWS
- Làm chủ được kiến thức về Linux OS và các kiến thức về System Admin (Networking, Storage, Security, Monitoring….)
Khung chương trình
Học phần 1: DataBase MySQL
Day 1 - Leson1
- Khai giảng & giới thiệu về khóa học
- Cài đặt & Giới thiệu tài liệu khoá học (Drive File Stream)
- Cài đặt MySQL Workbench
- Giới thiệu về Web architecture
- Giới thiệu về Database
- Tạo Database, tạo Table
- Daily Assignment
Day 2 - Lesson 2
- Review Assignment & Lý thuyết Lesson 1
- Datatype (Number, Character, Date & Time, Enum)
- Constraint (Primary Key, Foreign Key, Unique Key , Default, Not null, Check)
- Daily Assignment
Day 3 - Lesson 3
- Review Assignment & Lý thuyết Lesson 2
- Select, Where ( = , >, <, >=, <=, !=, <>, And, Or, Between and, In, Not In, Like, Not Like, Is Null, Is Not Null)
- Distinct, Order by, Limit, alias
- Aggregate functions (Count, Sum, Min, Max, Avg), Group By, Having
- Insert, update, delete statement
- Daily Assignment
Day 4 - Lesson 4
- Review Assignment & Lý thuyết Lesson 3
- Join (Inner Join, Left Join, Right Joi, Cross Join)
- Union và Union All
- Daily Assignment
Day 5 - Lesson 5
- Review Assignment & Lý thuyết Lesson 4
- Subquery
- View
- CTE
- Daily Assignment
Day 6 - Lesson 6
- Review Assignment & Lý thuyết Lesson 5
- Stored Procedure
- Function
- Optional Join (On Delete Cascade, …)
- Daily Assignment
Day 7 - Lesson 7
- Review Assignment & Lý thuyết Lesson 6
- Session & Connection
- Variable
- Trigger, Index, Case When
- Daily Assignment
Day 8 - Review
- Review Assignment & Lý thuyết SQL trong học phần
.png)
Học phần 2: JavaCore
Day 1 - Lesson 1
- Giới thiệu về môn học
- Setup JDK & Eclipse
- Datatype (String, Int, Date, Boolean, …)
- Array, Enum
- Object
- Init Object
- Print Object
- Daily Assignment
Day 2 - Lesson 2
- Review Assignment & Lý thuyết Lesson 1
- Flow control statements (If-else, ternary, switch-case, for, foreach, while, do while, break, continue)
- Operator (i++, Arithmetic, Relational, Logic)
- Date, String, Number Format
- Random Number, Date
- Scanner, Method
- Daily Assignment
Day 3 - Lesson 3
- Review Assignment & Lý thuyết Lesson 1 & 2
- Datatype Casting
- Primitive & Wrapper Classes
- Auto boxing & unboxing
- String
- Các phương thức trong class Object
- Daily Assignment
Day 4 - Lesson 4
- Review Assignment & Lý thuyết Lesson 3
- Constructor
- Package
- Access modifier
- OOP
- Encapsulation
- Inheritance
- Abstraction (Part 1)
- Daily Assignment
Day 5 - Lesson 5
- Review Assignment & Lý thuyết Lesson 4
- Abstraction (Part 2)
- Polymorphism
- Override và Overload
- This & super keyword
- Daily Assignment
Day 6 - Review
Review Assignment & Lý thuyết Lesson 1,2,3,4,5
Day 7 - Lesson 6
- Review Assignment & Lý thuyết Lesson 5
- Debug
- Exception
- Daily Assignment
Day 8 - Lesson 7
- Review Assignment & Lý thuyết Lesson 6
- Các thành phần static và luồng điều khiển
- Các thành phần Non-static và luồng điều khiển
- Final
- File
- IO Stream
- Daily Assignment
Day 9 - Lesson 8
- Review Assignment & Lý thuyết Lesson 7
- Collection & Map
- Generic
- Daily Assignment
Day 10 - Lesson 9
- Review Assignment & Lý thuyết Lesson 8
- Internationalization
- Annotation
- Inner class
- Garbage Collector
- Java Structure (JVM, memory, …)
- Interpretion & Compilation
- Daily Assignment
Day 11 - Lesson 10
- Review Assignment & Lý thuyết Lesson 9
- JDBC
- Maven
- Properties File
- Call Procedure
- Transaction
- Daily Assignment
Day 12 - Lesson 11
- Review Assignment & Lý thuyết Lesson 10
- 3-Layer architecture
- Daily Assignment
Day 13 - Review
- Review Assignment & Lý thuyết Lesson 6,7,8,9,10,11
Day 14 - Exam
- Topic Exam: Lý thuyết
- Topic Exam: Thực hành
- Topic Exam: Interview

Học phần 3: Spring FW
Day 1 - Lesson 1 - Spring Boot
- Setup Spring tool suite & Postman
- Hello World
- A few concepts (Web & Web service, JSON & XML, API & Restful API, HTTP)
- 3 Layers with Springboot
- Daily Assignment
Day 2 - Lesson 2 - Spring Core
- Review Assignment & Lý thuyết Lesson 1
- SOLID principles
- IoC & DI
- Spring core
- Daily Assignment
Day 3 - Lesson 3 - Spring Data JPA & Other Tools
- (Spring Data JPA & Other Tools) Review Assignment & Lý thuyết Lesson 2
- Hello World Spring Data JPA
- Custom Query
- Paging & Sorting
- Daily Assignment
Day 4 - Review
- Review Assignment & Lý thuyết Lesson 1,2,3
Day 5 - Lesson 4 - Specification, ModelMapper
- ModelMapper
- Specification
- HATEOAS
- Daily Assignment
Day 6 - Lesson 5 - Validate, Internationalization & Other tools
- Review Assignment & Lý thuyết Lesson 4
- Create/Update Form
- Validate
- Swagger
- Spring Data Rest
- Daily Assignment
Day 7 - Lesson 6 - Exception, Log4J, Basic authentication
- Review Assignment & Lý thuyết Lesson 5
- Exception
- Basic Authentication
- Log4j
- Daily Assignment
Day 8 - Review
- Review Assignment & Lý thuyết Lesson 4,5,6

Học phần 4: Basic Linux OS (Kiến thức căn bản về hệ điều hành Linux OS)
Day 1 - Hệ điều hành Linux OS
- Kiến thức về hệ điều hành linux và kernel
- Thực hành cài đặt hệ điều hành Linux và các lựa chọn trong quá trình cài đặt (CentOS)
- Thực hành cài đặt hệ điều hành Linux và các lựa chọn trong quá trình cài đặt (Ubuntu)
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)
Day 2 - Command line Linux OS basic (Các khối lệnh trong Linux - Day 1)
- Review bài tập Day 1
- Kiến thức cơ bản về các khối lệnh trong linux dùng để quản lý thư mục (Directory); quản lý tệp (File)
- Thực hành gõ các khối lệnh dùng để quản lý thư mục (Directory); quản lý tệp (File); quản lý phân quyền file and folder; quản lý nội dung tệp tin (file contents); quản lý tệp văn bản vi/vim; quản lý bộ lọc (filter); quản lý nén và giải nén ( zip/unzip);trang hướng dẫn sử dụng (man pages); tổ chức tệp tin trên linux (Filesystem hierarchy); lọc thông tin trên linux (filters)
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)
Day 3 - Command line Linux OS basic (Các khối lệnh trong Linux - Day 2)
- Review bài tập Day 2
- Kiến thức cơ bản về các khối lệnh trong linux dùng để quản lý user và group; quản lý ổ cứng ( disk manager); quản lý tiến trình (process) ; Quản lý network; Quản lý phần cứng ( hardware manager); quản lý lập lịch (scheduling)
- Thực hành gõ các Khối lệnh cơ bản về Users ; quản lý Users (Users Management) ; quản lý Password (Password Management) ; quản lý Groups ; quản lý tiến trình (Process); quản lý Disk ; quản lý Hardware; quản lý Hardware (RAM) ; quản lý Network ; quản lý lập lịch Cron(Scheduler)
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)
Day 4 - Cài đặt/Gỡ cài đặt gói
- Review bài tập Day 3
- Kiến thức cơ bản về trình quản lý cài đặt gói (yum/apt-get) và build gói từ source code
- Thực hành cài đặt/gỡ cài đặt gói thông qua yum/apt-get
- Thực hành cài đặt từ source code
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)
Day 5 - Triển khai ứng dụng cơ bản trên máy chủ Linux)
- Review bài tập Day 4
- Các cách triển khai ứng dụng thực tế trên môi trường production, các yêu cầu cần có trong quá trình triển khai
- Thực hành triển khai ứng dụng Mock project trên môi trường production: cài đặt database, tạo user và phân quyền truy cập, cài đặt ứng dụng như 1 service của HĐH, thiết lập backup tự động
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)
Day 6 - Thực hành docker - docker compose buổi 1
- Review bài tập Day 5
- Tìm hiểu về các thách thức, vấn đề khi triển khai ứng dụng theo cách truyền thống, tìm hiểu về container, các tác dụng của container trong đóng gói triển khai ứng dụng
- Thực hành build image ứng dụng Mock project, triển khai container cho ứng dụng Mock project trên máy chủ Linux
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)
Day 7 - Thực hành docker - docker compose buổi 2
- Review bài tập Day 6
- Tìm hiểu các vấn đề khi triển khai ứng dụng bằng docker run thuần túy, tìm hiểu cơ bản về docker compose, tác dụng của docker compose trong đói gói triển khai ứng dụng
- Thực hành tạo file docker compose cho ứng dụng Mock project, triển khai docker compose cho ứng dụng Mock project trên máy chủ Linux
- Ôn tập lại kiến thức toàn bộ học phần
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)

Học phần 5: MicroService
Day 1 - Lesson 1 - Tổng quan về kiến trúc hệ thống micorservice
- Webservice là gì?
- Giới thiệu về RESTful web services
- Microservice là gì? Các thuật ngữ hay dùng trong microservices: Decomposing & Single-Function, ...
- Microservice với springboot, spring cloud
- Giới thiệu về Docker, cài docker destop trên windows, mac-os
Day 2 - Lesson 2 - Thực hành với Docker
- Review Lý thuyết Lesson 1
- Các câu lệnh cơ bản với Docker
- Docker compose; docker images; docker container; docker volume
- Viết docker file, tạo docker image với docker command
- Viết docker compose.yml file, tạo docker container
- Kiểm tra images, container; xoá: images, container, volume
Day 3 - Lesson 3 - Deployment với Docker
- Review Lý thuyết Lesson 2
- Các câu lệnh với docker container
- Docker hub là gì, tạo docker image và push lên docker hub
- Tạo instance VPS Ubuntu(Linux) để deploy spring boot app
- Một số câu lệnh cơ bản và cần thiết trên Linux
- Pull image tử docker hub, build container với docker compose
- Cấu hình in-bound, out-boud cho VPS, test API bằng postman ứng dụng spring boot chạy bằng docker
Day 4 - Lesson 4 - Build các microservices trong hệ thống
- Review Assignment & Lý thuyết Lesson 1,2,3
- Kiến trúc hệ thống micro services
- Build account services
- Build deparment services
Day 5 - Lesson 4 - Build các microservices trong hệ thống
- Review Assignment & Lý thuyết Lesson 4
- Cơ chế xác thực người dùng bằng JWT
- Generate token
- Xác thực token
- Access token và refresh token
- Build auth services
- Xử lý token hết hạn
Day 6 - Lesson 4 - Xây dựng các thành phần của hệ thống microservices
- Review Assignment & Lý thuyết Lesson 5
- Giới thiệu Eureka discovery services
- Xây dựng server để đăng ký các service con trong hệ thống(Eureka)
- Enable discovery client auth service
- Enable discovery client account service
- Enable discovery client department service
Day 7 - Lesson 5 - Xây dựng các thành phần của hệ thống microservices
- Review Assignment & Lý thuyết Lesson 6
- Giới thiệu về RestTemplate và FeignClient
- Xây dựng API gateway với Spring Cloud
- Cấu hình tập trung với service config
- Event Sourcing trong microservice
Day 8 - Lesson 6 - Xây dựng các thành phần của hệ thống microservices
- Review Assignment & Lý thuyết Lesson 7
- Xây dựng thêm tính năng cho account service
- Xây dựng thêm tính năng cho deparment service
- Dynamic routing and loadbalancer với Netflix Ribbon
- Monitoring với Netflix Hystrix dashboard & Turrbine
Day 9 - Lesson 7 - Xây dựng các thành phần của hệ thống microservices
- Review Assignment & Lý thuyết Lesson 7
- Xây dựng khả năng chịu lỗi và phản hồi lỗi dùng circuit Breaker Pattern với Netfix Hystrix
- Spring Security OAuth2
- Kết hợp Spring Clound và Spring Security OAuth2 bảo mật API
Day 10 - Lesson 8 - Xây dựng unit test
- Review Assignment & Lý thuyết Lesson 9
- Cài đặt Jacoco Code Coverage Plugin
- Viết testcase đầu tiên cho account service
- Hoàn thành test class Account Controller
- Hoàn test business rule Account service
- Viết Intergration test cho Account Service
Day 11 - Lesson 9 - Quản lý chất lượng và an toàn code
- Review Assignment & Lý thuyết Lesson 10
- Tìm hiểu Sonarqube và cài đặt
- Khắc phục lỗ hổng code với Sonarqube
- Khắc phục lỗi Code Smell
- Khắc phục lỗi duplicate code
Day 12 - Lesson 10 - Xây dựng Centralised Log Analyses
- Review Assignment & Lý thuyết Lesson 11
- ELK stack là gì?
- Phân tích ưu và nhược điểm của Elasticsearch. Cài đặt Elasticsearch trên windows và Linux
- Quản lý Elasticsearch trên UI với Kibana. Thực hành các câu truy vấn co bản với Elasticsearch
Day 13 - Lesson 10 - Xây dựng Centralised Log Analyses
- Review Assignment & Lý thuyết Lesson 12
- Logstash là gì
- Cài đặt logstash
- Đẩy dữ liệu vào elasticsearch bằng logstash
- Xử lý filter tối ưu tìm kiếm trong elasticsearch bằng java spring boot
Day 14 - Lesson 4 - Xây dựng các thành phần của hệ thống microservices
- Review toàn bộ kiến thức trong package 4
- Kiểm tra lại tổng thể các thành phần trong hệ thống
- Run tất cả các services con, test hoạt động và performance cho toàn bộ hệ thống
- Tổng kết kiến thức và khuyến khích học viên đặt các câu hỏi mở rộng về kiến trúc hệ thống
Day 15 - Thi hết học phần
- Thi kết thúc học phần

Học phần 6: DevOps
Day 1 - Tổng quan về DevOps
- DevOps là gì?
- DevOps cần phải học những gì?
- Tìm hiểu các khái niệm: DNS, HTTP, HTTPS, FTP, SSL
- Cài đặt các web server phổ biến: Apache, Nginx
Day 2 - Các khái nhiệm và chức năng thường được sử dụng
- Review Lý thuyết Lesson 2
- Caching Server, Load balancer, Reverse Proxy
- Dùng các Docker container build nhiều server dưới local sử dụng loadbalancer để cân bằng tải server
- Quản lý version code với: Github, Gitlab, Bitbucket. Các gitflow thường dùng.
- Thực hành quản lý code với github
Day 3 - Triển khai CI/CD cho hệ thống microservice
- Review Lý thuyết Lesson 2
- CI là gì, các stage trong CI
- Phân biệt Multi repos vs Monorepo
- CD là gì
- Một số ví dụ với CI/CD pipeline sử dụng các công cụ, môi trường khác nhau
- Thực hành setup CI/CD với Mock project cho department service và github
Day 4 - Triển khai giám sát cho hệ thống microservice - buổi 1
- Review Lý thuyết Lesson 3
- Giới thiệu chung về hệ thống Monitoring & Alerting
- Giới thiệu về các Layer cần giám sát và các thông số giám sát từng layer
- Thực hành triển khai giám sát cho Mock project (Hệ điều hành, port) bằng prometheus + grafana. Setup alerts gửi vào email/slack/telegram
Day 5 - Triển khai giám sát cho hệ thống microservice - buổi 2
- Review Lý thuyết Lesson 4
- Giới thiệu chung về hệ thống Logging
- Giới thiệu về các Layer cần lấy log và các loại log từng layer
- Thực hành triển khai giám sát cho Mock project (log của ứng dụng) bằng ELK.
- Tìm hiểu về các bước Troubleshoot & xử lý lỗi khi hệ thống gặp vấn đề.
Day 6 - System architecture
- Review Lý thuyết Lesson 4
- Giới thiệu về kiến trúc hệ thống thực tế trong môi trường Production
- Giới thiệu về cách thiết lập HA, LB, Scale của hệ thống trong môi trường Production
- Ôn tập lại kiến thức toàn bộ học phần
Thi hết học phần & Tổng kết Q&A
- Thi trắc nghiệm đánh giá năng lực học viên
- Tổng kết kiến thức và khuyến khích học viên đặt các câu hỏi mở rộng về Devops

Học viên nói gì về chúng tôi?











