인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
Programming

/

Devops & Infra

[DevOps Essentials 3] Xây dựng CI đúng cách với GitHub Actions

Bạn sẽ tìm hiểu cách định cấu hình CI dựa trên Hành động GitHub và nội dung nào nên được đưa vào CI, đồng thời tìm hiểu về việc xác minh thông qua Khung SLSA, một chủ đề nóng trong Báo cáo Google DevOps 2022.

(5.0) 2 đánh giá

82 học viên

github-actions
CI/CD
continuous-integration
SonarQube

Khóa học này dành cho Người học Cơ bản.

Dịch cái này sang tiếng Việt

  • C.I.

  • Hành động GitHub

  • Khung SLSA

  • Cơ sở hạ tầng

  • Hóa đơn vật liệu phần mềm

  • SonarQube

  • TruffleHog

  • ConfTest

  • AWS IAM

Github Action dành cho cấu hình CI!

Có lẽ chỉ cần xây dựng tự động hóa?
Bạn có nghĩ CI là tất cả?

“Tôi tự hỏi CI là như thế nào. “Làm cách nào tôi có thể phát triển ý tưởng này từ góc độ kỹ thuật ?”

“Một công ty đang cài đặt và sử dụng giải pháp CI như Jenkins. Nội dung nào nên được đưa vào CI?”

“Tôi đã nhận được tư vấn về chiến lược CI/CD, nhưng tôi lo lắng về cách triển khai nó .”

“Chúng tôi cần đánh giá và quản lý cấu hình CI của tổ chức mình .”

Trên thực tế, khi một tổ chức giới thiệu CI, nó thường liên quan đến việc triển khai các gói sau khi xây dựng. Tuy nhiên, phần cần triển khai trong CI là hình thành chuỗi cung ứng phần mềm và việc chỉ cài đặt giải pháp CI thôi là chưa đủ.

Kiến thức cốt lõi tối thiểu cho các tổ chức mới tham gia CI

Tìm hiểu cách định cấu hình CI (Tích hợp liên tục) bằng Hành động Github và cách áp dụng các công cụ cần thiết để định cấu hình chuỗi cung ứng phần mềm trong CI.

Bài giảng này đề cập đến Dòng CI mô hình ít nhất phải được triển khai khi định cấu hình chuỗi cung ứng phần mềm bằng CI. Tôi hy vọng bài giảng này sẽ hữu ích cho những ai đang tò mò về các tiêu chuẩn và phương pháp cấu hình và đánh giá hệ thống CI.


Mục đích và lý do cần CI
Chúng tôi sẽ cho bạn biết chắc chắn.

Trường hợp 1 Có hướng dẫn nào về cấu hình CI không?

Chúng tôi trình bày các hướng dẫn cho chuỗi cung ứng phần mềm thông qua Khung SLSA .

Trường hợp 2 Hệ thống CI có các khái niệm về Máy chủ và Tác nhân. Các cách để cấu hình chúng là gì?

Máy chủ CI sử dụng Tác vụ Github và Tác nhân giải thích cách định cấu hình Tác nhân dựa trên SaaS do Github hoặc Tác nhân của chính bạn cung cấp dựa trên môi trường tạm thời.

Trường hợp 3 Tôi muốn đưa các nguyên tắc chính sách kỹ thuật của công ty tôi vào CI. Có cách nào không?

Chúng tôi sẽ giải thích cách áp dụng kiểm tra bảo mật trên CI thông qua SonarQube và Aqua Trivy. Ngoài ra, chúng tôi sẽ cho bạn biết Chính sách dưới dạng Mã thông qua ConfTest.

Trường hợp 4 Tổ chức của chúng tôi sử dụng IaC thông qua Terraform. Việc quản lý chi phí cho việc này có thể được thực hiện thông qua CI trước không?

Chúng tôi sẽ giải thích cách sử dụng InfraCost để hiển thị mức tăng hoặc giảm chi phí đối với các thay đổi của Terraform trong Yêu cầu kéo GitHub.

CI phải nắm bắt không chỉ các công cụ mà còn cả bản chất.

CI không chỉ là cài đặt phần mềm CI và tự động hóa các bản dựng. Không giống như các bài giảng CI chung bao gồm việc xây dựng và tạo tạo tác, bài giảng này dựa trên các khái niệm về Quản lý chuỗi cung ứng phần mềm và Cam kết có kiểm soát, là mục đích chính của CI .

Ngoài ra, dựa trên Hóa đơn Vật liệu Phần mềm đã được nêu rõ do các vi phạm bảo mật gần đây do các thư viện nguồn mở (Log4j, SolarWind) gây ra, chúng tôi phản ánh các xu hướng mới nhất như Quản lý phụ thuộc và Khung SLSA.


Những gì bạn học
Hãy xem thử 📚

Học tập CI đặt ra tiêu chuẩn

Bạn có thể hiểu CI không chỉ là cài đặt phần mềm CI và tự động hóa các bản dựng. Ngoài ra, bạn sẽ hiểu Khung SLSA và tìm hiểu cách kết hợp nó với các giải pháp để nâng Cấp Khung lên Cấp 4, cấp độ cao nhất.

Công nghệ cốt lõi để triển khai

Tìm hiểu cách nhận ra Cam kết Gated thông qua GitHub và tìm hiểu cách tạo Chuỗi CI cho các dịch vụ liên quan trong cấu trúc vi dịch vụ. Bạn sẽ có thể tạo Hành động tùy chỉnh GitHub và hiểu cách sử dụng chúng để tạo Chuỗi cung ứng phần mềm có thể sử dụng lại. Hiểu được đặc điểm và sự khác biệt giữa tác nhân dai dẳng và tác nhân phù du.

Giáo trình chi tiết 📖

Bắt đầu với Hành động Github

  • Ký cam kết Github
  • Quy trình CI dựa trên Spring/Gradle + Thông báo Slack
  • Quy trình CI dịch vụ dựa trên Node.js + Dịch vụ liên quan CI Cuộc gọi quy trình

Xác minh độ ổn định khi triển khai IaC

  • Chính sách triển khai mã bằng ConfTest
  • Triển khai Kiểm tra mức độ hiển thị thông tin xác thực bằng TruffleHog
  • Nhận xét về chi phí bổ sung ước tính của Terraform IaC trong Yêu cầu kéo bằng InfraCost

Kiểm tra lỗ hổng bảo mật trong CI

  • Cấu hình SAST sử dụng phiên bản cộng đồng SonarQube
  • Kiểm tra lỗ hổng và quản lý SBOM bằng Aqua Trivy và Dependency Track

Quản lý hình ảnh vùng chứa bằng kho lưu trữ riêng

Mô-đun hóa quy trình xây dựng bằng hành động tùy chỉnh GitHub

  • Cấu hình hành động tùy chỉnh dựa trên vùng chứa
  • Cấu hình hành động tùy chỉnh dựa trên JavaScript
  • Cấu hình hành động tổng hợp

Triển khai Trình chạy tự lưu trữ GitHub

Tóm tắt qua SLSA Framework


Bản chất của DevOps
Đây là Lee Jeongseok .

Tôi là Kỹ sư CNTT Du mục Kỹ thuật số, người đã làm việc với tư cách là nhà phát triển toàn diện và Kỹ sư/Tư vấn DevOps tại Hàn Quốc, Úc và Vương quốc Anh trong khoảng 15 năm. Tôi không ngừng nghiên cứu các chủ đề mới để tối ưu hóa hoạt động của tổ chức CNTT và ước mơ của tôi là sống như một kỹ sư cho đến khi nghỉ hưu. Tôi hiện đang làm DevOps trong nhóm Trải nghiệm nhà phát triển tại một ngân hàng ở Melbourne, Úc.

Lịch sử chi tiết

  • Trước đây) Bắt đầu công việc đầu tiên của tôi với tư cách là thực tập sinh tại The Latin Traveler! [Luân Đôn, Vương quốc Anh]
  • Trước đây) Thông tin du lịch TOPAS của Tập đoàn Hanjin - Phát triển Java/Oracle [Seoul, KR]
  • Trước đây) NuSkin Korea - Phát triển Java/Oracle [Seoul, KR]
  • Tốt nghiệp chương trình MBA toàn thời gian với niềm đam mê tìm hiểu về dòng chảy kinh doanh [Seoul/Nice, KR/FR]
  • Trước đây) KOSCOM - C phát triển [Seoul, KR]
  • Trước đây) KDB Daewoo Securities - Phát triển bằng Java, C#, Python, MongoDB, Oracle, Sybase, ActiveMQ, v.v. [Seoul, KR]
  • Trước đây) Ngân hàng Quốc gia Úc (NAB) - Phát triển toàn diện [Melbourne, AU]
  • Trước đây) Một trong bốn ngân hàng hàng đầu của Úc - Phát triển toàn diện/Tư vấn DevOps nội bộ [Melbourne, AU]
  • Trước đây) Amazon Web Services - Chuyên gia tư vấn DevOps [Seoul/Melbourne, KR/AU]
  • Hiện tại) Một trong bốn ngân hàng lớn nhất của Úc - đang gặp khó khăn trong việc xác định Chỉ số DORA và triển khai Cấu trúc CI có thể mở rộng thông qua DevOps... [Melbourne, AU]

Hỏi đáp 💬

Câu hỏi: Khi triển khai CI, bạn không thể cài đặt Jenkins, nhập Lệnh Xây dựng và triển khai phải không?

Mục tiêu của việc triển khai CI không phải là tự động hóa các bản dựng. Mục đích là để tự động kiểm tra các bản dựng, kiểm tra và các yêu cầu tuân thủ/bảo mật của tổ chức có thể xảy ra trong chuỗi cung ứng phần mềm tổng thể và bàn giao các tạo phẩm đáng tin cậy cho bộ phận CD.

Q. Có rất nhiều phần mềm được sử dụng. Tôi có cần kiến ​​thức cơ bản về nó không?

Về phần mềm được sử dụng trong bài giảng này, chúng tôi sẽ giải thích mục đích, phương pháp sử dụng và tiến hành quá trình tích hợp nó với CI.

Q. Phần này quan trọng như thế nào khi xây dựng sự nghiệp trong DevOps?

Đối với các vị trí liên quan đến DevOps, CI/CD là yêu cầu cơ bản và các câu hỏi về CI thường yêu cầu ý tưởng hoặc kinh nghiệm về cách định cấu hình quy trình. Tại thời điểm này, các khía cạnh quan trọng cần xem xét là những khía cạnh liên quan đến luồng quy trình và cam kết kiểm soát, và bài giảng này đề cập đến các khía cạnh này.

💾 Những lưu ý trước khi tham gia khóa học
Đối với mục đích thí nghiệm, bạn sẽ cần các thông số kỹ thuật và phiên bản dịch vụ của PC sau:

  • CPU: Dòng x86-64/amd64 4 nhân trở lên
  • Bộ nhớ 8GB trở lên, Dung lượng lưu trữ 30GB trở lên
  • Kubernetes 1.21 trở lên, Helm 3.8 trở lên
  • Các bài giảng được thực hiện bằng các công cụ xây dựng phần mềm, IaC (Terraform, Kubernetes, Helm) và Shell Script, nhưng không có vấn đề gì khi nghe ngay cả khi bạn không có kiến ​​thức cơ bản về chúng.
  • Đối với tài liệu của lớp, vui lòng kiểm tra ghi chú ở cuối lớp [Phần 2 - Cài đặt SigNoz] . Tất cả các mã nguồn sử dụng trong bài giảng đều được cung cấp thông qua GitHub Repository. Có thể mất tới 48 giờ để phê duyệt quyền truy cập thông qua liên kết biểu mẫu Google và không được chia sẻ mã nguồn cũng như nội dung của khóa học này với người khác.

Cùng xem các bài giảng liên quan 📺

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

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

  • Nếu bạn tò mò về cách sắp xếp nội dung trong CI

  • Nếu bạn chưa quen với GitHub Actions và muốn có được kiến ​​thức cơ bản

  • Bất cứ ai tò mò về cách cấu trúc CI trong Kiến trúc microservice

  • Bất cứ ai tò mò về cách cấu hình DevSecOps trong CI

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

  • Tập lệnh Shell

  • Cách cài đặt môi trường Kubernetes, setup Minikube hoặc EKS/GKE/AKS

  • Cách cài đặt lệnh Helm

Xin chào
Đây là

404

Học viên

12

Đánh giá

7

Trả lời

4.1

Xếp hạng

7

Các khóa học

한국/호주/영국에서 Full-stack developer, DevOps Engineer/Consultant로 15년 정도 일을 하고 있는 Digital Nomad IT Engineer 입니다. IT 조직 운영의 최적화를 위해 끊임 없이 새로운 주제에 대해서 공부를 하고 있으며, 은퇴할 때까지 Engineer로 생활하고 싶다는 꿈을 가지고 있습니다. 현재는 호주 Melbourne에 있는 한 은행의 Developer Experience 팀에서 DevOps로 활동하고 있습니다.

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

Tất cả

20 bài giảng ∙ (6giờ 34phút)

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!