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?
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 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
- (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
- (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)
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 4 - 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 4 - 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 4 - 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 4 - 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 4 - 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 4 - 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 - 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 - Lesson 4 - Thi hết học phần
- Thi trắc nghiệm đánh giá năng lực học viên
Học phần 6: DevOps
Day 1 - Lesson 5 - Tổng quan về DevOps
- DevOps là gì?
- DevOps cần phải học những gì?
- Các câu lệnh cần thiết trong terminal macos; linux, CMD hay powercell trong window
- 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 - Lesson 5 - Các khái nhiệm và chức năng thường được sử dụng
- Review Lý thuyết Lesson 1
- Process Management
- Threads and Concurrency
- Sockets & Virtualization
- I/O management
- Memory storage and File systems.
- Docker command
Day 3 - Lesson 5 - 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, Firewall
- Quản lý version code với: Github, Gitlab, Bitbucket
- Monitor server với: Nagios, Zabbix, Icing, Datadog
- Dùng các Docker container build nhiều server dưới local sử dụng loadbalancer để cân bằng tải server
Day 4 - Lesson 5 - Triển khai CI/CD cho hệ thống microservice
- Review Assignment & Lý thuyết Lesson 1,2,3
- CI/CD là gì?
- Triển khai CI/CD với Gitlab CI
- Tổng kết nội dung học phần DevOps
Học phần 7: Intermediate System Admin (Quản Trị Hệ Thống)
Day 5 - Phần mềm hệ thống
- Review bài tập Day 4
- Kiến thức Database và WebService; Queue and Caching
- Hướng dẫn cài đặt và cấu hình Database và WebService; Queue and Caching
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)
Day 6 - Networking
- Review bài tập Day 5
- Kiến thức về giao thức mạng TCP/UDP , IP, ICMP, BGP, OSPF; Kiến thức về LAN, VLAN, IP, Subnet, Gateway, Routing, MAC Address, NIC
- Kiến thức về thiết bị phần cứng mạng ( Hub, Switch, Router)
- Hướng dẫn cài đặt và cấu hình network, sử dụng các công cụ troubleshooting network (ping, telnet, traceroute, mtr, nmap, nc, tcpdump ...)
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)
Day 7 - Storage
- Review bài tập Day 6
- Kiến thức về DAS và NAS Storage
- Hướng dẫn cài đặt và cấu hình hệ thống NAS storage ( NFS or CIFS storage)
- Kiến thức về SAN và Object Storage
- Hướng dẫn cài đặt và cấu hình hệ thống Object Storage (Ceph/Minio storage)
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)
Day 8 - Security
- Review bài tập Day 7
- Kiến thức chung về bảo mật; thuật toán mã hóa và hàm băm ( symmetric, asymmetric encryption and hash function); Kiến thức về mã hóa đường truyền TLS/SSL; Kiến thức mã hóa data; Kiến thức về Firewall (tcp/ip blocking) và Web Application Firewall (http blocking)
- Hướng dẫn cài đặt và cấu hình Firewalld /Iptable trên linux
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)
Day 9 - Monitoring, Logging and Alerting
- Review bài tập Day 8
- Kiến thức về Monitoring, Loging and Alerting
- Hướng dẫn cài đặt và cấu hình hệ thống Monitoring (sử dụng Zabbix) Hướng dẫn cài đặt và cấu hình hệ thống Logging (sử dụng Rsyslog/ELK )
- Trắc nghiệm kiến thức lý thuyết và thực hành đã học (Quiz and Assignment)
Day 10 - System Architecture
- Review bài tập Day 9
- Kiến thức về Web Application Architecture và Deployment Architecture
- Thực hành đánh giá điểm mạnh/yếu trên các bản vẽ kiến trúc deployment có sẵn (đánh giá bản vẽ Monolithic, Microservices and Serverless Architecture)
- 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 8
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ề quản trị hệ thống