فرهنگ DevOps و واژه مهندس دوآپس

در این نوشته میخوام در مورد فرهنگ DevOps و واژه مهندس دوآپس براتون بگم.

قطعا این روزها بیشتر با این واژه برخورد دارید و تو خیلی از کانال‌ها، سایتها و… این واژه رو بیشتر از قبل میبینید و از همه مهم تر تو پشنهاد کار(Job Offer) هم این واژه جای خودش رو باز کرده و با ی سرچ کوچیک تو لینکدین پوزیشن های شغلی زیادی رو در این مورد پیدا می کنید. و اما واقعا دوآپس(DevOps) چیه؟ چطوری کار میکنه؟ چرا انقدر همه گیر شده؟ و به کی میگن مهندس دوآپس؟ تو این پست این واژه رو میشکافم و در مورد خرت و پرت هاش براتون میگم…

اواسط سال 2014 بود که برای اولین بار چشمم به این واژه خورد و تو مقاله ای که میخوندم چنین جمله ای نوشته شده بود: “دوآپس مانند ماشینی است که توسعه دهندگان مغز آن و مدیران سیستم اجزای مکانیکی آن را تشکیل می دهند.” و از اون موقه بود که با آشنایی با این واژه و منابع پراکنده ای که پیدا میکردم ی چیزایی در مورد این نمیدونم چی یاد گرفتم و بعدها در نقطه ای که فکرشم نمیکردم به یک دوآپس دان(نه مهندس دوآپس) تبدیل شدم. شنیدید که میگن “یک تصمیم میتونه یک سرنوشت رو عوض کنه”؟ من بهتون میگم “یک جمله میتونه یک سرنوشت رو عوض کنه!” و اون جمله برای من این بود که با نگرش دوآپس آشنا شدم. میخوام هرچی تو گروه‌ها، کانال‌ها، سایتها و… در مورد DevOps خوندید رو برا چند دقیقه فراموش کنید تا یکم در موردش باهم گپ و گفت بزنیم.

دوآپس(DevOps) چیه؟

شغله؟ نه!

پوزیشن شغلیه؟ نه!

دانشه؟ نه! تکنولوژیه؟ بازم نه!

ابزاره؟ اینم نه!

در واقع دوآپس یک “فرهنگه”. فرهنگی برای توسعه بهتر و سریعتر نرم افزار و اجرای سریع اونها در سرورها، به عبارتی با وجود این فرهنگ مراحل توسعه نرم افزار به مراحل استقرار نرم افزار در سرورها نزدیکتر و موثرتر میشه و چرخه ای رو ایجاد میکنه که توسعه تا تحویل نرم افزار خیلی سریع و با کیفیت بالاتر اتفاق بیفته و به افرادی که دارای این فرهنگ هستن و میتونن اون رو به اجرا در بیارن میگیم دوآپس دان(نه مهندس دوآپس). بابا صبر کن مهندس دوآپس رو هم میگم. 😐

دوآپس چطوری کار میکنه؟

ی نمونه کوچیک پیاده سازی با نگرش دوآپس “تجربه مهاجرت به داکر و سرور جدید“.

دوآپس از یک چرخه تشکیل شده که ابتدای این چرخه با برنامه ریزی(Plan) شروع میشه و تا مرحله مانیتور(Monitor) و بازگشت دوباره به مرحله Plan ادامه پیدا میکنه. بخشی از این چرخه مربوط به امور توسعه(Dev) و بخشی مربوط به امور عملیات(Ops) میشه. در بخش توسعه ابزارهای مربوط به توسعه نرم افزار و در بخش عملیات ابزارهای مربوط به انتشار، استقرار، کنترل و مانیتورینگ مورد استفاده قرار میگیره. این فرآیند میتونه به صورت انفرادی مثل من(هم توسعه دهنده هم مدیرسیستم) یا به صورت تیمی اجرا بشه و ی نکته اصلی داره: “دوآپس در جایی امکان پیاده سازی داره که نرم افزاری در حال توسعه وجود داشته باشه”، که از این جمله نتیجه های زیر رو میگیریم.

1- اگر شما فقط کدنویسی می کنید و با ابزارهای بخش عملیات آشنایی ندارید، صرفا یک توسعه دهنده هستید و خبر خوب اینه که اولین گام نقشه راه DevOps رو رفتید و با یادگیری ابزارهای Ops و بکارگیری فرهنگ DevOps میتونید برنامه هاتون رو بهتر توسعه بدید.

2- اگر شما مدیرسیستم هستید و برنامه نویسی نمی کنید(بلد نیستید). شما صرفا یک مدیرسیستم هستید و تو دسته دوآپسی ها قرار نمیگیرید و باید برای بکارگیری فرهنگ دوآپس یا برنامه نویسی کنید یا به اندازه ای بلد باشید که صحبت و نیازهای برنامه نویس ها از محیط اجرایی رو بدونید.

نقشه راه دوآپس با یادگیری برنامه نویسی شروع میشه.

مهندس دوآپس(DevOps Engineer) کیه؟

وقتی به یک نفر میگیم مهندس برنامه نویسی یعنی کسی که برنامه نویسی میکنه.

یا شخصی که مهندس برق هست کارهای برقی میکنه.

وقتی میگیم مهندس دوآپس یعنی دوآپس میکنه؟ یا دقیقا چی میکنه؟ :mrgreen: :mrgreen:

مهندس دوآپس هم یک نام تجاری مثل Cloud Computing میمونه و اخیرا شرکت ها به افرادی که ی نیمچه نگرشی از دوآپس دارن و یک لیست بالا بلند از ابزارها رو هم بلدن رو بهشون میگن مهندس دوآپس و با دادن یک پوزیشن شغلی کلی کار ازشون میکشن. :mrgreen:

منم برای اینکه بعد تجاری این موضوع حفظ بشه به خودم و شما میگم مهندس دوآپس ولی از این بهتر عنوانی هست که گوگل تحت عنوان مهندسی پایداری سایت(SRE) مطرح کرده که یک پوزیشن شغلی هست و به شخصی که در این پوزیشن کار میکنه مهندس پایداری سایت میگن.

مهندس پایداری سایت با استفاده از فرهنگ DevOps با تبدیل What به How، چرخه دوآپس رو در محیط توسعه پیاده میکنه. به گفته گوگل “class SRE implements DevOps” رو نشون میده و در جایی هم این جمله مفهومی خوب رو نوشته:

While DevOps is all about the “What” needs to be done, SRE talks about “How” this can be done. It’s about expanding the theoretical part to an efficient workflow, with the right work methods, tools and so on.

مفهوم جمله نقل شده: در حالی که دوآپس کلا در مورد چه چیزایی نیاز به انجام داره هست، SRE در مورد چگونه انجام شدنشون صحبت میکنه و در مورد این هست که چطور بخش(های) تئوری(منظورش دوآپس) با روش ها و ابزارهای مناسب به فرآیند موثر تبدیل بشه.

چرا DevOps انقدر همه گیر شده؟

طی چند سال گذشته با حرکت سریع تکنولوژی، نرم افزارها هم باید سریع حرکت کنن و خودشون رو با تکنولوژی های روز سازگار کنن که این موضوع نیاز داره فرهنگی مثل دوآپس پیاده سازی بشه و چرخه توسعه تا تحویل نرم افزار رو بهبود ببخشه و سرعت انتقال از مرحله توسعه به تجاری رو هم زیاد کنه. از طرفی هم شرکتها تمایل دارند افرادی رو استخدام کنن که همه فن حریف باشن و ضمن کارایی بالا نسبت به اینکه بخوان چند نیرو بگیرن کمتر حقوق بدن(در سراسر دنیا). به همین دلیل این روزا بیشتر تو پیشنهاد کار(Job Offer) ها واژه DevOps و SRE رو میبینیم که اکثرشون هم به عنوان پیشنیاز توسعه دهنده(Developer) همه فن حریف لازم دارن(نکته کنکوری). 😆

ابزارهای DevOps چیه؟

واقعا خیلی سخت میشه گفت چه ابزارهایی میشن ابزارهای DevOps چون ابزار لازم برای هر پروژه میتونه متفاوت باشه. این لیستی که براتون نوشتم بعضی از ابزارهایی هست که من استفاده میکنم یا تو رفرنس های مختلف پیشنهاد شده و نیاز هم نیست همرو بلد باشید.

1- مدیریت چرخه توسعه: Kanboard, Wekan

2- ارتباط جمعی و اشتراک منابع: Rocket.chat, Nextcloud

3- اشتراک دانش: readthedocs.io

4- مدیریت/کنترل ورژن و سورس: Gitlab, Redmine, Trac, Gerrit

5- مدیریت باگ: همون ابزارهای بالایی

6- CI پروژه: Jenkins, Travis CI, Zuul CI, Buildbot

7- تولید(Build): Docker, Make

8- تست: pytest, Selenium

9- گزارش: pylint, Cobertura

10- کانفیگ و استقرار: Juju, Ansible

11- راه اندازی(Provisioning): Vagrant, Spacewalk, MAAS

12- مدیریت ایمیج و بسته: Docker Hub, Docker Registry, pip, npm

13- کلود: OpenStack, OpenShift, AWS, Heroku

14- ارکستریشن: Kubernetes, Docker Swarm, Mesos, Mesosphere

15- مانیتورینگ: Zabbix, Prometheus, Nagios

16- جمع آوری لاگ: ELK, Graylog, rsyslog, LOGalyze

17- مصورسازی: Grafana, Kibana, Netdata

همین الان تو دوره دوآپس شرکت کن.

به آخر این پست رسیدیم و امیدوارم که کمی موضوع رو براتون شفاف کرده باشم.

در پست های بعدی بیشتر در مورد چرخه دوآپس و نحوه پیاده سازی مراحل مختلفش براتون میگم.

نظرات و سوالاتتون در مورد دوآپس و ابزارهای دوآپس رو برام کامنت کنید.

موفق و پیروز باشید.

13

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

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