واحد 1 / 11

مقدمه ای بر DevOps و Cloud AI: نقش ها، مرزها، احراز هویت، امنیت و اسرار

سود:

  • توانایی تشخیص اینکه در زنجیره DevOps (خط لوله، پیکربندی، اسکریپت، گزارش) هوش مصنوعی در زمان واقعی صرفه جویی می کند و تصمیمات مؤثر بر تولید در کجاها بسته به سطح ریسک کار به انسان واگذار می شود.
  • امکان اعمال رشته ای که هر خروجی هوش مصنوعی را از طریق مراحل اتصال آن به منبع، اجرای خشک و عبور از فیلتر سیستم تأیید می کند.
  • توانایی به دست آوردن عادت عدم چسباندن اسرار بر روی درخواست ها، پوشاندن آنها و کار برای اهداف دفاعی فقط در سیستم های مجاز.

یک شب در ساعت 03:14 تلفن شما زنگ می‌زند: سرویس پرداخت قطع است، پول و اعتبار هر دقیقه از دست می‌رود. یک روز دیگر، یک فرمان اشتباه هزاران سرور را راه اندازی مجدد می کند. این دنیای حرفه‌ای DevOps است – مسئولیت تمام خطوط لوله، اتوماسیون و تماسی که نرم‌افزار از مخزن کد (جایی که منبع نرم‌افزار در آن ذخیره می‌شود) عبور می‌کند تا زمانی که به دست مشتری برسد. DevOps ترکیبی از کلمات "توسعه" و "عملیات" است: این یک فرهنگ و مجموعه ای از اقدامات است که توسعه نرم افزار و اجرای آن را به یک جریان سریع و قابل اعتماد می آورد. هر مرحله از این جریان یک دستور، یک فایل پیکربندی، یک اسکریپت تولید می کند. هوش مصنوعی (AI - نرم‌افزاری که الگوها را از داده‌های تاریخی استخراج می‌کند و متن، کد و پیش‌بینی تولید می‌کند) زمان زیادی را در این متون فراوان صرفه‌جویی می‌کند.

اما ابتدای این ماژول واضح است: هوش مصنوعی یک دستیار، تولید کننده پیش نویس و ابزار پشتیبانی تصمیم است. شما مسئول تصمیم گیری در مورد اینکه چه چیزی در محیط زنده (تولید، سیستمی که توسط مشتریان واقعی استفاده می شود)، کی و کدام دکمه را در نیمه شب فشار دهید، هستید. در DevOps، هزینه یک باگ دقیقه نیست، بلکه خرابی، از دست دادن داده ها و نقض امنیت است. به همین دلیل است که در این واحد اول روی رشته تمرکز خواهیم کرد نه ابزار.

در کجای زنجیره DevOps هوش مصنوعی مفید است؟

بیایید کارهای DevOps را به دو خوشه بزرگ تقسیم کنیم. خوشه اول: کارهای تکراری، متنی و ساختاری. نوشتن توضیحات CI/CD (ادغام مداوم / تحویل مستمر - خط لوله که به طور خودکار کد را آزمایش و منتشر می کند)، تهیه پیش نویس Dockerfile (فایل دستوری که یک برنامه را در یک ظرف بسته بندی می کند)، توضیح یک بلوک پیچیده Terraform (ابزاری که زیرساخت را به عنوان کد تعریف می کند)، خلاصه کردن یک پشته گزارش (سوابق رویداد که پیش نویس یک سیستم را تولید می کند. در این کارها هوش مصنوعی دقیقه ها را به ثانیه کاهش می دهد و خسته نمی شود.

خوشه دوم: تصمیماتی که منجر به اختلال، پول یا امنیت می شود. اینکه آیا یک نسخه به تولید می‌رسد، کدام سرویس در نیمه‌شب دوباره راه‌اندازی می‌شود، چگونه یک راز ذخیره می‌شود، کدام منبع با کاهش هزینه بسته می‌شود. این تصمیمات مستلزم زمینه، دانش سیستم و مسئولیت است. در اینجا، هوش مصنوعی گزینه‌ها و خطرات را قابل مشاهده می‌کند – اما شما دکمه «اعمال» را فشار می‌دهید.

بیایید این تمایز را در یک جمله روشن کنیم: هوش مصنوعی در سؤالات "این پیکربندی چه کار می کند و چگونه آن را بنویسد" قوی است. تصمیم با شماست در مورد سؤالاتی مانند "آیا باید این را در مورد محصول اعمال کنم و چه کسی آن را تضمین می کند؟"

نکته: قبل از برون سپاری کار به یک هوش مصنوعی، بپرسید: "اگر این خروجی اشتباه باشد چه چیزی را از دست می دهم؟" اگر پاسخ «چند دقیقه» است، با خیال راحت تفویض کنید. اگر پاسخ «قطع تولید، از دست دادن داده یا نشت» است، اجازه دهید هوش مصنوعی پیش نویس را تولید کند و شما تصمیم و اجرا را تأیید کنید.

گام به گام: یک کسب و کار DevOps با هوش مصنوعی چگونه کار می کند؟

  1. زمینه را جمع آوری کنید. کدام ابر (AWS، Azure، GCP)، کدام نسخه ابزار، چه محدودیت هایی؟ اگر به هوش مصنوعی زمینه ناقص بدهید، خروجی ناقص و خطرناکی دریافت خواهید کرد.
  2. وظایف روشن را تعریف کنید. نه "نوشتن خط لوله"؛ بگویید، "با GitHub Actions، یک گردش کار در شاخه اصلی بنویسید که روی فشار اجرا می شود، آزمایش ها را اجرا می کند، تصویر Docker را می سازد، اما آن را مستقر نمی کند."
  3. پیش نویس را تولید کنید. اجازه دهید هوش مصنوعی اولین نسخه را بنویسد.
  4. تأیید کنید. نحو را بررسی کنید، ببینید آیا اطلاعات محرمانه به بیرون درز کرده است یا خیر، با اجرای خشک (حالتی که در واقع به برنامه نشان می دهد چه کاری باید انجام دهد) آزمایش کنید.
  5. آن را در Sandbox امتحان کنید. هرگز اولین تلاش را در پرود انجام ندهید. در یک محیط تست/مرحله اجرا شود.
  6. به تدریج اعمال و نظارت کنید. با نظارت بر معیارها و گزارش‌ها آن را به صورت زنده دریافت کنید.

نظم و انضباط تأیید: سه مرحله

هوش مصنوعی روان و با اطمینان صحبت می کند. این به این معنی نیست که درست است. هوش مصنوعی گاهی اوقات توهم ایجاد می کند - یک پرچم فرمان غیر موجود، یک نام سرویس ابری یا یک کلید پیکربندی را واقعی می سازد. در DevOps، یک پرچم جعلی --force می تواند داده ها را حذف کند، در حالی که یک مجوز جعلی IAM (مدیریت هویت و دسترسی) یک آسیب پذیری امنیتی ایجاد می کند. رفلکس:

  1. آن را به منبع وصل کنید. آیا هر فرمان و پرچم داده شده توسط هوش مصنوعی واقعاً در اسناد رسمی است؟ بپرسید "به من بگویید این پرچم در کدام نسخه آمده و نام آن در سند رسمی"؛ اگر مطمئن نیستید، به آن اعتماد نکنید.
  2. خشک کنید. ببینید چه اتفاقی می‌افتد بدون اینکه واقعاً آن را با مدهایی مانند terraform plan، kubectl --dry-run، --check اعمال کنید.
  3. آن را از فیلتر سیستم عبور دهید. آیا خروجی با معماری، خط مشی امنیتی و نام منابع موجود مطابقت دارد؟ دانش دامنه شما فیلتر نهایی است.
توجه: "هوش مصنوعی چنین نوشته است" توجیه نیست. در صورت وقفه پرود، مسئولیت نه به هوش مصنوعی، بلکه به شخصی تعلق دارد که آن فرمان را بدون تأیید آن اجرا می کند. یک فرمان AI تایید نشده به همان اندازه خطرناک است که یک rm -rf بدون خوانده شدن اجرا می شود.

امنیت و اسرار: هرگز درز نکنید

مهم ترین قانون حفظ حریم خصوصی در DevOps در مورد اسرار است. راز؛ این اطلاعات محرمانه ای مانند رمز عبور، کلید API، رشته اتصال پایگاه داده، گواهی خصوصی است که در صورت در معرض خطر قرار گرفتن می تواند کل سیستم شما را باز کند. هیچ راز واقعی را در یک درخواست هوش مصنوعی قرار ندهید. اگر یک بلوک کد حاوی یک کلید دسترسی واقعی AWS، محتویات یک فایل .env، یا یک رمز عبور پایگاه داده تولیدی است، قبل از دادن آنها به هوش مصنوعی، آن ها را با مکان هایی مانند <AWS_ACCESS_KEY> به جای AKIA... پنهان کنید.

همچنین کدی را که هوش مصنوعی تولید می‌کند بررسی کنید: هوش مصنوعی گاهی اوقات نمونه‌هایی را تولید می‌کند که رمز راز را مستقیماً در کد برای راحتی کدگذاری می‌کند. این یک آسیب پذیری امنیتی است. در واقع، اسرار در یک مخزن مخفی (Vault، AWS Secrets Manager، Azure Key Vault) نگهداری می شوند و به عنوان متغیرهای محیطی در زمان اجرا تزریق می شوند.

یکی دیگر از محدودیت های اخلاقی و قانونی در این زمینه: استفاده دفاعی. از هوش مصنوعی برای سخت‌تر کردن سیستم‌های خود، اسکن برای آسیب‌پذیری‌ها و استخراج آثار حملات از لاگ‌ها استفاده کنید. دسترسی غیرمجاز به سیستم دیگران، اسکن غیرمجاز یا ایجاد ابزار حمله غیرقانونی و خارج از محدوده این پلتفرم است. همیشه در سیستم هایی کار کنید که برای آنها اختیار دارید و از طریق قرارداد مجوز کتبی دریافت کرده اید.

کدام داده به کدام وسیله نقلیه می رود؟

نوع داده

مثال

وسیله نقلیه مناسب

باز کردن داده ها

سند رسمی، کد منبع باز

هر وسیله نقلیه

اطلاعات داخلی (راز نیست)

نمودار معماری عمومی، خط لوله عمومی

وسیله نقلیه مورد تایید موسسه

محرمانه/حساس

راز، IP/توپولوژی تولید، داده های مشتری

فقط وسیله نقلیه ای که توسط موسسه قرارداد بسته شده است که اطلاعات آن به آموزش نمی رود. با ماسک زدن

سه کیف کوچک

مورد 1 - زمان در مکان مناسب به دست آمد. یک مهندس DevOps 6 ساعت صرف انتقال خط لوله قدیمی 300 خطی جنکینز به GitHub Actions کرد. او با توضیح گام به گام هوش مصنوعی و تهیه پیش نویس کار را به 90 دقیقه کاهش داد. او زمان ذخیره شده را صرف تایید هر مرحله توسط هوش مصنوعی در مرحله بندی، یک به یک کرد. هوش مصنوعی ترجمه مکانیکی را انجام داد. اعتبار سنجی با انسان باقی ماند.

مورد 2 - تأیید فاجعه جلوگیری کرد. تیمی از هوش مصنوعی یک اسکریپت پاکسازی Terraform را درخواست کردند. هوش مصنوعی کد روان داد. اما زمانی که مهندس طرح زمینی را اجرا کرد، متوجه شد که اسکریپت همچنین قصد دارد یک پایگاه داده تولیدی در حال استفاده را حذف کند - هوش مصنوعی فیلتر منابع را اشتباه تایپ کرده بود. اجرای خشک از ساعت ها از دست رفتن اطلاعات جلوگیری کرد.

مورد 3 - بازگشت از نشت مخفی. یک کارآموز در حالی که می‌پرسید «چرا این خطای استقرار» کل فایل .env را در یک ابزار عمومی با رمز عبور پایگاه داده تولید واقعی در داخل آن قرار می‌دهد. مهندس ارشد بلافاصله کلیدها را چرخاند و بازسازی کرد. راه صحیح این بود که رمز عبور را با <DB_PASSWORD> پنهان کنید و فقط پیام خطا را به اشتراک بگذارید.

چهار قالب قابل کپی

1) ارزیابی شایستگی شغلی:

نقش شما: مشاور ارشد DevOps/SRE. نقشی را برای شما تعریف می کنم. به من بگویید (1) آیا این یک کار پیش نویس/تحلیل است که می تواند به طور ایمن به هوش مصنوعی واگذار شود یا تصمیمی حیاتی است که بر محصول تأثیر می گذارد. (2) بدترین نتیجه را اگر اشتباه پیش رفت بگویید. (3) مراحل تأیید را که باید قبل از اجرا انجام شود بگویید. وظیفه: [اینجا]

2) ارائه زمینه ایمن (پوشاندن مخفی):

خطای زیر را تحلیل کنید. من تمام اسرار را با <PLACEHOLDER> پنهان کردم. همچنین پیشنهاد می‌کنید هرگز یک راز واقعی در راه‌حل تولید نکنید، از یک مکان نگهدار استفاده کنید و راز را در کد جاسازی کنید، از صندوق مخفی بخوانید. خطا/ورود: [محتوای نقاب دار]

3) تأیید فرمان:

این دستور را برای من توضیح دهید: بنویسید که هر پرچم چه کاری انجام می دهد، نسخه ابزاری که برای آن اعمال می شود و خطرناک ترین عارضه جانبی آن. در نهایت، 3 بررسی را که باید قبل از اجرای این در پرود انجام دهید، فهرست کنید. فرمان: [اینجا]

4) پرس و جو یادگیری/مفهوم:

من [مفهوم: به عنوان مثال. مفهوم [استقرار سبز-آبی] را طوری توضیح دهید که انگار دارید آن را برای یک مهندس DevOps توضیح می دهید: چه کاری انجام می دهد، چه زمانی از آن استفاده کنید، چه زمانی از آن استفاده نکنید، ۲ اشتباه معمولی. مختصر و دقیق باشید.

اعلان ضعیف / اعلان قوی

ضعیف: "یک اسکریپت توسعه برای من بنویس."

نتیجه گیری: مشخص نیست کدام ابر، کدام ابزار، کدام محیط. هوش مصنوعی یک اسکریپت عمومی و احتمالاً غیر تولیدی تولید می کند که راز را در کد جاسازی می کند.

قوی: "پیش‌نویسی از یک اسکریپت bash بنویسید که در AWS ECS (سرویس کانتینر الاستیک) مستقر می‌شود. منطقه eu-central-1 است، تصویر از ECR می‌آید. هرگز اسرار را در کد جاسازی نکنید، آنها را از AWS Secrets Manager بخوانید. اگر در هر مرحله خطایی وجود داشت، متوقف کنید (euo pipefail را قبل از اجرای تمام مراحل Write تنظیم کنید."

تفاوت: اعلان دوم به ابر، ابزار، محیط، قانون امنیتی و انتظارات اعتبار سنجی می دهد - خروجی مستقیما مفید و امن است.

اشتباهات رایج

  • چسباندن راز واقعی در اعلان. رایج ترین و خطرناک ترین اشتباه. همیشه ماسک بزنید
  • اعلان بدون متن بدون تعیین ابر، نسخه، محیط، خروجی مورد نظر اغلب متعلق به نسخه اشتباه یا معماری اشتباه است.
  • پرش از دویدن خشک پیاده سازی بدون برنامه ریزی/--dry-run گران ترین میانبر در DevOps است.
  • انجام اولین تلاش در تولید هر خروجی جدید هوش مصنوعی ابتدا باید در مرحله آزمایش/مرحله اجرا شود.
  • تفویض مسئولیت با "AI گفت." مسئولیت همیشه بر عهده مهندس مجری است.
  • اعتماد به پرچم توهم. اجرای پرچم دستوری که وجود ندارد بدون پرس و جو.

به طور خلاصه

DevOps و هوش مصنوعی ابری؛ این یک دستیار است که سرعت زیادی در کارهای متن فشرده مانند خط لوله، پیکربندی، اسکریپت و گزارش ارائه می دهد. اما مسئولیت تصمیمات موثر بر محصول، مدیریت مخفی و اجرای نهایی بر عهده مهندس ذیصلاح است. تأیید سه مرحله‌ای (اتصال به منبع، خشک شدن، عبور از فیلتر سیستم)، عدم افشای اسرار، و کار کردن برای اهداف دفاعی فقط در سیستم‌های مجاز، اصول راهنمای این ماژول است.

وظیفه کاربردی

یک کار DevOps اخیر را از کار خود (یا یک پروژه نمونه) انتخاب کنید. (1) این کار را با استفاده از الگوی "ارزیابی مناسب شغلی" در بالا برای هوش مصنوعی توصیف کنید و طبقه بندی آن را بخوانید. (2) اگر حاوی راز است، با پوشاندن متن متنی آماده کنید. (3) خروجی هوش مصنوعی را با تأیید سه مرحله ای بررسی کنید و در یک جمله یادداشت کنید که در هر مرحله چه چیزی را اصلاح کرده اید.

چک لیست

  • [ ] من وظیفه خود را به عنوان "کار قابل واگذاری" یا "تصمیم حیاتی" طبقه بندی کردم.
  • [ ] من هیچ راز واقعی را در اعلان قرار ندادم. من همه آنها را با یک نگهدارنده ماسک کردم.
  • [ ] من زمینه مربوط به ابر، نسخه ابزار و محیط را به درخواست اضافه کردم.
  • [ ] من قبل از اعمال خروجی هوش مصنوعی را با اجرای/طرح خشک بررسی کردم.
  • [ ] من اولین تلاش را در محیط آزمایش/مرحله سازی انجام دادم، نه در تولید.
  • [ ] من فقط برای اهداف دفاعی روی سیستم هایی کار می کردم که در آنها اقتدار داشتم.