مصاحبهٔ دوآپس؛ شب ۱۲: Database DevOps و امنیت شبکه
فهرست نوشته
تغییر پایگاه داده و تغییر شبکه هر دو ممکن است اثر ماندگار و دامنهٔ خرابی بزرگ داشته باشند. امشب بر دو اصل تکیه میکنیم: تغییر باید مرحلهای و قابل اعتبارسنجی باشد، و اعتماد نباید فقط از موقعیت شبکه نتیجه شود. پاسخها از migration تا TLS و segmentation را با همین نگاه پیوند میدهند.
پرسشهای ۱۱۱ تا ۱۱۵: مدیریت پایگاه داده در DevOps#
۱۱۱. Database DevOps چیست؟#
پاسخ کوتاه: Database DevOps اعمال اصول همکاری، version control، automation، آزمون و مشاهدهپذیری به تغییر schema و داده است تا پایگاه همراه برنامه با ریسک کنترلشده تکامل یابد. DBA حذف نمیشود؛ دانش داده زودتر وارد جریان تحویل میشود.
تغییر پایگاه با deploy stateless یکسان نیست، چون rollback داده ممکن است از دستدادن اطلاعات بسازد. الگوی expand/contract ابتدا schema سازگار را اضافه، برنامه را مهاجرت و پس از اطمینان بخش قدیمی را حذف میکند. migration باید owner، backup یا راه بازیابی، قفل و زمان اجرا داشته باشد. pipeline میتواند syntax و migration روی clone داده را آزمایش کند، اما اثر بار واقعی نیز باید سنجیده شود.
۱۱۲. database version control چیست؟#
پاسخ کوتاه: version control پایگاه یعنی تعریف schema و migrationهای ترتیبی کنار کد نگهداری شود تا هر محیط بداند چه تغییرهایی اعمال شدهاند. تاریخچه باید افزایشی، بازبینیشده و به نسخهٔ برنامه قابل ردیابی باشد.
ویرایش migrationی که قبلاً در محیط مشترک اجرا شده معمولاً خطرناک است؛ migration اصلاحی تازه بسازید. دادهٔ مرجع و seed را از دادهٔ واقعی حساس جدا کنید. dump کامل production منبع کد مناسب نیست. checksum میتواند تغییر فایل را آشکار کند. branching migration نیازمند ترتیب و naming روشن است. وضعیت schema تنها بخشی از پایگاه است؛ role، extension و jobها نیز باید در دامنهٔ مدیریت مشخص باشند.
۱۱۳. ابزارهای database migration کداماند؟#
پاسخ کوتاه: Flyway و Liquibase ابزارهای عمومی شناختهشدهاند؛ frameworkها نیز migrationهای مخصوص خود مانند Alembic یا Django migrations دارند. معیار انتخاب شامل DBMS، نوع تغییر، زبان، transaction، checksum، lock، dry-run و integration با pipeline است.
ابزار تغییر امن را تضمین نمیکند. ALTER TABLE ممکن است روی حجم بزرگ lock طولانی بسازد یا rewrite انجام دهد. rollback خودکار برای حذف ستون داده را بازنمیگرداند. migration باید روی نسخه و اندازهٔ مشابه آزموده و زمان آن ثبت شود. اجرای همزمان چند runner باید با lock کنترل شود. credential migration معمولاً privilege بالاتری دارد و نباید در runtime عادی برنامه استفاده شود.
۱۱۴. راهبرد backup پایگاه داده چیست؟#
پاسخ کوتاه: راهبرد از RPO و RTO آغاز میشود و ترکیبی از backup فیزیکی یا منطقی، snapshot، log transaction برای point-in-time recovery، retention و کپی جدا را انتخاب میکند. سازگاری و restore باید آزموده شوند.
replica backup نیست و dump بدون آزمون ممکن است ناسازگار یا بسیار کند باشد. backup رمزنگاریشده به حفاظت و بازیابی کلید نیاز دارد. PITR به base backup و زنجیرهٔ log سالم وابسته است. restore در محیط جدا باید schema، row count یا checksum و رفتار برنامه را بررسی کند. retention باید حذف قانونی داده را نیز در نظر بگیرد. گزارش موفقیت job، بازیابیپذیری را ثابت نمیکند.
۱۱۵. database performance tuning چیست؟#
پاسخ کوتاه: tuning فرایند اندازهگیری workload، یافتن bottleneck و تغییر query، index، schema، configuration یا resource برای رسیدن به هدف latency و throughput است. از query و plan واقعی شروع میشود، نه فهرست تنظیمهای عمومی.
index خواندن را سریعتر میکند ولی فضای ذخیره، cache و هزینهٔ write را بالا میبرد. connection بیشتر میتواند contention را بدتر کند. EXPLAIN یا plan، slow query log، hit ratio و wait event شواهد میدهند. تغییر باید با baseline و بار مشابه مقایسه شود. vacuum، statistics و maintenance نیز اهمیت دارند. cache ممکن است symptom را پنهان کند؛ consistency و invalidation باید روشن باشند.
پرسشهای ۱۱۶ تا ۱۲۰: امنیت شبکه#
۱۱۶. امنیت شبکه در DevOps چیست؟#
پاسخ کوتاه: امنیت شبکه حفاظت از مسیر ارتباط، endpoint و control plane با inventory، policy، هویت، encryption، segmentation و telemetry است و باید در IaC، pipeline و runtime قابل اعمال و بازبینی باشد.
بازبودن درگاه فقط یک ریسک است. route، DNS، egress، load balancer، VPN و API مدیریت نیز سطح حملهاند. policy باید بر اساس جریان لازم طراحی شود: چه مبدأیی با چه هویتی به کدام مقصد و درگاه دسترسی دارد؟ deny پیشفرض بدون مشاهده و rollout مرحلهای میتواند outage بسازد. scan و flow log تشخیص میدهند، اما جای طراحی و patch را نمیگیرند.
۱۱۷. Zero Trust چیست؟#
پاسخ کوتاه: Zero Trust مدل امنیتیای است که به کاربر، دستگاه یا workload صرفاً بهدلیل حضور در شبکهٔ داخلی اعتماد ضمنی نمیدهد. دسترسی به resource با هویت، وضعیت، policy کمینه و ارزیابی پیوسته تصمیمگیری میشود.
Zero Trust نام یک محصول و به معنی «به هیچکس اعتماد نکن» نیست. احراز هویت قوی، مجوز هر session، inventory، telemetry و محدودکردن حرکت جانبی اجزای آناند. microsegmentation میتواند کمک کند، ولی هویت و data policy نیز لازماند. مهاجرت تدریجی است: resource و جریان را بشناسید، policy بسازید، monitor کنید و سپس enforce کنید. availability و تجربهٔ کاربر باید در طراحی باقی بمانند.
۱۱۸. SSL/TLS چیست؟#
پاسخ کوتاه: TLS پروتکلی برای محرمانگی، یکپارچگی و احراز هویت ارتباط است. اصطلاح SSL هنوز محاورهای استفاده میشود، اما نسخههای SSL منسوخ و ناامناند؛ سامانهٔ جدید باید TLS پشتیبانیشده را به کار برد.
در handshake، طرفها نسخه و cipher را توافق میکنند، گواهی هویت endpoint را به زنجیرهٔ اعتماد و نام میزبان وصل میکند و کلید session ساخته میشود. encryption بدون بررسی گواهی در برابر حملهٔ میانی کافی نیست. private key باید حفاظت و certificate پیش از انقضا تمدید شود. TLS داده را در مسیر محافظت میکند، نه endpoint آلوده یا authorization ضعیف را. mTLS هویت هر دو طرف را با گواهی میسنجد.
۱۱۹. WAF چیست؟#
پاسخ کوتاه: Web Application Firewall ترافیک HTTP را با rule و context برنامه بررسی و درخواست مشکوک را ثبت، challenge یا مسدود میکند. managed rule میتواند کلاسهایی از حمله را کاهش دهد و virtual patch موقت فراهم کند.
WAF جای رفع آسیبپذیری، authentication یا secure coding نیست. rule کلی false positive دارد و باید ابتدا monitor، سپس با canary enforce شود. ترافیک رمزشده باید در نقطهای terminate شود تا inspection ممکن باشد. APIهای JSON، upload و WebSocket نیازهای خاص دارند. log WAF ممکن است دادهٔ حساس داشته باشد. bypass مستقیم backend باید بسته شود و ruleها version و owner داشته باشند.
۱۲۰. network segmentation چیست؟#
پاسخ کوتاه: segmentation شبکه را به zoneهای با policy ارتباطی محدود تقسیم میکند تا دسترسی ناخواسته و حرکت جانبی کم شود. VLAN، subnet، firewall، security group و Kubernetes NetworkPolicy ابزارهای ممکناند.
تقسیم صرف آدرس بدون enforcement امنیت نمیسازد. policy از جریان کسبوکار میآید و باید ingress و egress، DNS و مسیر مدیریت را پوشش دهد. microsegmentation policy ریزتر تا سطح workload میدهد، اما پیچیدگی و خطر قطع dependency پنهان را افزایش میدهد. ابتدا flow را observe و owner را تعیین کنید، سپس policy را مرحلهای اعمال کنید. segmentation مکمل identity و encryption است، نه جای آنها.
جمعبندی مصاحبهای#
در داده، برگشت همیشه معادل اجرای دستور معکوس نیست؛ در شبکه نیز داخلیبودن معادل trusted بودن نیست. پاسخ خوب ترتیب ایمن میدهد: inventory و baseline، تغییر کوچک، مشاهدهٔ اثر، و برنامهٔ بازیابی. این ترتیب از نام ابزار مهمتر است.