Организация процессов разработки – введение в microsoft alm...

60
Microsof t Developers

Upload: microsoft

Post on 11-Apr-2017

20 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Организация процессов разработки – введение в Microsoft alm final

Microsoft Developers

Page 2: Организация процессов разработки – введение в Microsoft alm final

Александр Белоцерковский,Эксперт по стратегическим технологиям, Microsoft Россия

Организация процессов разработки – введение в Microsoft ALM & DevOps

Page 3: Организация процессов разработки – введение в Microsoft alm final

Cloud-firstMobile-first

Page 4: Организация процессов разработки – введение в Microsoft alm final

Семейство Visual Studio

Online

Code

IDE Редактор кода Сервисы для разработчика

На любой платформе

Page 5: Организация процессов разработки – введение в Microsoft alm final

iOS

Visual Studio

Windows AndroidLinux

.NET C++ JavaScriptPHP

Python Node.js R Cordova Unity

Page 6: Организация процессов разработки – введение в Microsoft alm final

Мир меняетсяи вместе с ним меняется Visual Studio

Клиент СервисыКлиент/сервер

1990s 2000s 2010-…

Page 7: Организация процессов разработки – введение в Microsoft alm final

Что будет сегодняMicrosoft ALM & DevOpsПроцессы разработки Тестирование и мониторинг

Page 8: Организация процессов разработки – введение в Microsoft alm final

Традиционная разработка и операции

DEV OPS

Page 9: Организация процессов разработки – введение в Microsoft alm final

Реальный мир сложенБизнес не стоит на месте

Жесткие конкуренты

Time-to-market – ключ к успеху

Page 10: Организация процессов разработки – введение в Microsoft alm final

Проблемы с доставкой ПО

Неэффективный процесс

Задержки

Мало понимания

?

Page 11: Организация процессов разработки – введение в Microsoft alm final

Outperformingteams are collaborate

extensively

with theircounterparts

54%morelikely to

Developers

26.7%No executive support

56.7%Cultural inhibitors

43.3%Fragmented processes

Collaboration blockers

DevOps was being initiated bymore development teams than IT Opsteams by about a 40% to 33% margin

Agile methodologieshave adopted

3/4 of teams

BusinessIT Ops

The average hourly cost of infrastructure failure is $100,000 per hour

It takes on average 200 minutes to

diagnose and repair a production

issue

A bug caught in production ends up costingthan if the same bug was found earlier in the development cycle

100x more

IT decisionmakers is stillunfamiliar withthe term DevOps

6 1 in

40% … of implementations end up getting reworked because they don’t meet the users’ original requirements

… of development budgets for software, IT staff and external professional services will be consumed by poor requirements

41%

ПоследствияIT drives businesssuccess!

High IT performance correlates with strong business performance,helps boost productivity,market share and profit.

Responding toongoing needs for

efficiency and growthAlways keeping allsystems safe and securedual goals

… for companies that try to adapt their existing tools for DevOps practices

80%failure rate …

CIOs70%

to reduceIT costs

Wouldincrease

riskand acceleratebusiness agility

of

Page 12: Организация процессов разработки – введение в Microsoft alm final

Git и tfvcРепозитори

й кода

Управление тестировани

ем и качеством

Сбор отзывов и инцидентов

Build and Continuous Integration

Гибкие и формальные

процессы раз-ки

Управление средами и релизами

Team Foundation Server

ALM как идеология

Page 13: Организация процессов разработки – введение в Microsoft alm final

Зачем смотреть в сторону ALM

Сокращение времени

разработки

Оптимизация ресурсов

Улучшение качества и

доступностиСбор и анализ телеметрии

Использование инструментов для развертывания и управления

Отслеживание релиза с помощью инструментов коллаборации и автоматизации

    

   

   

 

 

    

       

 

Page 14: Организация процессов разработки – введение в Microsoft alm final

Многогранность Microsoft ALM

• Разработчики • Кодирование и отладка

• Бизнес-пользователи

• Аналитики• Архитекторы• Менеджеры

проектов

• Сбор и анализ требований• Вовлечение пользователей в приемку

результатов• Проектирование решения (в т.ч. UML)• Управление

ресурсами/сроками/задачами (интеграция с Project Server)

• Тестировщики (QA)

• Администраторы

• Руководство

• Тестирование (ручное, автоматическое, нагрузочное)

• Мониторинг ПО (в т.ч. и в production)• Отчетность, KPI

Page 15: Организация процессов разработки – введение в Microsoft alm final

DevOps

Page 16: Организация процессов разработки – введение в Microsoft alm final

3 главных изменения в разработке за

последние 10 лет?

Page 17: Организация процессов разработки – введение в Microsoft alm final

“DevOps is development

and operations collaboration”

“DevOps is treating your infrastructure as code”

“DevOps is using automation”

“Kanban

for Ops?”

“DevOps

is feature switches”

“DevOps is small deployments”

It’s DevOps!

It’s DevOps!

It’s DevOps!It’s DevOps!

Page 18: Организация процессов разработки – введение в Microsoft alm final

Популярные мифы• DevOps – только для разработчиков• IT Pro нужно учиться программировать• DevOps – только для облака• Только для маленьких проектов

Page 19: Организация процессов разработки – введение в Microsoft alm final

Преимущества DevOps

Source: https://puppetlabs.com/

Deploy code 30x faster

and with 200xshorter lead time as compared to their lower-performing peers

DevOps Practices improve IT

performance

Strong IT Performance is

a competitive advantage

Firms with high-performing IT organizations were 2x as

likely to exceed their profitability,

market share, and productivity goals

Have 60x fewer failuresand recover from failure 168x faster as compared to their lower-performing peers

Page 20: Организация процессов разработки – введение в Microsoft alm final

Принципы DevOps• Делай _______________ постоянно

(continuously).• Планируй• Разрабатывай и тестируй• Интегрируй и доставляй• Релизь и разворачивай• Мониторь и оптимизируй• Развивайся

Page 21: Организация процессов разработки – введение в Microsoft alm final

DevOps: три стадии готовности

2 Процессы 3 Продукт

ы1 Люди

DEV OPS

Page 22: Организация процессов разработки – введение в Microsoft alm final

Уровень 300Уровень 200

Уровень 100Azure

Chef и Azure

Visual Studio Online (git) + Jenkins (build)

Github + Visual Studio Online + Gradle

Люди, процессы

Инфраструктура как код

Continuous Integration

Page 23: Организация процессов разработки – введение в Microsoft alm final

Практики DevOps• Инфраструктура как код• Continuous Integration• Автоматизированное тестирование• Continuous Deployment• Релиз-менеджмент• Мониторинг производительности• Нагрузочное тестирование http://www.itproguy.com/devops-practices/

Page 24: Организация процессов разработки – введение в Microsoft alm final

Develop Build

Test

Deploy Environments Monitor and Learn

Processes

ALM + DevOps от Microsoft

Team Foundation Server

Team Foundation Server

Release Management for Visual Studio

Team Foundation ServerMicrosoft Test ManagerMicrosoft Monitoring Agent

PowerShell

xPlat CLI

MAML

Azure Resource Management

Release Management for Visual Studio

Automation Service

Visual Studio Online Application Insights

Release Management for Visual StudioTeam Foundation

Server

Developer Workstations

Dev/Test

Production / Stage

Source

ONE CONSISTENT PLATFORMON-

PREMISESSERVICE

PROVIDER

MICROSOFT AZURE

Page 25: Организация процессов разработки – введение в Microsoft alm final

Repository Build

Test Deploy App

Ops

В облаке

PowerShell DSC

Microsoft Monitoring Agent

Puppet Labs

Learn

IIS VM SQL VM

IaaS

PaaS – Website

PaaS – Cloud Service

Visual Studio Online Application Insights

Visual Studio Online Application Insights

Azure Resource Groups

Page 26: Организация процессов разработки – введение в Microsoft alm final

Process tools

Repository Build

Test Deploy App

Ops

Локально

Team Foundation Version Control

Team Foundation Server

Private Cloud

Power Shell DSC

Microsoft Test ManagerTeam Foundation ServerMicrosoft Monitoring Agent

Release Management for Visual Studio

Learn

System CenterOperations Manager

System CenterVirtual Machine Manager

Page 27: Организация процессов разработки – введение в Microsoft alm final

Source Build

Test/issues Deploy App

Ops

Process tools

С Open SourceGitHubCodeplex

Selenium

GradleGrunt

HudsonJenkins

Configuration

Gradle

Chef

Grunt

Hudson

Travis

Jenkins

Puppet Labs

Vagrant

Fog

Alerting

Monitor

CactiZabbix

Redmine JIRA

Public Cloud

On-premises

Microsoft Azure

Linux

Puppet Labs Eclipse

VisualStudio

Page 28: Организация процессов разработки – введение в Microsoft alm final

DevOps Это развертывания, состоящие из различных инструментов разных вендоров

Помощь в постоянной доставке ПО

Большая развивающаяся экосистема

Page 29: Организация процессов разработки – введение в Microsoft alm final

Как придти к ALM и DevOps?

Page 30: Организация процессов разработки – введение в Microsoft alm final

Планирование1 Мониторинг

РелизРазработка и тестирование

2

Разработка

Продакшен

DevOps4

3

Page 31: Организация процессов разработки – введение в Microsoft alm final

Управление работой

DevTest 1

ПланированиеСтарт

проекта

ПланированиеОтслеживание прогресса

Page 32: Организация процессов разработки – введение в Microsoft alm final

Пишем код

Юнит-тестируе

м

2

Сборка

Контроль версий

Верификация сборок

Релиз

DevTest

Page 33: Организация процессов разработки – введение в Microsoft alm final

Исходники Сборка

Continuous IntegrationВыгода• Ускорение доставки• Автоматизация• Оптимизация

Сокращение• MTTR• MTTD

cspkg

Тестирование

DEV OPS

Page 34: Организация процессов разработки – введение в Microsoft alm final

Тестирование

Автоматизированное тестирование

cspkgX

DEV OPS

Page 35: Организация процессов разработки – введение в Microsoft alm final

Нагрузка из облака

Тестирование интеграции в

среду

Автоматическое тестирование

3

Препродакшен

Стейджинг

Мониторинг

После прохождения тестов сборка деплоится на тестовую среду на каждой стадии до релиза

Релизы

Page 36: Организация процессов разработки – введение в Microsoft alm final

Исходники и сборки Q&A

Continuous Deployment

cspkgcspkgcspkg

DEV OPS

Page 37: Организация процессов разработки – введение в Microsoft alm final

SOURCE DEV

Release Management

STAGE

PRODUCTIONDEV OPS

Page 38: Организация процессов разработки – введение в Microsoft alm final

DEV

Инфраструктура как код

STAGE

PRODUCTIONOPS

OPSDEV

Page 39: Организация процессов разработки – введение в Microsoft alm final

Мониторинг

4

Мониторинг

Обратная связь

Планирование итерации

Page 40: Организация процессов разработки – введение в Microsoft alm final

Мониторинг доступностиСервис

мониторинга

Продакшен

Page 41: Организация процессов разработки – введение в Microsoft alm final

Мониторинг производительности

Сервис мониторинга

Продакшен

Page 42: Организация процессов разработки – введение в Microsoft alm final

Резюме Можно обойтись и без ALM и DevOps Но ALM и DevOps дает хорошие

преимущества Microsoft предоставляет полный стек

ALM сервисов и продуктов в облаке и локально

Page 43: Организация процессов разработки – введение в Microsoft alm final

Процессы разработки

Page 44: Организация процессов разработки – введение в Microsoft alm final

Agile vs. WaterfallВодопад Agile

Page 45: Организация процессов разработки – введение в Microsoft alm final

Что такое Agile?Правила для управления командами и проектамиAgile – об измененияхБольше о людяхПостоянная обратная связьИтерации, частые релизы, выделенные циклы

Page 46: Организация процессов разработки – введение в Microsoft alm final

Правила AgileУдовлетворение клиентовПостоянные изменения приветствуютсяЧастые релизыБизнес + разработчики работают вместеСамоорганизация

Манифест http://www.agilemanifesto.org

Page 47: Организация процессов разработки – введение в Microsoft alm final

Что дает Agile?

Сокращение времени

разработки

Оптимизация ресурсов

Улучшение качества

Работа бизнеса и разработчиков, постоянный сбор обратной связи, фокус на качестве

Меньше логистики, больше взаимодействия, общения,

Timeboxing, параллельная разработка, частые релизы, быстрое исправление ошибок

    

   

   

 

 

    

       

 

Page 48: Организация процессов разработки – введение в Microsoft alm final

И как привыкли:Сбор обратной связи перед каждым milestoneЧаще всего ответ был «извините» – и обратная связь откладывалась до следующего релизаНам не хватало реального канала общения с пользователямБыла проблема “silos”

Как мы делали это раньше в Microsoft

Планирование Разработка Тестирование и отладка Разработка Тестирование и

отладка

Beta? RTM?2.5

года!

Page 49: Организация процессов разработки – введение в Microsoft alm final

Visual Studio Team ServicesBuild>Deploy>Test сколько нужно раз в деньПереход в гибридную либо облачную средуСтейджинг, телеметрия и контроль

Как Microsoft делает это сейчас

Page 50: Организация процессов разработки – введение в Microsoft alm final

Code Repository Build + Deploy Load Testing Release Management

Application Insights and HockeyApp

Visual Studio

AzureEclipse / Xcode

Visual Studio Team Services: репозиторий кода

Page 51: Организация процессов разработки – введение в Microsoft alm final

Code Repository Build + Deploy Load Testing Release Management

Application Insights and HockeyApp

Visual Studio

AzureEclipse / Xcode

Visual Studio Team Services: сборка и развертывания

Page 52: Организация процессов разработки – введение в Microsoft alm final

Code Repository Build + Deploy Load Testing Release Management

Application Insights and HockeyApp

Visual Studio

AzureEclipse / Xcode

Visual Studio Team Services: нагрузочное тестирование

Page 53: Организация процессов разработки – введение в Microsoft alm final

Code Repository Build + Deploy Load Testing Release Management

Application Insights and HockeyApp

Visual Studio

AzureEclipse / Xcode

Visual Studio Team Services: Release Management

Page 54: Организация процессов разработки – введение в Microsoft alm final

Code Repository Build + Deploy Load Testing Release Management

Application Insights and HockeyApp

Visual Studio

AzureEclipse / Xcode

Visual Studio Team Services: Application Insights

Page 55: Организация процессов разработки – введение в Microsoft alm final

VISUAL STUDIO TEAM SERVICES

2) Репозиторий 3) Сборка 4) Тестирование 5) Развертывание в Azure

1) Коммит кода

6) Мониторинг

Проект

System Center / Application InsightsVisual

StudioEclipse / XCodeРА

ЗРАБ

ОТЧК

И

Page 56: Организация процессов разработки – введение в Microsoft alm final

• Пять лет назад• Сейчас – 80… спринт• Каждый спринт жестко 3 недели

Scrum в Microsoft

Page 57: Организация процессов разработки – введение в Microsoft alm final

• Многолетние циклы→ cloud cadence• Box → live site/DevOps• Локальный TFS → Visual Studio Team

Services• Dev и QA → инженер• Больше функциональных тестов →

больше юнит• Принятие ошибок в тестировании→ 100%

надежности

Разработка в Microsoft

Page 58: Организация процессов разработки – введение в Microsoft alm final

Project Server

Microsoft System Center

Microsoft Azure

SharePoint

Source controlAgile planning

Test case managementBuild automation

Continuous deploymentRelease

managementLoad testing

Lab management

Feedback managementTeam collaborationApplication

telemetry

Платформа

Page 59: Организация процессов разработки – введение в Microsoft alm final

РесурсыПолезные ссылкиhttp://mva.ms https://msdn.microsoft.com/en-us/library/dn798712.aspx - об использовании SAFehttp://scaledagileframework.comhttps://www.visualstudio.com

Page 60: Организация процессов разработки – введение в Microsoft alm final

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Начните сейчас:Visual Studio Team Serviceshttp://www.visualstudio.com

Портал Application Lifecycle Managementhttp://www.MicrosoftALM.ru