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

Post on 11-Apr-2017

20 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Microsoft Developers

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

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

Cloud-firstMobile-first

Семейство Visual Studio

Online

Code

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

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

iOS

Visual Studio

Windows AndroidLinux

.NET C++ JavaScriptPHP

Python Node.js R Cordova Unity

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

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

1990s 2000s 2010-…

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

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

DEV OPS

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

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

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

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

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

Задержки

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

?

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

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

й кода

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

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

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

Build and Continuous Integration

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

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

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

Team Foundation Server

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

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

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

разработки

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

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

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

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

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

    

   

   

 

 

    

       

 

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

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

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

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

проектов

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

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

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

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

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

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

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

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

DevOps

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

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

“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!

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

Преимущества 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

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

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

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

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

ы1 Люди

DEV OPS

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

Уровень 100Azure

Chef и Azure

Visual Studio Online (git) + Jenkins (build)

Github + Visual Studio Online + Gradle

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

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

Continuous Integration

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

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

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

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

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

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

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

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

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

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

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

2

Разработка

Продакшен

DevOps4

3

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

DevTest 1

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

проекта

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

Пишем код

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

м

2

Сборка

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

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

Релиз

DevTest

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

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

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

cspkg

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

DEV OPS

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

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

cspkgX

DEV OPS

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

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

среду

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

3

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

Стейджинг

Мониторинг

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

Релизы

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

Continuous Deployment

cspkgcspkgcspkg

DEV OPS

SOURCE DEV

Release Management

STAGE

PRODUCTIONDEV OPS

DEV

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

STAGE

PRODUCTIONOPS

OPSDEV

Мониторинг

4

Мониторинг

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

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

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

мониторинга

Продакшен

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

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

Продакшен

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

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

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

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

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

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

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

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

Что дает Agile?

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

разработки

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

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

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

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

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

    

   

   

 

 

    

       

 

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

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

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

отладка

Beta? RTM?2.5

года!

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

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

Code Repository Build + Deploy Load Testing Release Management

Application Insights and HockeyApp

Visual Studio

AzureEclipse / Xcode

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

Code Repository Build + Deploy Load Testing Release Management

Application Insights and HockeyApp

Visual Studio

AzureEclipse / Xcode

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

Code Repository Build + Deploy Load Testing Release Management

Application Insights and HockeyApp

Visual Studio

AzureEclipse / Xcode

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

Code Repository Build + Deploy Load Testing Release Management

Application Insights and HockeyApp

Visual Studio

AzureEclipse / Xcode

Visual Studio Team Services: Release Management

Code Repository Build + Deploy Load Testing Release Management

Application Insights and HockeyApp

Visual Studio

AzureEclipse / Xcode

Visual Studio Team Services: Application Insights

VISUAL STUDIO TEAM SERVICES

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

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

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

Проект

System Center / Application InsightsVisual

StudioEclipse / XCodeРА

ЗРАБ

ОТЧК

И

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

Scrum в Microsoft

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

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

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

надежности

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

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

Платформа

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

© 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

top related