نقشه راه کامل دواپس – از مبتدی تا پیشرفته
DevOps مجموعهای از روشها در نظر گرفته میشود که تواناییهای توسعه نرمافزار یعنی Dev و IT Operations یعنی Ops را با هم ترکیب میکند، که منجر به ارائه سریع و کارآمدتر نرمافزار با کیفیت عالی میشود. تمرکز آن تشویق ارتباطات، همکاری و ادغام بین تیم توسعه نرم افزار و عملیات فناوری اطلاعات برای حفظ چرخه عمر توسعه نرم افزار است.
اکنون، معنای DevOp را میدانید، اما این سوال پیش میآید که آیا نام خاصی برای این نوع کار وجود دارد؟
بله، یک شغل مشخص وجود دارد، یعنی مهندس DevOps. مهندس DevOps شخصی است که شیوههای DevOps را مدیریت میکند و جریان ساده فرآیند استقرار را تضمین میکند. مسئولیتهای کلیدی آن ممکن است از سازمانی به سازمان دیگر متفاوت باشد، اما در اینجا برخی از نقشها و مسئولیتهای کلیدی یک مهندس DevOps آورده شده است:
- اجرای عملیات CI/CD.
- اتوماسیون زیرساخت
- همکاری با تیم های مختلف عمدتا تیم های SDE و تیم های عملیات فناوری اطلاعات.
- مدیریت در دسترس بودن و عملکرد برنامه های کاربردی نرم افزار.
- عیب یابی و رفع مشکلات سازمان.
ممکن است تعجب کنید که یک مهندس DevOps با انجام این کار چقدر می تواند درآمد کسب کند. اجازه دهید آمار را به شما بگویم، میانگین حقوق یک مهندس DevOps 9-10 LPA است و تا 20 LPA می رود و همچنین میانگین حقوق یک مهندس ارشد DevOps بین 16-18 LPA است و می تواند تا بیش از 35 افزایش یابد. میلیون در سال.
در این مقاله، ما یک نقشه راه کامل از نحوه تبدیل شدن به یک مهندس DevOps یا نقشه راه DevOps را یاد می گیریم. بنابراین، بیایید سفر را آغاز کنیم
1. یک زبان برنامه نویسی را انتخاب کنید (هفته – 1)
انتخاب یک زبان ممکن است برای یک توسعه دهنده کار دشواری باشد، اما برای شروع حرفه ای در صنعت فناوری اطلاعات، توصیه می شود هر زبان برنامه نویسی را به عنوان زبان اصلی خود انتخاب کنید تا بتوانید شغل بیشتری را در صنعت نرم افزار دنبال کنید. در این سفر یادگیری DevOps، با انتخاب یکی از این دو زبان یعنی زبان برنامه نویسی Python OR Go lang ادامه خواهیم داد. از آنجایی که Python و Go lang هر دو زبانهایی هستند که به راحتی قابل یادگیری هستند، هر دو دارای نحوی قابل درک هستند و در آینده دامنه وسیعی خواهند داشت.
بنابراین بیایید ببینیم مهمترین موضوعی که برای داشتن دانش خوب از یک زبان برنامه نویسی باید به اطراف نگاه کنید چیست.
2. مفاهیم سیستم عامل (هفته 2)
با پیشروی در سفر، لازم است که اصول خود را قوی داشته باشید، زیرا میخواهید مستقیماً با سیستمهای نرمافزاری کار کنید تا درک کاملی از سیستمهای عامل و مفاهیم اولیه آنها داشته باشید. دلایل مختلفی وجود دارد که چرا باید مفاهیم سیستم عامل را یاد بگیرید:
- برای درک معماری سیستم
- برای خودکارسازی و پیکربندی مدیریت.
- برای عیب یابی و رفع اشکال.
- برای اعمال بهترین تدابیر امنیتی
در زیر این بخش را به سه حوزه مختلف تقسیم کردهایم: سیستمهای عامل، مجازیسازی و پروتکلهای شبکه. بنابراین، بدون اتلاف وقت زیاد، بیایید نگاهی بیندازیم.
2.A - سیستم عامل
- مبانی سیستم عامل
- فرآیند و موضوعات
- برنامه ریزی CPU
- همگام سازی فرآیند
- بن بست
- مدیریت حافظه
- مدیریت دیسک
- زمان بندی دیسک
2.B - مجازی سازی
- مجازی سازی اپلیکیشن
- مجازی سازی شبکه
- مجازی سازی دسکتاپ
- مجازی سازی فضای ذخیره سازی
- مجازی سازی سرور
- مجازی سازی داده ها
2.C - پروتکل های شبکه
- HTTP
- HTTPS
- TCP/IP
- FTP / SFTP
- DNS
- SMTP
- SSL / TLS
- SSHPort Forwarding
3. لینوکس (هفته 2 تا 3)
اگر قصد ورود به DevOps را دارید، باید در ترمینال زندگی کنید، برای همین، داشتن دانش دقیق از سیستم عامل های مبتنی بر خط فرمان ضروری است، و وقتی صحبت از خط فرمان می شود، تنها چیزی که به آن مربوط می شود. ذهن لینوکس است
لینوکس یک سیستم عامل منبع باز است که برای همکاری، اتوماسیون و بهبود مستمر توسعه نرم افزار و عملیات فناوری اطلاعات مورد نیاز است. دلایل کلیدی که چرا باید لینوکس را یاد بگیرید عبارتند از:
- این به طور گسترده در محیط های DevOps استفاده می شود.
- عمدتا برای اسکریپت و اتوماسیون استفاده می شود.
در زیر برخی از مفاهیم کلیدی در مورد لینوکس ذکر شده است.
- خط فرمان
- برنامه نویسی Bash و Shell
- مدیریت بسته
- ابزارهای شبکه
- مفاهیم امنیتی
4. SCM (هفته - 4)
زمان آن رسیده است که در مورد عملکرد DevOps بیشتر بدانید، این یادگیری بدون گنجاندن SCM که مخفف مدیریت کد منبع در DevOps است، تکمیل نمی شود. در گردش کار DevOps، SCM نقش مهمی ایفا می کند زیرا توانایی کنترل و ردیابی تغییرات را از طریق VCS یعنی سیستم های کنترل نسخه می دهد. در این سفر، ما به شما پیشنهاد می کنیم با Git و Github به عنوان VCS عمل کنید.
Git & GitHub
- مقدمه ای بر Git
- نصب Git
- ویژگی های Git
- Git - چرخه زندگی
- محیط صحنه سازی Git
- Git در مقابل GitHub
- Git Command Line و Basic Command
- ایجاد یک مخزن در GitHub
- Git Init
- Git Add
- Git Commit
- Git Push
- Git Clone
- شاخه گیت
- Git Branching Merge and Merge Conflict
- Git Log
- Git Diff
- وضعیت Git
- Git .gitignore
- Git Fork و Git Clone
- Git Pull Requests
- Git Rebase
- انتخاب Git Cherry
- Git Stash
- Git Ignore
- گیت فورک
- مخزن گیت
- شاخص گیت
- Git Head
- Git Cheatsheet
4. رایانش ابری (هفته 5 تا 7)
اکنون، زمانی که با اصول خود به خوبی آشنا هستید و بیشتر موضوعات را پوشش داده اید، وقت آن است که با محیط کاری خود آشنا شوید یا می توانید فضای کاری را برای مهندسان DevOps بگویید. رایانش ابری نقش اجتنابناپذیری در سفر یادگیری DevOps دارد و DevOps اغلب به پلتفرمهای رایانش ابری مانند AWS (سرویسهای وب آمازون)، Microsoft Azure با DevOps، GCP (پلتفرم ابری Google) و غیره متکی است. علاوه بر این، ما در حال یادگیری محبوب ترین پلتفرم های رایانش ابری در جزئیات.
AWS
- مقدمه ای بر AWS
- IAM در AWS
- EC2
- EBS (ساقه باقلا الاستیک)
- EBS (فروشگاه بلوک الاستیک)
- EFS (Elastic File Storage)
- S3
- AMI E.Load Balancer
- Cloud Watch
- مقیاس خودکار
- SQS
- SNS
- سایر محاسبات الاستیک (ECS، EKS، ECR)
- خدمات کاربردی ذخیره سازی
- خدمات پایگاه داده
آزور (Azure)
- مقدمه ای بر Azure
- محاسبه ماشین های مجازی
- ذخیره سازی
- شبکه Azure
- توابع محاسبه Azure
- مانیتورینگ محاسباتی
- خدمات Azure
- منابع
- خدمات شناختی
- داشبوردها
- پایگاه های داده
- DevOps با Azure
GCP
- معرفی
- خدمات محاسباتی
- خدمات ذخیره سازی و پایگاه داده
- خدمات امنیتی
- خدمات شبکه
- یکپارچه سازی داده ها و تجزیه و تحلیل
- ابزارهای مدیریت خدمات و خدمات مانیتورینگ
- DevOps با GCP
6. داکر (هفته 8 تا 9)
از ابتدا، تاکنون چیزهای زیادی یاد گرفته اید، اکنون زمان آن رسیده است که معروف ترین ابزار توسعه دهندگان DevOps یعنی Docker را یاد بگیرید. این یک پلتفرم کانتینریسازی منبع باز است که به توسعهدهندگان در بستهبندی برنامههای نرمافزاری و وابستگیهای آنها به ظروف با اندازه کوچک کمک میکند. به دلیل مزایای مختلفی که دارد، به ابزاری جدایی ناپذیر برای اکوسیستم DevOps تبدیل شده است:
- قابل حمل و انعطاف پذیرتر است.
- بسیار مقیاس پذیر است و منابع کارآمدی دارد.
- این امکان توسعه مشارکتی را فراهم می کند.
- قوام را حفظ می کند.
در زیر به موضوعات A-Z اشاره شده است که می توانید از آنها بازدید کنید و با جزئیات در مورد Docker اطلاعات کسب کنید.
- مقدمه داکر
- نصب داکر
- دستورات داکر
- Dockerfile
- تصاویر داکر
- موتور داکر، ذخیره سازی
- Docker Compose
- کانتینرهای داکر و مدیریت کانتینرها
- رجیستری داکر
- Docker Swarm
7. Kubernetes (هفته 10 تا 12)
Kubernetes، معروف به K8s، یکی دیگر از پلتفرمهای منبع باز است که کل استقرار و مدیریت برنامههای بزرگ را خودکار میکند. این نقش مهمی در سفر تبدیل شدن به یک مهندس DevOps ایفا می کند. این برنامه را مقیاس پذیرتر می کند و همچنین به خودکارسازی کل فرآیند از ابتدا تا انتها کمک می کند. اساساً از اصل IaC - "زیرساخت به عنوان کد" برای تعریف و مدیریت منابع زیرساخت پیروی می کند.
ما تمام موضوعات مهم مربوط به Kubernetes را در زیر فهرست کرده ایم:
- مقدمه ای بر Kubernetes
- Kubernetes - روش های نصب
- نصب Kubernetes در اوبونتو
- Kubernetes - معماری
- Kubernetes - معماری یکپارچه Kubernetes
- Kubernetes vs Docker
- Kubernetes - مفهوم ظروف
- Kubernetes - مقدمه ای بر ارکستراسیون کانتینری
- Kubernetes - فضای نام
- Kubernetes - تصاویر
- Kubernetes - مشاغل
- Kubernetes - برچسب ها و انتخابگرها
- Kubernetes - گره
- Kubernetes – Node Port Service
- Kubernetes – Cluster IP در مقابل Node-Port
- Kubernetes - خدمات
- Kubernetes – سرویس DNS
- Kubernetes – Pod
- Kubernetes - یک فرمان را در Pod's Containers اجرا کنید
- Kubernetes - چندین کانتینر در یک Pod ایجاد کنید
- Kubernetes – Replication Controller
- Kubernetes - تفاوت بین Replicaset و Replication Controller
- Kubernetes - استقرار
- Kubernetes - جلدها
- Kubernetes - اسرار
- Kubernetes - کار با اسرار
8. متفرقه (هفته - 13)
اگر به این بخش از مقاله رسیدید، قطعاً به چیزی دست یافته اید. بابت تکمیل این نقشه راه تا اینجای کار تبریک می گویم. اما همیشه چیزی برای یادگیری وجود دارد که نمی توانیم آن را انکار کنیم. بنابراین، در اینجا چند موضوع متفرقه وجود دارد که باید مراقب آنها باشید.
- Terraform
- پرومتئوس و گرافانا
- آشپز و عروسک
نتیجه
یادگیری چیزهای جدید ممکن است برای یک فرد چالش برانگیز باشد، اما یک بار یک مرد عاقل گفت: "شوق یادگیری را در خود ایجاد کنید. اگر این کار را انجام دهید، هرگز از رشد خود دست نخواهید کشید»، ما نیز همین اعتقاد را داریم، و تنها به همین دلیل، تمام منابع لازم مربوط به DevOps را در این مقاله برای شما جمع آوری کرده ایم. ما معتقدیم که شما تمام موضوعات را به درستی یاد می گیرید و تمام تلاش خود را می کنید تا به یک مهندس DevOps موفق تبدیل شوید.