مفهوم DevOps
Develop System Not Software
DevOps یکی از بزرگترین کلمات کلیدی جهان فن آوری در اواخر اخیر است زیرا این سازماندهی برای کوتاه کردن چرخه توسعه نرم افزار ، فواید زیادی را در اختیار سازمان ها قرار می دهد.
DevOps چیست؟
در مورد سوال DevOps چیست؟ هیچ تعریف واحدی یا جواب درست وجود ندارد.
DevOps ابزاری ، فناوری یا چارچوبی نیست. این بیشتر یک فلسفه و یک مفهوم است. این مجموعه ای از شیوه ها است که ترکیبی از توسعه نرم افزار (Dev) و عملیات (Ops) است که به کوتاه کردن چرخه توسعه سیستم و کمک به ادغام مداوم و تحویل با کیفیت نرم افزار کمک می کند.
مزایای DevOps
همکاری و ارتباطات بهبود یافته
تحویل سریعتر نرم افزار یا محصول
کاهش مداوم هزینه
روند بهبود یافته
حل سریعتر مسائل
در دنیای DevOps هیچ ابزار جادویی واحدی وجود ندارد که متناسب با تمام نیازها باشد. این در مورد انتخاب ابزار مناسب است که متناسب با نیاز سازمان باشد.
ابزارهای DevOps
Planning & Collaboration
Jira
یکی از ابزارهای مدیریت محبوب پروژه است که توسط Atlassian استفاده شده است و برای پیگیری مسئله ، اشکال و ردیابی پروژه استفاده می شود. این امکان را به کاربر می دهد تا پروژه را ردیابی و وضعیت صادر کند. این نرم افزار می تواند علاوه بر سایر ابزارهای DevOps مانند جنکینز ، به راحتی با سایر محصولات اطلس مانند Bitbucket یکپارچه شود.
Slack
Slack یک ابزار همکاری مبتنی بر ابر freemium است که امکان ارتباط و همکاری تیم را در یک مکان فراهم می کند. این ابزار همچنین می تواند برای به اشتراک گذاشتن اسناد و سایر اطلاعات در بین اعضای تیم استفاده شود. این همچنین می تواند به راحتی با ابزارهای دیگری مانند GIT ، Jenkins ، JIRA و غیره ادغام شود.
Zoom
Zoom یک بستر کنفرانس وب و اشتراک گذاری صفحه است. می توانید از طریق صدا یا ویدیو با تیم خود ارتباط برقرار کنید.مهم نیست تیم شما چقدر بزرگ باشد ، zoom قادر است حداکثر 1000 گیرنده را در یک جلسه آنلاین قرار دهد.
Clarizen
Clarizen یک نرم افزار مشترک و مدیریت پروژه است که در پیگیری مسئله ، مدیریت وظیفه و مدیریت سبد پروژه کمک می کند. به راحتی قابل تنظیم است و دارای رابط کاربری تعاملی کاربر پسند است.
Asana
Asana یک برنامه موبایل و مبتنی بر وب است که برای کمک به تیم ها در یک کارآمد و سازماندهی ، پیگیری و مدیریت کار خود را ایجاد می کند. این برای ردیابی کارهای روزانه تیم و پشتیبانی از پیام رسانی و ارتباطات در سراسر سازمان استفاده می شود.
Source Code Management
SVN
SVN یک نسخه کنترل شده و منبع کنترل ابزار است که توسط آپاچی تولید شده است. این به توسعه دهندگان کمک می کند تا نسخه های مختلف کد منبع را حفظ کنند و یک تاریخچه کامل از همه تغییرات را حفظ کنند.
Git
Git یک سیستم کنترل نسخه توزیع شده است که با هدف سرعت ، یکپارچگی داده ها ، پشتیبانی از گردش کار توزیع شده و غیرخطی انجام می شود. به غیر از مدیریت کد منبع نیز می توان از آن برای پیگیری تغییرات در هر مجموعه فایل استفاده کرد.
Bitbucket
Bitbucket یک بستر میزبانی مبتنی بر وب است که توسط Atlassian ساخته شده است. Bitbucket همچنین یک سیستم مرور کد مؤثر را ارائه می دهد و هر تغییری در کد را پیگیری می کند. این به راحتی با سایر ابزارهای DevOps مانند Jenkis ، Bamboo قابل ادغام است.
GitHub
GitHub یک سیستم عامل میزبانی کد است که برای کنترل نسخه و همکاری نسخه طراحی شده است. این کلیه قابلیت های کنترل نسخه توزیع شده و مدیریت کد منبع (SCM) عملکرد Git را علاوه بر ویژگی های آن ارائه می دهد.این کنترل دسترسی و ویژگی های همکاری مانند ردیابی اشکال ، ایجاد ویژگی و درخواست ، مدیریت کار و غیره را برای پروژه ارائه می دهد.
build
Ant
Apache Ant ابزاری ساخت و استقرار مبتنی بر جاوا است. از فرمت فایل XML پشتیبانی می کند. این چندین کار داخلی وجود دارد که به ما امکان می دهد برنامه های جاوا را کامپایل ، مونتاژ ، آزمایش و اجرا کنیم.
Maven
Maven ابزاری برای اتوماسیون ساخت است که عمدتاً برای پروژه های جاوا استفاده می شود. این شامل یک فایل XML است که پروژه نرم افزاری در حال ساخت ، وابستگی آن به سایر مؤلفه ها و ماژول های خارجی ، دنباله ساخت ، دایرکتوری ها و سایر افزونه های مورد نیاز را توصیف می کند.
Grunt
Grunt یک ابزار خط فرمان جاوا اسکریپت است که به ساخت برنامه های کاربردی کمک می کند و به توسعه دهندگان کمک می کند تا کارهای تکراری مانند تلفیق ، تست واحد ، پوشش دادن کد و اعتبار سنجی و غیره را به صورت خودکار انجام دهند و گزینه های مناسبی برای ابزارهایی مانند Make و Ant است.
Gradle
Gradle یک سیستم اتوماسیون ساخت منبع باز است که بر اساس مفاهیم Apache Maven و Apache Ant ساخته شده است. این برنامه از زبان برنامه نویسی مناسب Groovy به جای فایل پیکربندی XML پشتیبانی می کند. این برنامه با تعیین خودکار قسمت های ساخت به روز ، از ساخت های افزایشی پشتیبانی می کند.
Configuration Management
Puppet
Puppet ابزاری برای مدیریت پیکربندی منبع باز است که برای پیکربندی ، استقرار و مدیریت سرورهای بی شماری مورد استفاده قرار می گیرد. این ابزار از مفهوم زیرساخت به عنوان کد پشتیبانی می کند و در Ruby DSL نوشته شده است. همچنین از مقیاس پویا بالا و پایین ماشین آلات بر اساس نیاز پشتیبانی می کند.
Chef
Chef ابزاری برای مدیریت پیکربندی منبع باز است که توسط Opscode با استفاده از Ruby برای مدیریت زیرساخت ها در ماشین های مجازی یا فیزیکی ساخته شده است. همچنین در مدیریت زیرساختهای پیچیده بر روی ماشینهای مجازی ، فیزیکی و ابری نیز کمک می کند.
Ansible
Ansible یک مدیریت پیکربندی فناوری اطلاعات منبع باز ، تهیه نرم افزار ، Orchestration و ابزار استقرار برنامه است. این یک ابزار ساده و در عین حال قدرتمند برای خودکارسازی برنامه های کاربردی فناوری اطلاعات چند لایه ساده و پیچیده است.
SaltStack
SaltStack یک نرم افزار منبع باز است که به زبان پایتون نوشته شده است و از مدل push برای اجرای دستورات از طریق پروتکل SSH استفاده می کند. همچنین از الگوهای YAML برای نوشتن هرگونه اسکریپت پشتیبانی می کند.
Terraform
Terraform ابزاری منبع باز برای ساخت و ساز ، تغییر ، استقرار و نسخه سازی زیرساخت ها با خیال راحت و کارآمد است. این ابزار برای مدیریت ارائه دهندگان خدمات موجود و محبوب و همچنین راه حل های سفارشی در خانه استفاده میشود. و کمک می کند تا زیرساخت ها را در پیکربندی / کد تعریف کنیم و کاربر را قادر می سازد تا به آسانی بازسازی / تغییر و پیگیری تغییرات زیرساخت ها را انجام دهد.
Vagrant
Vagrant یکی از ابزارهای محبوب در ساخت و مدیریت ماشین های مجازی (VM) است. این یک گردش کار با کاربرد آسان و قابل تنظیم است که روی خودکارسازی متمرکز است. و همچنین به کاهش زمان تنظیم محیط توسعه و افزایش تولید کمک میکند.
Continuous Integration
Jenkins
Jenkins یکی از محبوب ترین ابزارهای منبع باز DevOps برای پشتیبانی از ادغام مداوم و تحویل از طریق DevOps است. این امر به ادغام مداوم و تحویل مداوم پروژه ها ، صرفنظر از كاربران پلتفرم ، با كمك پردازش های همزمان مختلف ساخت و استقرار ، اجازه می دهد. جنکینز می تواند با چندین ابزار آزمایش و استقرار یکپارچه شود.
Travis CI
Travis CI یک سیستم عامل ادغام پیوسته و یکپارچه توزیع شده است که برای ساخت و آزمایش پروژه هایی که در GitHub و Bitbucket میزبان هستند ، توزیع شده است. با افزودن پرونده YAML پیکربندی شده است.می توان آن را به صورت رایگان برای پروژه های منبع باز و به صورت هزینه ای برای یک پروژه خصوصی آزمایش کرد.
Bamboo
Bamboo یکی از محصولات محبوب است که توسط Atlassian برای حمایت از ادغام مداوم یکپارچه ساخته شده است. بیشتر عملکرد آن از قبل ساخته شده است و این بدان معنی است که ما نیازی به بارگیری افزونه های مختلف مانند جنکینز نداریم. همچنین از ادغام یکپارچه با سایر محصولات اطلس مانند JIRA و Bitbucket پشتیبانی می کند.
Hudson
Hudson نرم افزاری رایگان است که به زبان JAVA نوشته شده و در یک ظرف سرویس مانند GlassFish و Apache Tomcat اجرا می شود. این امکان را فراهم می کند که مجموعه اتوماسیون خود را با هرگونه تغییر در سیستم مدیریت منبع مربوطه مانند GIT ، SVN ، و غیره ترکیب کنید و همچنین پشتیبانی از کلیه پروژه های پایه و جاوا را نیز پشتیبانی می کند.
TeamCity
TeamCity یکپارچه سازی مداوم مبتنی بر سرور است و یک ابزار مدیریتی ایجاد شده توسط JetBrains ایجاد می کند. این رابط کاربری ساده و آسان برای استفاده (UI) دارد و پیشرفت در ساخت ، ایجاد اطلاعات و اطلاعات مربوط به تاریخ را برای کلیه تنظیمات و پروژه ها فراهم می کند.
CircleCI
CircleCI به صورت راه حل های مبتنی بر ابر و همچنین فرضیه های آماده برای ادغام مداوم در دسترس است. شروع و پشتیبانی آسان از تنظیمات YAML که به راحتی قابل خواندن است ، آسان و سریع است.
Continuous Security
Snyk
Snyk برای یافتن و رفع آسیب پذیری های امنیتی منبع آزاد ، به طور خودکار ، Snyk را در چرخه توسعه بپیچید. این نرم افزار از JS ، .Net ، PHP ، NPM ، jQuery ، پایتون ، جاوا و غیره پشتیبانی می کند و می تواند در برنامه نویسی ، مدیریت کد ، CI / CI ، کانتینر و استقرار یکپارچه شود.
Snyk بزرگترین پایگاه داده آسیب پذیری منبع باز را شامل میشود.
Netsparker
Netsparker به طور خودکار برنامه شما را برای نقص امنیتی اسکن می کند و گزارش های طبقه بندی شده عملی را ارائه می کند ، بنابراین می توانید براساس اولویت اقدام کنید. سناریوی امنیتی DevOps بررسی تعهد جدید و گزارش اشکال مستقیماً در سیستم ردیابی مانند Jira یا GitHub خواهد بود و یک بار توسط توسعه دهنده برطرف می شود.
Testing
Selenium
Selenium محبوب ترین و ابزار تست منبع باز است. این پشتیبانی از اتوماسیون تست در مرورگرهای مختلف و دستگاه های عامل. به راحتی می توانید با ابزارهای مدیریت آزمون مانند ALM ، JIRA و همچنین با سایر ابزارهای DevOps مانند جنکینز ، Teamcity ، بامبو و غیره یکپارچه شوید.
TestNG
TestNG یک چارچوب تست منبع باز است که از Junit و Nunit طراحی و الهام گرفته شده است. به راحتی می توان آن را با درایور وب سلنیوم یکپارچه کرد تا اسکریپت های تست اتوماسیون را پیکربندی و اجرا کند. همچنین گزارشهای تست مختلفی مانند HTML یا XSLT تولید می کند.
JUnit
JUnit یک چارچوب تست واحد منبع باز است که توسط توسعه دهندگان برای نوشتن و اجرای موارد آزمون قابل تکرار استفاده می شود. این برنامه از حاشیه نویسی های مختلف تست استفاده می کند ، با استفاده از آن هر توسعه دهنده می تواند یک مورد تست واحد یکپارچه را بنویسد. به راحتی با سایر ابزارهای DevOps مانند جنکینز ، GIT و غیره قابل ادغام است.
Monitoring
Nagios
Nagios یک منبع باز و یکی از محبوب ترین ابزار برای نظارت مداوم است. ناجیوس برای نظارت بر سیستم ها ، برنامه ها ، خدمات و روند کار در فرهنگ DevOps به شما کمک می کند. این هشدار را به کاربران هشدار می دهد که اگر مشکل زیرساختی پیش آمد ، به آنها هشدار می دهد و همچنین وقتی این مشکل برطرف شده است ، به آنها هشدار می دهد.
Grafana
Grafana یک سکوی تحلیلی منبع باز است که بر تمام معیارها از زیرساخت ها ، برنامه ها و دستگاه های سخت افزاری نظارت می کند. می توانید داده ها را تجسم کنید ، داشبورد ایجاد کرده و به اشتراک بگذارید ، هشدارهایی تنظیم کنید و همکاری کنید. می توانید داده ها را از بیش از 30 منبع ، از جمله Prometheus ، InfluxDB ، Elasticsearch ، AWS CloudWatch و غیره بکشید.
Sensu
Sensu ابزاری برای نظارت بر منبع باز است که به روبی نوشته شده است و به راحتی و به طور مؤثر در نظارت بر سرورها ، خدمات ، برنامه ها ، زیرساخت های ابری کمک می کند. مقیاس بسیار آسان است به طوری که می توانیم به راحتی هزاران سرور را رصد کنیم.
New Relic
New Relic محصولی برای تجزیه و تحلیل نرم افزار برای نظارت بر عملکرد برنامه (APM) است که داده های زمان واقعی و گرایش در مورد عملکرد برنامه وب و سطح رضایت از کاربران نهایی را با آن ارائه می دهد. این برنامه از یک پایان برای ردیابی تراکنش پشتیبانی می کند و آنها را با انواع نمودارها ، نمودارها و گزارش های رنگی نمایش می دهد.
Datadog
Datadog یک ابزار متریک سرور مبتنی بر عامل است. این برنامه از ادغام با سرورهای مختلف وب ، برنامه ها و سرورهای مختلف پشتیبانی می کند. سرویس داشبورد آن نمودارهای مختلفی را درباره نظارت بر زمان واقعی در زیرساخت ها ارائه می دهد.
ELK
ELK مجموعه ای از سه محصول منبع باز – Elasticsearch ، Logstash و Kibana است که همگی توسط شرکت Elastic ساخته و مدیریت می شوند. این امکان را به کاربران می دهد تا از هر منبع ، به هر فرمت ، داده را بدست آورند ، و سپس آن داده ها را در زمان واقعی جستجو ، تجزیه و تحلیل کنند.
Cloud Hosting
AWS
AWS یک بستر میزبانی وب است که توسط آمازون ایجاد شده است و راه حل های قابل انعطاف ، قابل اعتماد ، مقیاس پذیر ، آسان برای استفاده ، مقیاس پذیر و مقرون به صرفه را ارائه می دهد. با استفاده از این بستر ابری ، دیگر نیازی به نگرانی در مورد راه اندازی زیرساخت های فناوری اطلاعات نداریم که معمولاً زمان معقولی را برای راه اندازی آن می گیرد.
Azure
Azure یک سیستم عامل محاسبات ابری است که توسط مایکروسافت برای ایجاد ، استقرار ، آزمایش و مدیریت برنامه ها و خدمات از طریق شبکه جهانی مراکز داده خود طراحی شده است. خدمات ارائه شده توسط مایکروسافت آزور به صورت PaaS (Platform as a service) و IaaS (زیرساخت به عنوان یک سرویس) است
GCP
Google Cloud مجموعه کاملی از خدمات میزبانی و رایانش ابری عمومی است که توسط Google.it ارائه شده است. خدمات گسترده ای را برای محاسبات ، ذخیره سازی و توسعه برنامه هایی که از Google Hardware استفاده می کنند پشتیبانی می کند.
Containerization/Orchestration
Docker
Docker ابزاری برای ایجاد ، استقرار و اجرای برنامه ها با استفاده از کانتینر است. این کانتینر به توسعه دهنده این امکان را می دهد تا برنامه ای را با کلیه مؤلفه ها و زیرمجموعه های مورد نیاز مانند کتابخانه ها و سایر وابستگی ها بسته بندی کند و همه موارد را به صورت یک بسته واحد ارسال کند.
Kubernetes
Kubernetes یک سیستم ارکستر سازی کانتینر با منبع آزاد است که در ابتدا توسط گوگل طراحی شده است و اکنون توسط بنیاد رایانش ابری Cloud نگهداری می شود. این برای خودکارسازی استقرار برنامه ، مقیاس گذاری و مدیریت برنامه استفاده می شود. با سایر ابزارهای کانتینر و همچنین از جمله داکر کار می کند.
https://enginedevops.com/2022/01/05/what-is-devops/
مطلبی دیگر از این انتشارات
سفر که فقط برای بچه پولدارها نیست
مطلبی دیگر از این انتشارات
چجوری Channel ها در Golang کار میکنن
مطلبی دیگر از این انتشارات
همه چیز درباره متد ()find در جاوا اسکریپت