این دوره کامل ترین و عملیاتی ترین دوره CI/CD و DevSecOps ضبط شده به زبان فارسی برای ابزار GitHub می باشد. (به همراه ارائه مشاوره و راهنمایی حین پیاده سازی ساختارهای خودکار سازی)

***  این دوره در حال تولید و نهایی سازی است.  ***

اگر در تیم های بین المللی مشغول به فعالیت هستید و یا علاقه به همکاری با اینگونه تیم ها را دارید، یکی از تخصص هایی که می تواند به شما در پیدا نمودن فرصت شغلی کمک کند (چه به عنوان برنامه نویس بک اند و یا فرات و یا مهندس دواپس و ...)، تسلط به ابزار Github در بخش خودکارسازی و DevSecOps است و سازمانه که کدهای خود را در گیت هاب نگهداری می کند دیر ییا زود سایر فرآیندهای خود را نیز به این ابزار منتقل خواهد کرد. (هم به دلایل فنی و هم به دلایل مالی) همچنین این دوره با در نظر گرفتن تجربیات تیم ALM-DevOps در اجرا و استقرار ابزار Github در تیم های بین المللی طراحی شده است.

جهت مشاهده تمامی دوره های آموزشی مرتبط با ابزار Github، به بخش آموزش GitHub مراجعه بفرمایید.

می توانید فایل PDF سرفصل دوره آموزش ci cd با پیاده سازی پروژه های اجرایی در GitHub را از اینجا دانلود نمایید.

این دوره با در نظر گرفتن تجربیات من در تیم های بین المللی و کشور سوئد   و شرکت گیت هاب تهیه شده است.

در صورت نیاز به اطلاعات بیشتر جهت همکاری و یا دریافت مشاوره با واتس اپ ۰۹۱۲۹۲۷۱۲۴۳ تماس حاصل نمایید، متاسفانه تنها راه ارتباطی واتس اپ و یا ایمیل و اسکایپ می باشد.

مدرس: علی اژدری، با تجربه 6 ساله در پیاده سازی و استقرار فرهنگ و فرآیندهای DevOps و ابزارهای مرتبط

مدت دوره: 10 ساعت

مشاهده قیمت و خرید محصول

نوع دوره: ویدیو ضبط شده و قابل دانلود

پیش نیاز: آشنایی با تکنولوژی های توسعه نرم افزار، آشنایی اولیه با ابزار Github

مخاطب: توسعه دهندگان نرم افزار، مهندسین دواپس، مدیران تیم های توسعه نرم افزار

اهداف دوره:

  • دانشجو با پیش نیازهای راه اندازی CI/CD در بخش ورژن کنترل و برنچ ها آشنا می گردد.
  • دانشجو توانایی ایجاد یک فرآیند جهت تحویل کدهای توسعه داده شده را کسب می نماید.
  • دانشجو ساختار Continuous Integration را فرا خواهد گرفت.
  • دانشجو ساختار Continuous Delivery را فرا خواهد گرفت.
  • دانشجو با ساختار Release Automation و ایجاد Continuous Delivery برای انتشار پروژه ها آشنا خواهد شد.
  • دانشجو توانایی کنترل امنیت در تمام پروسه تولید CI و CD  را خواهد داشت.
  • دانشجو با روش ایجاد CI/CD در ابزار GitHub آشنا خواهد شد و پیاده سازی توانایی اجرای آن را خواهد داشت.
  • دانشجو با مفهوم Package management آشنا شده و روش های نگهداری از آن در GitHub را فرا خواهد گرفت.
  • دانشجو توانایی ایجاد NPM Package ها و Container ها را به صورت خودکار در فرآیند CI را کسب خواهد نمود.
  • دانشجو توانایی استفاده از NPM Package ها به صورت خودکار در فرآیند CI را کسب خواهد نمود.
  • در تمامی موارد بالا تجربیات تیم ما در مشاوره به سازمان ها و شرکت ها و عواقب تنظیمات اشتباه، خدمت شما گوشزد خواهد شد.

جهت کسب اطلاعات بیشتر و یا پیش ثبت نام در این دوره با ارسال ایمیل حاوی نام و نام خانوادگی و شماره تلفن همراه خود به ایمیل Info@ALM-DevOps.com اقدام نمایید یا با واتس اپ ۰۹۱۲۹۲۷۱۲۴۳ تماس حاصل نمایید. 

سرفصلها

بخش اول – آماده سازی ورژن کنترل جهت اعمال CI/CD

  • خودکار سازی با GitHub Action ها
  • چه چیزهایی را باید بدانید
  • کار کردن با فایل های Yaml

بخش دوم – اولین GitHub Action شما

  • اولین Action شما
  • تشریح  Workflow و Attribute های آن

بخش سوم – متصل کردن Action ها به Workflow  ها

  • ساختن یک Workflow
  • اضافه کردن کارها و مراحل به Workflow
  • اضافه کردن Action به Workflow
  • اجرای Workflow
  • اضافه کردن  وابستگی بین Action ها
  • اضافه کردن Condition به Workflow
  • تمرین: ساختن یک Workflow پیچیده و نیازمندی های مرتبط با آن
  • راه حل: توسعه یک Workflow پیچیده

بخش چهارم – استفاده از Action ها

  •  استفاده از Action های موجود در Marketplace
  • استفاده از Action های موجود در Git Repository
  • ارسال پارامترها به Action
  • استفاده از Environment Variables
  • استفاده از Secret ها جهت مدیریت اطلاعات مهم
  • استفاده ار بخش Artifact های گیت هاب
  • مدیریت Pull request ها
  • تمرین: نیاز به توسعه Workflow جهت تولید Artifact یا Package
  • راه حل: توسعه Workflow جهت ساختن پکیج

بخش پنجم – توسعه یک Workflow برای CI/CD

  • برنامه ریزی طراحی پایپلاین CI/CD
  • استفاده از Linting و Unit Testing
  • ساختن و مدیریت Artifact
  • Testing
  • Deployment
  • اضافه کردن یک Badge وضعیت به Workflow
  • تمرین: نیاز به توسعه یک پایپلاین CI/CD برای اسکریپت های پایتون
  • راه حل: توسعه پایپلاین CI/CD برای اسکریپت پایتون

بخش ششم – ساختن Action های خاص منظوره و Customize شده

  • برنامه ریزی جهت ساخت یک Action خصوصی سازی شده
  • تعیین هدف برای Custom Action شما
  • بررسی Dockerfile
  • اضافه نمودن Dockerfile و اسکریپت Entry point
  • استفاده از متغیرهای محیطی در Runtime
  • تست Action به صورت محلی
  • تکمیل اسکریپت Entry-point
  • اضافه کردن فایلهای متا دیتا و readme
  • Deploy کردن Custom Action شما
  • Publish کردن اکشن شما به Market Place موجود در GitHub
  • تمرین: نیاز به ساختن یک Custom Action
  • راه حل: پیاده سازی یک Custom Action

بخش هفتم – GitHub Action های حرفه ایی و پیچیده تر

  • سطح پیچیده و حرفه ایی گیت هاب اکشن ها
  • نیاز است چه چیزهایی را در این زمینه بدانید

بخش هشتم – Workflow های پیشرفته

  • ساختن Workflow های Advance
  • Service Containers
  • Scheduled triggers
  • Composite actions
  • تاییدهای غیر اتوماتیک انسانی در Workflow ها و Environment ها
  • کش کردن بین اجراهای مختلف Workflow
  • معرفی استراتژی Matrix و بررسی آن
  • اجرای استراتژی Matrix در Github Action ها
  • تمرین: نیاز به استفاده از ماتریکس جهت تست یک اپلیکیشن
  • راه حل: پیاده سازی ماتریکس و تست اپلیکیشن با استفاده از آن

بخش نهم – مدیریت و پیاده سازی Self-Hosted Runners

  • معرفی Runner های Self-Hosted
  • مقایسه Runner های Self-Hosted و GitHub-Hosted
  • تنظیم Runner های self-hosted
  • استفاده از Runner های Self-Hosted در یک Workflow
  • تمرین: نیاز به یک Runner Self-Hosted با Label
  • راه حل: پیاده سازی و تنظیم Runner Self-Hosted با label

بخش دهم – GitHub Packages

  • معرفی سیستم پکیج در گیت هاب
  • چرا باید از سیستم مدیریت پکییج گیت هاب استفاده کنید.

بخش یازدهم – Software package Principles

  • ساختن اولین ماژول و ایجاد یک مخزن پکیج
  • ساختن یک Package Repository
  • Package Configuration
  • Publish Packages
  • Install Packages
  • ساختن یک Distribution Page

بخش دوازدهم – ساختن و توزیع Software Packages

  •  توزیع Private Packages
  • یکپارچه سازی GitHub Action ها با Package ها
  • نحوه انتخاب نوع License پکیج ها
  • حذف و Restore کردن پکیج ها
  • Best Practice های مرتبط با پکیج ها
  • نحوه ایجاد یک Community به دور Package شما
  • تمرین: نیاز به یک Workflow جهت ساختن پکیج NPM
  • راه حل: پیاده سازی Workflow جهت پابلیش NPM پکیج

بخش سیزدهم – Publish Packages

  • معرفی و تشریح GitHub Package registry
  • Publish Container Images
  • Publish Software Packages
  • تمرین: Publish و استفاده از Container Image ها در WorkFlow
  • راه حل: ایجاد Workflow لازم جهت ساختنن و استفاده از Container Image

بخش چهاردهم – Javascript Actions

  • معرفی اکشن های Javascript
  • بررسی اجمالی Javascript Action
  • توسعه Javascript Action
  • استفاده از Actions/Core و Action/Github در Javascript Action ها

بخش پانزدهم– Hosting Websites on GitHub

  • GitHub pages چیست و چگونه کار می کند.
  • سایت خود را با استفاده از GitHub Pages بسازید.
  • Static Site Generator در Github
  •  اضافه نمودن محتوا به Github Pages
  • مشارکت در توسعه وب سایت
  • Unpublish نمودن وب سایت GitHub Pages

بخش شانزدهم – DevSecOps

  • DevSecOps چیست و ابعاد آن
  • انواع ابزارهای موجود جهت پیاده سازی DevSecOps
  • راهکارهای موجود در GitHub جهت پیاده سازی DevSecOps

بخش هفدهم – Dependabot

  • معرفی Dependabot
  • گیت هاب و امکانات Dependabot
  • امکانات پیشرفته Dependabot
  • بهترین موارد استفاده از Dependabot
  • Anti-pattern های Dependabot
  • Dependabot و زبان برنامه نویسی Python و تنظیم Pull requestها برای پایتون
  • Dependabot و زبان برنامه نویسی PHP و تنظیم Pull request ها برای پی اچ پی
  • Dependabot و زبان برنامه نویسی Javascript و تنظیم Pull request ها برای جاوا اسکریپت 

بخش هجدهم – CodeQL

  • CodeQL چیست
  • تعاریف و امکانات موجود در CodeQL
  • امکانات پیشرفته CodeQL 

بخش نوزدهم – توصیه ها برای داشتن WorkFlow پیشرفته

  • به دام انداختن هر چه زودتر Error ها، Code Quality check
  • ایجاد محیط Non-Production
  • Deploy سایت استاتیک به کمک Github Action
  • اجرای Test ها قبل از Production
  • اضافه نمودن Documentation
  • Deploy نمودن Documentation به Github Pages
  • Review نمودن Workflow
  • بهبود های قابل پیاده سازی در GitHub Action Workflow

بخش بیستم – تمرین ها

  • پیاده سازی CICD برای یک وب سایت، ایجاد کانتینر و دپلوی بر روی Azure Web App
  • پیاده سازی CICD برای تولید یک NPM پکیج و استفاده آن در پکیجی دیگر
  • پیاده سازی CICD برای یک وب سایت، ایجاد Container و دپلوی نمودن آن بر روی Azure Kubernetes Service
  • پیاده سازی CICD برای یک محصول Serverless، دپلووی بر روی AWS Lambda
  • مشکلات مرتبط با اجرای فرامین SSH در گیت هاب Workflow و راه حل آن