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...

hình ảnh giới thiệu

Đố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?

LÝ DO LỰA CHỌN CHÚNG TÔI? VTI Academy trực thuộc VTI Group - tập đoàn công nghệ hàng đầu chuyên gia công phần mềm cho thị trường trong và ngoài nước
LÝ DO LỰA CHỌN CHÚNG TÔI? Chương trình đào tạo chất lượng từ cơ bản tới nâng cao, bám sát yêu cầu của doanh nghiệp
LÝ DO LỰA CHỌN CHÚNG TÔI? Đội ngũ giảng viên là các chuyên gia lâu năm kinh nghiệm, luôn hỗ trợ học viên 24/7
LÝ DO LỰA CHỌN CHÚNG TÔI? Tham gia các dự án xuyên suốt khóa học để tăng khả năng thực chiến
LÝ DO LỰA CHỌN CHÚNG TÔI? Cam kết việc làm sau khóa học
LÝ DO LỰA CHỌN VTI ACADEMY?
Giá trị nhận được sau khóa học

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
Học phần 1: DataBase MySQL

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 2: JavaCore

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 3: Spring FW

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 4: Basic Linux OS (Kiến thức căn bản về hệ điều hành Linux OS)

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 5: MicroService

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 phần 6: DevOps

Đối tác

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

Đăng ký tư vấn
cùng đội ngũ chuyên gia VTI ACADEMY!!

icon đăng ký