نقشه راهنمای توسعه دهندگان DevOps در سال ۲۰۱۸

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

اما نقشه راهی که امروز باهاش در خدمتتون هستم رو اولین بار اینجا دیدم و اصلش اینجاست

تصویر نقشه راه رو ابتدا مشاهده کنید تا بعد در موردش بیشتر صحبت کنیم :

قدم اول یادگیری زبان برنامه نویسی

خب با توجه به نقشه راه فوق، همون طور که مشاهده می کنید، قدم اول را یادگیری یه زبان برنامه نویسی میدونه که خب چیزی که برای من جالب هست تو این نقشه راه اسمی از Java نیاورده (البته ای نقشه راه مورد هایی که نوشته به عنوان مثال معرفی کرده، ولی خب برام جالب بود حرف از Rust زده ولی Java نه !) 

اگر هیچکدام از زبان های برنامه نویسی را بلد نیستید، نگران نباشید، با یه جستجوی ساده داخل وب آموزش های کاملی رو به زبان های پارسی و انگلیسی پیدا خواهید کرد (زبان وایتون رو نیز تو همین سایت در موردش زیاد نوشتم که آموزش پایتون از صفر تا … بهتون کمک شایانی در یادگیری پایتون خواهد کرد.)

قدم دوم یاد گرفتن مفاهیم مختلفی از سیستم عامل (OS)

این قسمت همون بخش Ops از DevOps رو شامل میشه 🙂 قبلا این قسمت توسط مهندسین سخت افزار پشتبانی می شد ولی در حال حاضر توسعه دهندگان نیز باید با این قسمت آشنایی داشته باشند. شما باید با مدیریت فرآیند ها، نخ ها (Thread)، سوکت ها، مجازی سازی، فضای ذخیره سازی، مدیریت ورودی و خروجی (I/O) و فایل سیستم ها می شود (همون طور که د رنقشه راه بالا نیز آورده شده اند)

قدم سوم Learn To Live in Terminal

خودمی بخوام بگم، برای یه DevOps خیلی مهمه که تو دستورات (Command) داخل ترمینال تبحر داشته باشه. داخل لینوکس با مواردی مثل findgrep, awk, sedlsof و دستورات شبکه همچون nslookup و netstat آشنایی داشته باشه.

قدم چهارم Networking و Security

تو جهان امروز هر چیزی به هر چیز دیگری متصل هست و همین نشان دهنده این هست که باید شبکه و امنیت را بلد باشیم. در نتیجه برای یه DevOps بودن باید با مفاهیمی مانند DNS, OSI Model, HTTP, HTTPS, FTP, SSL, TLS و غیره آشنایی داشته باشید.

قدم پنجم: چی و چگونه نصب کنیم !؟

به عنوان یه DevOpsشما باید بدونید که چه چیزی را روی ماشین (سیستم) خودتون نصب می کنید و بالا میارید و اینکه چطور اون رو باید نصب کنید. به طور معمول یه DevOps باید بدونه که یه WebServer مانند ApacheTomcat و IIS چطور بالا می آیند.

همچنین باید در مورد Caching Server, Load balancer, Reverse Proxy و Firewall آشنایی داشته باشد.

قدم ششم : یادگیری زیرساخت (Infrastructure) به عنوان کد

احتمالا این بخش مهمترین قسمت برای DevOpsباشد و همچنین وسیعترین بخش. شما به عنوان یه DevOps  باید با  Docker و Kubernetes آشنایی داشته و ابزار های کانفیگ  AnsibleChefSalt  و Puppet را نیز بشناسید.

قدم هفتم : یادگیری تعدادی از ابزارهای Continuous Integration  و Delivery (CI/CD) 

این هم دیگر چزی مهمی که یه DevOps باید بلد باشه، برای تنظیم Pipeline برای continuous integration و Delivery. در این زمینه ابزار های زیادی وجود داره ، Jenkins, TeamCity, Drone  و غیره…

قدم هشتم : یادگیری مانیتور کردن نرم افزار و زیر ساخت

در کنار نصب کردن و دپلوی کردن، مانیتورینگ نیز جنبه مهم دیگری است. تو این زمینه نیز ابزار های مختلفی وجود داره: Nagios, Icing, Datadog, Zabbix, Monit, AppDynanic, New Relic و غیره …

قدم نهم : یادگیری در مورد Cloud Provides

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

مواردی مثل Google Cloud و Azure.