Hoàn thiện một chu kỳ dịch vụ backend với Spring Boot và AWS

Hoàn thiện một chu kỳ xây dựng dịch vụ backend với Spring Boot, MySQL, Docker, AWS EC2 và RDS. Thông qua việc triển khai ứng dụng, bạn sẽ có được cảm giác thành tựu, đồng thời tìm hiểu các vấn đề mà lập trình viên backend thường gặp trong thực tế khi phát triển API và cách giải quyết chúng.

(5.0) 20 đánh giá

207 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

AWS
AWS
MySQL
MySQL
Docker
Docker
Spring Boot
Spring Boot
JPA
JPA
AWS
AWS
MySQL
MySQL
Docker
Docker
Spring Boot
Spring Boot
JPA
JPA

Đánh giá từ những học viên đầu tiên

5.0

5.0

애송이

37% đã tham gia

Hiện tại, sau khi đã tự học riêng về Spring Boot và JPA, tôi đã tham gia khóa học này. Tôi đã hiểu ở mức nhất định về các khái niệm Spring Boot và JPA, nhưng hoàn toàn không hình dung được chu trình tổng thể của việc triển khai REST API, cách chạy và đưa nó lên như thế nào. Sau khi học khóa này, tôi đã có thể trải nghiệm rõ ràng chu trình của một ứng dụng backend. Dù vẫn chưa học xong toàn bộ khóa, vừa học vừa tìm hiểu thêm các khái niệm như Docker, Nginx,... khiến tôi cảm thấy mọi thứ dần trở nên thông suốt hơn! Cảm ơn giảng viên vì một khóa học tuyệt vời! Nếu có kiến thức cơ bản về Java và Spring rồi tham gia khóa học, bạn thực sự có thể trải nghiệm một thế giới hoàn toàn mới đấy~ Mong giảng viên làm thêm nhiều khóa học nữa nhé :)

5.0

Aurora

100% đã tham gia

Thật tuyệt vời khi có thể thấy được toàn bộ quy trình từ ứng dụng cho đến Docker, AWS và GitHub Actions. Cảm ơn bạn vì bài giảng hay.

5.0

황쭌쭌

23% đã tham gia

Được rồi, hãy cùng xem liên tục từ đầu đến cuối thôi nào

Bạn sẽ nhận được điều này sau khi học.

  • Spring Boot

  • Spring Data JPA

  • MySQL

  • Docker

  • Docker Compose

  • AWS EC2

  • AWS RDS

  • Phân trang

  • Mối quan hệ liên kết trong JPA

  • Chỉ mục cơ sở dữ liệu

  • Giao dịch

  • Git, Github

  • CI/CD (Github Actions)

🧑‍💻 Bạn đã từng băn khoăn như thế này chưa?

  • “Tôi đã thử phát triển bằng cách xem YouTube hoặc đọc blog, nhưng liệu cách này có thực sự áp dụng được trong công việc không? Tôi không thấy tự tin…”

  • “Tôi đã tạo được API, nhưng lúc triển khai luôn gặp bế tắc nên không thể hoàn thiện đến cùng.”

  • “Tôi có thể xây dựng ứng dụng trên máy cục bộ, nhưng đám mây hay Docker trông quá phức tạp nên tôi thường né tránh…”

  • “Dịch vụ backend do tôi xây dựng, tôi muốn làm thật tốt, nhưng không biết nên bắt đầu từ đâu…”

👉 Đây là khóa học hoàn chỉnh trọn vẹn một chu kỳ giúp bạn trở thành nhà phát triển backend có kinh nghiệm từ phát triển Spring Boot đến triển khai trên AWS.

Bạn cũng có thể hoàn thành một chu trình backend thực tế.
Dự án backend được xây dựng bằng Spring Boot · MySQL · AWS

  • Khóa học này không chỉ là một ví dụ CRUD đơn giản mà còn
    mang đến trải nghiệm toàn bộ quá trình từ xây dựng ứng dụng → phát triển → triển khai → suy nghĩ về vấn đề → cải thiện tính năng
    “quy trình hoàn thiện dự án backend với cảm nhận thực tế”.

  • Nội dung học tập chính như sau:

    • Phát triển backend dựa trên Spring Boot 3.4.4 & Java 21

    • Thiết kế mô hình domain bằng JPA

    • Tích hợp cơ sở dữ liệu bằng MySQL & Docker

    • AWS EC2, RDS và triển khai

    • Phân trang, JPA, giao dịch

🎯 Bối cảnh xây dựng khóa học

Tôi cũng từng là một junior backend không có người hướng dẫn bài bản.
“Dự án tôi làm có đang được xây dựng đúng cách không?”, “Thực tế thì triển khai như thế nào?” là những câu hỏi luôn tràn ngập trong đầu tôi.

Vì vậy, khóa học này được thiết kế xoay quanh
👉 “quy trình tổng thể”, điều quan trọng hơn cả việc chỉ triển khai tính năng
👉 cấu trúc tương tự một dịch vụ thực sự vận hành
👉 chu trình phát triển backend có tính đến cả việc triển khai và bảo trì
.


Đặc điểm của khóa học này

📌 Nắm vững cùng lúc các kỹ năng thực tế dựa trên Spring Boot, MySQL và AWS!
Hoàn thiện một dự án có cấu trúc “giống một dịch vụ” bằng những công nghệ thường được sử dụng trong thực tế.

📌 90% thực hành, 10% lý thuyết. Học backend qua những đoạn code thực sự hoạt động
Tất cả code trong khóa học đều được kiểm thử trực tiếp và xác minh khả năng hoạt động theo thời gian thực. Bạn thực sự sẽ được trải nghiệm đến cả việc triển khai.

📌 Vượt xa CRUD đơn thuần, nâng cao tính nhất quán và hiệu năng dữ liệu
Thông qua transaction, bạn sẽ đảm bảo tính nhất quán của dữ liệu, thực hiện nhiều cải tiến hiệu năng và trau dồi năng lực phát triển máy chủ trong thực tế.

📌 Đây là khóa học dành cho người mới bắt đầu
Chúng tôi xây dựng một “cây cầu” giúp những người đã nắm vững kiến thức cơ bản về Java và Spring Boot bước vào thực tiễn công việc.

💡 Điểm khác biệt của khóa học là gì?

  • Đây không phải là một khóa học dạng hướng dẫn chỉ đơn giản làm theo các tính năng.

  • Ở phần đầu, bạn sẽ trực tiếp phát triển và triển khai thực tế một ứng dụng nhỏ để có được cảm giác thành tựu,

  • Vào nửa sau, chúng ta sẽ chỉ ra những khía cạnh mà một nhà phát triển backend cần cân nhắc và tập trung cùng nhau giải quyết chúng.

  • Tôi đã đưa trọn vẹn bí quyết của một nhà phát triển backend dựa trên những sai lầm và kinh nghiệm từng trải trong thực tế.

Tôi đề xuất khóa học này cho những người như sau

“Tôi muốn thử phát triển máy chủ, nhưng không biết phải làm thế nào…”

Sinh viên / nhà phát triển tương lai chưa quen với việc phát triển dịch vụ backend và cảm thấy bối rối vì không biết nên bắt đầu từ đâu để phát triển máy chủ

“Tôi không chắc mình có đang xây dựng ứng dụng tốt hay không, và không biết liệu mình có đang phát triển đúng cách không..”

Ứng viên lập trình viên / người đang tìm việc tự học Java và Spring Boot một mình

“Tôi muốn xây dựng một dịch vụ backend có thể triển khai thực tế từ đầu đến cuối, nhưng cũng chưa quen với AWS.”
Một lập trình viên junior chưa tự tin với việc thiết lập AWS hoặc triển khai ngoài môi trường phát triển local.

Sau khi hoàn thành khóa học,

  • Luồng phát triển máy chủ từng cảm thấy mơ hồ sẽ trở nên rõ ràng hơn, và bạn có thể trực tiếp trải nghiệm toàn bộ chu trình phát triển dịch vụ backend, từ lên kế hoạch, thiết kế, phát triển đến triển khai.
    → Thông qua khóa học này, bạn sẽ hoàn thiện một dự án từ đầu đến cuối và tích lũy kinh nghiệm thực tế có thể tự tin đưa vào portfolio.

  • Đã nắm được kiến thức cơ bản về Java nhưng lại bối rối vì không biết bắt đầu và cải thiện việc phát triển phần mềm trong môi trường thực tế như thế nào, đây là khóa học dành cho những người đang chuẩn bị tìm việc.
    → Khóa học này cung cấp các mẹo cải thiện hữu ích khi phát triển máy chủ, từ việc phát triển ứng dụng Spring Boot như một dịch vụ thực tế, nên rất phù hợp để bạn trau dồi cảm giác thực tế trong công việc.

  • Bạn chỉ mới phát triển trên máy tính cục bộ và muốn thử sử dụng đám mây, nhưng dù làm theo kết quả tìm kiếm vẫn không hoạt động đúng cách, khiến bạn liên tục cảm thấy nản lòng.
    → Khóa học này trình bày chi tiết về AWS máy chủ ứng dụng trên nền tảng đám mây và việc tích hợp cơ sở dữ liệu, giúp bạn xóa bỏ nỗi sợ về việc triển khai.


Bạn sẽ học những nội dung như thế này.

API: Cách giao tiếp giữa máy khách và máy chủ, yêu cầu và phản hồi dữ liệu

API là các quy tắc để các chương trình giao tiếp với nhau. Giống như thực đơn của nhà hàng, API là bản đặc tả quy định client có thể yêu cầu những gì và server sẽ phản hồi như thế nào. Thông qua phép ẩn dụ về thực đơn, bạn sẽ dễ dàng hiểu khái niệm API và học cách API được sử dụng trong các dịch vụ web thực tế.

Thực hành phát triển API trực tiếp bằng IntelliJ

Không chỉ nghe khái niệm về API rồi kết thúc. Thông qua việc sử dụng IntelliJ để trực tiếp tạo API giúp client và server trao đổi dữ liệu, bạn có thể làm quen với cấu trúc cốt lõi của các dịch vụ web cần thiết trong thực tế.

Docker: Hiểu cấu trúc cốt lõi của phát triển dựa trên container

Docker hoạt động như thế nào? Một tiến trình daemon có tên dockerd quản lý các image và container, còn chúng ta đưa ra lệnh thông qua client docker. Bạn sẽ hiểu các thành phần cốt lõi của Docker như image, container, registry và tìm hiểu một cách có hệ thống vai trò của từng thành phần.

AWS EC2: Thử trực tiếp kết nối đến máy chủ đám mây

Máy chủ đám mây không còn là điều xa lạ. Bạn sẽ tạo một phiên bản AWS EC2, trực tiếp kết nối qua terminal để làm quen với môi trường Linux, qua đó nắm vững những kiến thức cơ bản về vận hành máy chủ cần thiết trong thực tế. Bạn cũng sẽ trực tiếp thực hành cài đặt Docker, mở cổng và thiết lập nhóm bảo mật.

Kiến trúc phân lớp, phân tách DTO và Entity: Thiết kế ổn định thông qua việc phân tách trách nhiệm

Ứng dụng backend được cấu trúc như thế nào? Kiến trúc phân lớp phân tách ứng dụng theo từng vai trò, qua đó nâng cao khả năng bảo trì và mở rộng. Mỗi lớp gồm Controller, Service và Repository đều có trách nhiệm rõ ràng; DTO là đối tượng dùng để truyền dữ liệu giữa các tầng và cần được tách biệt khỏi Entity. Hãy tìm hiểu một cách có hệ thống lý do việc phân tách này quan trọng và cách thiết kế như thế nào.

Index cơ sở dữ liệu: Tìm hiểu cấu trúc bên trong để tìm kiếm nhanh

Cơ sở dữ liệu tìm dữ liệu nhanh như thế nào? Chỉ mục được sử dụng để tăng tốc độ tìm kiếm đối với một cột cụ thể trong bảng và hoạt động giống như mục lục của một cuốn sách. Hãy tìm hiểu một cách có hệ thống về các cấu trúc bên trong như B-Tree, cũng như những trường hợp nên sử dụng chỉ mục để cải thiện hiệu năng.

Phân trang và cuộn vô hạn: Phương thức cung cấp dữ liệu hiệu quả vượt qua giới hạn của OFFSET

Khi chia nhỏ và hiển thị lượng dữ liệu lớn, các truy vấn dựa trên OFFSET thường được sử dụng sẽ bị giảm hiệu năng nghiêm trọng khi chuyển đến các trang sau. Điều này là do DB phải quét lượng dữ liệu tương ứng với OFFSET trước rồi mới trả về kết quả mong muốn. Ở backend, để giải quyết vấn đề này, người ta cải thiện bằng các phương pháp như phân trang dựa trên con trỏ hoặc truy vấn phạm vi theo ID. Hãy cùng tìm hiểu một cách có hệ thống không chỉ về sự khác biệt UX giữa phân trang và cuộn vô hạn, mà còn cả sự thay đổi trong chiến lược truy vấn để tối ưu hiệu năng.

Mối quan hệ giữa bài viết và bình luận, cùng xử lý giao dịch

Trong JPA, khi thiết lập mối quan hệ giữa các entity (chẳng hạn như Post–Comment), bạn có thể sử dụng cơ chế phát hiện thay đổi (Dirty Checking) để tự động phản ánh các thay đổi vào cơ sở dữ liệu tại thời điểm transaction được commit. Ngoài ra, bạn sẽ tìm hiểu một cách có hệ thống về cách tận dụng cơ chế phát hiện thay đổi bên trong transaction, xác định phạm vi cần gộp thành một đơn vị công việc, cũng như các chiến lược xử lý dữ liệu ổn định cùng với việc thiết lập mối quan hệ giữa các entity.

Cách sử dụng Git: Từ các lệnh đơn giản đến chiến lược cộng tác và đảm bảo tính ổn định

Git là công cụ quản lý phiên bản được các nhà phát triển sử dụng nhiều nhất, nhưng không chỉ đơn thuần dùng để lưu trữ mã nguồn mà còn đóng vai trò cốt lõi trong việc cộng tác và quản lý chất lượng. Khi làm việc một mình, có vẻ chỉ cần các lệnh cơ bản như commit, push, pull là đủ, nhưng trong phát triển theo nhóm, cần có cách tiếp cận mang tính cấu trúc hơn, chẳng hạn như chiến lược nhánh và quản lý lịch sử commit.

Trong thực tế, các doanh nghiệp sử dụng Git để tổ chức quy trình review code, đảm bảo tính ổn định khi triển khai và tạo nền tảng cho phép các thành viên trong nhóm làm việc song song. Sử dụng Git đúng cách có thể giảm thiểu những nhầm lẫn phát sinh trong quá trình cộng tác và nâng cao năng suất phát triển.

Không chỉ trình bày cách sử dụng cơ bản, chúng ta còn cùng tổng hợp các chiến lược nhánh và quy trình làm việc thường được sử dụng trong thực tế.


Tích hợp GitHub Actions với AWS SSM: phương thức xác thực an toàn và tiện lợi thông qua OIDC

Một trong những vấn đề cần cân nhắc khi truy cập tài nguyên đám mây trong pipeline CI/CD là phương thức xác thực. Trước đây, việc đăng ký và sử dụng khóa người dùng AWS IAM trong GitHub Secrets là cách phổ biến, nhưng phương pháp này đi kèm với gánh nặng phải thay khóa định kỳ và nguy cơ bị lộ.

Bạn có thể tận dụng OIDC (OpenID Connect) được GitHub Actions hỗ trợ để truy cập an toàn vào các tài nguyên AWS mà không cần khóa người dùng IAM. AWS sẽ xác thực token do GitHub cấp rồi cấp quyền tạm thời, nhờ đó vừa đảm bảo tính bảo mật vừa thuận tiện mà không cần quản lý khóa riêng.

Tìm hiểu cấu trúc tích hợp giữa GitHub Actions và AWS OIDC, đồng thời khám phá cách áp dụng trong thực tế cùng với các phương pháp thiết lập cụ thể.

Lưu ý trước khi tham gia khóa học

🛠 Công cụ và môi trường sử dụng

  • IntelliJ

  • Java 21

  • Spring Boot 3.4.4

  • MySQL (Docker)

  • AWS (EC2, RDS, IAM, SSM)


  • AWS được sử dụng theo gói miễn phí (Free Tier). (Không phát sinh thêm chi phí)

  • Git, Github

  • Github Actions

Tài liệu học tập

  • Chúng tôi cung cấp tài liệu dưới dạng PDF để bạn có thể ôn tập bài giảng.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Người đang chuẩn bị xin việc

  • Những người đang chuẩn bị trở thành nhà phát triển backend

  • Dành cho những ai muốn tự mình phát triển máy chủ backend từ đầu đến khi triển khai.

  • Dành cho những ai muốn biết các điểm cần lưu ý và cách giải quyết khi phát triển dịch vụ backend

Cần biết trước khi bắt đầu?

  • Java từ cơ bản trở lên

  • Không biết rõ về Spring, Spring JPA cũng không sao. Chúng ta sẽ cùng tìm hiểu trong khóa học.

Xin chào
Đây là apiece

Xác minh Inflearn

Xác minh sự nghiệp

1,814

Học viên

63

Đánh giá

54

Trả lời

4.9

Xếp hạng

7

Các khóa học

Xin chào, tôi là nhà phát triển Hanjo각.
Tôi đã thiết kế và vận hành nhiều hệ thống backend trong môi trường dịch vụ thực tế qua thời gian làm việc tại Kakao và SK.

Tôi đưa vào nội dung chia sẻ kiến thức những vấn đề và thử nghiệm, sai lầm đã gặp trong quá trình đó, cũng như những trăn trở khi lựa chọn công nghệ.
Tôi muốn truyền đạt cùng với bối cảnh thực tế, từ việc sử dụng công nghệ khi nào và vì sao cho đến việc thiết kế hệ thống dựa trên những tiêu chí nào.

Tôi hy vọng những trăn trở và kinh nghiệm mà tôi từng trải qua sẽ giúp các bạn giảm bớt những lần thử và sai,
đồng thời đưa ra những lựa chọn tốt hơn.

Nếu có điều gì khiến bạn thắc mắc hoặc chưa hài lòng khi xem nội dung, hãy thoải mái chia sẻ với tôi bất cứ lúc nào.
Dựa trên những phản hồi chân thành của các bạn, tôi muốn cùng tạo ra những nội dung tốt hơn.

Cảm ơn bạn.

apiece.dev.ai@gmail.com

Thêm

Chương trình giảng dạy

Tất cả

61 bài giảng ∙ (8giờ 10phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

20 đánh giá

5.0

20 đánh giá

  • gwg9401136269님의 프로필 이미지
    gwg9401136269

    Đánh giá 1

    ∙

    Đánh giá trung bình 5.0

    5

    23% đã tham gia

    Được rồi, hãy cùng xem liên tục từ đầu đến cuối thôi nào

    • apiece
      Giảng viên

      Xin chào Hwang JJun JJun, hãy cùng chạy thôi! Fighting!

  • jyw07140279님의 프로필 이미지
    jyw07140279

    Đánh giá 3

    ∙

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Buổi học rất bổ ích, chỉ gồm những nội dung trọng tâm!

    • apiece
      Giảng viên

      Xin chào bạn jyw0714 :) Bạn đã rất vất vả để hoàn thành khóa học! Trong tương lai, chúng tôi sẽ nỗ lực tạo ra những nội dung phong phú hơn nữa với các bài giảng và tài liệu chất lượng. Xin cảm ơn.

  • azurealstn332885님의 프로필 이미지
    azurealstn332885

    Đánh giá 72

    ∙

    Đánh giá trung bình 4.9

    5

    100% đã tham gia

    Thật tuyệt vời khi có thể thấy được toàn bộ quy trình từ ứng dụng cho đến Docker, AWS và GitHub Actions. Cảm ơn bạn vì bài giảng hay.

    • apiece
      Giảng viên

      Chào bạn Aurora! Cảm ơn bạn đã theo dõi bài giảng đến cuối cùng và để lại đánh giá. Mình rất vui vì bài giảng đã giúp bạn hiểu được luồng tổng thể. Chúc bạn từ nay về sau luôn gặp thật nhiều điều tốt đẹp. Xin cảm ơn bạn!

  • wjdtjsdnd127786님의 프로필 이미지
    wjdtjsdnd127786

    Đánh giá 1

    ∙

    Đánh giá trung bình 5.0

    5

    24% đã tham gia

    Vừa hiểu về công cụ lại vừa thấy kết quả trực tiếp, thật tốt!

    • apiece
      Giảng viên

      Xin chào innovation0304 Tôi rất vui khi bạn cảm thấy hài lòng vì đã thấy được kết quả cụ thể. Cảm ơn bạn đã đánh giá khóa học. Trong tương lai, tôi sẽ tiếp tục cung cấp các bài giảng và tài liệu hữu ích thiết thực :)

  • bookoo14588605님의 프로필 이미지
    bookoo14588605

    Đánh giá 1

    ∙

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    37% đã tham gia

    Hiện tại, sau khi đã tự học riêng về Spring Boot và JPA, tôi đã tham gia khóa học này. Tôi đã hiểu ở mức nhất định về các khái niệm Spring Boot và JPA, nhưng hoàn toàn không hình dung được chu trình tổng thể của việc triển khai REST API, cách chạy và đưa nó lên như thế nào. Sau khi học khóa này, tôi đã có thể trải nghiệm rõ ràng chu trình của một ứng dụng backend. Dù vẫn chưa học xong toàn bộ khóa, vừa học vừa tìm hiểu thêm các khái niệm như Docker, Nginx,... khiến tôi cảm thấy mọi thứ dần trở nên thông suốt hơn! Cảm ơn giảng viên vì một khóa học tuyệt vời! Nếu có kiến thức cơ bản về Java và Spring rồi tham gia khóa học, bạn thực sự có thể trải nghiệm một thế giới hoàn toàn mới đấy~ Mong giảng viên làm thêm nhiều khóa học nữa nhé :)

    • apiece
      Giảng viên

      Xin chào, thực sự cảm ơn bạn vì bài đánh giá khóa học đầy tâm huyết! 😊 Tôi cũng rất vui khi biết rằng những khái niệm bạn học được với Spring Boot và JPA đang dần được kết nối với quy trình vận hành của các dịch vụ backend thực tế. Đặc biệt, việc bạn chia sẻ rằng khóa học đã giúp giải tỏa sự mơ hồ về cách chạy và triển khai ứng dụng sau khi hiện thực hóa API thực sự là nguồn động lực lớn đối với tôi. Ngoài ra, việc bạn còn chủ động tìm hiểu và thực hành Docker cũng như Nginx cho thấy bạn đang từng bước biến nội dung khóa học thành kiến thức của riêng mình. Tôi tin rằng trải nghiệm kết nối từ khâu hiện thực hóa, chạy ứng dụng cho đến triển khai như vậy sẽ là nền tảng vững chắc cho bạn khi trực tiếp xây dựng dịch vụ trong tương lai. Tôi sẽ luôn cổ vũ để bạn có thể nắm bắt rõ hơn mạch kiến thức đó trong những bài học còn lại! Tôi vẫn đang tích cực hoạt động để mang đến những nội dung chất lượng hơn, hỗ trợ thiết thực cho công việc, nên rất mong nhận được sự quan tâm của bạn. Nếu gặp khó khăn hoặc có điều gì thắc mắc trong quá trình học, hãy thoải mái để lại câu hỏi nhé. Xin cảm ơn :)

Khóa học khác của apiece

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!