
Hướng dẫn viết tài liệu đặc tả các yêu cầu chức năng, phi chức năng để chuyển giao cho khách hàng
Nội dung tham khảo: Review tài liệu đặc tả yêu cầu dự án của học viên lớp B2
Hướng dẫn thiết kế hạ tầng infra để triển khai ứng dụng Backend Service
Hướng dẫn thiết kế kiến trúc và mô hình ứng dụng
Hướng dẫn phân tích thiết kế database chuyên nghiệp
Hướng dẫn tạo project base chuẩn như trong các dự án thực tế
Giải thích chi tiết về các yếu tố cấu thành nên một Backend service hoàn chỉnh, chất lượng cao dễ dàng sử dụng, tích hợp và chuyển giao cho khách hàng
Hướng dẫn viết code mẫu RESTful API với mockup data
Hướng dẫn viết API tạo mới user chuẩn RESTful
Hướng dẫn sử dụng và quản lý @Transactional của Spring Boot
Viết API cập nhật và xoá user
Viết API lấy danh sách và tìm kiếm user
Validate dữ liệu từ API
Handle exception - xử lý ngoại lệ xảy ra khi chạy ứng dụng
Hướng dẫn chạy debug mode với IntelliJ
SendGrid là gì?
Các tính năng của SendGrid
Tích hợp SendGrid vào Spring Boot
Tạo Dynamic Template HTML
Xây dựng chức năng gửi mail với Dynamic Template
Tích hợp chức năng gửi email vào api tạo mới user
Viết API confirm email
Source code: https://github.com/luongquoctay87/backend-service/tree/email-verification
Spring Security là gì?
Giải thích về mô hình Oauth Token
Tích hợp Spring Security vào Spring Boot
Tạo Access token
Tạo Refresh Token
Verify Token
Xác thực User
Hướng dẫn phân quyền cho User mô hình phân quyền RBAC
Unit test là gì?
Đặc điểm của Unit test
Lợi ích của Unit test
Viết unit test với Junit 5
SonarLint là gì?
Tính năng chính của SonarLint
Lợi ích của việc sử dụng SonarLint
Cách sử dụng SonarLint
Khi nào nên dùng SonarLint?
Tối ưu code Backend Service với SonarLint
ELK là gì?
Tổng quan về kiến trúc của ELK
Tích hợp ELK vào Spring Boot
Grafana là gì?
Prometheus là gì?
Các bước tích hợp Grafana, Prometheus vào Spring Boot
Trực quan hoá hệ thống giám sát ứng dụng trên browser
Giới thiệu về Google Jib
Cấu hình Jib với Spring Boot
Demo đóng gói với Google Jib
1. Jenkins là gì?
Jenkins là một công cụ mã nguồn mở dùng để tự động hóa quá trình triển khai phần mềm, đặc biệt là trong việc thiết lập quy trình CI/CD (Continuous Integration/Continuous Delivery). Được viết bằng Java, Jenkins có khả năng tích hợp với rất nhiều công cụ và hệ thống khác để hỗ trợ việc xây dựng, kiểm thử và triển khai ứng dụng một cách tự động, liên tục.
Jenkins là một công cụ quan trọng trong DevOps và thường được dùng trong các hệ thống lớn để giảm thiểu thời gian và công sức cần thiết cho việc kiểm thử, xây dựng và triển khai phần mềm, từ đó giúp nâng cao chất lượng sản phẩm và tăng tốc độ ra mắt.
2. Các tính năng của Jenkins
Tích hợp liên tục (Continuous Integration – CI): Jenkins tự động hóa quá trình tích hợp mã mới, kiểm thử và xây dựng ứng dụng khi có thay đổi trên các nhánh mã. Điều này giúp phát hiện lỗi sớm trong quá trình phát triển, cải thiện chất lượng mã, và giảm thiểu rủi ro tích hợp.
Triển khai liên tục (Continuous Delivery – CD): Jenkins hỗ trợ triển khai liên tục bằng cách tự động hóa quá trình triển khai ứng dụng lên các môi trường khác nhau (như staging, UAT, production). Nhờ đó, các nhóm phát triển có thể triển khai phần mềm thường xuyên hơn và ít gặp sự cố hơn.
Pipeline as Code: Jenkins cho phép định nghĩa pipeline (các bước trong quy trình CI/CD) dưới dạng mã, thường được viết trong tệp Jenkinsfile. Điều này giúp tạo ra quy trình CI/CD nhất quán, dễ dàng quản lý và chia sẻ giữa các dự án.
Xây dựng và kiểm thử tự động: Jenkins có khả năng tích hợp với các công cụ kiểm thử tự động như JUnit, Selenium và các công cụ kiểm thử khác. Nhờ vậy, Jenkins có thể chạy các bộ kiểm thử tự động mỗi khi có thay đổi mã nguồn, giúp đảm bảo tính ổn định của ứng dụng.
Quản lý plugins: Jenkins có một hệ sinh thái plugin phong phú giúp mở rộng chức năng, hỗ trợ tích hợp với nhiều công cụ khác nhau như Git, Docker, Kubernetes, Maven, Slack và nhiều công cụ DevOps khác.
Quản lý người dùng và quyền truy cập: Jenkins hỗ trợ phân quyền người dùng và nhóm người dùng khác nhau. Điều này giúp quản lý quyền truy cập vào các dự án, pipeline và các tài nguyên trong Jenkins một cách hiệu quả và bảo mật.
Tích hợp với các hệ thống kiểm soát phiên bản: Jenkins dễ dàng tích hợp với các hệ thống quản lý mã nguồn như Git, SVN, Mercurial, giúp tự động lấy mã nguồn từ các kho lưu trữ để xây dựng và kiểm thử.
Quản lý đa nhánh và đa pipeline: Jenkins cho phép tạo và quản lý nhiều pipeline cùng lúc cho các nhánh mã khác nhau, hoặc cho các dự án khác nhau trong cùng một hệ thống.
Giám sát và thông báo: Jenkins có thể giám sát và gửi thông báo khi một pipeline hoàn thành hoặc gặp lỗi, thông qua email, Slack, hoặc các công cụ chat khác. Điều này giúp các nhóm phát triển nhanh chóng nhận biết và xử lý sự cố.
Tích hợp với Docker và Kubernetes: Jenkins có thể kết hợp với Docker để xây dựng và triển khai các container, hoặc với Kubernetes để triển khai và quản lý các ứng dụng trong môi trường Kubernetes.
Tổng quan về Jenkins, Jenkins Pipeline, Jenkinsfile
Cài đặt Jenkins
Viết Pipeline để triển khai ứng dụng Spring Boot
? Tại sao nên học Microservice?
Trong kỷ nguyên công nghệ phát triển nhanh chóng, Microservice trở thành kiến trúc được các “ông lớn” như Netflix, Amazon, Google áp dụng để xây dựng hệ thống linh hoạt – dễ mở rộng – dễ bảo trì.Với Microservice Architecture, bạn sẽ có thể:
Thiết kế hệ thống linh hoạt, dễ dàng tích hợp với Docker, Kubernetes, Cloud.
Tăng tốc độ phát triển & triển khai: update một service mà không ảnh hưởng đến toàn bộ hệ thống.
Giảm thiểu rủi ro nhờ tính độc lập giữa các service.
Xây dựng hệ thống ổn định, dễ mở rộng, đáp ứng nhu cầu kinh doanh toàn cầu.
? Khóa học này dành cho ai?
Lập trình viên muốn nâng cao kiến thức về kiến trúc hệ thống & thiết kế ứng dụng.
Kỹ sư phần mềm đang cần triển khai ứng dụng linh hoạt, dễ mở rộng.
Nhà phát triển ứng dụng muốn áp dụng Microservice vào dự án thực tế.
? Bạn sẽ học được gì từ khóa học?
? Phần 1: Kiến Thức Nền Tảng Microservice
Hiểu về Monolithic và hạn chế của nó.
Tổng quan kiến trúc Microservice và lợi ích vượt trội.
Yếu tố quan trọng để chuyển đổi từ Monolithic sang Microservice.
? Phần 2: Thiết Kế Microservice
Phân chia hệ thống thành các service độc lập hợp lý.
Giao tiếp giữa service: REST, gRPC, Message Queue.
Thiết kế cơ sở dữ liệu phân tán, quản lý phiên bản dữ liệu.
Giải quyết vấn đề đồng bộ hóa & trạng thái hệ thống.
? Phần 3: Xây Dựng & Triển Khai
Xây dựng service độc lập với Spring Boot 3.xx.
Triển khai trên Docker, Kubernetes.
Quản lý lỗi & tối ưu hiệu suất hệ thống phân tán.
Tích hợp Prometheus, ELK stack để giám sát & logging.
? Phần 4: Vận Hành & Mở Rộng
Quản lý cấu hình động & điều phối dịch vụ.
Load balancing, auto-scaling, fault recovery.
Xử lý các thách thức thực tế: tính nhất quán dữ liệu, giao dịch phân tán, bảo mật microservice.
? Điểm khác biệt của khóa học
Công nghệ mới nhất: Spring Boot 3, Java 17, JPA, RESTful API, PostgreSQL, MongoDB, Kafka, Redis, RabbitMQ, gRPC, Circuit Breaker, Docker, Kubernetes, Helm, AWS, ELK, ArgoCD, CI/CD Pipeline…
Kiến thức chuyên sâu – thực tế: Áp dụng các best practice đã triển khai trong hệ thống hàng triệu người dùng.
Giảng viên thực chiến: Học cùng Tây Java – lập trình viên với 15 năm kinh nghiệm, từng thiết kế & triển khai hệ thống lớn toàn cầu.
Lộ trình rõ ràng: Từ cơ bản → nâng cao, học từng bước chắc chắn.
Thực hành dự án thực tế: Mô phỏng hệ thống microservice như tại doanh nghiệp lớn.
? Kết quả sau khóa học
Hiểu sâu về Microservice Architecture và biết cách triển khai thực tế.
Làm chủ Spring Boot Microservice kết hợp Docker, Kubernetes, CI/CD.
Tích hợp & triển khai các công cụ giám sát: Prometheus, ELK stack.
Có dự án thực hành quy mô lớn để bổ sung vào CV.
Sẵn sàng trở thành Backend Developer / System Architect trong các công ty lớn.
? Đây là khóa học Microservice với Java Spring Boot toàn diện nhất, giúp bạn từ nắm kiến thức – triển khai dự án – đến thực hành trên công nghệ mới nhất.
? Link khoá học: https://vi.tayjava.com/courses/microservice-full-series
1. Khóa học này dành cho ai?
Người mới bắt đầu muốn học lập trình backend từ đầu.
Lập trình viên đã có kiến thức cơ bản về Java và muốn chuyên sâu vào backend.
Kỹ sư phần mềm đang tìm kiếm các giải pháp tối ưu cho hệ thống backend của mình.
Sinh viên công nghệ thông tin muốn chuẩn bị kiến thức thực tiễn cho công việc sau khi ra trường.
2. Nội dung khóa học có gì đặc biệt ?
Phần 1: Xây Dựng Ứng Dụng Backend Với Java
Spring Framework: Học cách sử dụng Spring Boot, một trong những framework mạnh mẽ nhất dành cho lập trình backend với Java.
Thiết kế API RESTful: Hướng dẫn chi tiết cách xây dựng và triển khai API REST – xương sống của các hệ thống backend hiện đại.
Tương tác với cơ sở dữ liệu: Sử dụng JPA và Hibernate để quản lý dữ liệu và thao tác với các bảng trong cơ sở dữ liệu.
Phần 2: Xử Lý Bảo Mật Và Quản Lý Dữ Liệu
Bảo mật ứng dụng: Tìm hiểu cách bảo mật API, xác thực người dùng với JWT (JSON Web Token) và bảo mật hệ thống bằng Spring Security.
Quản lý dữ liệu: Học cách xử lý truy vấn dữ liệu phức tạp, tối ưu hóa cơ sở dữ liệu và sử dụng Redis để lưu trữ dữ liệu tạm thời (cache).
Phần 3: Xây Dựng Ứng Dụng Thực Tế
Triển khai dự án hoàn chỉnh: Bạn sẽ được hướng dẫn từ A đến Z cách xây dựng một hệ thống backend thực tế, bao gồm quản lý người dùng, xác thực và lưu trữ dữ liệu.
Triển khai ứng dụng: Sử dụng Docker để triển khai ứng dụng Java của bạn lên môi trường production.
Phần 4: Kỹ Thuật Tối Ưu Và Mở Rộng Hệ Thống
Cân bằng tải và tối ưu hiệu suất: Học cách xây dựng các hệ thống chịu tải lớn, tối ưu tốc độ xử lý, và cân bằng tải giữa các server.
Phân tích và giám sát: Sử dụng các công cụ như Prometheus, Grafana để giám sát và phân tích hiệu suất hệ thống.