Iran Open Source (IOS)
ایزابل چیست؟
ایزابل یک نرم افزار تلفنی رایگان و متن باز است که هسته تلفنی آن Asterisk می باشد. ایزابل تعداد زیادی نرم افزار جانبی را در بر گرفته و باعث شده است که حتی افرادی که دانش نسبتاً کمی از VOIP و شبکه دارند به راحتی بتوانند یک مرکز تماس حرفه ای برای سازمان خود راه اندازی کنند.
استریسک ( Asterisk ) محبوب ترین نرم افزار تلفنی در سال ۱۹۹۹ توسط مارک اسپنسر ( Mark Spencer ) بنیانگذار شرکت دیجیوم برای سیستم عامل لینوکس تولید شد ، هر جند این نرم افزار بسیار کار آمد و قدرتمند هست ولی به دلیل عدم داشتن واسط کاربری گرافیکی کار با آن بسیار دشوار است و صرفا متخصصین خبره می توانند ار آن استفاده کنند . ولی از انجایی که این نرم افزار به صورت متن باز و و رایگان ارائه می شود شرکت های دیگر دست به کار شدند و و شروع به تولید واسط کاربری برای استریسک کردند .
واسط های کاربری استریسک
از واسط های کاربری استریسک می توان به موارد زیر اشاره کرد :
4PSA VoipNow
ansitel
AsteriskNOW
Astimax
Be IP IPBX
Elastix
FreePBX
استریسک ( Asterisk ) محبوب ترین نرم افزار تلفنی در سال ۱۹۹۹ توسط مارک اسپنسر ( Mark Spencer ) بنیانگذار شرکت دیجیوم برای سیستم عامل لینوکس تولید شد ، هر جند این نرم افزار بسیار کار آمد و قدرتمند هست ولی به دلیل عدم داشتن واسط کاربری گرافیکی کار با آن بسیار دشوار است و صرفا متخصصین خبره می توانند ار آن استفاده کنند . ولی از انجایی که این نرم افزار به صورت متن باز و و رایگان ارائه می شود شرکت های دیگر دست به کار شدند و و شروع به تولید واسط کاربری برای استریسک کردند .
واسط های کاربری استریسک
از واسط های کاربری استریسک می توان به موارد زیر اشاره کرد :
4PSA VoipNow
ansitel
AsteriskNOW
Astimax
Be IP IPBX
Elastix
FreePBX
Iran Open Source (IOS)
@iranopensource 🐧
Sybex Linux Essentials is published by Sybex in April 2012. This book has 368 pages in English, ISBN-13 978-1118106792.
A unique, full-color introduction to Linux fundamentalsServing as a low-cost, secure alternative to expensive operating systems, Linux is a UNIX-based, open source operating system. Full-color and concise, this beginner’s guide takes a learning-by-doing approach to understanding the essentials of Linux. Each chapter begins by clearly identifying what you will learn in the chapter, followed by a straightforward discussion of concepts that leads you right into hands-on tutorials. Chapters conclude with additional exercises and review questions, allowing you to reinforce and measure your understanding.
- Offers a hands-on approach to acquiring a foundation of Linux skills, aiming to ensure Linux beginners gain a solid understanding
- Uses the leading Linux distribution Fedora to demonstrate tutorials and examples
- Addresses Linux installation, desktop configuration, management of files and filesystems, remote administration, security, and more
This book is essential reading for anyone entering the world of Linux!
A unique, full-color introduction to Linux fundamentalsServing as a low-cost, secure alternative to expensive operating systems, Linux is a UNIX-based, open source operating system. Full-color and concise, this beginner’s guide takes a learning-by-doing approach to understanding the essentials of Linux. Each chapter begins by clearly identifying what you will learn in the chapter, followed by a straightforward discussion of concepts that leads you right into hands-on tutorials. Chapters conclude with additional exercises and review questions, allowing you to reinforce and measure your understanding.
- Offers a hands-on approach to acquiring a foundation of Linux skills, aiming to ensure Linux beginners gain a solid understanding
- Uses the leading Linux distribution Fedora to demonstrate tutorials and examples
- Addresses Linux installation, desktop configuration, management of files and filesystems, remote administration, security, and more
This book is essential reading for anyone entering the world of Linux!
🎯#فرصت_شغلي:
دعوت به همكاري از كارشناس عملیات کارشناسی نرم افزار و IT
🔻توانایی همکاری در ارائه سرویس بصورت 7x24
🔻 آشنایی با بانک های اطلاعاتی
🔻 آشنایی با مفاهیم شبکه و سیستم عامل ها. آشنایی با سرورهای ویندوزی و لینوکسی.
🔻 آشنایی با ابزارهای هوشمند مانیتورینگ آشنایی با سرویس هاي بانکی مزیت محسوب می شود.
ارسال رزومه به Nikoee@caspco.ir
دعوت به همكاري از كارشناس عملیات کارشناسی نرم افزار و IT
🔻توانایی همکاری در ارائه سرویس بصورت 7x24
🔻 آشنایی با بانک های اطلاعاتی
🔻 آشنایی با مفاهیم شبکه و سیستم عامل ها. آشنایی با سرورهای ویندوزی و لینوکسی.
🔻 آشنایی با ابزارهای هوشمند مانیتورینگ آشنایی با سرویس هاي بانکی مزیت محسوب می شود.
ارسال رزومه به Nikoee@caspco.ir
📣#استخدام مدیر سرور (Linux Sys Admin)
🏭 شرکت میاره
شرح موقعیت شغلی :
▪️مهارت رفع مشکل و تصمیم گیری در شرایط بحرانی و سخت
▪️آشنایی با لینوکس و اکوسیستم پیرامون آن (در حد LPIC-1)
▪️توانایی نصب، راه اندازی، مدیریت و بهینه سازی سرویس های مورد استفاده در میاره (Nginx, PostgreSQL,ELK Stack, Tick Stack ...)
▪️آشنایی و تجربه کار با ابزار های Configuration Management & Provisioning
▪️توانایی نگهداری و حفظ امنیت سرورها
▪️پیگیری و حساسیت نسبت به تغییر میزان مصرف منابع، ارورهای دریافتی یا متریکهای جمعآوری شده
▪️توانایی برقراری ارتباط، اطلاعرسانی سریع مشکلات احتمالی و در دسترس بودن دائمی
تهران، میدان دوم صادقیه، خیابان آیت الله کاشانی، خیابان وفا آذر، کوچه طالقانی، ساختمان اداری پاسارگاد، واحد ۸
شماره تلفن:
۹۱۰۰۹۲۸۲
آدرس ایمیل:
info@miare.ir
وب سایت:
www.mia.re
🏭 شرکت میاره
شرح موقعیت شغلی :
▪️مهارت رفع مشکل و تصمیم گیری در شرایط بحرانی و سخت
▪️آشنایی با لینوکس و اکوسیستم پیرامون آن (در حد LPIC-1)
▪️توانایی نصب، راه اندازی، مدیریت و بهینه سازی سرویس های مورد استفاده در میاره (Nginx, PostgreSQL,ELK Stack, Tick Stack ...)
▪️آشنایی و تجربه کار با ابزار های Configuration Management & Provisioning
▪️توانایی نگهداری و حفظ امنیت سرورها
▪️پیگیری و حساسیت نسبت به تغییر میزان مصرف منابع، ارورهای دریافتی یا متریکهای جمعآوری شده
▪️توانایی برقراری ارتباط، اطلاعرسانی سریع مشکلات احتمالی و در دسترس بودن دائمی
تهران، میدان دوم صادقیه، خیابان آیت الله کاشانی، خیابان وفا آذر، کوچه طالقانی، ساختمان اداری پاسارگاد، واحد ۸
شماره تلفن:
۹۱۰۰۹۲۸۲
آدرس ایمیل:
info@miare.ir
وب سایت:
www.mia.re
📌 متخصص DevOps
معرفی شرکت
هایمارت به شما کمک میکند تا خرید روزانه خود را به آسانی از فروشگاه های سطح شهر و یا به صورت اینترنتی در محیط آرام خانهی خود انجام داده و درب منزل تحویل بگیرید .
تفاوتی ندارد کجا هستید ؛ تنها با چند کلیک ، فروشگاههای اطراف خود را بیابید و خریدی ساده ، سریع و لذتبخش را تجربه کنید .
شرح موقعیت شغلی
مسلط به کلاسترینگ در سطح دیتابیس و اپلیکیشن با هدف HA, Scalability, Performance
مسلط به هایپرویزورها مانند KVM, VMware و ابزارهای وابسته مانند Vcenter و Open Stack
مسلط به Docker, Kubernetes, Swarm
مسلط به راه اندازی و کانفیگ لودبالانسرها
آشنایی با nginX
آشنایی با ابزارهایی مانند RabbitMQ, Elastic Search, Solr, Redis, Varnish
تهران- پونک میرزا بابایی- پلاک ۵۵- واحد پنجم شرقی
شماره تلفن:
۰۲۱-۴۶۰۴۹۵۸۷
آدرس ایمیل:
info@himart.ir
وب سایت:
himart.ir
معرفی شرکت
هایمارت به شما کمک میکند تا خرید روزانه خود را به آسانی از فروشگاه های سطح شهر و یا به صورت اینترنتی در محیط آرام خانهی خود انجام داده و درب منزل تحویل بگیرید .
تفاوتی ندارد کجا هستید ؛ تنها با چند کلیک ، فروشگاههای اطراف خود را بیابید و خریدی ساده ، سریع و لذتبخش را تجربه کنید .
شرح موقعیت شغلی
مسلط به کلاسترینگ در سطح دیتابیس و اپلیکیشن با هدف HA, Scalability, Performance
مسلط به هایپرویزورها مانند KVM, VMware و ابزارهای وابسته مانند Vcenter و Open Stack
مسلط به Docker, Kubernetes, Swarm
مسلط به راه اندازی و کانفیگ لودبالانسرها
آشنایی با nginX
آشنایی با ابزارهایی مانند RabbitMQ, Elastic Search, Solr, Redis, Varnish
تهران- پونک میرزا بابایی- پلاک ۵۵- واحد پنجم شرقی
شماره تلفن:
۰۲۱-۴۶۰۴۹۵۸۷
آدرس ایمیل:
info@himart.ir
وب سایت:
himart.ir
Iran Open Source (IOS)
منظور از DevOps چیست؟
منظور از DevOps (دوآپس) چیست؟
اگر شما هم در زمینهٔ توسعهٔ نرمافزار فعالیت داشته باشید، ممکن است آگهیهای استخدام مهندس DevOps نظر شما را به خود جلب نموده یا حداقل سبب شده باشند تا از خود یا اطرافیان بپرسید که دوآپس چیست و یک متخصص این حوزه چه مسئولیتهایی دارا است و این همان چیزی است که در این این مقاله قصد داریم به بررسیاش بپردازیم.
برای درک بهتر این موضوع که مهندسان DevOps دقیقاً چه کاری انجام میدهند، بهتر است به چرخهٔ تولید نرمافزار نگاهی داشته باشیم اما پیش از آن، نیمنگاهی به تعریف این اصطلاح از ویکیپدیا خواهیم داشت:
در واقع DevOps یک فرایند تولید نرمافزار است که بر مبنای ارتباط و همکاری هرچه بیشتر میان تیمهای تولید و توسعهٔ نرمافزار و تیمهای اجرایی بنا شده است که در طی این فرآیند عملیاتی مانند Integration ،Testing و Deployment و همچنین اِعمال تغییرات زیرساختی به صورت خودکار درمیآیند و در کل هدف از چنین فرایندی ایجاد فرهنگی است که در آن تولید، تست و انتشار نرمافزار به شیوهای سریع، مداوم و مطمئن انجام شود.
حال بپردازیم به بررسی فرایند توسعهٔ نرمافزار به طوری که این فرایند را میتوان به پنج مرحلهٔ اصلی تقسیم کرد که عبارتند از Planning ،Development ،Testing ،Deployment و Maintenance که در این میان، دو مرحلهٔ Planning و Maintenance بیشترین زمان مهندسین دوآپس را به خود اختصاص میدهند.
📌 طرح ریزی یا Planing
در این مرحله از کار، تیمی متشکل از دولوپرها، مدیران تولید و … اهداف پروژه را تعریف و ترسیم نموده و ساختار کلی نرمافزار را تعیین میکنند و در این مرحله مهندس دوآپس باید از دانش فنی اعضای تیم و تسلط آنها بر پلتفرمهای مورد استفاده بهره برده و بررسی نماید که چگونه میتوان در قالب یک سیستم جامع و یکپارچه به تمام اهداف مورد نظر تیم جامهٔ عمل پوشاند (در کل، این مرحله از کار یکی از مراحل زمانبر است.)
پس از اینکه شِمای کلی سیستم اولیه پیادهسازی و اجرا شد، مهمترین مسئله هدایت تیم در جهت نحوهٔ افزودن قابلیتها و تکنولوژیهای از قبل تولیدشده به این سیستم است. در واقع، مهندس دوآپس همواره باید به دنبال راهکارهایی برای انجام خودکار فرآیندهای مختلف باشد تا بار انجام این کارها تا حد امکان از دوش اعضای تیم برداشته شود. در این مرحله، مهندس دوآپس باید پاسخ سؤالات زیر را بیابد:
- دو سرویس مختلف چگونه میتوانند با هم در تعامل باشند؟
- برای مرتبط کردن این دو سرویس، از چه پروتکلی باید استفاده نمود؟
- آیا سختافزاری که در اختیار ما قرار دارد پاسخگوی نیاز ما هست؟
- برای اینکه بتوانم در امر تولید به مهندسان کمک کنم، نیاز به چه چیزهایی دارم؟
- آیا سرویس مذکور به اصطلاح Production-Ready خواهد بود؟
- آیا تمام دیپندنسیهای مورد استفاده در نرمافزار برای ما ملموس هستند؟
- چه چیزی را لازم است بسازیم و چه چیزی را باید خریداری کنیم؟
- آیا یک تَسک خاص را میتوان به صورت خودکار انجام داد؟
- چهطور میتوان در آینده از این نرمافزار پشتیبانی نمود؟
📌 توسعه یا Development
در این مرحله، ترکیببندی کلی کار مشخص شده و دیگر نوبت دولوپرها است که کد بزنند و قابلیتهای پیشبینی شده را برای نرمافزار ایجاد کنند و هدف عمدهٔ مهندس دوآپس در این مرحله این است که به دنبال راههایی برای سریعتر انجام شدن کارها باشد. به عبارتی، وی باید راهی پیش پای دولوپرها بگذارد تا بتوانند بهترین کار را در کمترین زمان ممکن انجام دهند و این دقیقاً با هدف نهایی کار، یعنی تولید نرمافزار، هماهنگ و سازگار است.
در حقیقت، در این پروسه مهندس دوآپس به دولوپرها میگوید که از چه ابزاری استفاده کنند و همچنین ابزارهای جدید را در اختیار آنها قرار میدهد تا کارشان تسهیل گردد. همچنین این مهندس دوآپس است که باید بخشهای مختلف کدهایی که توسط دولوپرها و در محیط توسعه نوشته شدهاند را مانند قطعات پازل در کنار هم قرار داده و آنها را با محیط نهایی نرمافزار هماهنگ کند و این کاری است که هر دولوپری از عهدهٔ آن بر نمیآید و شاید اگر مهندس دوآپس نمیبود، بسیاری از نرمافزارها قدرت، جلوه و شکوه امروزی خود نداشتند! سؤالاتی که یک مهندس دوآپس در این مرحله ممکن است با آن مواجه شود عبارتند از:
- چگونه میتوانم دولوپرها را در فضایی مشابه فضای محصول نهایی نگاه دارم؟
- چهطور به دولوپرها اجازه دهم تا از ابزارهای مورد علاقهٔ خود استفاده کنند؟
- چگونه میتوانم بهرهوری و کارایی دولوپرها را افزایش دهم؟
- چهطور باید برای دولوپرها توضیح دهم که محیط نهایی نرمافزار چگونه خواهد بود؟
اگر شما هم در زمینهٔ توسعهٔ نرمافزار فعالیت داشته باشید، ممکن است آگهیهای استخدام مهندس DevOps نظر شما را به خود جلب نموده یا حداقل سبب شده باشند تا از خود یا اطرافیان بپرسید که دوآپس چیست و یک متخصص این حوزه چه مسئولیتهایی دارا است و این همان چیزی است که در این این مقاله قصد داریم به بررسیاش بپردازیم.
برای درک بهتر این موضوع که مهندسان DevOps دقیقاً چه کاری انجام میدهند، بهتر است به چرخهٔ تولید نرمافزار نگاهی داشته باشیم اما پیش از آن، نیمنگاهی به تعریف این اصطلاح از ویکیپدیا خواهیم داشت:
در واقع DevOps یک فرایند تولید نرمافزار است که بر مبنای ارتباط و همکاری هرچه بیشتر میان تیمهای تولید و توسعهٔ نرمافزار و تیمهای اجرایی بنا شده است که در طی این فرآیند عملیاتی مانند Integration ،Testing و Deployment و همچنین اِعمال تغییرات زیرساختی به صورت خودکار درمیآیند و در کل هدف از چنین فرایندی ایجاد فرهنگی است که در آن تولید، تست و انتشار نرمافزار به شیوهای سریع، مداوم و مطمئن انجام شود.
حال بپردازیم به بررسی فرایند توسعهٔ نرمافزار به طوری که این فرایند را میتوان به پنج مرحلهٔ اصلی تقسیم کرد که عبارتند از Planning ،Development ،Testing ،Deployment و Maintenance که در این میان، دو مرحلهٔ Planning و Maintenance بیشترین زمان مهندسین دوآپس را به خود اختصاص میدهند.
📌 طرح ریزی یا Planing
در این مرحله از کار، تیمی متشکل از دولوپرها، مدیران تولید و … اهداف پروژه را تعریف و ترسیم نموده و ساختار کلی نرمافزار را تعیین میکنند و در این مرحله مهندس دوآپس باید از دانش فنی اعضای تیم و تسلط آنها بر پلتفرمهای مورد استفاده بهره برده و بررسی نماید که چگونه میتوان در قالب یک سیستم جامع و یکپارچه به تمام اهداف مورد نظر تیم جامهٔ عمل پوشاند (در کل، این مرحله از کار یکی از مراحل زمانبر است.)
پس از اینکه شِمای کلی سیستم اولیه پیادهسازی و اجرا شد، مهمترین مسئله هدایت تیم در جهت نحوهٔ افزودن قابلیتها و تکنولوژیهای از قبل تولیدشده به این سیستم است. در واقع، مهندس دوآپس همواره باید به دنبال راهکارهایی برای انجام خودکار فرآیندهای مختلف باشد تا بار انجام این کارها تا حد امکان از دوش اعضای تیم برداشته شود. در این مرحله، مهندس دوآپس باید پاسخ سؤالات زیر را بیابد:
- دو سرویس مختلف چگونه میتوانند با هم در تعامل باشند؟
- برای مرتبط کردن این دو سرویس، از چه پروتکلی باید استفاده نمود؟
- آیا سختافزاری که در اختیار ما قرار دارد پاسخگوی نیاز ما هست؟
- برای اینکه بتوانم در امر تولید به مهندسان کمک کنم، نیاز به چه چیزهایی دارم؟
- آیا سرویس مذکور به اصطلاح Production-Ready خواهد بود؟
- آیا تمام دیپندنسیهای مورد استفاده در نرمافزار برای ما ملموس هستند؟
- چه چیزی را لازم است بسازیم و چه چیزی را باید خریداری کنیم؟
- آیا یک تَسک خاص را میتوان به صورت خودکار انجام داد؟
- چهطور میتوان در آینده از این نرمافزار پشتیبانی نمود؟
📌 توسعه یا Development
در این مرحله، ترکیببندی کلی کار مشخص شده و دیگر نوبت دولوپرها است که کد بزنند و قابلیتهای پیشبینی شده را برای نرمافزار ایجاد کنند و هدف عمدهٔ مهندس دوآپس در این مرحله این است که به دنبال راههایی برای سریعتر انجام شدن کارها باشد. به عبارتی، وی باید راهی پیش پای دولوپرها بگذارد تا بتوانند بهترین کار را در کمترین زمان ممکن انجام دهند و این دقیقاً با هدف نهایی کار، یعنی تولید نرمافزار، هماهنگ و سازگار است.
در حقیقت، در این پروسه مهندس دوآپس به دولوپرها میگوید که از چه ابزاری استفاده کنند و همچنین ابزارهای جدید را در اختیار آنها قرار میدهد تا کارشان تسهیل گردد. همچنین این مهندس دوآپس است که باید بخشهای مختلف کدهایی که توسط دولوپرها و در محیط توسعه نوشته شدهاند را مانند قطعات پازل در کنار هم قرار داده و آنها را با محیط نهایی نرمافزار هماهنگ کند و این کاری است که هر دولوپری از عهدهٔ آن بر نمیآید و شاید اگر مهندس دوآپس نمیبود، بسیاری از نرمافزارها قدرت، جلوه و شکوه امروزی خود نداشتند! سؤالاتی که یک مهندس دوآپس در این مرحله ممکن است با آن مواجه شود عبارتند از:
- چگونه میتوانم دولوپرها را در فضایی مشابه فضای محصول نهایی نگاه دارم؟
- چهطور به دولوپرها اجازه دهم تا از ابزارهای مورد علاقهٔ خود استفاده کنند؟
- چگونه میتوانم بهرهوری و کارایی دولوپرها را افزایش دهم؟
- چهطور باید برای دولوپرها توضیح دهم که محیط نهایی نرمافزار چگونه خواهد بود؟
Iran Open Source (IOS)
منظور از DevOps چیست؟
📌 تست کردن یا Development
در این مرحله، دولوپرها و مسئولین کنترل کیفیت (QC) کدهای نوشته شده را تست نموده و آنها را برای یکپارچه شدن با سورسکد اصلی آماده میکنند که در این مرحله ممکن است از ابزارها و اسکریپتهایی به منظور انجام خودکار تستها استفاده شود اما هنوز هم برای اجرای دستی کدها بر روی سیستمهای داخلی شرکت به حضور دولوپرها و مسئولین کنترل کیفیت نیاز است.
در اینجا است که دوباره پای مهندس دوآپس به میان میآید به طوری که در این مرحله وظیفهاش این است که برای تکرار خودکار تستها راهی بیابد؛ او میتواند از ابزارهایی مانند Jenkins ،Bamboo و یا Drone استفاده کند (اینها ابزارهای Continuous Integration یا به اختصار CI هستند که تست مداوم کدها را آسانتر میکنند.) در این مرحله لازم است تا به سؤالات زیر پاسخ داده شود:
- چگونه میتوان به اصطلاح چندین Client Environment تکرارپذیر ایجاد نمود؟
- از کجا بدانم تست مورد نظر در مورد کدام نسخه از سرویس در حال انجام است؟
- چگونه تاریخچهٔ تستها را دنبال کنم و با استفاده از آن به روندهای موجود پی ببرم؟
- چگونه پس از تست نمودن کدها، مشکلات احتمالی را به دولوپرها اعلام کنم؟
- دادههای تست را از کجا به دست آورم؟
📌 استقرار یا Deployment
در واقع Deployment به معنای قرار دادن کدها روی سرور اصلی نرمافزار است. به طور کلی، این مرحله در مورد این است که کدهای نوشته شده چهطور و با چه نظمی در محصول نهایی قرار بگیرند تا کاربر نرمافزار قادر به استفاده از سرویس ما گردد. در این مرحله نیز مهندسان دوآپس از ابزارهای CI مشابه آنچه که در بخش قبل معرفی شد استفاده میکنند و بعضی از مهمترین سؤالاتی که در این مرحله باید پاسخ داده شوند عبارتند از:
- چه زمانی یک نسخهٔ نهایی نشده از نرمافزار آمادهٔ دیپلوی شدن است؟
- چگونه بدون اینکه کاربر متوجه شود، سرویسی را دیپلوی نمایم؟
- چگونه مطمئن شوم که سرویسی که به تازگی دیپلوی شده، سبب ایجاد اختلال نمیشود؟
- چگونه فرآیند دیپلوی شدن را به صورت خودکار در آورم؟
- چگونه در صورت لزوم در فرآیند دیپلوی خودکار، مراحلی را به صورت دستی و غیرخودکار انجام دهم؟
- چگونه فرآیند دیپلوی را با روشی تکرارپذیر انجام دهم؟
معمولاً این مرحله زمان زیادی را از مهندسان دوآپس نمیگیرد اما بخشی که این مهندسین باید بیشترین زمان و انرژی خود را صرف آن کنند، مرحلهٔ بعدی، یعنی Maintenance، است.
📌 نگهداری یا Maintenance
همانطور که قبلاً گفتیم، مرحلهٔ نگهداری از نرمافزار یکی از مراحلی است که بیشترین زمان یک مهندس دوآپس را به خود اختصاص میدهد و این مرحله تماماً در مورد انجام کارهایی است که در نهایت موجب در دسترس قرار گرفتن یک سیستم و حفظ کارایی آن میشوند. در این مرحله سؤالاتی مانند موارد زیر باید پاسخ داده شوند:
- چگونه میتوانم از مشکلات و باگهای موجود در محصول یا سرویس آگاه شوم؟
- چگونه باگهای مختلف موجود در محصول یا سرویس را به تیمهای مناسب ارجاع دهم؟
- چگونه باگهای زیرساختی موجود در محصول را برطرف کنم؟
- من به عنوان یک مهندس دوآپس چگونه میتوانم از سلامت و کارایی همهٔ سرویسها مطمئن شوم؟
سخن پایانی
در واقع DevOps آمیزه و مخلوطی از چندین نقش بوده و هدف نهایی آن در کنار هم قرار دادن دولوپرها و مهندسان اجرایی است. فرهنگ DevOps ویژگیها و قابلیتهای جدید محصول را با زیرساختهای آن سازگار مینماید و سبب میشود تا این دو بتوانند در کنار هم به خوبی عمل کنند. به منظور تکمیل آنچه در بالا مورد بررسی قرار گرفت، توجه شما را به تصویر فوق جلب میکنیم.
در این مرحله، دولوپرها و مسئولین کنترل کیفیت (QC) کدهای نوشته شده را تست نموده و آنها را برای یکپارچه شدن با سورسکد اصلی آماده میکنند که در این مرحله ممکن است از ابزارها و اسکریپتهایی به منظور انجام خودکار تستها استفاده شود اما هنوز هم برای اجرای دستی کدها بر روی سیستمهای داخلی شرکت به حضور دولوپرها و مسئولین کنترل کیفیت نیاز است.
در اینجا است که دوباره پای مهندس دوآپس به میان میآید به طوری که در این مرحله وظیفهاش این است که برای تکرار خودکار تستها راهی بیابد؛ او میتواند از ابزارهایی مانند Jenkins ،Bamboo و یا Drone استفاده کند (اینها ابزارهای Continuous Integration یا به اختصار CI هستند که تست مداوم کدها را آسانتر میکنند.) در این مرحله لازم است تا به سؤالات زیر پاسخ داده شود:
- چگونه میتوان به اصطلاح چندین Client Environment تکرارپذیر ایجاد نمود؟
- از کجا بدانم تست مورد نظر در مورد کدام نسخه از سرویس در حال انجام است؟
- چگونه تاریخچهٔ تستها را دنبال کنم و با استفاده از آن به روندهای موجود پی ببرم؟
- چگونه پس از تست نمودن کدها، مشکلات احتمالی را به دولوپرها اعلام کنم؟
- دادههای تست را از کجا به دست آورم؟
📌 استقرار یا Deployment
در واقع Deployment به معنای قرار دادن کدها روی سرور اصلی نرمافزار است. به طور کلی، این مرحله در مورد این است که کدهای نوشته شده چهطور و با چه نظمی در محصول نهایی قرار بگیرند تا کاربر نرمافزار قادر به استفاده از سرویس ما گردد. در این مرحله نیز مهندسان دوآپس از ابزارهای CI مشابه آنچه که در بخش قبل معرفی شد استفاده میکنند و بعضی از مهمترین سؤالاتی که در این مرحله باید پاسخ داده شوند عبارتند از:
- چه زمانی یک نسخهٔ نهایی نشده از نرمافزار آمادهٔ دیپلوی شدن است؟
- چگونه بدون اینکه کاربر متوجه شود، سرویسی را دیپلوی نمایم؟
- چگونه مطمئن شوم که سرویسی که به تازگی دیپلوی شده، سبب ایجاد اختلال نمیشود؟
- چگونه فرآیند دیپلوی شدن را به صورت خودکار در آورم؟
- چگونه در صورت لزوم در فرآیند دیپلوی خودکار، مراحلی را به صورت دستی و غیرخودکار انجام دهم؟
- چگونه فرآیند دیپلوی را با روشی تکرارپذیر انجام دهم؟
معمولاً این مرحله زمان زیادی را از مهندسان دوآپس نمیگیرد اما بخشی که این مهندسین باید بیشترین زمان و انرژی خود را صرف آن کنند، مرحلهٔ بعدی، یعنی Maintenance، است.
📌 نگهداری یا Maintenance
همانطور که قبلاً گفتیم، مرحلهٔ نگهداری از نرمافزار یکی از مراحلی است که بیشترین زمان یک مهندس دوآپس را به خود اختصاص میدهد و این مرحله تماماً در مورد انجام کارهایی است که در نهایت موجب در دسترس قرار گرفتن یک سیستم و حفظ کارایی آن میشوند. در این مرحله سؤالاتی مانند موارد زیر باید پاسخ داده شوند:
- چگونه میتوانم از مشکلات و باگهای موجود در محصول یا سرویس آگاه شوم؟
- چگونه باگهای مختلف موجود در محصول یا سرویس را به تیمهای مناسب ارجاع دهم؟
- چگونه باگهای زیرساختی موجود در محصول را برطرف کنم؟
- من به عنوان یک مهندس دوآپس چگونه میتوانم از سلامت و کارایی همهٔ سرویسها مطمئن شوم؟
سخن پایانی
در واقع DevOps آمیزه و مخلوطی از چندین نقش بوده و هدف نهایی آن در کنار هم قرار دادن دولوپرها و مهندسان اجرایی است. فرهنگ DevOps ویژگیها و قابلیتهای جدید محصول را با زیرساختهای آن سازگار مینماید و سبب میشود تا این دو بتوانند در کنار هم به خوبی عمل کنند. به منظور تکمیل آنچه در بالا مورد بررسی قرار گرفت، توجه شما را به تصویر فوق جلب میکنیم.