دوره پایه آموزش DevOps با استفاده از TFS 2018 Update 2

چند نکته درباره نسخه ۲۰۱۸ نرم افزار TFS بسیار مشهود است.

نکته اول: همگرایی این مجموعه نرم افزار با ابزارها و تکنولوژی های OpenSource  مثل kubernetes و Git و Jenkins و Github و Docker و Docker Hub و npm و Gradle و Gulp

نکته دوم: اضافه کردن حجم زیادی از امکانات در رابط کاربری تحت وب TFS برای استفاده راحت تر و بهینه تر، دلیل عمده ایی که باعث این تغییرات شده افزایش حجم اطلاعاتی هست که این اکو سیستم باید مدیریت کنه در نتیجه به عنوان مثال فیلترهای کوئری ها برای پشتیبانی از حالت های پیچیده تر بهینه شدن.

نکته سوم: مشاهده بلوغ کامل درعملکرد واحد های مختلف TFS و یکپارچگی بیش از پیش این واحدها با هم، به عنوان مثال فرآیند مدیریت Pull Request ها با اعمال یکسری تغییرات بسیار کامل شده، یا ایجاد فرآیند CI با استفاده از Build VNext میتونه حالت های بسیار پیچیده رو پشتیبانی کنه، این مورد برای بخش های Test و Release و مدیریت تسک ها هم صادق است.

این دوره آموزشی بر اساس سرفصل اولیه ایی که برای TFS 2017 طراحی شده بود شکل گرفته و تغییرات در نسخه های ۲۰۱۸ و ۲۰۱۸٫۱ و ۲۰۱۸٫۲ بررسی شده و هر تغییری که میشه اون رو در سطح Basic دسته بندی کرد در این دوره لحاظ شده. به زودی دوره دیگری با سطح Advanced برای tfs 2018  طراحی خواهد شد.

 

Published: May 11, 2018

Course Title: DevOps with TFS 2018 Update 2 – Basic

Audiences: Developers, Software Architects

Prerequisites: Minimum 3 Year Software Development Experience, Basic Agile Methodologies Knowledge

Technology: Visual Studio 2017 update 6, Team Foundation Server 2018 Update 2

Course Hours: 60 Hour

Author: Ali Azhdari

  

Hardware & Software Requirements

Every Student Need 1 PC For Himself

Software Requirements:

TFS Server: Active Directory Domain, Domain Controller, SQL Server 2017 Enterprise With SSRS, IIS With All .Net Features Installed, TFS 2018 Update 2, Chrome Browser

TFS Build Server: Visual Studio 2017 update 6 or later, Chrome Browser

Every Student PC: Visual Studio 2017 update 6 or Later With Specific Installation Config, Access to Sql Server 2017 Enterprise Instance, IIS, Chrome Browser

Hardware Requirements:

TFS Server: Core I7 2.0 GHz, 6 GB RAM, 100 GB Hard Disk (C: 50GB – D: 50GB)

TFS Build Server: Core I7 2.0 GHz, 6 GB RAM, 100 GB Hard Disk (C: 50GB – D: 50GB)

Every Student PC: Hardware Support Software Requirements With No Lag

 

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

جواب تغییراتی از این قبیل در شرکت هایی مثل Microsoft, Amazon, Twitter استفاده از روش های نوین توسعه و نگهداری نرم افزار مثل ALM و یا DevOps است. با استفاده از این روش ها خط تولید نرم افزار مثل خط تولید شرکت های بزرگ خودرو سازی شد و فرآیندهایی که در آنها توانایی خودکار سازی وجود داشت توسط رایانه ها انجام گرفت در نتیجه نیروی انسانی سازمان زمان بیشتری برای انجام وظایف مهم تر کسب کرد به عنوان مثال محصولات شرکت مایکروسافت قبل از سال ۲۰۱۳ تقریبا دارای Unit Test نبودند ولی با شروع اعمال تغییرات در سازمان زمان کافی برای ایجاد Unit Test در نظر گرفته شد تا استاندارد تولید نرم افزار در این شرکت ارتقا یابد، در Twitter در هر شبانه روز بیش از ۲۴ بار سرویس این شرکت Publish شد، در آمازون پس از طی فرآیندی مشخص، کد نوشته شده برای هر سرویس Publish شد. هر چه سیستم های نرم افزاری پیچیده تر شدند نیاز به ساختارهایی برای مدیریت جامع آنها و حذف انسان از فرآیندها قابل خودکار سازی بیشتر احساس شد.

در ایران در سال های اخیر شاهد رشد راهکارهای نرم افزاری از نظر ابعاد بوده ایم ( چه از نظر تعداد کاربر و چه از نظر حجم نرم افزار تولید شده و چه از نظر محیطی که نرم افزار روی آن Deploy می شود )، با گذشت زمان جای خالی روشی جهت تولید و نگهداری صحیح این سامانه ها احساس می شود، در این دوره شما با مفاهیم تولید و نگهداری نرم افزار و راهکارهای شرکت مایکروسافت در این زمینه آشنا می شوید که طبق گزارشات Gartner یکی از رهبران این حوزه به شمار می آید.

این دوره دریچه ایی به موقعیت شغلی جدیدی به نام ALM/DevOps Specialist و شروعی بر تولید و نگهداری صحیح نرم افزار است، در این دوره ضمن بیان اکثر دغدغه های شما و ارائه راهکار برای آنها، ساختاری منطقی جهت رفع مشکلات موجود ارائه می شود، راهکار مایکروسافت هر زبان برنامه نویسی و هر Platform را هدف قرارمی دهد.

 

  

مدت دوره: ۶۰ ساعت

پيش نياز: حداقل ۳ سال سابقه توسعه نرم افزار، آشنایی با روش های چابک مدیریت پروژه های نرم افزاری

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

اهداف دوره: بررسی روش های تولید و نگهداری راه کارهای نرم افزاری و پیاده سازی این روش ها با استفاده از ابزارهای ارائه شده توسط شرکت مایکروسافت ( طبیعتا در زمان محدود دوره یک روزه  نمی توان آن طور که باید به جزئیات ابزارها و روشها اشاره کرد، در نتیجه به غیر از برخی موارد که به صلاح دید طراح دوره از اهمیت برخورداره بوده سایر موارد به شکل تئوری و یا خلاصه مطرح خواهند شد   )

در انتهای اين دوره دانشجويان قادر خواهند بود:

  • دانشجو می تواند مزایا و معایب و دلیل نیاز سازمان ها به ALM/DevOps را توضیح دهد.
  • دانشجو تمام ابعاد راهکار مایکروسافت درباره ALM را فرا خواهد گرفت.
  • دانشجو نصب و پیکربندی TFS 2018 را فرا خواهد گرفت.
  • دانشجو توانایی استفاده از ابزارهای ارائه شده در قالب های CMMI، Agile، Scrum برای مدیریت پروژه های نرم افزاری را به شکل کامل فرا خواهد گرفت.
  • دانشجو توانایی ایجاد و مدیریت سیستم کنترل نسخه کدها به دو روش متمرکز و توزیع شده را کسب خواهد کرد.
  • آشنایی با انواع تست ها و نحوه چیدمان آنها در نقشه های تست و استفاده از ابزارهای مایکروسافت برای مدیریت آنها ( توضیح انواع تست ها و پیاده سازی آنها خود در دوره ایی جداگانه بررسی خواهند شد، در این دوره دانشجو با تست ها آشنا شده و اهمیت آنها را به شکل عملی در پروسه تولید نرم افزار مشاهده خواهد کرد و با زیرساخت های موجود جهت مدیریت و اجرای خودکار آنها به شکل عملی آشنا خواهد شد )
  • دانشجو ایجاد ساختار Continuous Integration را فرا خواهد گرفت.
  • آشنایی با ساختار Release Automation و ایجاد Continuous Delivery برای انتشار پروژه ها آشنا خواهد شد.
  • دانشجو علت نیاز به فرآیند “مشاهده و یادگیری” در تولید نرم افزار را فرا خواهد گرفت و با ابزار Microsoft Azure Application Insight آشنا خواهد شد ( به دلیل پیچیدگی در خرید این سرویس در ایران سعی خواهد شد حد الامکان این بخش به شکل عملی برای تمام دانشجویان اجرا گردد )
  • دانشجو توانایی ایجاد ساختار درختی و کنترل امنیت در تمام پروسه تولید نرم افزار را خواهد داشت.
  • دانشجو توانایی ایجاد و استفاده از Nuget Package ها را خواهد داشت.
  • یادگیری ساختار های موجود ایجاد Branch در TFVC و توانایی Merge Branch ها و تشخیص اینکه آیا باید از روش جایگزین Feature Toggle به جای Branch استفاده شود یا خیر.
  • یادگیری ساختارهای ایجاد برنچ در Git
  • دانشجو توانایی استفاده از Visual Studio Market Place را کسب می کند.
  • دانشجو معماری و روش کار کردن با ورژن کنترل Git با استفاده از visual studio 2017 update 6 را فرا خواهد گرفت ( توجه کنید آموزش کامل روش استفاده از ورژن کنترل git به علت حجم بالای موارد در دوره ایی جداگانه می باشد.)

 

 

Chapter 1 – ALM/DevOps

What Is Application Lifecycle Management (ALM)

Aspects Of The ALM Process

۴ Ways Of looking At ALM ( SDLC View, The Service Management or Operations View, The Application Portfolio Management View, The Unified View )

۳ Pillars Of Traditional ALM (Traceability, Automation of High-Level Processes, Visibility into the Progress of Development Efforts )

A Brief History of ALM Tools and Concepts ( ALM1, ALM2, ALM2+)

DevOps

Why Are We Doing DevOps?

Assessing Your DevOps Capability


Chapter 2 – Installation & Maintenance ( With Exercise )

TFS Architecture OverView

Installation Consideration ( Basic Requirements, Installation Check List, Accounts & Permissions, Supporting OS )

New Install (Which Wizard to Use)

Upgrades (upgrade paths, BackUps)

Installation Experience

Managing Collections ( What Are They, Setting Up And Managing Team Project Collections )

Managing Team Projects ( OverView, Setting Up Team Projects )


Chapter 3 – Team Foundation Server (TFS) OverView

ALM OverView

TFS OverView (TFS, Process Template, TFS Web Access, Microsoft Office, Integrated Development Environment (IDE) Integration)

Traceability ( Work Items, Configuration Management )

Visibility

Collaboration

Difference Between TFS And Visual Studio Team Services


Chapter 4 – Managing Team Project Collections & Team Projects

Collection Naming Convention

Setting Up and Managing Team Project Collections

Managing Team Projects

Team Projects And Version Control


Chapter 5 – Agile Project Management Using TFS

Intro To Scrum & Agile Concepts ( the Scrum Framework, Empirical Process Control, Complexity in Projects, What Scrum Is, Roles in Scrum, The Scrum Process, Definition of Done, Agile Requirements and Estimation, Kanban, How Agile Maps to ALM)

Traceability ( TFS Work Item Tracking System, Work Items, Work Item Queries, Follow Work Iteam, Drive Git development, work as a stackholder )

Process In TFS ( Agile, Scrum, CMMI, Kanban ) and how choose a process

Workflow States

Planning Your Releases ( Defining The Release Process, Versioning, Release Notes )

Building a Release Plan ( Structuring The Releases, Enabling Scalable Release Planning, Creating a Release Backlog, Managing Dependencies, Creating Team Backlogs, Monitoring Release Process )

Delivery Plans

How Product Managers Must use TFS

How Program Managers Must Use TFS


Chapter 6 – Version Control/Source Control

Introduction To Version Control ( Centralized VC VS Distributed VC )

Team Foundation Version Control ( Workspace, Check-In, Get-Latest, History, Shelveset & Suspending, Check-In Policy )

TFVC Branching & Merging

TFVC Branching Strategies ( Branch by Release, Branch by Feature, … )

Embracing Code Reviews

What is GIT

Using GIT in Visual Studio 2017 update 6 ( Clone, Commit & Push, Fetch, Pull, Branch, Pull Request )

GIT Branching Strategy ( GitFlow, GithubFlow, ReleaseFlow )

What is Pull Request (PR)

Create PR Flow From PBI

Fork in Git

Migrate from TFVC To Git Best Practices

Dependency Management


Chapter 7 – Version Control For Database(Database Delivery Best Practices)

Why DB Version Control?

Database Delivery Best Practices Overview ( State Based Approach, Migration Based Approach )

SQL Server Data Tools (SSDT) OverView

SSDT Architecture

Using SSDT ( Import DB Models )

ReadGate Hybrid Approach & Shift Left (ReadyRoll)

ReadyRoll Architecture

Redgate toolbelt for Database DevOps


Chapter 8 – Test

Agile Testing

Evolving Tests

Test Management ( Microsoft Test Manager-MTM, Test Hub )

Planning The Tests ( Test Plan, Test Suits )

What Is Test Case?

Running Manual Tests

Working With Automated Tests

Analyze Test Results

Tests In Continuous Integration & Continuous Delivery


Chapter 9 – UI Test & Integration Test & Unit Test

OverView

UI Test With Selenium

Page Object Model (POM)

Integration Tests

Unit Tests


Chapter 10 – Nuget Packages

What is Nuget

Why Nuget

Create Nuget Package

Configure Nuget Repositories & Force Them To Visual Studio

NPM Packages

Maven Packages

Gradle Packages


Chapter 11 – PowerShell for Deployment

PowerShell

Cmdlets

Getting Output

PowerShell Pipeline

Error Handling

Functions

PowerShell Drives

Common Scenarios

Working with Websites

PowerShell Desired State Configuration


Chapter 12 – Build Automation

Key Principles ( Keeping CI Builds Fast, Visualizing Build Status, Build Once, Versioning All Artifacts )

Build Types

TFS Build 2018 –Build VNEXT ( Architecture, Build Agents )

Setup Build Agents

Setup Build Server

Setup Artifact Repository

Build Tasks ( MSBuild, Unit Test, Powershell Runner,… )

Builds Options

Continuous Integration ( CI )

Predefined Build Variables

Run & View Build Result

Managing Build Artifacts

Run Unit & Integration tests In Build

Create Artifact for UI Tests and run them In Build

Deployment Groups

Define and use Task Groups

What is Library and how use them

Secure Files


Chapter 13 – Release Automation

TFS Release Management – Release VNEXT

Release Management Architecture

Release Agents

Release Environments & Approvers

Release Options

Continuous Delivery & Continuous Deployment

Run UI Tests In Release


Chapter 14 – Monitor And Learn

Monitor And Learn In DevOps

What Is Application Insight

Enterprise Grade Distributed Online Analytics Platform ( Overview )


Chapter 15 – Security

Planning

Security In TFS Sub Systems ( Collection level, project level, Area Level, Iteration Level, Version Control Level, Build Level, Release Level Team WebAccess)


Chapter 16 – Work Item

Tools For Edit Work Item Templates

How Change Work Item Templates


Chapter 17 – Wiki

Share Your project vision

Create wiki for your project, add & edit wiki pages

Markdown guidance

Create Readme.md for your repo

Publish code to a wiki

Wiki dashboards and work items


Chapter 18 – Visual studio market place

What is VS Market place

How we can use it

 

7 Comments

Add a Comment

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *