ایدههای فنی برای تصمیمهای مطمئنتر
راهنماها، تجربهها و نگاههایی کاربردی به DevOps، زیرساخت ابری و امنیت.
مطالعه تازهترین مقالههاداکر
همه چیز درباره داکر
دایرکت ادمین
همه چیز راجع به پنل مدیریتی دایرکت ادمین
دواپس
همه چیز راجع به دواپس
سیپنل
همه چیز راجع به cpanel
DevSecOps
همه چیز راجع به DevSecOps
امنیت
اطلاعات بروز راجع به امنیت
وردپرس
اطلاعات جدید راجع به وردپرس
چیزی برای یادگرفتن، چیزی برای بهتر ساختن
۳۶ مقاله
آموزش ساخت و تزریق SSH Key در پایپلاینهای CI/CD گیتلب
فرض کن یه پایپلاین CI/CD داری که قراره پروژه رو روی یه سرور دیگه دیپلوی کنه. برای این کار رانرِ گیتلب باید به اون سرور وصل بشه و دستورهای لازم رو اجرا کنه؛ ولی مشکل اینجاست که اتصال SSH معمولاً یا پسورد میخواد یا نیاز به یه تعامل دستی داره، در حالی که پایپلاین قراره کاملاً خودکار اجرا بشه و کسی پشتش نشسته که پسورد وارد کنه. راهحل این مشکل استفاده از SSH key هست. بهجای پسورد، یه جفت کلید (عمومی و خصوصی) میسازیم؛ کلید عمومی رو روی سرور مقصد میذاریم و کلید خصوصی رو یه جای امن نگه میداریم که فقط پایپلاین بهش دسترسی داشته باشه. گیتلب هم دقیقاً برای همین کار امکانی به اسم Variables داره که میتونیم کلید خصوصی رو بهصورت protected توش تعریف کنیم تا موقع اجرای پایپلاین در دسترس باشه، بدون اینکه جایی توی کد یا لاگها لو بره.
ادامه مطلب ←
نحوه راه اندازی و تنظیم Gitlab Runner
در این مقاله با مفاهیم اصلی GitLab Runner و نحوه استفاده از آن برای اجرای Pipelineهای CI/CD آشنا میشویم. ابتدا ساختار Runner، Executorهای مختلف مانند Docker و Shell، نحوه نصب و ثبت Runner و نقش `tags` در انتخاب Runner مناسب بررسی میشود. سپس با اجرای یک Job ساده، نحوه ایجاد محیط اجرای Job، استفاده از متغیرهای CI/CD و بررسی لاگها و خطاهای اجرای Pipeline بهصورت عملی مرور میشود. در ادامه، تنظیمات مهم `config.toml`، نحوه استفاده از Helper Image و اهمیت نسخه و دسترسی به Imageها بررسی شده و در نهایت با چند نمونه عملی، روش عیبیابی Jobها و مدیریت Runner توضیح داده میشود. هدف مقاله ارائه یک دید عملی و پایه برای راهاندازی، استفاده و مدیریت GitLab Runner در پروژههای CI/CD است.
ادامه مطلب ←
طراحی پایپ لاین برای تست و دیپلوی سطح مبتدی با Gitlab CI/CD
در این مقاله سعی میکنیم یک سناریو ساده برای یک پروژه ساده پایتونی با فریمورک flask رو پیاده سازی کنیم. این سناریو سه مرحله تست, بیلد و استقرار یا دیپلوی پروژه و قرار دادن ان روی اینترنت رو خودکار سازی میکنه و همچنین در طراحی پایپ لاین ها خیلی مهم هست که نکات امنیتی و منطقی برای مدیریت سرور ها رعایت بشود چون در صورت وجود داشتن ایراد منطقی یا امنیتی ممکنه به مشکلات گسترده و مهمی بر بخوریم. ( مثل مدیریت نکردن نسخه های قدیمی که توسط پایپ لاین اجرا شدن که باعث درگیر شدن تمام منابع سرور و در نهایت غیر قابل دسترس شدن سرور و پایین اومدن سرویس میشه یا نشت اطلاعات حساس حین اجرای پایپ لاین که باعث بوجود اوردن دسترسی های سطح بالا بدون احراز هویت به دیگران میدهد)
ادامه مطلب ←
راهاندازی رجیستری خصوصی داکر با Nexus Repository Manager
وقتی یک تیم چند نفره روی چند پروژه کار میکنه، هر docker pull یعنی دانلود مجدد از اینترنت: هم کند، هم مصرف پهنای باند، هم گیر کردن روی محدودیتهای شبکه و rate limit داکرهاب. از طرف دیگه ایمیجهایی که خودمون میسازیم باید جایی نگهداری بشن که تحت کنترل ما باشه. در این مقاله سه ریپوی داکر در نکسوس میسازیم و به هم وصل میکنیم: - یک proxy که واسط و کش داکرهاب میشه - یک hosted که رجیستری خصوصی ایمیجهای خودمونه - یک group که هر دو رو زیر یک آدرس واحد جمع میکنه
ادامه مطلب ←
نحوه راه اندازی nexus repository manager
وقتی روی یک سرور چند تا پروژه داریم یا یک تیم چند نفره روی یک محصول کار میکنه، هر بار دانلود شدن پکیجها و ایمیجها از اینترنت هم وقت میگیره هم پهنای باند مصرف میکنه؛ بعضی وقتها هم به خاطر محدودیتهای شبکه یا تحریمها اصلاً به رجیستریهای اصلی مثل Docker Hub دسترسی نداریم. برای حل این مشکل، بهترین گزینه راهاندازی یک ریپازیتوری منیجر داخلیه؛ سیستمی که هم میتونه واسط بین ما و رجیستریهای عمومی باشه (پروکسی و کش) و هم ریپوی خصوصی خودمون برای ایمیجها و پکیجهایی باشه که خودمون ساختیم. در این مقاله قدم به قدم Nexus Repository Manager رو روی یک سرور اوبونتو راهاندازی میکنیم؛ از استخراج فایل نصب و ساخت کاربر اختصاصی و سرویس systemd گرفته تا اولین ورود به رابط وب، گرفتن پسورد ادمین و آشنایی با محیط نکوس رو باهم پیش میبریم
ادامه مطلب ←
نحوه فعال کردن https و مدیریت سرتیفیکیت دامنه با nginx
بیشتر آموزشهای فعالسازی HTTPS روی Nginx به شما میگویند دستور certbot --nginx -d example.com را اجرا کنید و تمام! این روش کار میکند اما اولین باری که چیزی خراب شود، گم میشوید؛ چون هیچوقت نفهمیدهاید آن دستور در واقع چه کاری انجام داده است. این مقاله مسیر متفاوتی را طی میکند. ابتدا میفهمیم پشت صحنه چه میگذرد، بعد با دستورهای خام Certbot (بدون افزونه Nginx) گواهی میگیریم و آن را خودمان به کانفیگ Nginx وصل میکنیم. فقط بعد از این مراحل، سراغ آن یک دستور جادویی میرویم که همه کارها را خودکار میکند و در آن لحظه دقیقاً میدانید چه کاری برایتان انجام میدهد.
ادامه مطلب ←
راه اندازی ریورس پروکسی در nginx
فرض کنید میخواهیم چندین سرویس مختلف را روی یک سرور واحد و از روی پورت عادی 80 سرو کنیم. مشکلی که به آن برمیخوریم این است که نمیشود چندین سرویس روی یک پورت یکسان پاسخگو باشند و قطعاً به ارور مشغول بودن آن پورت (port already in use) برمیخوریم. در این مقاله به آموزش نحوه استفاده از راه حل وب سرور nginx برای این مشکل به اسم reverse proxy میپردازیم و نگاهی کلی به اینکه چطور nginx رو کانفیگ کنیم و ساختارش چطوریه میندازیم
ادامه مطلب ←
طراحی سیستمهای Highly Available چیست؟ راهنمای کامل معماریهای در دسترسپذیر
طراحی سیستمهای Highly Available یعنی ساخت معماریهایی که در برابر خرابیهای روزمره، outage و failover مقاوم باشند. در این مقاله HA را عمیق بررسی میکنیم.
ادامه مطلب ←
SRE چیست؟ راهنمای کامل Site Reliability Engineering در سیستمهای مدرن
SRE یا Site Reliability Engineering رویکردی مهندسی برای ساخت و نگهداری سیستمهای قابلاعتماد، مقیاسپذیر و پایدار است. در این مقاله SRE را کامل بررسی میکنیم.
ادامه مطلب ←







