inflearn logo

CI/CD GitOps thực tiễn với Jenkins và ArgoCD

Vượt ra ngoài CI/CD truyền thống dựa trên Jenkins, khóa học còn bao quát cả việc triển khai GitOps bằng ArgoCD. Bạn sẽ trực tiếp thiết kế và triển khai chiến lược CI/CD·GitOps cho từng môi trường dev·staging·production bằng cách kết hợp Jenkins và ArgoCD. Bạn sẽ làm việc với Jenkins theo mô hình Push và ArgoCD theo mô hình Pull, trực tiếp so sánh hai phương thức trên cùng một cluster để hoàn thiện pipeline triển khai hybrid mang tính thực tiễn. Thực hành các kỹ thuật triển khai cốt lõi cần thiết cho vận hành, bao gồm Canary, Blue-Green, RBAC, quy trình phê duyệt, ứng phó sự cố và tự động rollback.

(5.0) 4 đánh giá

301 học viên

Độ khó Cơ bản

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

Docker
Docker
Jenkins
Jenkins
Kubernetes
Kubernetes
CI/CD
CI/CD
devops
devops
Docker
Docker
Jenkins
Jenkins
Kubernetes
Kubernetes
CI/CD
CI/CD
devops
devops

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

  • Khung tư duy tự thiết kế chiến lược triển khai khác nhau cho từng môi trường

  • Một bộ hạ tầng GitOps của riêng tôi thực sự hoạt động

  • Khả năng trả lời có cơ sở cho các câu hỏi phỏng vấn và thực tế liên quan đến triển khai

Bạn sẽ học chiến lược CI/CD thực tiễn bằng cách kết hợp Jenkins và ArgoCD phù hợp với từng môi trường dev·staging·production, thay vì học riêng lẻ từng công cụ.😏

Cách tự thiết kế chiến lược triển khai khác nhau cho từng môi trường dev·staging·production

“Đã triển khai được, nhưng không biết đây có phải là cách đúng hay không.”

Bạn đã từng thiết lập CI/CD bằng Jenkins nhưng không chắc cách mình đang sử dụng có đúng hay chưa, hoặc đã học về ArgoCD và GitOps nhưng cảm thấy bối rối không biết nên áp dụng chúng vào dự án thực tế như thế nào chưa?

Khóa học này không chỉ dừng lại ở việc học cách sử dụng Jenkins và ArgoCD riêng lẻ.

Phán đoán nên chọn phương thức triển khai nào tùy theo đặc điểm của môi trường phát triển (dev), staging và production, đồng thời tìm hiểu cách kết hợp Jenkins với ArgoCD để thiết kế một pipeline CI/CD·GitOps thực sự hoạt động.

Khi hoàn thành toàn bộ khóa học, trên máy tính của bạn sẽ không chỉ là một ví dụ thực hành đơn giản,

Một pipeline GitOps lai hoạt động thực tế, trong đó dev·staging được triển khai theo cơ chế Push dựa trên Jenkins, còn production được triển khai theo cơ chế Pull dựa trên ArgoCD sẽ được hoàn thiện.


Đường ống hybrid

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

📌 Không học riêng Jenkins và ArgoCD

Trong hầu hết các khóa học CI/CD, khi học Jenkins thì chỉ sử dụng Jenkins, còn trong các khóa học về ArgoCD thì chỉ sử dụng ArgoCD.

Tuy nhiên, trong thực tế, thay vì chỉ sử dụng một công cụ duy nhất, người ta thường kết hợp nhiều phương pháp tùy theo đặc điểm của môi trường và tổ chức.

Trong khóa học này, chúng ta sẽ trực tiếp triển khai cấu trúc hybrid như sau.

  • Developer → Git → Jenkins → dev / staging

  • Developer → GitOps Repository → ArgoCD → production

Tức là, kết nối hai chiến lược khác nhau vào cùng một hệ thống: triển khai nhanh dựa trên Push ở dev·staging + triển khai GitOps dựa trên Pull, trong đó trạng thái được quản lý theo Git ở production.

📌 Hoàn thiện môi trường thực hành chỉ với Docker Desktop

Không cần môi trường đám mây riêng biệt như AWS, Azure và GCP.

Trong môi trường Docker Desktop trên máy tính cá nhân

  • Kubernetes/

    Jenkins/

    ArgoCD/

    Argo Rollouts


Bạn sẽ tự cấu hình môi trường. Khóa học được thiết kế để bạn có thể trải nghiệm toàn bộ quy trình CI/CD và GitOps mà không phát sinh chi phí đám mây riêng.

📌 Phát triển một dịch vụ Spring Boot duy nhất xuyên suốt đến cuối khóa học

Thay vì sử dụng ví dụ mới ở mỗi phần, chúng ta sẽ tiếp tục sử dụng một dịch vụ dựa trên Spring Boot product-service trong toàn bộ khóa học.

Ban đầu, chúng ta bắt đầu với một API Spring Boot đơn giản, nhưng sau đó sẽ từng bước phát triển qua Docker Image → Kubernetes Deployment → Kustomize → Jenkins Pipeline → ArgoCD → GitOps → Canary Deployment → tự động rollback.

Do đó, mỗi khi công nghệ mới xuất hiện, bạn sẽ ít phải chịu gánh nặng tìm hiểu lại dự án mẫu hơn.

📌 Không chỉ triển khai mà còn đề cập đến vận hành và quyền hạn

Trong môi trường CI/CD thực tế, chỉ “triển khai được” thôi là chưa đủ.

  • Ai có thể triển khai lên môi trường phát triển,

  • Ai có thể thay đổi môi trường vận hành,

  • Việc ai cần phê duyệt việc triển khai lên production cũng rất quan trọng.

Để thực hiện những công việc này, trong bài giảng này, chúng ta sẽ xem xét cả Jenkins Role Strategy/ Jenkins Credentials/ Approval Gate/ ArgoCD RBAC/ AppProject.

  • Jenkins Role Strategy/

    Thông tin xác thực Jenkins/

    Approval Gate/

    ArgoCD RBAC/

    AppProject

Chúng ta cũng sẽ cùng tìm hiểu. Bạn sẽ học cách thiết kế CI/CD như một phần của hệ thống vận hành, thay vì chỉ xem đó là công cụ tự động hóa.

Khóa học này phù hợp với những người như sau

Lập trình viên backend

Nếu bạn có thể phát triển ứng dụng bằng Spring Boot nhưng vẫn sử dụng pipeline do người khác xây dựng cho quy trình triển khai, thì khóa học này rất phù hợp với bạn.

Nhân sự phụ trách cơ sở hạ tầng·DevOps

Khuyến nghị cho những người cần xây dựng môi trường CI/CD cho dự án mới hoặc chuyển đổi môi trường triển khai hiện có, vốn tập trung vào Jenkins, sang phương thức GitOps.

Nhân viên phụ trách vận hành IT

Khóa học cũng đề cập đến cấu trúc RBAC và phương thức quản lý lịch sử triển khai của Jenkins và ArgoCD, giúp bạn hiểu được cấu trúc cơ bản cần thiết để thảo luận và thống nhất các chính sách CI/CD.

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

  • Có thể thiết kế chiến lược triển khai phù hợp với từng môi trường dev/staging/production dựa trên các căn cứ rõ ràng.

  • ArgoCD, từ Application đến App of Apps, ApplicationSet và RBAC, đều có thể xử lý ở cấp độ thực tiễn.

  • Bạn sẽ trực tiếp triển khai Canary và tự động rollback, đồng thời có kinh nghiệm ứng phó với các tình huống sự cố thực tế.

  • Bạn có thể tự xây dựng và áp dụng chiến lược triển khai, quy trình phê duyệt và kế hoạch rollback ở mức tối thiểu cho dự án của mình.

Bạn sẽ học những nội dung như sau.

Tự mình xây dựng pipeline CI/CD dựa trên Jenkins

Không chỉ dừng ở việc chạy Jenkins Job đơn giản, bạn sẽ xây dựng một CI/CD Pipeline thực tế. Bạn sẽ hiểu Jenkins hoạt động như thế nào với vai trò là một CI/CD Orchestrator thay vì chỉ là một “máy chủ build”.

ArgoCD와 GitOps의 작동 원리를 이해합니다

Câu hỏi quan trọng nhất trong GitOps là “Tại sao Git phải là nguồn chuẩn của môi trường vận hành?” . Nội dung được xây dựng để bạn có thể thiết kế cấu trúc dự án thực tế, vượt ra ngoài mức chỉ nhấn nút Sync trên giao diện ArgoCD.

Thiết kế GitOps hybrid Jenkins + ArgoCD

Thay vì sử dụng cùng một phương thức triển khai cho mọi môi trường, hãy áp dụng phương thức dev → Jenkins Push, staging → Jenkins Push, production → ArgoCD Pull .

Trải nghiệm từ Canary·Blue-Green đến tự động rollback

Argo Rollouts를 이용해 Canary Deployment 전환/ Rollback/ Blue-Green Deployment 를 실습합니다.

Người tạo ra khóa học này

Với suy nghĩ rằng “Kiến thức nằm trong đầu chưa hẳn đã là kiến thức”, tôi luôn cố gắng đóng gói những kinh nghiệm và kiến thức nhỏ bé mình có, đồng thời diễn giải chúng sao cho dễ hiểu hơn. Tôi tin rằng đây sẽ là một khóa học dễ tiếp thu hơn đối với những ai quan tâm đến các lĩnh vực LLM và AI dựa trên nền tảng công nghệ Java và Spring Framework.

  • Dựa trên 26 năm kinh nghiệm giảng dạy, tư vấn và phát triển, tôi tiến hành các bài giảng theo hướng giải thích giúp học viên hiểu được những kinh nghiệm thực tế và bí quyết chuyên môn.

  • Hiện tại với vai trò kiến trúc sư·kỹ sư: Tôi trực tiếp thiết kế và phát triển các hệ thống đồ thị tri thức dựa trên GraphRAG và nền tảng AI doanh nghiệp.

    • 2023 ~ hiện tại: Đại diện Công ty NJ1 (株式会社 엔제이원컴퍼니)


    • Hiện) Giáo sư được đãi ngộ đặc biệt, Khoa An ninh thông tin, Trường Sau đại học Thông tin Quốc tế, Đại học Dongguk

    • Trước đây) Cố vấn công nghệ AMJ của JP Morgan Chase (Nhật Bản)

    • Trước đây) Kỹ sư phụ trách, Bộ phận Kinh doanh CMS, Samsung SDS

  • Thực hiện các dự án AI/LLM trong lĩnh vực tài chính: Đã nhiều lần thực hiện các dự án trong lĩnh vực tài chính liên quan đến AI·LLM, tích lũy kinh nghiệm thực tiễn trong thiết kế và triển khai dịch vụ LLM ở lĩnh vực tài chính, nơi độ tin cậy và tính ổn định đặc biệt quan trọng.

  • Giảng dạy MSA, cloud native và AI trong nhiều năm: Tôi đang giảng dạy về các lĩnh vực Spring Boot, Spring Cloud, MSA, Kafka, Blockchain, Machine Learning, Deep Learning và DevOps.

  • Thiết kế khóa học và chương trình đào tạo cho doanh nghiệp: Tôi đã thiết kế chương trình đào tạo và trực tiếp giảng dạy nhiều khóa học cho doanh nghiệp và bootcamp về các chủ đề như Cloud/MSA/bảo mật/AI, đồng thời luôn lấy việc đưa kinh nghiệm thực hiện dự án thực tế vào bài giảng thay vì chỉ dừng lại ở lý thuyết làm nguyên tắc.

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

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

  • Khóa học được hướng dẫn dựa trên MacOS (theo phiên bản Sequoia 15.7.4), tuy nhiên những người sử dụng hệ điều hành Windows cũng có thể dễ dàng theo học.

  • Trong khóa học, thực hành sẽ được tiến hành bằng Visual Studio Code dựa trên OpenJDK 17+.

  • Sử dụng Gradle làm công cụ build.

  • Việc cài đặt Jenkins và ArgoCD cần thiết cho phần thực hành sẽ được tiến hành trong khóa học.


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

  • Cung cấp tài liệu slide theo từng phần (tệp PDF)

  • Dự án ví dụ Spring Boot có thể chạy được

  • Cung cấp các tệp manifest Kubernetes (cung cấp GitHub repo)

Kiến thức cần có và lưu ý

  • Không bắt buộc, nhưng nếu có hai điều dưới đây thì sẽ dễ dàng hơn nhiều.

    • Đã từng tạo một REST API đơn giản bằng Spring Boot (không bắt buộc, chủ yếu được sử dụng làm đối tượng triển khai thay vì tập trung vào bản thân mã nguồn)

    • Không ngại sử dụng các lệnh Git cơ bản (clone, commit, push) và terminal

  • Chỉ cần bạn từng nghe qua các thuật ngữ rất cơ bản về Docker và Kubernetes (chẳng hạn như container, Pod) là đủ.

    • Vì chúng ta sẽ cùng nhau tìm hiểu từ đầu các khái niệm và tiến hành cài đặt cần thiết trong Section 1~2, nên khóa học được thiết kế để ngay cả những người chưa từng sử dụng Kubernetes cũng có thể theo kịp. Tuy nhiên, nếu bạn hoàn toàn mới làm quen với Kubernetes, chúng tôi khuyến nghị bạn nên tìm hiểu sơ lược trước về các khái niệm cơ bản của việc điều phối container.

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

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

  • &​​quot;Là một nhà phát triển backend, tôi có thể tạo đến Docker Image, nhưng mọi thứ sau Kubernetes thì khó.&​​quot;

  • "Những người phụ trách cơ sở hạ tầng và DevOps đang cân nhắc cách chuyển đổi dần từ môi trường CI/CD hiện tại sang GitOps"

  • Nhân sự vận hành CNTT cần hiểu về "phê duyệt triển khai/quyền vận hành/khôi phục sự cố/lịch sử thay đổi&quot

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

  • Cách sử dụng Git cơ bản

  • Kinh nghiệm sử dụng terminal cơ bản

  • Kiến thức cơ bản về container Docker

Xin chào
Đây là Dowon Lee

Xác minh Inflearn

32,765

Học viên

1,813

Đánh giá

1,395

Trả lời

4.8

Xếp hạng

11

Các khóa học

Tôi là kỹ sư IT. Đã có lúc tôi băn khoăn không biết nên chọn từ nào trong mục nghề nghiệp: "nhân viên công ty?", "lập trình viên?" hay "giảng viên?" Sau đó, tôi nghĩ rằng cách gọi kỹ sư IT là tên nghề phù hợp với mình, nên cho đến nay trong mục nghề nghiệp tôi vẫn ghi là "kỹ sư IT".

Nghề nghiệp là điều thể hiện công việc của bản thân, còn công việc thì tôi luôn nghĩ rằng sẽ tốt biết bao nếu đó là một việc thú vị và có ích. Không phải ai cũng có thể sống bằng công việc mình mong muốn, nhưng tôi là người yêu thích công việc mình đang làm và muốn làm thật tốt. Trong thời gian đảm nhiệm vai trò của một nhà phát triển, giảng viên và tư vấn viên, tôi luôn phải tất bật chạy theo những công nghệ IT mới liên tục được ra mắt và thay đổi, nhưng dù vậy, tôi vẫn là một trong những người muốn được tiếp cận, truyền bá và sử dụng chúng dù chỉ sớm hơn người khác một chút.

Lĩnh vực tôi gần đây quan tâm là tư vấn đào tạo trực tuyến. Những công nghệ tôi quan tâm gồm Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes, v.v. Tôi cũng đang trực tiếp giảng dạy các công nghệ này và áp dụng chúng vào công việc. Tuy nhiên, vì đây là những chủ đề vô cùng rộng lớn nên đến nay tôi vẫn không ngừng học hỏi.

Người ta nói rằng những gì chỉ được lưu giữ trong đầu chưa phải là kiến thức thực sự. Tôi muốn chia sẻ kiến thức và kinh nghiệm mình có bằng nhiều phương thức khác nhau. Và tôi sẽ trở thành một kỹ sư CNTT không ngừng thử thách bản thân trong những lĩnh vực mới và với những công nghệ mới.

 

 

  • Hiện) CEO Công ty NJ One .

  • Hiện tại) Giáo sư đặc cách tại Khoa An ninh Thông tin, Trường Sau đại học Thông tin Quốc tế, Đại học Dongguk

  • Cựu) Chuyên gia tư vấn công nghệ AMJ của JP Morgan Chase (Nhật Bản)

  • Cựu) Kỹ sư phụ trách, Bộ phận kinh doanh CMS, Samsung SDS

 

 

Thêm

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

Tất cả

94 bài giảng ∙ (10giờ 40phú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ả

4 đánh giá

5.0

4 đánh giá

  • helle067523님의 프로필 이미지
    helle067523

    Đánh giá 29

    ∙

    Đánh giá trung bình 4.9

    5

    100% đã tham gia

    Cảm ơn bài giảng!

    • rktlakstp0862님의 프로필 이미지
      rktlakstp0862

      Đánh giá 2

      ∙

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      • sehi10284143님의 프로필 이미지
        sehi10284143

        Đánh giá 1

        ∙

        Đánh giá trung bình 5.0

        Đã chỉnh sửa

        5

        53% đã tham gia

        • specialoo3667님의 프로필 이미지
          specialoo3667

          Đánh giá 2

          ∙

          Đánh giá trung bình 5.0

          5

          31% đã tham gia

          Khóa học khác của Dowon Lee

          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!

          Giảm 25% cho thành viên mới

          1.174.699 ₫

          25%

          1.566.259 ₫