Entrega Contínua de Software na Prática - ibm.com · DevOps Entrega Contínua ... automatizados...
Transcript of Entrega Contínua de Software na Prática - ibm.com · DevOps Entrega Contínua ... automatizados...
© 2012 IBM Corporation
2º Encontro Rational de Desenvolvimento de Software
Building better software
Entrega Contínua de Software na Prática Felipe Freire – [email protected]
2º Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013 – São Paulo
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
2
Agenda
DevOps
Entrega Contínua
Demonstração
–Cenário de Entrega Contínua com ferramenta IBM
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
Inovação através de software é um diferencial competitivo
3
86%
Acreditam que a entrega de software é crítica ou
muito importante
25%
Lidam com software com eficiência
Mas apenas…
Source: “The Software Edge: How effective software development drives competitive advantage,” IBM Institute of Business Value, March 2013
69%
superam seus
concorrentes
ineficientes
Das eficientes
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
A ausência da entrega contínua impacta o negócio como um todo
Costly, error prone manual processes and
efforts to deliver software across an enterprise
CHALLENGES
Upgrade risk due to managing multiple application configurations and versions
across servers
Slow deployment to development and test
environments leave teams waiting and unproductive
DESAFIOS
Operations/ Production
Development/ Test Customers
Business Owners
Software glitch costs
trading firm Knight
Capital $440 million
in 45 minutes
A bad software upgrade
at RBS Bank left
millions unable to access
money for four days
New Zealand’s biggest phone company,
Telecom paid out $2.7 million to some
47,000 customers who were
overcharged after a software glitch
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
Desafios em adotar DevOps nas empresas
Ambientes heterogêneos
Múltiplas tecnologias, múltiplos fornecedores
Desenvolvimento e implantação em silos
Segregação Dev – Ops
Equipes distribuídas
Modelos de subcontratação (terceirização)
Water-Scrum-fall
5
Heterogeneous Environments
Public Cloud Private Cloud
Data Warehouse Mainframe Enterprise Service
Bus
Directory Identity
File systems
Collaboration
Mobile App
Routing Service
Third-party Services
Portals
Content Providers EJB
Shared Services Archives
Business Partners
Messaging Services
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
Diferenças entres
os ambientes de
DESENV e PROD
causam falhas
Backlog de entregas
que o tipe de Ops
não consegue lidar
Processos manuais
(tribais) que não
são repetítiveis (ou
rápidos)
Falta de feedback e
de métricas de
qualidade leva a
falhas nos objetivos
Daily
Build
Monthly
Delivery
Quem fez
da última
vez?
O Davi…
Mas ele
não está
aqui…
Dev
Prod
Cenários (exemplos) de dificuldades
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
7 7
Ciclo de vida DevOps
Operações / Produção Desenvolvimento e
Testes Clientes Áreas de Negócio
Inovação, Feedback e Melhorias contínuas
Acelerar a entrega de Software
Equilibrar velocidade, custos, qualidade e riscos
Reduz o tempo para feedback do cliente
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
8
Desenvolver e testar em
ambientes similares ao de
produção
Implantações frequentes e
iterativas
Processo de implantação
confiável e repetitivo
Monitoração contínua e
validação de características
operacionais de qualidade
Ciclos de feedback rápidos
Pessoas
Processo
Ferramentas
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
DevOps na prática no Jazz.net
9
https://jazz.net/products/devops/whats-happening#activity
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
Entrega contínua corporativa – Enterprise continuous delivery
INTERMEDIÁRIO
Build no commit
Repositório de
dependências
Configuração segura
INICIAL
Auto-serviço de build
Builds noturnos
Armazenamento dos
artefatos de build
BÁSICO
Scripts de build
Máquina de build
AVANÇADO
Builds ativados por
gatilhos
Cluster de build
EXTREMO
Build a partir de
snapshots de VM
Commits com
verificações (gates)
INTERMEDIÁRIO
Auto-serviço para
Teste e Produção
Processos para
todos ambientes
padronizados
INICIAL
Auto-serviço para
implantar em Teste
Implantações autom.
no 1’ ambiente
Implantações padron.
BÁSICO
Scripts de
implatação
AVANÇADO
Promoção entre
ambientes verificada
por testes
Implantações complexas
banco de dados e
multi-camadas
EXTREMO
Implantações
contínuas
para Produção
INTERMEDIÁRIO
Alguma análise
estática
Testes funcionais
automatizados
norturnos
INICIAL
Os testes mais
importantes executados
em tempo de
construção
BÁSICO
Alguma automação
de Testes
AVANÇADO
Alta cobertura de código
Verificações de
segurança
Testes manuais
baseados em risco
EXTREMO
Implantações
contínuas
para Produção
BU
ILD
IM
PL
AN
TA
ÇÃ
O
TE
ST
ES
http://www.urbancode.com/html/resources/white-papers/Enterprise_Continuous_Delivery_Maturity_Model/
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
Urbancode, an IBM Company
11 Years Build, Release and
Deployment Experience
Global Customers
Enterprise scalability, security,
compliance and automation
Training, consulting and
implementation services
Based in Cleveland, OH
“One key benefit of
UrbanCode is how
quickly it can be
implemented and
used for
deployments.”
11
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
12
Onde estão as mudanças?
App. Config.
App.
Mid. Config.
Mid.
OS Config.
OS
Hardware
ARA: uDeploy
Layers Change Frequency Tools
RAF / Mid-vision
Chef / Puppet
Cloud / SCP / VMWare
Aplicação
(binários, configurações, schemas)
Plataforma
(middleware, banco de dados, serviços comuns)
Infraestrutura
(Sistema operacional, rede, armazenamento,
segurança)
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
13
uDeploy – Automação do Deploy
Implantação de aplicações entre ambientes
Mapas (blueprints) para modelar aplicações complexas
Gerenciamento de configurações por ambientes
Conformidade: auditoria e segurança
Facilidade de uso: designer de processos
Inventário: o que está aonde
Artefatos Versionados
Ambiente de Qualidade
Ambiente de Produção
Ambiente de Desenvolvimento
Artefatos Artefatos Artefatos
Executado em Executado em Executado em
Deploy ou Rollback
Deploy ou Rollback
Deploy ou Rollback
Blueprint de Aplicação
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
uDeploy trabalha em ambientes heterogêneos
Fontes de deploys
– Build servers
– Source control tools
– Maven repositories
Integração IBM
– RTC / ClearCase / Synergy
– WebSphere Application Server
– MQ
– Message Broker
Outras plataformas Java
– WebLogic, Tomcat, Jboss, etc
Gestão de Qualidade e Testes
– QualityCenter
– ServiceNow
Plataforma Microsoft
– IIS
– SharePoint & Biztalk
Infraestrutura
– Clouds Públicas ou Privadas
– Balanceadores de carga
– Bancos de dados
9
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
15
uRelease – Planejando e organizando entregas
uRelease provê:
Planejamento do release
Acompanhamento da execução
Comunição de status
Alocação de ambientes à releases
Associa release complexos ao
desenvolvimento
Simplesmente porque
planilhas são horríveis ou
apenas normais...
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
Automação e Gestão
uDeploy uRelease
Automação do Release de Aplicações
Automatiza a implantação
Desenho visual do processo de implantação
Ações automatizadas através de plugins para servidores de aplicações, servidores web, dispositivos de rede, bancos de dados, etc.
Modelar aplicações, ambientes e alvos de implantações
Gerenciamento de Releases
Reforçar barreiras de qualidade para ambientes
Orquestrar mudanças que impactam várias aplicações
Gerenciar mudanças na infraestrutura em conjunto com as aplicações
Status em tempo real para implantações de longa duração
Acompanhar a alocação de ambientes para releases
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
17
Application Release Management
Cloud Provisioning Application Deployment Automation
Conjunto de soluções para suportar DevOps
Rational Team Concert (CLM) Rational Test Workbench
SmartCloud Control Desk
Rational Build Forge
Jenkins
SmartCloud Continuous Delivery SmartCloud Provisioning SmartCloud Orchestrator
Rational Automation Framework
Chef
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
18
© 2013 IBM Corporation
2o Encontro Rational de Desenvolvimento de Software – 24 de setembro de 2013
19