inflearn logo

Docker của nhà phát triển Toss, người vận hành cơ sở hạ tầng tài chính

Khóa học này không chỉ dừng lại ở việc hướng dẫn cách sử dụng Docker như một công cụ đơn thuần, mà được truyền tải dưới góc nhìn giải quyết những trăn trở và vấn đề thực tế phát sinh trong công việc. Từ những lỗi không thể dự đoán do sự khác biệt giữa môi trường phát triển và môi trường vận hành, những sai sót trong thiết lập do khái niệm về Image và Container còn mơ hồ, cho đến nỗi lo lắng về việc "phải biết đến mức nào mới có thể áp dụng vào thực tế" — tất cả sẽ được giải thích dựa trên kinh nghiệm trực tiếp từ việc vận hành hạ tầng tài chính trong ngành. Thay vì chỉ liệt kê các câu lệnh, khóa học tập trung vào các ví dụ thực tế về lý do tại sao cấu trúc này lại cần thiết, cách thiết kế Image như thế nào để dễ dàng bảo trì, và cách quản lý Container ra sao để vận hành dịch vụ ổn định. Đặc biệt, với việc chú trọng vào thực hành hơn là lý thuyết, khóa học tập trung vào việc nâng cao năng lực của học viên từ mức "biết dùng" lên mức "hiểu dưới góc độ vận hành" thông qua việc trực tiếp quan sát và thực hiện. Đây là khóa học đưa ra những tiêu chuẩn và định hướng thực tiễn cho những người mới bắt đầu tiếp cận Docker, những người đã từng sử dụng nhưng chưa nắm vững khái niệm, và những nhà phát triển muốn nâng tầm tư duy về hạ tầng của mình.

53 học viên đang tham gia khóa học này

Độ khó Nhập môn

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

Docker
Docker
GitHub
GitHub
docker-compose
docker-compose
docker-volume
docker-volume
container
container
Docker
Docker
GitHub
GitHub
docker-compose
docker-compose
docker-volume
docker-volume
container
container

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

  • Khả năng hiểu và giải thích cấu trúc Docker Image và Container dưới góc độ thực tế công việc.

  • Khả năng tự do tạo và quản lý container bằng cách sử dụng các lệnh Docker cơ bản

  • Khả năng viết Dockerfile cũng như thực hiện xây dựng và tối ưu hóa hình ảnh (image)

  • Khả năng cấu hình môi trường container một cách ổn định thông qua thiết lập Volume và Network

  • Khả năng cấu hình dịch vụ đa container sử dụng Docker Compose

  • Khả năng hiểu cấu trúc Dangling Image và bộ nhớ đệm (cache), đồng thời có năng lực quản lý và dọn dẹp hình ảnh.

  • Khả năng theo dõi và giải quyết vấn đề thông qua việc kiểm tra log container và quản lý vòng đời.

  • Khả năng cấu hình chuẩn hóa môi trường phát triển local dựa trên Docker

Toss sử dụng Docker cho nền tảng tài chính... Chia sẻ trực tiếp từ nhà phát triển.

Nội dung dưới đây là nội dung cuộc hội thoại thực tế.

😁 Nhà phát triển Toss : Vậy là chúng ta đã thử qua Kubernetes rồi, giờ chắc cũng phải xử lý cả Docker nữa nhỉ?? Nghĩ lại thì đáng lẽ phải làm Docker trước mới đúng, không hiểu sao lại làm K8s trước nữa hahaha

😄Hong : Tôi... mệt quá, cho tôi nghỉ một chút rồi làm tiếp được không?? Tôi đã làm việc xuyên cả kỳ nghỉ Tết rồi...

😁Người phỏng vấn Kakao : Phải biết ơn đi chứ!!! Phải nghĩ đến việc đóng góp vào công việc ý nghĩa này, nơi mà cả cậu và người xem đều được học hỏi, nghỉ ngơi cái gì mà nghỉ ngơi. Tôi cũng có nhiều thứ muốn làm lắm, mau làm việc đi

😄 Người phỏng vấn Naver : Ở đây hơi đáng sợ nhỉ;;

😄Hong : .... Vâng các anh.. Docker lại là cái gì mà muốn dùng nữa đây..

😁 Nhà phát triển Toss : Không, thực ra Docker là kiến thức cơ bản mà! Tôi nghĩ nếu không biết cách sử dụng Docker thì thực sự là quá lười cập nhật kiến thức hiện đại rồi, nên nếu mọi người tìm hiểu về Docker một chút thì sẽ giúp ích được rất nhiều đấy, tôi có thể đảm bảo điều đó!

😄Hong : Được rồi.. Tôi hiểu rồi, chúng ta đã làm về K8s rồi nên hãy cùng xử lý cả Docker nữa nhé... Tôi sẽ cố gắng đầu tư thêm công sức vào nó

⎈ Liệu có phải lập trình viên backend chỉ cần viết mã ứng dụng là xong không??

Các bạn đang thực hiện công việc phát triển như thế nào trong thực tế?? Các bạn chỉ đơn thuần là viết code thôi sao?? Tùy vào môi trường làm việc mà sẽ có trường hợp các bạn trực tiếp xây dựng môi trường hạ tầng, cũng có trường hợp chỉ đơn thuần là viết code. Thế nhưng liệu việc chỉ đơn thuần viết code có thực sự đúng đắn về mặt lâu dài khi nghĩ đến sự nghiệp của mình hay không??

Câu trả lời cho câu hỏi này nằm ngay trong chính khóa học này. Thông qua khóa học, bạn sẽ được học cách sử dụng Docker để duy trì và quản lý các dịch vụ bằng cách tối ưu hóa container, giúp quản lý tài nguyên hiệu quả hơn so với VM, đồng thời tìm hiểu về kết nối Volume để đảm bảo tính toàn vẹn của dữ liệu và xử lý mạng.

Đây không chỉ đơn thuần là một bài giảng về lý thuyết. Tôi hy vọng bạn sẽ dành thời gian để học cách trực tiếp sử dụng và triển khai nền tảng Docker thông qua nhiều mã nguồn thực tế khác nhau.🚀

🐳 Tại sao lại là Docker!!

Docker là một nền tảng container giúp ứng dụng có thể chạy đồng nhất ở bất cứ đâu.
Đây là công cụ hạ tầng container tiêu biểu và được sử dụng phổ biến nhất trong hệ thống phát triển hiện nay, giúp giải quyết triệt để các vấn đề phát sinh do sự khác biệt giữa môi trường phát triển, môi trường thử nghiệm và môi trường vận hành, đồng thời giúp quản lý chúng một cách hiệu quả.

Docker có những giá trị cốt lõi sau đây.

  • Tính nhất quán của môi trường

    • Duy trì môi trường phát triển, staging và sản xuất giống nhau để loại bỏ sự khác biệt khi thực thi.

  • Ảo hóa nhẹ

    • Cung cấp phương pháp ảo hóa dựa trên container, giúp khởi chạy nhanh và nhẹ hơn nhiều so với VM.

  • Triển khai nhanh chóng

    • Với việc triển khai dựa trên hình ảnh (image), bạn có thể khởi chạy và mở rộng ứng dụng chỉ trong vài giây.

  • Cô lập

    • Thiết lập môi trường thực thi độc lập mà không gây xung đột phụ thuộc giữa các ứng dụng.

  • Khả năng mở rộng & Khả năng di động

    • Có thể chạy theo cùng một cách ở bất cứ đâu, dù là cục bộ (local), tại chỗ (on-premises) hay trên đám mây (cloud).

Trong tài liệu chính thức, Docker được mô tả như sau.

Docker là một nền tảng mở để phát triển, vận chuyển và chạy các ứng dụng. Docker cho phép bạn tách biệt ứng dụng khỏi cơ sở hạ tầng để có thể phân phối phần mềm một cách nhanh chóng. Với Docker, bạn có thể quản lý cơ sở hạ tầng theo cùng cách mà bạn quản lý các ứng dụng của mình. Bằng cách tận dụng các phương pháp của Docker để vận chuyển, kiểm thử và triển khai mã nguồn, bạn có thể giảm đáng kể khoảng thời gian từ khi viết mã đến khi chạy nó trong môi trường thực tế.


( Docker là một nền tảng mở để phát triển, vận chuyển và chạy các ứng dụng. Docker cho phép bạn tách biệt ứng dụng khỏi cơ sở hạ tầng, từ đó giúp phân phối phần mềm một cách nhanh chóng. Với Docker, bạn có thể quản lý cơ sở hạ tầng theo cùng một cách mà bạn quản lý các ứng dụng của mình. Ngoài ra, bằng cách tận dụng các phương pháp luận của Docker trong việc triển khai, kiểm thử và thực thi mã nguồn, bạn có thể giảm đáng kể độ trễ từ khi viết mã cho đến khi nó được chạy trong môi trường thực tế. )

Hệ thống backend hiện đại không còn là cấu trúc đơn server, đơn ứng dụng nữa. Vô số microservices giao tiếp với nhau, lưu lượng truy cập không thể dự đoán và sự cố có thể xảy ra bất cứ lúc nào. Thông qua khóa học này, hy vọng bạn sẽ hiểu Docker không chỉ là một "công cụ" đơn thuần mà là một nền tảng hạ tầng chịu trách nhiệm vận hành thực tế, đồng thời tích lũy kinh nghiệm sử dụng Docker có thể áp dụng ngay vào công việc thực tế bằng cách tự mình cấu hình và vận hành từ môi trường local đến cấp độ Production. 🚀

🍡 Xem trước nội dung bài giảng thực tế

Docker Named Volume để duy trì dữ liệu lâu dài

Private Docker Registry sử dụng GHCR (Github Container Registry)

Mô hình Cache sử dụng Image Layer và Dangling Image

🚀 Các thông báo tuyển dụng thực tế yêu cầu những gì??

Nhà phát triển Backend tại Megazone Cloud

Nhà phát triển Backend Nol Universe

Nhà phát triển Backend Nexon Platform

Nhà phát triển Backend Kakao

Đặc điểm của bài giảng này

📌 Khóa học Docker cơ bản từ nhà phát triển Toss, người đang vận hành và phát triển hạ tầng tài chính

  • Rất khó để tìm thấy trường hợp một khóa học được xây dựng cùng với các nhà phát triển đang làm việc thực tế. Với sự tham gia của tôi - người thuyết trình và nhà phát triển đang làm việc tại Toss, bạn có thể học về khung cơ bản của Docker cũng như cách cấu hình các dịch vụ bổ sung. Qua đó, tôi đã chuẩn bị những nội dung giúp bạn có thể học hỏi rộng rãi, tập trung vào thực tiễn.


📌 Chương trình học với hơn 90% là thực hành

  • Cấu trúc hạ tầng là một chủ đề rất hay để khai thác về mặt lý thuyết. Tuy nhiên, sự khác biệt giữa một bài giảng chỉ thuần lý thuyết và phương pháp mà các bạn thực sự triển khai rồi kiểm chứng là rất rõ ràng. Vì hầu hết thời lượng được cấu trúc cùng với các bài thực hành, nên chương trình học này đã được ghi hình để mang lại hiệu quả cao hơn nữa.


📌 Nếu là Junior biết điều này thì là một Junior giỏi.. Nếu là Senior biết điều này thì là một Senior có năng lực, Docker dành cho mục tiêu đó

  • Bạn chỉ đơn giản nghĩ rằng mình đã cấu hình hạ tầng thông qua AWS! thôi sao?? Trong việc xây dựng hạ tầng hiện đại, không thể không nhắc đến Docker. Sẽ thế nào nếu một nhân viên cấp dưới (Junior) nắm rõ những nội dung này?? Và sẽ ra sao nếu một nhân viên cấp cao (Senior) lại không biết đến chúng?? Đây là cơ hội để các bạn có thể tự mình tạo dựng nên sự nghiệp của chính mình.


🤭 Sơ yếu lý lịch của nhà phát triển Toss, người đã cùng chuẩn bị bài giảng này


Hồ sơ giảng viên

Tôi hiện đang làm việc tại Toss với tư cách là nhà phát triển máy chủ backend với 8 năm kinh nghiệm.

Tôi tốt nghiệp chuyên ngành Công nghệ thông tin tại một trường đại học ở tỉnh, hiện đang sử dụng Java & Spring làm kỹ thuật chính và cũng rất quan tâm đến các ngôn ngữ lập trình bậc thấp. Tôi bén duyên với Hong qua một buổi hội thảo và vẫn giữ liên lạc cho đến nay, hiện tại chúng tôi đang cùng nhau hoạt động và quay bài giảng chung như thế này.

[Hiện tại] Nhà phát triển Server tại Toss

[Cựu] Kỹ sư máy chủ KT

[Cựu] Nhà phát triển máy chủ nền tảng Nexon

Lưu ý

Môi trường thực hành

  • Hệ điều hành

    • Apple M3 Air

    • Docker version 28.0.0, build f9ced58158

Tôi đang vận hành một phòng chat mở để giúp các bạn chuẩn bị cho sự nghiệp của mình. Rất mong nhận được sự quan tâm của các bạn!

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

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

  • Nhà phát triển đang sử dụng Docker nhưng vẫn hay nhầm lẫn giữa khái niệm Image và Container, dẫn đến việc lặp lại các sai sót khi thiết lập mỗi lần.

  • Nhà phát triển đang bị căng thẳng bởi vấn đề khác biệt môi trường theo kiểu “chạy được ở máy cá nhân (local) nhưng lại không chạy được trên máy chủ”.

  • Nhà phát triển luôn cấu hình dự án theo kiểu tạm bợ vì không hiểu rõ về Dockerfile và Compose.

  • Nhà phát triển trẻ đang gặp khó khăn trong việc kiểm tra log container, quản lý vòng đời và dọn dẹp tài nguyên.

  • Những nhà phát triển cảm thấy áp lực khi tham gia vào dự án thực tế hoặc công việc vận hành vì lý do thiếu kiến thức về cơ sở hạ tầng (infrastructure).

Xin chào
Đây là Hong

Xác minh Inflearn

Xác minh sự nghiệp

8,771

Học viên

562

Đánh giá

156

Trả lời

4.7

Xếp hạng

30

Các khóa học

Giới thiệu bản thân

Tôi bắt đầu học lập trình sau một thời gian dài lười biếng ở nhà và cảm thấy hứng thú với nó, hiện tại tôi đang đảm nhận việc phát triển máy chủ nền tảng (platform server) tại Pangyo. Tôi tiếp tục hoạt động với tư cách là người chia sẻ kiến thức vì muốn cung cấp cho các bạn phương pháp tôi đã học cũng như những vấn đề và giải pháp thực tế mà các bạn có thể gặp phải trong công việc.

 

Bài giảng không chỉ được tạo ra từ kiến thức của riêng tôi. Mọi bài giảng đều có sự đồng hành của tất cả các bạn.

 

Kinh nghiệm của người chia sẻ kiến thức

[Trước đây] Nhà phát triển Blockchain liên quan đến Sandbox IP

[Cựu] Nhà phát triển Backend Metaverse

[Hiện tại] Nhà phát triển server đang làm việc lâu năm tại Pangyo

 

Lịch sử phỏng vấn

Các câu hỏi khác

  • unduck2022@gmail.com

Thêm

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

Tất cả

23 bài giảng ∙ (6giờ 2phú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á

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

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

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!

Ưu đãi có thời hạn

834.738 ₫

59%

2.086.844 ₫