Организация процессов разработки – введение в microsoft alm...
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