دواپس U6 / 9 پروژه ها
خدمات دواپس سرور
کانتینر، کوبرنتیز، استقرار خودکار، زیرساخت به عنوان کد و مانیتورینگ پیشرفته.
-
01
راه اندازی داکر
داکر بسته بندی برنامه و وابستگی های آن را قابل تکرارتر می کند، اما تفاوت سخت افزار، شبکه، تنظیمات و داده را به تنهایی برطرف نمی کند. محیط فعلی را بررسی می کنیم و Dockerfile و تنظیمات Compose را متناسب با نیاز و آزمون پذیرش پروژه آماده می کنیم.
- روی سرور تست کار می کند ولی روی سرور اصلی خطا می دهد.
- نصب پروژه روی یک سرور جدید چند روز طول می کشد.
-
02
کلاستر کوبرنتیز
کوبرنتیز ابزار قدرتمندی است، اما کلاستری که بد ساخته شده خودش باعث قطعی می شود، و برای همین راه اندازی کلاستر کوبرنتیز را از طراحی نودها و شبکه شروع می کنیم. کلاستر را با چند نود کنترل (control plane) می سازیم و بکاپ، مانیتورینگ و به روزرسانی را از روز اول در طراحی می آوریم.
- تعداد سرویس ها زیاد شده و مدیریت کانتینرها با دست دیگر جواب نمی دهد.
- کلاستر را خودمان راه انداختیم ولی کسی جرأت به روزرسانی اش را ندارد.
-
03
پایپ لاین CI/CD
وقتی پایپ لاین CI/CD ندارید و انتشار هر نسخه یعنی SSH به سرور و اجرای چند دستور از حافظه، دیر یا زود یک نسخه خراب به دست کاربران می رسد. ما مسیر کد تا سرور را خودکار می کنیم. هر push تست و build می شود و با یک تأیید روی محیط اصلی می رود.
- هر انتشار را یک نفر با دست روی سرور انجام می دهد و فقط خودش می داند چطور.
- بعد از هر آپدیت چیزی خراب می شود و برگرداندن نسخه قبل ساعت ها طول می کشد.
-
04
Infrastructure as Code
سروری که چند سال پیش با دست تنظیم شده، معمولاً مستندی ندارد و بازسازی اش بدون Infrastructure as Code حدس و گمان است. در این روش، تنظیمات در Ansible و Terraform نوشته می شود، در گیت می ماند و هر بار همان نتیجه را می دهد. ما این کد را از روی سرورهای فعلی شما می نویسیم.
- نمی دانیم روی سرورها دقیقاً چه تنظیماتی اعمال شده است.
- راه اندازی هر سرور جدید یک روز کار دستی است.
-
05
مانیتورینگ و لاگ (ELK و Grafana)
وقتی سرویس کند شده، باید سریع بفهمید مشکل از دیتابیس است، از شبکه یا از آخرین انتشار، و راه اندازی ELK یا Grafana Loki با جمع کردن لاگ همه سرورها در یک جا همین را ممکن می کند. کنارش Prometheus و Grafana را هم راه می اندازیم تا سرورها، کانتینرها و اپلیکیشن شما را از یک جا ببینید.
- برای پیدا کردن علت خطا باید به چند سرور SSH بزنیم و لاگ ها را با grep بگردیم.
- Prometheus داریم ولی هشدارها آن قدر زیادند که کسی نگاهشان نمی کند.
راهنمای انتخاب خدمات دواپس
خدمات دواپس به تیم های نرم افزاری کمک می کند مسیر کد تا سرور را خودکار و تکرارپذیر کنند و ببینند در هر مرحله چه می گذرد. پنج خدمت این دسته هر کدام یک مشکل مشخص را حل می کنند و لازم نیست همه را با هم شروع کنید.
اگر برنامه روی سیستم برنامه نویس درست کار می کند و روی سرور خطا می دهد، یا وابستگی ها روی هر سرور دستی نصب می شوند، از راه اندازی داکر شروع کنید. کلاستر کوبرنتیز وقتی به کار می آید که سرویس های زیادی روی چند سرور دارید و جابجایی خودکار سرویس ها، ریستارت کانتینرهای از کار افتاده و افزایش ظرفیت لازم است؛ برای یک یا دو سرویس ساده، Docker Compose معمولاً کافی است. اگر انتشار هر نسخه یعنی SSH به سرور و اجرای چند دستور از حافظه، پایپ لاین CI/CD با GitLab CI یا Jenkins را انتخاب کنید. Infrastructure as Code با Ansible و Terraform برای سرورهایی است که سال ها پیش دستی تنظیم شده اند و کسی نمی داند چطور باید دوباره ساختشان. و اگر موقع کندی سرویس معلوم نیست مشکل از دیتابیس است یا از آخرین انتشار، مانیتورینگ و لاگ (ELK و Grafana) را ببینید.
معمولاً اول کانتینر می آید، بعد CI/CD، و کوبرنتیز وقتی که تعداد سرویس ها و سرورها واقعاً آن را لازم کند. مانیتورینگ و Infrastructure as Code را در هر مرحله می شود اضافه کرد. تیمی که تازه از استقرار دستی فاصله می گیرد، بیشترین تغییر را معمولاً با داکر و یک پایپ لاین ساده حس می کند.
دواپس به سرور و شبکه سالم تکیه دارد؛ اگر سرورها هنوز به روز و امن نیستند، مدیریت سرور لینوکس و هاردنینگ سرور را پیش از کوبرنتیز در نظر بگیرید. برای کلاستر روی سخت افزار خودتان، مجازی سازی سرور یا ابر خصوصی سازمانی در بخش شبکه بستر لازم را فراهم می کند. مانیتورینگ این دسته روی متریک ها و لاگ برنامه ها تمرکز دارد؛ برای هشدار ساده قطعی سرور و لینک های شبکه، خدمات مانیتورینگ شبکه در بخش قرارداد پشتیبانی مناسب تر است.
مقاله های مرتبط
-
دواپس -
دواپس تفاوت Terraform و Ansible چیست؟ کی کدام را انتخاب کنیم و چرا اغلب کنار هم می آیند
Terraform زیرساخت را اعلامی می سازد و در فایل state ردیابی می کند؛ Ansible روی ماشین ها از طریق SSH و بدون agent نرم افزار و تنظیمات را اعمال می کند. نمونه کد، مدیریت state، idempotency و راهنمای انتخاب برای چند سرور. -
دواپس فرق داکر و کوبرنتیز؛ کی داکر کافی است و کی کوبرنتیز لازم می شود
داکر ایمیج می سازد و کانتینر را روی یک سرور اجرا می کند؛ کوبرنتیز کانتینرها را روی چند سرور مدیریت می کند. این دو رقیب هم نیستند و معمولاً کنار هم استفاده می شوند. کی Docker Compose کافی است و کی وقت کوبرنتیز رسیده است. -
دواپس چگونه داکر را نصب کنیم؟ نصب Docker روی Ubuntu و AlmaLinux
نصب داکر از مخزن رسمی چند دقیقه کار دارد. مشکل ها بعدا از کاربر، لاگ و پورت هایی شروع می شوند که درست تنظیم نشده اند. مراحل نصب روی Ubuntu و AlmaLinux را همراه با دستورهای هر مرحله آورده ایم. -
دواپس نصب کلاستر کوبرنتیز روی اوبونتو: راه اندازی Kubernetes با kubeadm
راه اندازی کلاستر کوبرنتیز با kubeadm ترتیب ثابتی دارد: آماده سازی نودها، نصب container runtime، ساخت نود کنترل، نصب CNI و اضافه کردن worker. کنار دستورهای هر مرحله، اشتباه هایی را هم آورده ایم که معمولا همان جا پیش می آیند.
استعلام
کارتان را بگویید، مسیر و هزینه را می گوییم
چند خط درباره وضعیت فعلی و چیزی که می خواهید بنویسید. یک مهندس خودش با شما تماس می گیرد و درخواست به واحد فروش نمی رود.
- 01درخواست را می خوانیم و اگر ابهامی بود تماس می گیریم.
- 02در صورت نیاز، بررسی اولیه ریموت یا بازدید انجام می شود.
- 03پیشنهاد مکتوب با دامنه کار، زمان بندی و هزینه می فرستیم.