аудитория Целевая
آیا شما یک توسعه دهنده هستید که می خواهید حرفه خود را به سمت یک مدل پیشرفته تر DevOps سوق دهید؟ آیا شما یک مهندس Ops کلاسیک هستید و می خواهید ایده ای در مورد معنای DevOps داشته باشید؟ یا آیا شما هیچکدام از این دو را گذرانده اید و پس از گذراندن مدتی در زمینه فناوری اطلاعات، می خواهید شغل خود را تغییر دهید و نمی دانید از کجا شروع کنید؟
اگر بله، پس بخوانید تا دریابید که چگونه می توانید در عرض شش ماه یک مهندس DevOps سطح متوسط شوید! در نهایت، اگر سالهاست درگیر DevOps بودهاید، هنوز هم از این سری مقالات بهرههای زیادی خواهید برد تا بدانید صنعت ادغام و اتوماسیون در حال حاضر کجاست و به کجا میرود.
به هر حال این چیست؟
اول اینکه DevOps چیست؟ شما میتوانید تعاریف را در گوگل جستجو کنید و تمام حرفها را مرور کنید، اما بدانید که بیشتر تعاریف فقط مجموعهای از کلمات هستند که به شکلی ساده پیچیده شدهاند. بنابراین، من خلاصهای از همه این تعاریف را به شما ارائه میدهم: DevOps روشی برای ارائه نرمافزار است که در آن سردرد و مسئولیت بین همه افراد درگیر تقسیم میشود. همین.
خوب، اما این مخفف به چه معناست؟ این بدان معنی است که به طور سنتی، توسعه دهندگان (افرادی که نرم افزار ایجاد می کنند) با انگیزه هایی که به طور قابل توجهی با انگیزه های عملیات (افرادی که نرم افزار را مدیریت می کنند) متفاوت است، انگیزه انجام کار خود را دارند. به عنوان مثال، به عنوان یک توسعه دهنده، من می خواهم هر چه سریعتر ویژگی های جدید ایجاد کنم. بالاخره این شغل من است و این همان چیزی است که مشتریان تقاضا می کنند! با این حال، اگر من یک فرد Ops هستم، به حداقل امکانات جدید نیاز دارم، زیرا هر ویژگی جدید یک تغییر است و هر تغییری مملو از مشکلات است. در نتیجه این ناهماهنگی انگیزه ها، DevOps متولد شد.
DevOps تلاش می کند توسعه و عملیات (ادغام و اتوماسیون) را در یک گروه ترکیب کند. ایده این است که یک گروه اکنون هم درد و هم مسئولیت (و جوایز احتمالی) ساخت، استقرار، و درآمدزایی از نرم افزارهای رو به رو مشتری را به اشتراک بگذارد.
پیوریست ها به شما خواهند گفت که چیزی به نام "مهندس DevOps" وجود ندارد. آنها به شما خواهند گفت: "DevOps یک فرهنگ است، نه یک نقش." البته از نظر فنی حق با آنهاست، اما همانطور که هست غالباً، این اصطلاح فراتر از معنای اصلی خود، از کنترل خارج شده است، مهندس DevOps چیزی شبیه به "مهندس سیستم 2.0" است. به عبارت دیگر، او کسی است که چرخه عمر توسعه نرم افزار را درک می کند و ابزارها و فرآیندهای توسعه نرم افزار را ایجاد می کند. برای حل مشکلات عملیاتی کلاسیک
DevOps در نهایت به معنای ایجاد خطوط لوله دیجیتال است که کد را از لپتاپ توسعهدهنده دریافت میکند و آن را به درآمد حاصل از استفاده از محصول نهایی تبدیل میکند، این همان چیزی است که در مورد آن است. توجه داشته باشید که انتخاب شغل DevOps نسبتاً با پاداش های مالی جبران می شود، تقریباً هر شرکتی یا DevOps را انجام می دهد یا ادعا می کند که یکی از آنهاست. صرف نظر از اینکه این شرکتها در کجا قرار دارند، فرصتهای شغلی کلی به عنوان DevOps بسیار بالا هستند و برای سالهای آینده شغل «مفرح» و معناداری را ارائه میدهند.
با این حال، مراقب شرکت هایی باشید که یک «تیم DevOps» یا «بخش DevOps» را استخدام می کنند. یک اسم فانتزی
سلب مسئولیت
حالا بیایید یک لحظه لیوان کول اید را کنار بگذاریم و به موارد زیر فکر کنیم. آیا این ضرب المثل قدیمی را شنیده اید که «هیچ مهندسان جوان DevOps وجود ندارند؟» اگر نه، پس بدانید که این یک تراپ محبوب در Reddit و StackOverflow است. اما این یعنی چه؟
به بیان ساده، این عبارت به این معنی است که سالها تجربه همراه با درک کامل ابزارها لازم است تا در نهایت به یک متخصص ارشد DevOps واقعاً مؤثر تبدیل شوید. و متاسفانه هیچ میانبری برای رسیدن به هدف وجود ندارد. بنابراین این تلاشی برای بازی کردن سیستم نیست - من فکر نمیکنم واقعاً بتوان وانمود کرد که یک مهندس ارشد DevOps با چند ماه تجربه در این صنعت است. دستیابی به درک کامل از ابزارها و متدولوژیهایی که به سرعت در حال تغییر هستند، نیازمند سالها تجربه است و هیچ راه حلی برای آن وجود ندارد. با این حال، یک منوی تقریباً ثابت (مد، اگر بخواهید) از ابزارها و مفاهیمی وجود دارد که اکثر شرکت ها از آن استفاده می کنند، و این همان چیزی است که در مورد آن صحبت خواهیم کرد.
باز هم، ابزارها با مهارتها متفاوت هستند، بنابراین در حالی که ابزارها را یاد میگیرید، مطمئن شوید که از مهارتهای خود (بررسی، شبکهسازی، ارتباط نوشتاری، عیبیابی و غیره) غافل نشدهاید. مهمتر از همه، آنچه را که میخواهیم پیدا کنیم فراموش نکنید - راهی برای ایجاد یک خط لوله دیجیتال کاملاً خودکار که ایدهها را میگیرد و آنها را به قطعات کد درآمدزا تبدیل میکند. این تنها مهم ترین نتیجه گیری از کل این مقاله است!
پچ پچ بسه، کی میتونم شروع کنم؟
در زیر نقشه راه دانش بنیادی DevOps آمده است. با تسلط بر همه چیزهایی که در آنجا به تصویر کشیده شده است، می توانید با خیال راحت و صادقانه خود را یک مهندس DevOps بنامید! یا یک مهندس ابر اگر نام «DevOps» را دوست ندارید.
این نقشه ایده من (و احتمالاً اکثر افرادی که در این فضا کار می کنند) را در مورد آنچه که یک مهندس DevOps شایسته باید بداند را نشان می دهد. با این حال، این تنها یک نظر است و البته مخالفانی نیز با آن خواهند بود. این خوبه! ما در اینجا برای کمال تلاش نمی کنیم، ما برای پایه ای محکم می کوشیم که در واقع بتوانیم بر روی آن بنا کنیم.
این مسیر را باید به تدریج و لایه به لایه طی کنید. بیایید با اصول اولیه شروع کنیم (و ادامه دهیم!) ابتدا در مورد عناصر آبی - لینوکس، پایتون و AWS یاد بگیریم. سپس، اگر زمان یا تقاضای بازار کار اجازه داد، کارهای بنفش را انجام دهید - Golang و Google Cloud.
راستش، لایه بالایی اساسی چیزی است که باید برای همیشه مطالعه کنید. سیستم عامل لینوکس بسیار پیچیده است و سال ها طول می کشد تا تسلط یابد. پایتون برای به روز ماندن نیاز به تمرین مداوم دارد. AWS به قدری سریع در حال تکامل است که آنچه امروز می دانید تنها بخشی از مجموعه دانش کلی شما در یک سال آینده خواهد بود. هنگامی که اصول اولیه را یاد گرفتید، به مجموعه مهارت های واقعی بروید. لطفاً توجه داشته باشید که در مجموع 6 ستون آبی (پیکربندی، نسخه، بستهبندی، استقرار، راهاندازی، نظارت)، یک ستون در هر ماه مطالعه وجود دارد.
شما، البته، متوجه عدم وجود مرحله مهم در خط لوله شش ماهه ما - آزمایش شده اید. من عمداً آن را در نقشه راه لحاظ نکردم زیرا نوشتن یک ماژول، یکپارچه سازی و آزمون های پذیرش آسان نیست و به طور سنتی بر دوش توسعه دهندگان می افتد. و پرش از مرحله "تست" با این واقعیت توضیح داده می شود که هدف این نقشه راه تسلط بر مهارت ها و ابزارهای اساسی در سریع ترین زمان ممکن است. فقدان تجربه آزمایش، به گفته نویسنده، تنها یک مانع جزئی برای استفاده صحیح از DevOps است.
همچنین، به یاد داشته باشید که ما در اینجا یک دسته کلی از حرف های فنی نامرتبط را یاد نمی گیریم، بلکه درک درستی از ابزارهایی داریم که برای ایجاد یک داستان واضح گرد هم می آیند. این داستان در مورد اتوماسیون فرآیند پایان به انتها است - یک خط مونتاژ دیجیتال که بیت ها را مانند یک خط مونتاژ حرکت می دهد. شما نمی خواهید یک دسته از ابزارها را یاد بگیرید و به توقف ادامه دهید! ابزارهای DevOps به سرعت تغییر می کنند، اما مفاهیم بسیار کمتر تغییر می کنند. بنابراین، شما باید تلاش کنید تا از ابزارهایی به عنوان پروکسی آموزش مفاهیم سطوح بالاتر استفاده کنید.
خوب، بیایید کمی عمیق تر بگردیم!
دانش بنیادی
در زیر مرحله بالایی که میگوید Foundation، میتوانید مهارتهایی را ببینید که هر مهندس DevOps باید به آنها تسلط داشته باشد. این مهارت ها مدیریت مطمئن سه رکن صنعت است که عبارتند از: سیستم عامل، زبان برنامه نویسی و ابر عمومی. این چیزها چیزی نیست که بتوانید به سرعت یاد بگیرید و ادامه دهید. این مهارت ها باید به طور مداوم بهبود یابند و تسلط پیدا کنند تا در خط مقدم صنعت و مرتبط با محیط حرفه ای اطراف شما باشند. بیایید آنها را یکی یکی مرور کنیم.
لینوکس جایی است که همه چیز کار می کند. آیا می توانید در عین حال که کاملاً در اکوسیستم مایکروسافت باقی بمانید، یک متخصص DevOps شگفت انگیز باشید؟ مطمئناً می توانید! هیچ قانونی وجود ندارد که حکم کند شما فقط از لینوکس استفاده کنید. با این حال، به خاطر داشته باشید که علیرغم اینکه تمام کارهای لینوکس را می توان در ویندوز انجام داد، در آنجا بسیار دردناکتر و با عملکرد کمتر اتفاق می افتد. در این مرحله، میتوان فرض کرد که بدون دانستن لینوکس، تبدیل شدن به یک متخصص واقعی DevOps غیرممکن است، بنابراین لینوکس چیزی است که باید آن را مطالعه و یاد بگیرید.
راستش را بخواهید، بهترین راه برای انجام این کار این است که به سادگی لینوکس (فدورا یا اوبونتو) را در خانه نصب کنید و تا حد امکان از آن استفاده کنید. البته خیلی چیزها را می شکنی، در پروسه های کاری گیر می کنی، باید همه چیز را درست کنی، اما لینوکس را یاد می گیری!
به هر حال، انواع RedHat در آمریکای شمالی رایج تر است، بنابراین منطقی است که با Fedora یا CentOS شروع کنید. اگر نمیدانید که آیا باید نسخه KDE یا Gnome را بخرید، KDE را انتخاب کنید. این همان چیزی است که خود لینوس توروالدز از آن استفاده می کند.
پایتون این روزها زبان بکاند غالب است. شروع با آن آسان است و به طور گسترده ای مورد استفاده قرار می گیرد. پایتون در زمینه هوش مصنوعی و یادگیری ماشین بسیار رایج است، بنابراین اگر زمانی بخواهید وارد حوزه داغ دیگری شوید، کاملا آماده خواهید بود.
خدمات وب آمازون: باز هم، تبدیل شدن به یک متخصص با تجربه DevOps بدون درک کامل از نحوه عملکرد ابر عمومی غیرممکن است. و اگر می خواهید در مورد آن بیشتر بدانید، به خدمات وب آمازون نگاه کنید. این یک بازیگر پیشرو در این زمینه خدمات است و غنی ترین مجموعه ابزارهای کاری را ارائه می دهد.
آیا می توان به جای آن با Google Cloud یا Azure شروع کرد؟ البته که می توانی! اما با یادآوری آخرین بحران مالی، لازم به ذکر است که AWS امن ترین گزینه حداقل در سال 2018 است، زیرا به شما امکان می دهد حساب کاربری خود را به صورت رایگان ثبت کنید و شروع به کاوش در امکانات خدمات ابری کنید. علاوه بر این، کنسول AWS یک منوی ساده و واضح برای انتخاب در اختیار کاربر قرار می دهد. خبر خوب این است که برای انجام این کار نیازی به دانستن تمام فناوری های آمازون نیست.
با موارد زیر شروع کنید: VPC، EC2، IAM، S3، CloudWatch، ELB (Elastic Load Balancing در زیر چتر EC2) و Security Group. این موارد برای شروع کافی است و هر شرکت مدرن و مبتنی بر ابر به طور کاملاً فعال از این ابزارها استفاده می کند. سایت آموزشی خود AWS مکان خوبی برای شروع است.
توصیه می کنم هر روز 20 تا 30 دقیقه را صرف یادگیری و تمرین با زبان پایتون، سیستم عامل لینوکس و سرویس ابری AWS بعلاوه چیزهایی که باید یاد بگیرید، بپردازید. به طور کلی، من معتقدم که صرف یک ساعت در روز، پنج بار در هفته برای درک صنعت DevOps در 6 ماه یا کمتر کافی است. در مجموع 6 جزء اصلی وجود دارد که هر کدام مربوط به یک ماه آموزش است. این تمام چیزی است که برای کسب دانش اولیه نیاز دارید.
در مقالههای بعدی، سطح بعدی پیچیدگی را بررسی خواهیم کرد: نحوه خودکارسازی کامل پیکربندی، نسخهسازی، بستهبندی، استقرار، اجرا و نظارت بر نرمافزار.
به زودی ادامه دارد...
چند تبلیغ 🙂
از اینکه با ما ماندید متشکرم آیا مقالات ما را دوست دارید؟ آیا می خواهید مطالب جالب تری ببینید؟ با ثبت سفارش یا معرفی به دوستان از ما حمایت کنید
Dell R730xd 2 برابر ارزان تر در مرکز داده Equinix Tier IV در آمستردام؟ فقط اینجا
منبع: www.habr.com