Đơn vị 1 / 11

Giới thiệu về DevOps và Cloud AI: Vai trò, Ranh giới, Xác thực, Bảo mật và Bí mật

Lợi nhuận:

  • Có thể phân biệt vị trí nào trong chuỗi DevOps (đường ống, cấu hình, tập lệnh, nhật ký), trí tuệ nhân tạo tiết kiệm thời gian thực và vị trí nào mà các quyết định ảnh hưởng đến quá trình sản xuất được giao cho con người, tùy thuộc vào mức độ rủi ro của nhiệm vụ.
  • Khả năng áp dụng kỷ luật xác minh từng đầu ra AI thông qua các bước kết nối nó với nguồn, chạy khô và chuyển qua bộ lọc hệ thống.
  • Khả năng hình thành thói quen không bao giờ dán bí mật vào các yêu cầu, che giấu chúng và chỉ làm việc vì mục đích phòng thủ trên các hệ thống được ủy quyền.

Một đêm nọ, lúc 03:14, điện thoại của bạn đổ chuông: dịch vụ thanh toán không hoạt động, tiền bạc và danh tiếng đang bị mất dần từng phút. Một ngày khác, một lệnh sai cũng khiến hàng nghìn máy chủ khởi động lại. Đây là thế giới của chuyên gia DevOps - chịu trách nhiệm về tất cả các quy trình, tự động hóa và theo yêu cầu mà phần mềm đi qua từ kho lưu trữ mã (nơi lưu trữ nguồn phần mềm) cho đến khi đến tay khách hàng. DevOps là sự kết hợp của hai từ "Phát triển" và "Vận hành": đó là văn hóa và tập hợp các phương pháp thực hành giúp việc phát triển và vận hành phần mềm thành một quy trình nhanh chóng, đáng tin cậy. Mỗi bước của quy trình này tạo ra một lệnh, tệp cấu hình, tập lệnh. Trí tuệ nhân tạo (AI - phần mềm trích xuất các mẫu từ dữ liệu lịch sử và tạo ra văn bản, mã và dự đoán) giúp bạn tiết kiệm rất nhiều thời gian với lượng văn bản dồi dào này.

Nhưng phần đầu của mô-đun này đã rõ ràng: AI là một trợ lý, người tạo bản thảo và công cụ hỗ trợ quyết định; Bạn là người chịu trách nhiệm quyết định những gì sẽ được đưa vào môi trường sống (sản xuất, hệ thống được sử dụng bởi khách hàng thực sự), khi nào và nhấn nút nào vào lúc nửa đêm. Trong DevOps, cái giá phải trả cho một lỗi không phải là số phút mà là thời gian ngừng hoạt động, mất dữ liệu và vi phạm bảo mật. Đó là lý do tại sao trong bài học đầu tiên này chúng ta sẽ tập trung vào kỷ luật chứ không phải công cụ.

AI có ích ở đâu trong chuỗi DevOps?

Hãy chia công việc DevOps thành hai cụm lớn. Cụm đầu tiên: các công việc lặp đi lặp lại, văn bản và cấu trúc. Viết mô tả CI/CD (Tích hợp liên tục / Phân phối liên tục - đường ống tự động kiểm tra và phát hành mã), soạn thảo Dockerfile (tệp công thức đóng gói ứng dụng vào vùng chứa), giải thích khối Terraform (công cụ xác định cơ sở hạ tầng dưới dạng mã) phức tạp, tóm tắt ngăn xếp nhật ký (bản ghi sự kiện do hệ thống tạo ra) và gắn cờ điểm bất thường, soạn thảo tập lệnh bash. Trong những nhiệm vụ này, AI giảm thiểu phút xuống giây và không bị mệt mỏi.

Cụm thứ hai: các quyết định dẫn đến sự gián đoạn, tiền bạc hoặc sự an toàn. Liệu một bản phát hành có được đưa vào sản xuất hay không, dịch vụ nào sẽ được khởi động lại vào lúc nửa đêm, cách lưu trữ bí mật, tài nguyên nào sẽ bị ngừng hoạt động do cắt giảm chi phí. Những quyết định này đòi hỏi bối cảnh, kiến ​​thức hệ thống và trách nhiệm. Tại đây, AI hiển thị các tùy chọn và rủi ro - nhưng bạn nhấn nút “áp dụng”.

Hãy làm rõ sự khác biệt trong một câu: AI mạnh về các câu hỏi "cấu hình này làm gì và viết nó như thế nào"; Quyết định là của bạn khi có những câu hỏi như "Tôi có nên áp dụng điều này cho sản phẩm không và ai sẽ đảm bảo cho nó?"

Mẹo: Trước khi giao công việc cho AI, hãy hỏi: “Tôi sẽ mất gì nếu kết quả đầu ra này sai?” Nếu câu trả lời là "vài phút", hãy thoải mái ủy thác. Nếu câu trả lời là "ngưng sản xuất, mất dữ liệu hoặc rò rỉ", hãy để AI tạo bản nháp và bạn xác minh quyết định cũng như việc thực hiện.

Từng bước: doanh nghiệp DevOps được hỗ trợ bởi AI hoạt động như thế nào?

  1. Thu thập bối cảnh. Đám mây nào (AWS, Azure, GCP), phiên bản công cụ nào, hạn chế gì? Nếu bạn đưa ra bối cảnh không đầy đủ cho AI, bạn sẽ nhận được kết quả đầu ra không đầy đủ và nguy hiểm.
  2. Xác định nhiệm vụ rõ ràng. Không phải "viết một đường dẫn"; Nói: "Với GitHub Actions, hãy viết một quy trình làm việc trong nhánh chính chạy bằng cách đẩy, chạy thử nghiệm, xây dựng hình ảnh Docker nhưng không triển khai nó."
  3. Đưa ra bản thảo. Hãy để AI viết phiên bản đầu tiên.
  4. Xác minh. Kiểm tra cú pháp, xem thông tin bí mật có bị rò rỉ hay không, kiểm tra bằng chạy thử (một chế độ thực sự hiển thị cho ứng dụng những việc cần làm).
  5. Hãy thử nó trong Sandbox. Đừng bao giờ thử lần đầu tiên trong sản phẩm; chạy trong môi trường thử nghiệm/dàn dựng.
  6. Áp dụng dần dần và theo dõi. Làm cho nó trực tiếp bằng cách theo dõi số liệu và nhật ký.

Kỷ luật xác minh: ba bước

AI nói trôi chảy và tự tin; Điều đó không có nghĩa là nó đúng. AI đôi khi tạo ra ảo giác - tạo ra cờ lệnh không tồn tại, tên dịch vụ đám mây hoặc khóa cấu hình như thật. Trong DevOps, cờ --force không có thật có thể xóa dữ liệu, trong khi quyền IAM (Quản lý danh tính và quyền truy cập) không có thật sẽ tạo ra lỗ hổng bảo mật. Phản xạ:

  1. Kết nối nó với nguồn. Mọi lệnh và cờ do AI đưa ra có thực sự có trong tài liệu chính thức không? Hỏi "Hãy cho tôi biết lá cờ này có phiên bản nào và tên của nó trong tài liệu chính thức"; Nếu không chắc chắn thì đừng tin tưởng.
  2. Chạy khô. Xem điều gì xảy ra mà không thực sự áp dụng nó với các mod như terraform plan, kubectl --dry-run, --check.
  3. Đưa nó qua bộ lọc hệ thống. Đầu ra có khớp với kiến ​​trúc, chính sách bảo mật và tên tài nguyên có sẵn của bạn không? Kiến thức về miền của bạn là bộ lọc cuối cùng.
Chú ý: "AI đã viết như vậy" không phải là lời biện minh. Trong trường hợp sản phẩm bị gián đoạn, trách nhiệm không thuộc về AI mà thuộc về người chạy lệnh đó mà không xác minh. Một lệnh AI chưa được xác minh cũng có rủi ro như lệnh rm -rf được thực thi mà không được đọc.

An ninh và bí mật: không bao giờ rò rỉ

Quy tắc bảo mật quan trọng nhất trong DevOps là về bí mật. Bí mật; Đó là những thông tin bí mật như mật khẩu, khóa API, chuỗi kết nối cơ sở dữ liệu, chứng chỉ riêng, có thể mở toàn bộ hệ thống của bạn nếu bị xâm phạm. Không dán bất kỳ bí mật thực sự nào vào lời nhắc AI. Nếu một khối mã chứa khóa truy cập AWS thực tế, nội dung của tệp .env hoặc mật khẩu cơ sở dữ liệu sản xuất, hãy che những nội dung này bằng các phần giữ chỗ như <AWS_ACCESS_KEY> thay vì AKIA... trước khi đưa chúng cho AI.

Đồng thời kiểm tra mã mà AI tạo ra: AI đôi khi tạo ra các ví dụ mã hóa bí mật trực tiếp vào mã để thuận tiện. Đây là một lỗ hổng bảo mật. Trên thực tế, các bí mật được lưu giữ trong kho bí mật (Vault, AWS Secrets Manager, Azure Key Vault) và được đưa vào dưới dạng biến môi trường trong thời gian chạy.

Một giới hạn đạo đức và pháp lý khác trong lĩnh vực này: sử dụng phòng thủ. Sử dụng AI để tăng cường hệ thống của bạn, quét các lỗ hổng và trích xuất dấu vết các cuộc tấn công từ nhật ký. Truy cập trái phép vào hệ thống của người khác, quét trái phép hoặc tạo công cụ tấn công là bất hợp pháp và nằm ngoài phạm vi của nền tảng này. Luôn làm việc trong các hệ thống mà bạn có thẩm quyền và đã nhận được sự cho phép bằng văn bản thông qua hợp đồng.

Dữ liệu nào đi vào chiếc xe nào?

Kiểu dữ liệu

ví dụ

xe phù hợp

dữ liệu mở

Tài liệu chính thức, mã nguồn mở

Mỗi phương tiện

Dữ liệu nội bộ (không phải bí mật)

Sơ đồ kiến trúc chung, đường ống chung

Xe được tổ chức phê duyệt

bí mật/nhạy cảm

Bí mật, IP/cấu trúc liên kết sản phẩm, dữ liệu khách hàng

Chỉ một phương tiện được tổ chức ký hợp đồng và dữ liệu của nó không được đưa vào đào tạo; bằng cách che đậy

ba trường hợp nhỏ

Trường hợp 1 - Thời gian đã đạt được đúng chỗ. Một kỹ sư DevOps đã dành 6 giờ để chuyển quy trình Jenkins 300 dòng cũ sang GitHub Actions. Anh ấy giảm thời gian làm việc xuống còn 90 phút bằng cách nhờ AI giải thích từng bước và đưa ra bản nháp. Anh ấy đã dành thời gian tiết kiệm được để xác minh từng bước do AI tạo ra trong quá trình dàn dựng, từng bước một. AI đã dịch cơ học; Xác nhận vẫn còn với con người.

Trường hợp 2 - Việc xác minh đã ngăn chặn được thảm họa. Một nhóm đã yêu cầu AI cung cấp tập lệnh dọn dẹp Terraform. AI đưa ra mã trôi chảy; Nhưng khi kỹ sư chạy kế hoạch terraform, anh ta phát hiện ra rằng tập lệnh cũng có kế hoạch xóa cơ sở dữ liệu sản xuất đang được sử dụng – AI đã gõ nhầm bộ lọc tài nguyên. Chạy khô ngăn ngừa mất dữ liệu hàng giờ.

Trường hợp 3 - Trở về từ rò rỉ bí mật. Trong khi hỏi "tại sao lỗi triển khai đó", một thực tập sinh đã dán toàn bộ tệp .env vào một công cụ công khai có mật khẩu cơ sở dữ liệu sản xuất thực tế bên trong. Kỹ sư cao cấp ngay lập tức xoay và tạo lại chìa khóa. Cách đúng là che mật khẩu bằng <DB_PASSWORD> và chỉ chia sẻ thông báo lỗi.

Bốn mẫu có thể sao chép

1) Đánh giá mức độ phù hợp công việc:

Vai trò của bạn: Chuyên gia tư vấn DevOps/SRE cấp cao. Tôi sẽ mô tả một vai trò cho bạn. Hãy cho tôi biết (1) liệu đây là nhiệm vụ soạn thảo/phân tích có thể được ủy quyền một cách an toàn cho AI hay là một quyết định quan trọng ảnh hưởng đến sản phẩm; (2) cho biết kết quả tồi tệ nhất nếu nó xảy ra sai sót; (3) nêu các bước xác minh cần thực hiện trước khi thực hiện. Nhiệm vụ: [TẠI ĐÂY]

2) Cung cấp bối cảnh an toàn (che giấu bí mật):

Phân tích lỗi dưới đây. Tôi đã che giấu tất cả bí mật bằng <PLACEHOLDER>; Bạn cũng đề nghị KHÔNG BAO GIỜ tạo bí mật thực sự trong giải pháp, sử dụng trình giữ chỗ và nhúng bí mật vào mã, đọc từ kho bí mật. Lỗi/nhật ký: [NỘI DUNG KIẾM]

3) Xác minh lệnh:

Giải thích lệnh này cho tôi: ghi lại chức năng của từng cờ, phiên bản công cụ mà nó áp dụng và tác dụng phụ nguy hiểm nhất của nó. Cuối cùng liệt kê 3 bước kiểm tra cần thực hiện trước khi chạy nó trong prod. Lệnh: [TẠI ĐÂY]

4) Truy vấn học tập/khái niệm:

Tôi [khái niệm: ví dụ: Giải thích khái niệm [triển khai xanh-xanh] như thể bạn đang giải thích nó cho kỹ sư DevOps: nó làm gì, khi nào nên sử dụng, khi nào không nên sử dụng, 2 lỗi điển hình. Hãy ngắn gọn và cụ thể.

Dấu nhắc yếu / Dấu nhắc mạnh

Yếu: "Viết cho tôi một kịch bản triển khai."

Kết luận: không rõ đám mây nào, công cụ nào, môi trường nào; AI tạo ra một tập lệnh chung, có thể không phải sản phẩm để nhúng bí mật vào mã.

Strong: "Viết bản nháp của tập lệnh bash triển khai lên AWS ECS (Dịch vụ bộ chứa đàn hồi). Vùng là eu-central-1, hình ảnh đến từ ECR. Không bao giờ nhúng bí mật vào mã, hãy đọc chúng từ AWS Secrets Manager. Nếu có lỗi ở mỗi bước, hãy dừng (set -euo pipefail). Viết tất cả 3 bước xác minh trước khi chạy tập lệnh trong sản phẩm."

Sự khác biệt: lời nhắc thứ hai cung cấp cho đám mây, công cụ, môi trường, quy tắc bảo mật và kỳ vọng xác thực - đầu ra trực tiếp hữu ích và an toàn.

Những lỗi thường gặp

  • Dán bí mật thực tế vào dấu nhắc. Sai lầm phổ biến và nguy hiểm nhất. Luôn đeo mặt nạ.
  • Lời nhắc không ngữ cảnh. Nếu không chỉ định đám mây, phiên bản, môi trường, đầu ra mong muốn thường thuộc về phiên bản sai hoặc kiến ​​trúc sai.
  • Bỏ qua chạy khô. Triển khai mà không cần lập kế hoạch/--chạy thử là lối tắt tốn kém nhất trong DevOps.
  • Thực hiện lần thử đầu tiên trong prod. Mọi đầu ra AI mới trước tiên phải được chạy trong giai đoạn thử nghiệm/dàn dựng.
  • Giao phó trách nhiệm với “AI đã nói”. Trách nhiệm luôn thuộc về kỹ sư thực hiện.
  • Tin tưởng vào lá cờ ảo giác. Thực thi cờ lệnh không tồn tại mà không cần truy vấn.

Tóm lại

DevOps và AI trên nền tảng đám mây; Nó là một trợ lý cung cấp tốc độ tuyệt vời trong các tác vụ sử dụng nhiều văn bản như đường dẫn, cấu hình, tập lệnh và nhật ký. Nhưng trách nhiệm về các quyết định ảnh hưởng đến sản phẩm, quản lý bí mật và thực hiện cuối cùng vẫn thuộc về kỹ sư có thẩm quyền. Xác minh ba bước (kết nối với nguồn, chạy cạn, đi qua bộ lọc hệ thống), không bao giờ rò rỉ bí mật và chỉ hoạt động vì mục đích phòng thủ trên các hệ thống được ủy quyền là những nguyên tắc hướng dẫn của mô-đun này.

Nhiệm vụ ứng dụng

Chọn một nhiệm vụ DevOps gần đây từ công việc của bạn (hoặc một dự án mẫu). (1) Mô tả nhiệm vụ này cho AI bằng cách sử dụng mẫu “đánh giá mức độ phù hợp với công việc” ở trên và đọc phân loại của nó. (2) Nếu nó chứa bí mật, hãy chuẩn bị văn bản ngữ cảnh bằng cách che nó đi. (3) Kiểm tra đầu ra của AI bằng xác minh ba bước và ghi chú trong một câu những gì bạn đã sửa ở mỗi bước.

danh sách kiểm tra

  • [ ] Tôi phân loại nhiệm vụ của mình là "công việc có thể ủy quyền" hoặc "quyết định quan trọng".
  • [ ] Tôi không dán bất kỳ bí mật thực tế nào vào dấu nhắc; Tôi đã che dấu tất cả chúng bằng một trình giữ chỗ.
  • [ ] Tôi đã thêm ngữ cảnh vào lời nhắc liên quan đến đám mây, phiên bản công cụ và môi trường.
  • [ ] Tôi đã kiểm tra đầu ra AI bằng kế hoạch/chạy thử trước khi áp dụng nó.
  • [ ] Tôi đã thực hiện lần thử đầu tiên trong môi trường thử nghiệm/dàn dựng, không phải trong môi trường sản phẩm.
  • [ ] Tôi chỉ làm việc trên các hệ thống mà tôi có thẩm quyền, vì mục đích phòng thủ.