این مطلب یکی از مقالات پرونده ویژه«دواپس چیست؟ و مهندس دواپس کیست؟» شماره 211 ماهنامه شبکه است. علاقهمندان میتوانند کل این پرونده ویژه را از روی سایت شبکه دانلود کنند.
اگر در مسیری گام بردارید که در نهایت به یک مهندس دوآپس تبدیل شوید، نه تنها در آخر هر ماه دستمزد بالایی را دریافت خواهید کرد، بلکه به لحاظ روانی نیز به یکی از شادترین افراد دنیای فناوری اطلاعات تبدیل خواهید شد. چرا به شادترین فرد تبدیل میشوید؟ زیرا در رویارویی با مشکلات شغلی مهارتهای مختلفی در اختیار دارید که به یاری شما خواهند آمد؛ همچنین مسلط بودن بر تخصصهای متعدد و پر تقاضا باعث میشود تا شرکتها ترغیب شوند شما را استخدام کنند. گزارش منتشر شده سال گذشته موسسه Incapsula نشان داد، میانگین دستمزد و حقوقی که مهندسان دوآپسدریافت میکنند در محدوده 104 هزار دلار تا 129 هزار دلار در سال است. اگر دستمزدی را که این افراد دریافت میکنند، با مشاغل همطراز و سنتی آنها در دنیای فناوری مقایسه کنید، متوجه میشوید که اختلاف چشمگیر است. اما برای تبدیل شدن به یک مهندس دوآپس باید چه ابزارها و مهارتهایی را بیاموزیم؟
برای یک مهندس دوآپس شدن همانند یک توسعهدهنده فرانتاند، بکاند و فولاستک باید به فکر یادگیری یکسری فناوریها و دورهها باشید. درست است که در این زمینه مرز دقیقی وجود ندارد، اما در حالت کلی یک مهندس دوآپس باید به مجموعه مهارتهای زیر تسلط داشته باشد.
1. فرهنگ و نگرشی را یاد بگیرید که دوآپس به آن اشاره دارد
همانگونه که در مقاله «چرا دوآپس آینده کسبوکار شما را رقم خواهد زد؟» به آن اشاره کردیم، دوآپس جنبشی بود که بهآرامی رشد پیدا کرد و اکنون به یکی از بازیگران اصلی دنیای نرمافزار تبدیلشده است. به همین دلیل، جنبههای فرهنگی در دنیای دوآپس اهمیت زیادی دارند. برای آشنایی با فرهنگ دوآپس مقاله منتشر شده در آدرس زیر را مطالعه کنید:
https://medium.com/devopslinks/the-15-point-devops-check-list-8cd2afb4a448
این مقاله دید روشنی در ارتباط با فرهنگ دوآپس پیش روی شما قرار میدهد.
2. یکزبان برنامهنویسی یاد بگیرید
یک مهندس دوآپس خوب، فردی است که در حوزههای توسعه و عملیات حرفی برای گفتن داشته باشد. پایتون، Go، Node.js و.... انتخابهای خوبی هستند. اگرچه شما مجبور نیستید به سراغ همان زبان برنامهنویسی بروید که شرکتتان برای انجام پروژههایش از آن استفاده میکند، اما فراموش نکنید که مهارتهای برنامهنویسی در این زمینه واقعا ارزشمند هستند.
3. یادگیری نحوه مدیریت سرور
یکی از اصلیترین وظایف یک متخصص دوآپس مدیریت سرورها است. برای نیل به این هدف ضمن دانستن این موضوع که سرورها چگونه کار میکنند، باید اطلاعات کافی در ارتباط با سختافزارهایی همچون پردازنده مرکزی، معماری کامپیوتر، حافظه و... داشته باشید. همچنین باید در ارتباط با سیستمعاملها، بهویژه سیستمعامل لینوکس دانش کافی داشته باشید. برای شروع کار میتوانید توزیع اوبونتو را انتخاب کنید. اگر یک تازهوارد به دنیای لینوکس هستید، پیشنهاد ما این است که برای اولین بار لینوکس را روی لپتاپ یا کامپیوتر دسکتاپ خود نصب کرده و با آن کار کنید. فراموش نکنید برای تسلط بر لینوکس باید از یک منبع آموزشی معتبر استفاده کنید. شما میتوانید از DigitalOcean، Amazon Lightsail یا Linode که سرورهای ارزانقیمتی ارائه میکنند برای یادگیری لینوکس و نحوه مدیریت سرورها استفاده کنید.
4. یادگیری اصول و مبانی شبکه و امنیت
شاید با خود بگویید اینها مهارتهایی هستند که مهندسان شبکه و امنیت باید فرا بگیرند، اما اینگونه نیست. آگاهی داشتن از این موضوع که پروتکلهای HTTP، FTP، DNS و سایر پروتکلها چگونه کار میکنند، فرایند استقرار نرمافزارها به شکل ایمن چگونه است، چگونه میتوان رخنههای امنیتی موجود در کدها را پیشبینی کرد و چگونه میتوان زیرساخت یک شبکه را به شکلی اصولی پیکربندی کرد، همگی جزو مهارتهایی هستند که باید با آنها آشنایی داشته باشید. پیشنهاد میکنم برای یادگیری مباحث مربوط به شبکه و امنیت کار را با توزیع لینوکسی Kali آغاز کنید و کتابهای مرتبط با آن را همچون
Mastering the Penetration Testing Distribution مطالعه کنید.
5. یادگیری اسکریپتنویسی
با وجود تعدد ابزارهایی که به بازار عرضه شدهاند، اما هنوز هیچ ابزاری نمیتواند جایگزین اسکریپتهایی شود که خودتان آنها را مینویسید. بهعنوان یک مهندس دوآپس حتما باید بدانید که اسکریپتنویسی چگونه انجام میشود. با توجه به تجربه شخصی پیشنهاد میکنم از Bash استفاده کنید. Bash یکی از پرکاربردترین زبانهای اسکریپتنویسی است. پایتون هم یکزبان خوب برای اسکریپتنویسی است. زبانی که با تسلط بر آن کارهای زیادی میتوانید انجام دهید. برای آغاز به کار و نحوه نوشتن اسکریپتهای ساده پیشنهاد میکنم به آدرس
https://github.com/awesome-lists/awesome-bash مراجعه کنید.
6. یاد بگیرید که چگونه باید وب سرورها و میانافزارها را نصبکرده و پیکربندی کنید
آپاچی و Nginx از پرکاربردترین وبسرورهایی هستند که در صنعت دوآپس به کار گرفته میشوند. شما باید بدانید که چگونه این محصولات را روی هاستهای مجازی، پروکسیهای معکوس، نامهای دامنه و SSL نصب کرده و پیکربندی کنید. تسلط بر این مفاهیم به شما اجازه میدهد در طول روز بتوانید کارهای بسیاری انجام دهید. کار را با نحوه استقرار Nginx بهعنوان یک وبسرور برای یک وبلاگ وردپرسی آغاز کنید.
7. باید بدانید که نرمافزارها را چگونه مستقر کنید
زمانیکه یاد گرفتید چگونه Ngnix را نصب کرده و آن را پیکربندی کنید، در مرحله بعد باید با نحوه استقرار/نصب برنامهها روی یک سرور آشنا شوید. کافی است یک برنامه ساده شبیه Hello World را با استفاده از پایتون، Node.js و PHP ایجاد کرده و این سه برنامه را مستقر کنید. شما میتوانید از Ngnix بهعنوان یک پروکسی معکوس برای هر سه مورد استفاده کنید.
8. GIT را یاد بگیرید
GIT، یکی از سیستمهای کنترل نسخه است که به شکل گستردهای در صنعت فناوری اطلاعات استفاده میشود. نیازی ندارید تا به یک کارشناس خبره GIT تبدیل شوید، اما باید بدانید که این فناوری به شما کمک میکند تا بهعنوان یک مهندس دوآپس در کار خود موفق شوید. مستندات رسمی بسیاری برای یادگیری GIT در اختیارتان قرار دارد.
Pro Git کتاب ارزشمندی است که هر آنچه در ارتباط با یادگیری GIT به آن نیاز دارید، در خود جای داده است.
9. یاد بگیرید که نرمافزارها چگونه ساخته میشوند
ساختن، یک فرآیند پیش از اجرا شدن است. ساخت نرمافزارهای کاربردی به اجرای توابع و متدهایی اشاره دارد که درون یک برنامه کاربردی قرار گرفتهاند و این برنامه کاربردی میتواند روی سرور اجرا شود. یک کارشناس دواپس باید با چرخه عمر نرمافزارهای کاربردی و همچنین چرخه ساخت برنامههای کاربردی آشنا باشد. یک برنامه کاربردی را از طریق یک زبان برنامهنویسی بسازید، سپس راهکارهای مختلفی را که برای نصب وابستگیها و ساخت کدها پیش روی شما قرار دارند، آزمایش کنید.
10. یاد بگیرید که فرایند انتقال خودکار کدها به مخازن چگونه انجام میشود
دواپس تنها در ارتباط با خودکارسازی نیست، اما خودکارسازی یکی از ارکان اصلی دواپس است. هر زمان یاد گرفتید نرمافزارها چگونه ساخته میشوند، در ادامه میتوانید از ابزارهایی شبیه Jenkins برای خودکارسازی ساخت و اتصال کدهای خود به مخازنی که کدها درون آنها وارد میشوند، استفاده کنید. اگر در این زمینه اطلاعاتی ندارید پیشنهاد میکنیم، مقاله یکپارچهسازی مستمر و تحویل مستمر را مطالعه کنید.
11. با نحوه مدیریت پیکربندیها آشنا شوید
زمانیکه همه فرایندها به سمت پیچیده شدن میروند شما باید بدانید که نحوه مدیریت محیطها و پیکربندیهای چگونه است. باید یاد بگیرید که چگونه میتوانید از ابزارهای مدیریت پیکربندی برای سادهتر کردن زندگی کاری خود استفاده کنید. ابزارهای CM متنوعی همچون
Saltstack، Ansible، Chef، Puppet و... وجود دارند. بهتر است پیش از انتخاب ابزار مورد نظر تحقیقی انجام داده و قابلیتهای هر ابزار را با دیگری مقایسه کنید. در عمل آنچه به آن نیاز دارید یک ابزار CM و سپس یادگیری آن ابزار است.
12. با مفهوم زیرساخت با کد بهخوبی آشنا شوید
زیرساخت با کد IaC (سرنام Infrastructure As Code)، یکی از مهمترین پیشنیازهای مرتبط با خودکارسازی زیرساختها و محیطهایی است که در آنها اسکریپتها اجرا میشوند. دواپس حول محور کم کردن زمان تولید نرمافزارها و افزایش کیفیت نرمافزارها حرکت میکند و IaC در این زمینه کمک فراوانی به شما میکند. در این زمینه بهتر است یک ارائهدهنده سرویس ابری خوب همچون AWS ،GCP و... پیدا کنید. البته منابع آنلاین رایگان متعددی وجود دارند که برای شروع کار میتوانید از آنها استفاده کنید. در کنار یادگیری این فناوری مهم در گام بعد باید به سراغ یادگیری فناوریهایی بروید که در زمینه مدیریت سرویسهای ابری به کار گرفته میشوند. Saltstack یکی از این ابزارهای قدرتمند است.
13. اصول مربوط به نظارت بر نرمافزارها و زیرساختها را یاد بگیرید
نرمافزاری که در یک محیط تولیدی و زیرساختی نصبشده باید تحت نظارت قرار گیرد. نظارت بر نرمافزارها و هشداردهی در خصوص هر مورد خاص یکی دیگر از مهارتهایی است که به آن نیاز خواهید داشت. Zabbix، Icinga، Sensu، Prometheus و... تنها چند مورد از صدها ابزار کاربردی هستند که باید نحوه کار کردن با آنها را یاد بگیرید.
14. در ارتباط با کانتینرها و هماهنگکنندهها (Orchestration) اطلاعات کافی داشته باشید
کانتینرهایی شبیه داکر در حال تبدیل شدن به یک مهارت ضروری هستند. در زمینه ساخت، استقرار و مدیریت کانیتنرها در محیطهای توسعه و تولیدی مهارتهای لازم را به دست آورید.
15. یاد بگیرید که چگونه باید برنامههای فارغ از سرور را مستقر کرده و نصب کنید
اصطلاح فارغ از سرور (Serverless) یکی از جدیدترین کلیدواژههایی است که از سال 2017 میلادی به دنیای فناوری وارد شد. فناوریای که در آینده بسیار نزدیک به یکی از مهمترین فاکتورهایی تبدیل خواهد شد که در رزومه شغلی خود باید به آن اشاره کنید. AWS Lambda, Azure Functions, Google Cloud Functions, IBM OpenWhiskیا Auth0 WebTask هر کدام انتخاب خوبی برای یادگیری هستند.
16. یاد بگیرید و به اشتراک بگذارید
یادگیری یک فرایند مستمر بوده و به اشتراکگذاری دانش کمک میکند تا مطالب بیشتری را یاد بگیرید. به جامعه DevOpsLike ملحق شوید تا ببینید متخصصان چه مطالب ارزشمندی را به اشتراک میگذارند و چه نکاتی را میتوانید از آنها بیاموزید یا به آنها انتقال دهید. فراموش نکنید که آشنایی کامل با لینوکس یک امتیاز بزرگ به شمار میرود.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟