✔️ مفهوم DevOps
با ایجاد فضاهای ابری، بسیاری از تیم های توسعه نرم افزار به سراغ آنها رفتند. این فضاها امکان توسعه چابک نرم افزارها را به کاربران می دهد و در نتیجه امکان تعامل کاربران با سیستم های مدیریت بسیار بهتر و سریعتر شد. ولی مشکلی که وجود داشت هماهنگی تیم های کیفیت، روابط عمومی و تحقیق و توسعه بود. فضاهای ابری سرعت ها را زیاد و فاصله ها را کم کرد، در نتیجه تعارض هایی که تا قبل به مرور قابل حل بودند، اکنون به شدت رخ می نمودند و مشتریان ناراضی و فشارهای توسعه و عیب یابی سبب شد که مدیران به خلق مفهوم جدیدی به نام دواپس اقدام کنند.
در مفهوم DevOps سعی بر این است که تیم ها به همدیگر نزدیکتر شوند، تعاملات بیشتری با هم داشتن باشند و تا حد بسیار زیادی روال های تکراری حذف شود. با انجام اینکار تحویل ارزش به مشتری با شتاب بیشتری انجام می شد و توقف ها بسیار کمتر می گردید.
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
با ایجاد فضاهای ابری، بسیاری از تیم های توسعه نرم افزار به سراغ آنها رفتند. این فضاها امکان توسعه چابک نرم افزارها را به کاربران می دهد و در نتیجه امکان تعامل کاربران با سیستم های مدیریت بسیار بهتر و سریعتر شد. ولی مشکلی که وجود داشت هماهنگی تیم های کیفیت، روابط عمومی و تحقیق و توسعه بود. فضاهای ابری سرعت ها را زیاد و فاصله ها را کم کرد، در نتیجه تعارض هایی که تا قبل به مرور قابل حل بودند، اکنون به شدت رخ می نمودند و مشتریان ناراضی و فشارهای توسعه و عیب یابی سبب شد که مدیران به خلق مفهوم جدیدی به نام دواپس اقدام کنند.
در مفهوم DevOps سعی بر این است که تیم ها به همدیگر نزدیکتر شوند، تعاملات بیشتری با هم داشتن باشند و تا حد بسیار زیادی روال های تکراری حذف شود. با انجام اینکار تحویل ارزش به مشتری با شتاب بیشتری انجام می شد و توقف ها بسیار کمتر می گردید.
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
👍1
✔️ ابزارهای دوآپس به نقل از آقای بستان دوست
واقعا خیلی سخت میشه گفت چه ابزارهایی میشن ابزارهای 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
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
واقعا خیلی سخت میشه گفت چه ابزارهایی میشن ابزارهای 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
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ تصورات اشتباه درباره DevOps
شاید بهدلیل جدید بودن و چند بعدی بودن واژه دوآپس است که کژفهمیها و تصورات اشتباهی از آن وجود دارد:
آیا دوآپس یک ابزار است؟
آیا دوآپس یک تکنولوژی است؟
آیا دوآپس یک تیم است؟
آیا دوآپس فقط یک فرهنگ است؟
آیا دوآپس فقط Automation است؟
آیا دوآپس فقط یک عنوان شغلی است؟
آیا دوآپس فقط یک سبک تفکر است؟
آیا دوآپس فقط Continuous Delivery است؟
آیا دوآپس بهمعنی حذف Operation است؟
آیا دوآپس فقط به توسعه و عملیات (Dev و Ops) محدود میشود؟
آیا دوآپس به همهچیز در همهجا مربوط میشود؟
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
شاید بهدلیل جدید بودن و چند بعدی بودن واژه دوآپس است که کژفهمیها و تصورات اشتباهی از آن وجود دارد:
آیا دوآپس یک ابزار است؟
آیا دوآپس یک تکنولوژی است؟
آیا دوآپس یک تیم است؟
آیا دوآپس فقط یک فرهنگ است؟
آیا دوآپس فقط Automation است؟
آیا دوآپس فقط یک عنوان شغلی است؟
آیا دوآپس فقط یک سبک تفکر است؟
آیا دوآپس فقط Continuous Delivery است؟
آیا دوآپس بهمعنی حذف Operation است؟
آیا دوآپس فقط به توسعه و عملیات (Dev و Ops) محدود میشود؟
آیا دوآپس به همهچیز در همهجا مربوط میشود؟
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ آشنایی با Kubernetes
در حال حاضر کانتینرها زیرساخت بسیاری از شرکتهای نرمافزاری هستند، زیرا آنها قابلیتهایی همچون جابجایی، توسعه سریع نرم افزار و استقلال بیشتر توسعه دهندگان جهت توسعه یک نرم افزار را فراهم میکنند. هنگامی که ما از کانتینرها در مقیاس بزرگ استفاده میکنیم، نیازمند راهی برای راه اندازی، تحلیل و مدیریت "هزاران" یا "میلیونها" کانتینر به صورت خودکار میباشیم. این در واقع کاری است که Kubernetes انجام میدهد.
#Kubernetes
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
در حال حاضر کانتینرها زیرساخت بسیاری از شرکتهای نرمافزاری هستند، زیرا آنها قابلیتهایی همچون جابجایی، توسعه سریع نرم افزار و استقلال بیشتر توسعه دهندگان جهت توسعه یک نرم افزار را فراهم میکنند. هنگامی که ما از کانتینرها در مقیاس بزرگ استفاده میکنیم، نیازمند راهی برای راه اندازی، تحلیل و مدیریت "هزاران" یا "میلیونها" کانتینر به صورت خودکار میباشیم. این در واقع کاری است که Kubernetes انجام میدهد.
#Kubernetes
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ کانتینرها تنها برای یک کار ساخته شدهاند.
🔶 بهترین روش برای کاهش دغدغههای نگهداری کانتینرها این است که کانتینرهای داکر را تنها با یک process ایجاد کنید و از ایجاد چندین process در یک کانتینر خودداری کنید.
❌ ایجاد چندین process در درون یک کانتینر، گاها Anti Pattern نیز درنظر گرفته میشود مگر اینکه دلایل قانع کنندهای وجود داشته باشد.
این مورد نه تنها در Docker، بلکه در Kubernetes نیز صادق است و بهتر است کانتینرهای درون یک Pod کوبرنتیز نیز تنها یک کار را انجام دهند.
✅ اصل Separatation Of Concern یک اصل مهم برای نگهداری راحتتر زیرساخت های کانتینر بیس است.
A container shouldn’t run multiple processes. A pod shouldn’t contain multiple containers if they don’t need to run on the same machine.
#Docker #Kubernetes
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
🔶 بهترین روش برای کاهش دغدغههای نگهداری کانتینرها این است که کانتینرهای داکر را تنها با یک process ایجاد کنید و از ایجاد چندین process در یک کانتینر خودداری کنید.
❌ ایجاد چندین process در درون یک کانتینر، گاها Anti Pattern نیز درنظر گرفته میشود مگر اینکه دلایل قانع کنندهای وجود داشته باشد.
این مورد نه تنها در Docker، بلکه در Kubernetes نیز صادق است و بهتر است کانتینرهای درون یک Pod کوبرنتیز نیز تنها یک کار را انجام دهند.
✅ اصل Separatation Of Concern یک اصل مهم برای نگهداری راحتتر زیرساخت های کانتینر بیس است.
A container shouldn’t run multiple processes. A pod shouldn’t contain multiple containers if they don’t need to run on the same machine.
#Docker #Kubernetes
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
👍2
✔️ آشنایی با Jenkins قدرتمند
🔶 امروزه با توجه به محیط رقابتی شرکت ها در تولید نرم افزار، نیاز است تولید، ویرایش و انتشار ورژن های مختلف نرم افزار با بالاترین کیفیت و در کمترین زمان ممکن انجام شود. یکی از راهکارهای حوزه DevOps برای پوشش این نیازمندی نرم افزار Jenkins جهت اجرای روال CI/CD می باشد. Jenkins یکی از محبوبترین ابزارهای این حوزه جهت یکپارچه سازی این روندها می باشد.
#Jenkins
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
🔶 امروزه با توجه به محیط رقابتی شرکت ها در تولید نرم افزار، نیاز است تولید، ویرایش و انتشار ورژن های مختلف نرم افزار با بالاترین کیفیت و در کمترین زمان ممکن انجام شود. یکی از راهکارهای حوزه DevOps برای پوشش این نیازمندی نرم افزار Jenkins جهت اجرای روال CI/CD می باشد. Jenkins یکی از محبوبترین ابزارهای این حوزه جهت یکپارچه سازی این روندها می باشد.
#Jenkins
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
👍1
✔️ مانیتورینگ با Grafana
مانیتورینگ یکی از بحثهای شیرین حوزه DevOps هست و زنده بودن اپلیکیشن رو روی نمودارهای مختلف نشون میده. 😊
گرافانا یکی از ابزارهای قدرتمند مانیتورینگ و در عین حال ساده هست، به صورتی که با چند کلیک میتونید یک سیستم مانیتورینگ پیشفرض برای اپلیکیشنتون راه اندازی کنید و یک داشبورد زیبا و کاربردی بسازید.
#Grafana #Monitoring
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
مانیتورینگ یکی از بحثهای شیرین حوزه DevOps هست و زنده بودن اپلیکیشن رو روی نمودارهای مختلف نشون میده. 😊
گرافانا یکی از ابزارهای قدرتمند مانیتورینگ و در عین حال ساده هست، به صورتی که با چند کلیک میتونید یک سیستم مانیتورینگ پیشفرض برای اپلیکیشنتون راه اندازی کنید و یک داشبورد زیبا و کاربردی بسازید.
#Grafana #Monitoring
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
👍1
🛑 فوری / مسدود شدن اکانتهای ایرانی گیتلب
سرویس Gitlab.com پس از تحریم IP Address های ایرانی، بدون اخطار قبلی شروع به مسدود کردن اکانتهای ایرانی کرده.
👈 هرچه سریعتر قبل از مسدود شدن اکانتتون، از پروژهها و سورسهاتون بک آپ بگیرید.
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
سرویس Gitlab.com پس از تحریم IP Address های ایرانی، بدون اخطار قبلی شروع به مسدود کردن اکانتهای ایرانی کرده.
👈 هرچه سریعتر قبل از مسدود شدن اکانتتون، از پروژهها و سورسهاتون بک آپ بگیرید.
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ کتاب Effective DevOps
کتاب Effective DevOps از کتابهای خوب انشارات O'Reilly برای یادگیری فرهنگهای دوآپس هست. این کتاب رو میتونید به راحتی پیدا کنید و مطالعه کنید.
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
کتاب Effective DevOps از کتابهای خوب انشارات O'Reilly برای یادگیری فرهنگهای دوآپس هست. این کتاب رو میتونید به راحتی پیدا کنید و مطالعه کنید.
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
👍2
✔️گروه پرسش و پاسخ DevOps
گروه پرسش و پاسخ DevOps Expert راه اندازی شد. حضور شما به منظور اشتراک دانش مباحث حوزه DevOps باعث غنیتر شدن کامیونیتی فارسی زبانان DevOps است. 🙂
👉 link: https://www.tgoop.com/DevOpsExpertGroup
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
گروه پرسش و پاسخ DevOps Expert راه اندازی شد. حضور شما به منظور اشتراک دانش مباحث حوزه DevOps باعث غنیتر شدن کامیونیتی فارسی زبانان DevOps است. 🙂
👉 link: https://www.tgoop.com/DevOpsExpertGroup
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
👍1
✔️ پادهای سازمندهی نشده Kubernetes
اولین قدم در راه اندازی میکروسرویسها روی بستر Kubernetes، اجرای Pod های کوبرنتیز هست (هر Pod شامل یک یا چند کانتینر داکر است). اگر پادهای کوبرنتیز در یک ساختار میکروسرویس بدون label و سازماندهی باشند، در انتهای معماری به اسپاگتی عکسی که میبینید خواهیم رسید! که مدیریت کلاستر را به مراتب سختتر خواهد کرد.
#Kubernetes
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
اولین قدم در راه اندازی میکروسرویسها روی بستر Kubernetes، اجرای Pod های کوبرنتیز هست (هر Pod شامل یک یا چند کانتینر داکر است). اگر پادهای کوبرنتیز در یک ساختار میکروسرویس بدون label و سازماندهی باشند، در انتهای معماری به اسپاگتی عکسی که میبینید خواهیم رسید! که مدیریت کلاستر را به مراتب سختتر خواهد کرد.
#Kubernetes
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
👍1