GitOps چیست

گیت اوپس چیست
Devops

مقدمه

برای پیاده سازی زیرساخت بدون مشکل و بدور از خطاهای منابع انسانی و مهندسی شده پیشنهاد میشود از روش هایی مانند GitOps استفاده کرد به طور خلاصه میتوان با استفاده از قابلیت های gitlabوCI/CD و Docker ساختاری بدون تحمیل DownTime به پروژه را پیاده سازی کرد

Gitops

همانطور که در حریان هستید gitops برگرفته شده از متد Devops میباشد شما با این متد میتوانید سرعت توسعه و بارگزاری پروژه در سرورهای عملیاتی را بالا ببرید همچنین از اندر مزایای Devops میتوان به کنترل ورژن های نرم افزار و بازرسی کد و image versioning ویا حتی CI/CD اشاره کرد

GitOps برای خودکار سازی فرایند توسعه زیرساخت استفاده میشود همانند Devops که به ما کمک میکند تا کد خود را مدیریت کنیم این امکان را به ما میدهد که زیرساخت خود را در قالب کد داشته باشیم

 

تیم ها به چه صورت میتوانند از GitOps استفاده کنند

اولین نکته برای پیاده سازی GitOps جدا سازی کدهای مربوط به تنظیمات و Devops می‌باشد بدین صورت که اگر شما داخل تنظیمات تغییراتی ایجاد کردید باید و تنظیمات به گونه ای بود که باید به اطلاع نیروهای برنامه نویس برسد این اقدام توسط واحد Devops میبایست انجام شود

GitOps  سه جزء اصلی  دارد:

IaC:

در GitOps شما باید یک مخزن(Git repository)  مخصوص برای کنترل کردن تغییرات زیرساختی داشته باشید یا به اصطلاح از متد Infrastructure as code (IAC) استفاده کنید

MRs:

شما در معماری GitOps ساختار مخزن های خود را باید به صورت Merge Request و Pull request انجام بدهید در این حالت تیم ها میتوانند بر روی کدها نظارت و عملکرد بهتری داشته باشن و تغییرات به صورت گراف قابل مشاهده باشد

CI/CD:

در متدولوژی GitOps شما ملزم به استفاده از ابزارهای Ci/CD هستید تا از بروز خطاهای انسانی در حین تغییرات جلوگیری کنید

چالش‌های GitOps

GitOps هم مانند هر متد جدید دیگه ای شامل یکسری مشکلات می‌باشد از بدیهی ترین آن میتوان به مستندسازی کوچک ترین تا بزرگترین تغییرات اشاره کرد

GitOps امکان همکاری بیشتر را فراهم می کند، اما این لزوماً چیزی نیست که به طور طبیعی برای برخی از افراد یا سازمان ها ایجاد شود. فرآیند تأیید GitOps به این معنی است که توسعه‌دهندگان تغییراتی در کد ایجاد می‌کنند، یک درخواست ادغام(Merge request) ایجاد می‌کنند، یک تأییدکننده این تغییرات را ادغام می‌کند و تغییر مستقر می‌شود. همچنین در صورت درست بررسی نکردن یا ننوشتن تست مناسب توسط مدیر گروه ها ممکن است باگ را به صورت اتوماتیک داخل سرورهای پروداکشن قرار دهیم

 مزایای GitOps

تقاوت های GitOps با DevOps

در حالی که DevOps تمرکز خود را بر روی ارتباط بین تیم ها و خودکارسازی فرایند استقرار گذاشته است GitOps بر روی مدیریت Kubernetes و Docker swarm و … گذاشته است

GitOps یک شاخه از Devops می باشد GitOps تمرکز خود را بر روی مدیریت کردن زیرساخت تحت کد IAC گذاشته است

 

اجزای اصلی GitOps و نحوه کار آن‌ها

اجزای اصلی GitOps به چهاردسته تقسیم میشوند

۱- مخزن کد برای پروژه ها و تنظیمات زیرساخت

۲- پایپلاین های  CI/CD  در جهت راه اندازی تست و ساخت Container , Image

۳- ابزارهایی که برای مدیریت منابع در سرورهای عملیاتی استفاده می‌شوند

۴-ابزارهایب پایش و نظرسنجی و جمع آوری لاگ مانند Sentry

 

 

نکته: از این قسمت به بعد برای پیاده سازی پروژه پایتون از GitOps استفاده میکنیم تا درک مطلب در رابطه با GitOps کامل شود

نحوه پیاده سازی GitOps بر روی پروژه python/fast-api

اولین قدم در ساخت پروژه به صورت میکروسرویس و مجزا از هم میباشد بدین شکل که داخل Git یک گروه به نام پروژه ایجاد میشود سپس نسبت به نوع پروژه اقدام به ساخت مخزن هایی با نام backend, Fronend,Database,Redis میکنیم

سپس برای همه مخازن سورس محور مانند backend, Frontend برنچ هایی با نام های develop,production, stage ساخته میشود تا سطوح دسترسی برای این برنچ ها تعریف شود

Develop: صرفا برای توسعه برنامه نویس ها و ذخیره کردن آخرین تغییرات

stage: برای گرفتن نسخه نسبتن پایدار از Develop و ارائه دمو(پیش نمایش)

production: پس از درخواست Merge Request و تایید TeamLead و پاس شدن Unit Test ها یک نسخه بدون مشکل داخل Nexus و یا Gitlab Registery قرار میدهیم سپس با استفاده از Gitlab CD ایمیج ساخته شده را در سرور production نصب میکنیم

Devops: با توجه به استاندارد Gitops یک برنچ با نام Devops برای نگه داری Dockerfileو docker-compose.yml و env را داخل آن قرار میدهیم و از برنچ های دیگر Symbolink به این برنچ میزنیم تا در صورت تغییرات توسط تیم Devops احتیاجی به pull گرفتن نداشته باشیم

 

راه انداری .gitlab-ci.yml با قواعدی مانند Merge Request در برنچ Devops

job1:
  script:
    - echo "This job runs in merge request pipelines"
  only:
    - merge_requests


  • نیاز به یک منبع فارسی زبان، زیر ساخت های فضای ابری برای اموزش و یادگیری تبدیل به یک ارزوی محال شده بود
    ابرفانت از دل این نیاز به روزگار نو سلام کرد
    یادگیری و اموزش شالوده ابرفانت هست
    ابرفانت فقط ،یک پلتفرم سایت ساز یا زیرساخت رایگانی برای دیگران نیست
    پایگاه دانش جامع ابرفانت ماشین تازه نفس رویای های من بوده
  • دسته‌بندی: Devops, آموزش
  • برچسب‌ها: , , , ,
بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Data Storafe solutions image
Devops
مقایسه نرم افزارهای ذخیره‌سازی EBS, Swift, Longhorn, Rook Ceph

  مقایسه نرم افزارهای ذخیره‌سازی Swift ,RookCeph, Longhorn، و OpenEBS همگی راه‌حل‌های orchestration ذخیره‌سازی کانتینری محبوب برای Kubernetes هستند. همه آنها آسان برای استفاده، قابل مقیاس‌پذیری و قابل اعتماد هستند. با این حال، برخی از تفاوت‌های کلیدی بین آنها وجود دارد.که در این مقاله سعی میکنیم به مهم‌ترین ویژگی‌های آن‌‌ها …

بیمه تامین اجتماعی
آموزش
آموزش رد کردن بیمه و مالیات برای استارت اپ ها

بیمه استارتاپ نداشتن بیمه تکمیلی یکی از مشکلات مهمی است که استارتاپ‌‌ها و فریلنسرها با آن مواجه میشوند.‌ بیمه در استارت اپ برای کارکنان بسیار حائز اهمیت است. فرقی نمیکند که شما کارمند باشید یا کارفرما، بالاخره روزی به بیمه تکمیلی نیاز پیدا خواهید کرد.‌ بیمه تکمیلی جزء بهترین گزینه‌‌‌ها …

What Is Load Balancing? - Blog - GB Cloud
Devops
توزیع کننده ‌بار (Load Balancer) چیست و چه کاریردهایی دارد؟

توزیع کننده ‌بار (Load Balancer) به عنوان پروکسی ترافیک نت کار می­کند. به طوری­که ترافیک شبکه یا برنامه را روی نقاط انتهایی (endpoints) تعدادی از سرورها، توزیع می­نماید. پروکسی متعادل کننده بار برای توزیع ظرفیت در زمان اوج ترافیک و بالا بردن قابلیت اطمینان برنامه ها (reliability) به کار می­رود. …