Walter Farias – [email protected]
IBM Client Technical Professional
DevOps
Entrega contínua de inovação orientada à software
© 2013 IBM Corporation
Accelerating Product and Service Innovation | Rational
O que é DEVOPS?
“DevOps é uma metodologia de
desenvolvimento de software que explora a
comunicação, colaboração e integração entre
desenvolvedores de software e profissionais de
TI.”
O termo “DEVOPS" foi popularizado através de uma série de eventos intitulados
"DevOps Days", começando em 2009 na Bélgica. Desde então, ocorreram
conferências "DevOps Days" na Índia, EUA, Brasil, Austrália, Alemanha e Suécia.
© 2013 IBM Corporation
Desafios na entrega
Pessoas
Hoje as necessidades de negócio e também técnicas estão exigindo
mais do que as abordagens tradicionais de entrega podem suportar.
Processos
Informação
Clientes
Desenvolvimento e
Teste
Negócio (LoB)
1º
Gap
Inovação rápida e
contínua
Requisitos
Operações
2º
Gap
Código e
Testes
Serviços para o
Negócio
© 2012 IBM Corporation
Solucionando os GAPs no ciclo de entregas de software
Clientes
Desenvolvimento e
Teste
Negócio (LoB)
1º
Gap
Inovação rápida e
contínua
Operações
2º
Gap
Código e
Testes
Requisitos
Endereçado por…
Agile
Serviços para o
Negócio
Endereçado por…
Dev
Ops
© 2012 IBM Corporation
O Problema
 Comunicação
 Caça ao Culpado
 Pouca Colaboração




Várias tarefas manuais
Retrabalho
Diferentes Processos
Diferentes Ferramentas
 Não existe visão integrada do
atendimento da demanda
Desenvolvimento
Operações
© 2012 IBM Corporation
O Problema
DESENV
OPERAÇÕES
X
© 2012 IBM Corporation
DevOps é…
Um conjunto de princípios e valores
que visam facilitar a colaboração entre
disciplinas para…
Pessoas
Processos
1.Possibilitar a rápida evolução da
implantação de serviços para o negócio
Informação
2.Reduzir riscos e custos e aumentar a
qualidade em todo o portfólio
7
© 2012 IBM Corporation
DevOps: Princípios e Valores




Colaboração entre disciplinas
Desenvolver e testar em um ambiente
próximo ao de produção
Pessoas
Processos
Informação
Implantar frequentemente usando
processos repetitiveis e confiáveis
Monitorar continuamente e validar
características operacionais de qualidade
8
© 2012 IBM Corporation
Capacidades DevOps
Desenvolvimento
Colaborativo
Release Contínua
Testes Contínuo
Quality
Management
Build
Automation
Application
Release
Automation
Change
Management
Source Control
Management
Test
Automation
Environment
Provisioning
Service
Virtualization
Monitoração Contínua
Delivery Pipeline
Application Performance Monitoring
Continuous Delivery
Open Lifecycles Integration Platform
© 2012 IBM Corporation
Alavancando uma infraestrutura programável
Infrastructure
as Code
10
© 2012 IBM Corporation
Alavancando uma infraestrutura programável
#!/usr/bin/env ruby
class DevopsDeployer
def initialize(build_url, build_id)
@log = Logger.new(LOG_FILE)
@log.level = LOG_LEVEL
@iaas_gateway = IaasGateway.new(HsltProvider.new(),
LOG_FILE, LOG_LEVEL)
@server_instance = nil
.jsp
.html
rtc_build_system_provider = RtcBuildSystemProvider.new(
RTC_REPOSITORY_URL, RTC_USER_ID, RTC_PASSWORD_FILE)
@build = rtc_build_system_provider.resolve_build(
build_url, ENV['buildResultUUID'], build_id)
@build_system_gateway = BuildSystemGateway.new(
rtc_build_system_provider, LOG_FILE, LOG_LEVEL)
end
.java
Infrastructure
as Code
def add_build_stamp
template_file = WEB_APP_ROOT +
"/app/templates/pages/page.html"
@log.info "Adding build ID stamp #{@build.id} to \
#{template_file}"
.sh
chef recipes
# Read in the file's contents as a string, replace
# the build_id, then overwrite the original contents
# of the file
text = File.read(template_file)
new_text = text.gsub(/\{\{ build_id \}\}/,
Source Artifacts
"<a href=\"#{@build.uri}\">#{@build.id}</a>")
File.open(template_file, "w") { |file|
file.puts new_text
}
end
# ...
Source Control
Management
Infraestrutura como Código
11
© 2012 IBM Corporation
A esteira de entregas
.jsp
.html
Configuração
da plataforma
.java
.sh
Build,
Empacota,
Testes
unitários
Binários
Implantar
chef
recipes
Artefatos entregáveis
Ambiente de execução
do sistema
Artefatos fontes
Repositório de
Controle de fontes
Biblioteca
12
© 2012 IBM Corporation
IBM DEVOPS
DevOps - Capacidade de entrega contínua de software.
Permite que as organizações aproveitem melhor as oportunidades de mercado,
respondendo mais rapidamente ao feedback dos clientes, e balanceando velocidade,
custo, qualidade e risco.
Ciclo
DevOps
de VidaLifecycle
de DevOps
Customers
Clientes
Business
Linha de Negócio
Owners
Development/Test
Desenv/Teste
Operations/Production
Operações/Produção
Plan and Measure
Develop and Test
Release and Deploy
Monitor and Optimize
Continuous
Inovação,
Innovation,
FeedbackFeedback
e Melhorias
andContínuas
Improvements
Ao aplicar os princípios lean e ágeis em todo o ciclo de vida da entrega de
software, DevOps ajuda as organizações a ter uma relação diferenciada com seus
clientes, entregando funcionalidades mais rápido para o mercado e ganhando uma
incrível capacidade de inovar.
© 2012 IBM Corporation
Entrega de Software está no centro das tendências tecnológicas de ponta
Compreensão de novos
produtos através de
interpretação mais
eficiente de quantidades
massivas de dados.
Grande conjunto de
interessados
(stakeholders) colaboram
para entregar inovação e
valor contínuos.
Força de trabalho
moderna espera por
constante atualização de
software para se conectar
com sistemas de
empresas.
Demanda por aplicações
requer ambientes
escaláveis e mais rápidos
para desenv e teste, assim
como para produção.
Requisitos de Indústrias
demandam por respostas
à regulações e padrões,
com rastreabilidade e
qualidade.
Componente de software
em produtos mais
inteligentes conduzindo a
aumento de valor e de
diferenciação.
© 2012 IBM Corporation
OSLC – Open Services Lifecycle Collaboration
open-services.net
Open Services
for Lifecycle
Collaboration
Open interfaces.
Uma iniciativa da indústria para
facilitar a integração de ferramentas
de entrega de software.
Open possibilities.
© 2012 IBM Corporation
Futuro : Entregas Contínuas
Generate automation
Deployment
Design
Pull configurations
OSLC
Configuration
Automation
Continuous
Integration
OSLC
OSLC
Update
configurations
Trigger
Delivery
Trigger
deployment
Pull
changes
Delivery
Pipeline
Provisioning
Automation
OSLC
Change
Management
OSLC
OSLC
Collaborative Lifecycle
Configure
Management
endpoints
Trigger
tests
Track
work
Track
work
Deploy
service
Start stubs
Service
Simulation &
Testing
Infra
OSLC
Requirement
Management
Track
quality
Configure
agents
Quality
Management
OSLC
Application
Monitoring
OSLC
Monitor
application
OSLC
Track
incident
Link defect
Incident
Management
OSLC
© 2012 IBM Corporation
Formas de implementar DevOps em Cloud
Cloud :
• JazzHub
• CLM AAMS
• RD&T AAMS
17
Bluemix:
• DevOps Services
© 2012 IBM Corporation
Walter Farias
[email protected]
© 2012 IBM Corporation
Referências
Problema:
• Comunicação entre Desenvolvimento e
Operações
• Várias ferramentas para o time (3
ferramentas)
• Baixa produtividade
•Copy/Paste de dados de
ferramenta para ferramenta
Benefícios:
• Ferramenta simples e compartilhada entre
Desenvolvimento e Operações
• Melhora da colaboração entre os times
• Melhora da produtividade (Sem Copy/Paste)
• Melhora das métricas
19
Problema:
• Integrar as atividades de Build e Deploy com o ciclo
de desenvolvimento
• Rastreabilidade entre as atividades de Build e Deploy
com correção de defeitos e execução de testes.
• Definir os processos: Integração Contínua, Entrega
Contínua e Liberação Contínua
• Melhorar colaboração entre os times de
desenvolvimento e operações
• Unificar ferramentas de desenvolvimento
Benefícios:
• Padronização
• Melhoria da Produtividade
• Integração e Rastreabilidade com o ciclo da aplicação
• Quebra das barreiras
• Antecipação de erros
• Rastreabilidade entre: Build, Deploy, Defeitos, Teste e
Requisitos.
© 2012 IBM Corporation
Download

Accelerate Product and Service Innovation