چگونه در کمتر از شش ماه به یک مهندس دواپس (DevOps) تبدیل شویم؟

چهارشنبه ۳۰ مرداد ۹۸ توسط سالار ساری نوایی

این مطلب بخش اول از یک مجموعه چندقسمتی است.

مخاطب هدف

آیا شما یک دولوپر هستید و می‌خواهید که مسیر شغلی خودتان را به سمت یک مدل دواپس‌تر تغییر بدهید؟

آیا شما به عنوان یک فرد عملیاتی آموزش دیده‌اید و می‌خواهید طعمی از دنیای دواپس را تجربه کنید؟

یا این که هیچ کدام از این‌ها نیستید. مدت زمانی با تکنولوژی کار کرده‌اید و الان به دنبال تغییر مسیر شغلی خودتان هستید و هیچ ایده‌ای ندارید که از کجا باید شروع کنید؟

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

در انتها اگر مدتی است که کارهای دواپس را انجام می‌دهید، باز هم مطالعه‌ی این مطلب می‌تواند برای شما مفید باشد و اطلاعاتی از موقعیت فعلی و آینده‌ی این بازار به شما بدهد.

این دیگر چیست؟

اولین چیز، دواپس چیست؟

می‌توانید این عبارت را در گوگل جستجو کنید و تمامی سایت‌ها و تعریف‌های طولانی و گاها توخالی را بررسی کنید! اما نیازی نیست که کلیک‌هایتان را هدر بدهید.

دواپس یک روش ارائه‌ی نرم‌افزار با مسئولیت مشترک است.

همین.

بسیار خب، اما این به چه معناست؟

این یعنی که به طور مرسوم، دولوپرها (افرادی که نرم‌افزار را تولید می‌کنند) این حس را داشتند که با عملیاتی‌ها (افرادی که نرم‌افزار را اجرا می‌کنند) تفاوت بسیاری دارند.

به عنوان نمونه، من به عنوان یک دولوپر می‌خواهم که در سریع‌ترین زمان ممکن هر چقدر که می‌توانم ویژگی‌های جدیدی به وجود بیاورم. چرا که کار من همین است و مصرف‌کنندگان هم به دنبال این ویژگی‌ها هستند.

اما از طرفی دیگر اگر یک فرد عملیاتی باشم، تمایل دارم که تا حد امکان ویژگی‌های جدید کمتری تولید بشود. به این دلیل که هر ویژگی‌ جدید نشان دهنده‌ی تغییر است و هر تغییری نیز دارای ریسک است.

به دلیل ناسازگاری این دو طرف، دواپس به وجود آمد.

دواپس (DevOps) تلاش می‌کند که توسعه (Development) و عملیات (Operations) را با یکدیگر در یک گروه ترکیب کند. عقیده‌ی پشت آن این است که با این کار یک گروه مسئولیت تولید، پیاده‌سازی و کسب درآمد از بخش مربط به مشتری نرم‌افزار را بر عهده خواهد داشت.

با این وجود افرادی وجود خواهند داشت که به شما بگویند "چیزی به اسم مهندس دواپس وجود ندارد" یا "دواپس یک فرهنگ است، نه یک نقش".

بله، بله. به طور فنی حق با آن‌ها است! اما همان طور که معمولا پیش می‌آید این عبارت در گذر زمان کمی از معنای اصلی خود فاصله گرفته است.

امروزه مهندس دواپس با چیزی مانند "مهندس سیستم ورژن دو" معادل است!

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

دواپس در نهایت به این معناست که یک لوله‌کشی دیجیتال انجام بدهیم تا کد از لپتاپ دولوپر تا کسب درآمد حرکت کند.

تمام ماجرا همین است.

همچنین در نظر داشته باشید که از نظر شغلی فضای دواپس پاداش خود را دارد به طوری که هر شرکتی یا در حال انجام دواپس است یا ادعا دارد که این کار را می‌کند.

فارغ از این که شرکت‌ها چه کاری انجام می‌دهند، فرصت‌های شغلی دواپس بسیار فراوان است و می‌تواند یک شغل جالب و مطلوب برای هر شخصی باشد.

نکته: از شرکت‌هایی که برای تیم دواپس یا دپارتمان دواپس استخدام می‌کنند دوری کنید. در کل چنین چیزهایی نباید وجود داشته باشند، چرا که دواپس درباره‌ی فرهنگ و روش ارائه‌ی نرم‌افزار است، نه درباره‌ی یک تیم یا دپارتمان به خصوص.

عدم اظهارنظر

شاید شما هم شنیده باشید که بگویند "آیا مهندس دواپس تازه‌کار وجود ندارد؟"

اگر نشنیده‌اید بدانید که این عبارت در Reddit و StackOverflow بسیار طرفدار دارد. اما به چه معناست؟

به طور ساده بگویم، یعنی که تبدیل شدن به یک مهندس دواپس کارکشته نیازمند سال‌های زیادی تجربه و درک بالایی از ابزارهای کاربردی است و متاسفانه هیچ میانبری برای کسب تجربه وجود ندارد.

پس هیچ راهی وجود ندارد که بتوان راه صد ساله را یک شبه طی کرد. به نظر من ممکن نیست که کسی با چند ماه تجربه بتواند ادای یک مهندس دواپس کارکشته را دربیاورد. رسیدن به درک درستی از ابزارها و روش‌های دائما در حال تغییر نیازمند سال‌ها تجربه است و نمی‌توان این قضیه را نادیده گرفت.

با این وجود مجموعه‌ای از ابزار و مفاهیم مشخص وجود دارد که اکثر شرکت‌ها از آن‌ها استفاده می‌کنند و هدف این مطلب نیز همین است!

اما باید اشاره کنم که ابزارها با توانایی‌ها تفاوت زیادی دارند. مطمئن شوید که در زمان یاد گرفتن ابزارها، برای به ‌دست آوردن توانایی‌های لازم (مصاحبه، بازاریابی، تعاملات نوشتاری، رفع مشکلات و ...) نیز تلاش می‌کنید.

مهم‌تر از همه، فراموش نکنید که به دنبال چه چیزی هستیم ایجاد یک لوله‌کشی دیجیتال و خودکار که ایده‌ها را به کدهایی تبدیل می‌کند که باعث تولید سرمایه می‌شوند.

بزرگترین برداشتی که می‌توانید از این مطلب داشته باشید، همین است!

صحبت کردن کافی است، از کجا باید شروع کرد؟

نقشه‌ی راه شما در پایین است.

همین را یاد بگیرید تا بتوانید یا اطمینان خودتان را مهندس دواپس خطاب کنید. یا یک مهندس ابر اگر از عنوان دواپس انرجار دارید!

نقشه‌ی زیر ایده‌ی من و احتمالا بسیاری از افرادی که در این زمینه کار می‌کنند را درباره‌ی چیزهایی که یک مهندس کاربلد دواپس باید بداند نشان می‌دهد. با این وجود این تنها نظر من است و قطعا همه‌ی افراد از آن راضی نخواهند بود. مشکلی ندارد! در حال حاضر به دنبال کمال نیستیم، بلکه می‌خواهیم یک پایه و اساس مطمئن به وجود بیاوریم که به کمک آن بتوان ادامه داد.

نکته: شما باید این نقشه را لایه به لایه و به صورت عرضی پیمایش کنید. با پایه و اساس شروع کنید و ادامه بدهید. تکنولوژی‌های نوشته شده به رنگ آبی را قبل از بقیه یاد بگیرید (Linux, Python, AWS) سپس اگر زمانی در اختیار داشتید یا بازار کار نیازمند آن بود به سراغ موضوعات بنفش بروید (Golang, Google Cloud).

مجددا می‌گویم که در حر سطح به سراغ اولین لایه بروید و سپس اگر زمان اجازه می‌دهد به سراغ مورد دوم بروید تا به عمق دانشتان افزوده شود.

حقیقتش را بخواهید، پایه و اساس ذکر شده در بالا چیزی است که هیچ وقت نمی‌توانید یاد گرفتن آن را متوقف کنید. لینوکس بسیار پیچیده است و یاد گرفتن آن به طور کامل نیازمند سال‌ها زمان است. پایتون نیاز دارد که دائما روی آن کار شود تا با پیشرفت‌های روز همگام بمانید. AWS (خدمات وب آمازون) به قدری سریع پیشرفت می‌کند که چیزی که امروز می‌دانید تا یک سال دیگر بخش کوچکی از نمای کلی آن خواهد بود.

اما به محض این که از  پایه و اساس سر در آوردید، به سراغ توانایی‌های مورد نیاز در دنیای واقعی بروید. توجه کنید که شش ستون آبی رنگ وجود دارد که هر کدام آن‌ها برای یک ماه است.

نکته: چیزی که به طور واضحی در شکل بالا وجود ندارد تست کردن است. این کار از قصد صورت گرفته است. نوشتن تست واحد، ادغام و پذیرش کار آسانی نیست و معمولا بر عهده‌ی دولوپر قرار می‌گیرد. حذف مرحله‌ تست کاملا عمدی بوده، چرا که هدف این مطلب این است که برداشتی سریع از توانایی‌ها و ابزارهای جدید به دست بیاورید. بی‌تجربگی در زمینه‌ی تست کردن به نظر نویسنده مانع بزرگی برای رسیدن به یک سطح مطلوب از دواپس نیست.

همچنین باید به خاطر داشته باشید که نمی‌خواهیم حجم زیادی از حرف‌های مربوط به تکنولوژی را در ذهن شما پرورش بدهیم. ما به دنبال ایجاد یک فهم قوی از کلیت ماجرا هستیم. این ماجرا هم عبارت است از خودکارسازی نقطه به نقطه‌ی فرآیند – یک لوله‌کشی دیجیتال که قطعات را به صورت خط تولید جا به جا می‌کند.

در ضمن، نباید به دنبال این باشید که تعدادی از ابزار را فرا بگیرید و متوقف شوید. ابزارها به سرعت تغییر می‌کنند اما مفاهیم کمتر. پس در حالت ایده‌آل باید از ابزارها برای یاد گرفتن مفاهیم سطح بالاتر بهره ببرید.

بسیار خب، ادامه می‌دهیم!

دانش بنیانی

زیر عبارت Foundation می‌توانید توانایی‌های مورد نیاز برای یک مهندس دواپس را مشاهده کنید.

در این‌جا سه بخش اصلی این صنعت نشان داده شده است: سیستم عامل، زبان برنامه‌نویسی و فضای ابری عمومی. شما نمی‌توانید این موارد را در اسرع وقت یاد بگیرید و از لیست خط بزنید و به سراغ مورد بعدی بروید. این توانایی‌ها نیازمند صبر و تلاش پیوسته هستند تا همراه به روز باقی بمانند.

بگذارید آن‌ها را به نوبت بررسی کنیم.

لینوکس: مکانی که همه چیز در آن اجرا می‌شود. در این صورت، آیا می‌توانید در زمینه‌ی دواپس فعالیت کنید و به طور کل در اکوسیستم مایکروسافت باقی بمانید؟ البته که می‌توانید! در لینوکس هیچ قانونی وجود ندارد!

با این وجود لازم است بدانید که تمامی امور مربوط به دواپس در سیستم عامل ویندوز هم انجام شدنی هستند، اما انجام آن‌ها دشوارتر می‌شود و فرصت‌های شغلی کمتری در این زمینه وجود دارد. در حال حاضر این گونه تصور کنید که بدون آگاهی از لینوکس نمی‌توانید به یک مهندس دواپس واقعی تبدیل بشوید. پس چیزی که باید به دنبالش باشید لینوکس است.

بهترین راه برای یادگیری لینوکس هم این است که یکی از نسخه‌های فدورا یا اوبونتو را برای خودتان در خانه نصب کنید و تا می‌توانید در آن جستجو کنید. به طور قطع به یقین با مشکلاتی مواجه خواهید شد که مجبور می‌شوید آن‌ها را برطرف کنید و با گذر زمان کم کم لینوکس را یاد خواهید گرفت.

پایتون: امروزه دنیای بک‌اند در اختیار زبان پایتون است. یادگیری آن بسیار آسان است و به همین دلیل بسیار از آن استفاده می‌شود. یکی دیگر از مزیت‌های پایتون این است که در حیطه‌‌ی هوش مصنوعی و یادگیری ماشین نیز کاربرهای فراوانی دارد. پس اگر روزی بخواهید به سراغ زمینه‌ی شغلی دیگری بروید نیز به دردتان خواهد خورد.

خدمات وب آمازون: مجددا باید بگویم که نمی‌توان بدون داشتن یک دانش مفصل از طرز کار فضای ابری عمومی تبدیل به یک مهندس دواپس شد و اگر آگاهی از فضای ابری هدف شماست، فضایی بهتر از خدمات وب آمازون پیدا نخواهید کرد. AWS بهترین ابزارها را در اختیار شما می‌گذارد تا به کمک آن‌ها کارهایتان را پیش ببرید.

آیا ممکن است که با فضای ابری گوگل یا مایکروسافت آژور شروع به کار کرد؟ البته که ممکن است! اما ما به دنبال بزرگترین بازیکن در این عرصه هستیم و به همین دلیل انتخاب AWS در سال 2019 معقول‌تر است.

در زمان ثبت‌نام نیز یک فضای رایگان در اختیارتان قرار می‌گیرد که برای شروع فرصت بدی نیست.

پس از این که وارد کنسول AWS می‌شوید یک منوی ساده و قابل فهم پیش روی شما قرار می‌گیرد. متاسفانه این جمله با طعنه همراه بود! اما خبر خوب این است که نیاز ندارید از تمامی تکنولوژی‌های آمازون آگاهی داشته باشید.

با مواردی از قبیل VPC، EC2، IAM، S3، CloudWatch، ELB و گروه‌های امنیتی شروع کنید. برای شروع این‌ها موارد بسیار خوب و مدرنی هستند که بسیاری از شرکت‌های ابری از این ابزارها استفاده‌های فراوانی می‌کنند.

ضمنا وبسایت آموزش AWS نیز مکان خوبی برای شروع به کار است.

پیشنهاد من به شما این است که روزانه بیست الی سی دقیقه برای یادگیری پایتون، لینوکس و AWS زمان بگذارید.

نکته: این در کنار سایر مواردی خواهد بود که باید یاد بگیرید. اما در کل اگر بتوانید روزی یک ساعت و به مدت پنج روز در هفته وقت بگذارید، می‌توانید به دانش قابل قبولی برسید تا در کمتر از شش ماه از فضای دواپس سر در بیاورید.

در همین راستا 6 موضوع اصلی وجود دارد که هر کدام برای یک ماه از آموزش خواهد بود.

اکنون با لایه‌ی پایه و اساس آشنا شده‌اید. در لایه‌های بعدی سطح‌های بیشتری از پیچیدگی را بررسی خواهیم کرد. پیکربندی، نسخه، بسته‌بندی، به‌کارگیری، اجرا و نظارت نرم‌افزار، هر کدام به روشی کاملا خودکار!

قسمت دوم این مقاله که مربوط به پیکربندی می‌باشد را از اینجا مطالعه کنید.


کلیدواژه: آموزش devops آموزش Devops آموزش داکر آموزش Docker

منابع: medium.com

ارسال دیدگاه:
برای ارسال دیگاه باید به سیستم وارد شوید و یا ثبت نام کنید. ثبت نام چند لحظه بیشتر زمان شما را نمیگیرد.