Weitere ähnliche Inhalte Ähnlich wie DevOps Apresentação Encontro Rational 2013 (20) Mehr von Felipe Freire (10) DevOps Apresentação Encontro Rational 20131. Encontro Rational de Desenvolvimento de Software – 12 de março de 2013 – São Paulo
DevOps
Agilidade além do desenvolvimento, rumo à entrega contínua
Felipe Freire – pfreire@br.ibm.com
Encontro Rational de Desenvolvimento de Software
Building better software
© 2012 IBM Corporation
2. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Agenda
Introdução DevOps
–Desafios
–Princípios e valores
–Enterprise DevOps
SmartCloud Continuous Delivery
–Solução
–Demonstração
2 © 2013 IBM Corporation
3. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Painel: Você conhece e aplica no seu dia-a-dia?
Agile
Scrum / Desenvolvimento Iterativo
Integração contínua
ITIL
Release management
CMDB
Cloud Computing
ALM
Plataforma Jazz
Rational Team Concert
3 © 2013 IBM Corporation
4. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Desafios na entrega
Pessoas
Hoje as necessidades de negócio e também técnicas Processos
estão exigindo mais do que as abordagens
tradicionais de entrega podem suportar Informação
Desenvolvimento
Clientes Negócio (LoB) Operações
e Teste
1º 2º
Gap Gap
Inovação rápida Código e Serviços para o
e contínua Requisitos
Testes Negócio
© 2013 IBM Corporation
5. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Solucionando os GAPs no ciclo de entregas de software
Desenvolvimento
Clientes Negócio (LoB) Operações
e Teste
1º 2º
Gap Gap
Inovação rápida Código e Serviços para o
e contínua Requisitos
Testes Negócio
Endereçado por… Endereçado por…
Dev
Agile Ops
© 2013 IBM Corporation
6. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Desafios de entregar no prazo com qualidade
34% de todos os novos projetos de TI implantam com atraso**
41% 51% 45%
experimenta atrasos das aplicações sofrem experimentam atrasos
na integração, roll-back por para identificação de
configuração ou teste problemas de problemas e ajustes
da aplicação qualidade em produção
Produção
4-6 Desenvolvimento Testes
3-4
Semanas GAP GAP Semanas
tempo médio tempo médio
para entregar para isolar um
uma mudança defeito
simples
1. Dificuldade em atender às requisições de desenvolvimento e testes para
configuração de ambientes – infraestrutura, middleware e aplicações
2. Defeitos em aplicações e problemas de desempenho causam 50% dos rollbacks
6 © 2013 IBM Corporation
7. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
DevOps é…
Um conjunto de princípios e valores
que visam facilitar a colaboração entre
disciplinas para…
Pessoas
1. Possibilitar a rápida evolução da Processos
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
© 2013 IBM Corporation
8. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
DevOps: Casos de Sucesso no Mercado
400 servidores por Pode desabilitar código
administrador sem a necessidade de
roll-back
Roll-outs diários para
subconjuntos dos seus Múltiplas implantações
750 milhões de usuários planejadas por dia
8 © 2013 IBM Corporation
9. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Como eles obtiveram esses resultados?
Automatizaram tudo
Projetam e desenvolvem com esses objetivos
• Por que outras empresas não
conseguem?
• As vezes elas não podem
• Não está no DNA
9 © 2013 IBM Corporation
10. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Adoção de DevOps no meio corporativo
Algumas práticas podem ser adotadas agora
Operations
Development
Team
Team
Run
Line
of Business Agile
Develop Operations
Agile
Development
Build Manage
Analyze Monitor
Test
Development QA Staging Production
Incident
Management
Development and Test server Production Severs
10 © 2013 IBM Corporation
11. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
IBM SmartCloud Continuous Delivery – Valor para o cliente
Reduzir ciclos de 3 semanas para algumas horas
Configurar ambientes de testes 90% mais rápido
98% de melhoria no atingimento de SLAs
© 2013 IBM Corporation
12. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Como Boas Equipes entregam Bons Softwares
Código modular
Gerenciamento de configuração e mudanças
Test-driven development
Integração Contínua
Refactoring
12 © 2013 IBM Corporation
13. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
E depois que o software é construído?
Normalmente
nós não nos
importamos!
13 © 2013 IBM Corporation
14. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
E depois que o software é construído?
Instruções de Instalação
Red Hat Linux
Nanana na nana na nanana. Na
nanana na nana. Nana nanana
nananan na nana na nana
nanana na na nanana.
Apache Web Server
Nanana na nana na nanana. Na
nanana na nana. Nana nanana
nananan na nana na nana
nanana na na nanana.
14 © 2013 IBM Corporation
15. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
O que limita a agilidade no ambiente de TI?
HARDWARE
não é
maleável
como
SOFTWARE
15 © 2013 IBM Corporation
16. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
E depois que o software é construído?
deploy.rb
Instruções de Instalação
cookbook_file "/home/jazz/.jrubyrc" do
# handle segfaults that occur when using JRuby w/ the IBM JDK
Red Hat Linux
# see: http://jira.codehaus.org/browse/JRUBY-5700
source "jrubyrc"
CLOUD
mode "0644"
Nanana na nana na nanana. Na
end
nanana na nana. Nana nanana
env_options nananan na nana na nana
= {
nanana na na nanana.
# ensure that build scripts can easily access Java and Jruby from the normal
path
'ANT_HOME' => node[:ant][:ant_home],
Apache Web Server
'JAVA_HOME' => node[:java][:java_path],
'PATH' =>
"#{node[:java][:java_path]}/bin:#{node[:jruby][:install_dir]}/jruby/bin:#{ENV[
"PATH"]}"
Nanana na nana na nanana. Na
}
nanana na nana. Nana nanana
# install external gem libs na nana na nana
nananan
%w{cucumber nanana na na net-scp httpclient jruby-openssl json-
httpclient rake net-ssh nanana.
jruby rubyzip}.each do |gem_name|
execute "install_#{gem_name}" do
action :run
command "#{node[:jruby][:install_dir]}/jruby/bin/jgem install #{gem_name}"
environment(env_options)
end
16 © 2013 IBM Corporation
17. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
DevOps: Princípios e Valores
Colaboração entre disciplinas
Desenvolver e testar em um ambiente
Pessoas
próximo ao de produção
Processos
Implantar frequentemente usando
Informação
processos repetitíveis e confiáveis
Monitorar continuamente e validar
características operacionais de
qualidade
17
© 2013 IBM Corporation
18. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
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)
Infrastructure
@build_system_gateway = BuildSystemGateway.new(
.java
rtc_build_system_provider, LOG_FILE, LOG_LEVEL)
end 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
.sh
#{template_file}" 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|
}
end
Source Control
file.puts new_text
# ... Management
18
© 2013 IBM Corporation
19. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
A esteira de entregas
Build,
Empacota,
Testes
unitários
.jsp .html Binários
Configuração Implantar
.java da plataforma
.sh chef
recipes
Ambiente de execução
Artefatos entregáveis do sistema
Artefatos fontes
Repositório de Biblioteca
Controle de fontes
19
© 2013 IBM Corporation
20. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
20 © 2013 IBM Corporation
21. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Cenário da demonstração Put configuration version
Rational Automation
Framework
Apply
Load changes and build configurations
to system
Publish
packages
Post results to build Rational Asset
Op Engineer Jazz Build Engine(s) Manager
(Deployables Library)
Rational Team Concert Trigger build Get packages
(server) Execute
Notify
tests
results
Store
changes Provision
pattern with
build Virtual System
Rational Team Concert
(Client)
Developer Provision system
from pattern with
build
Cloud Provisioning
System
© 2013 IBM Corporation
22. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
SmartCloud Continuous Delivery
INTRODUZINDO A ENTREGA
CONTÍNUA
22
© 2013 IBM Corporation
23. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
IBM SmartCloud Continuous Delivery
https://jazz.net/products/smartcloud-continuous-delivery/
23
© 2013 IBM Corporation
24. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
SmartCloud Continuous Delivery packaging
Extending Agile Development with Continuous Delivery
Build -> Publish -> Deploy -> Test
Rational Team Concert
IBM SmartCloud Provisioning
Agile Deployment to
Development Virtual Systems
24
© 2013 IBM Corporation
25. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Generate automation
Continuous Delivery Deployment
Design
Pull configurations
OSLC
Continuous Configuration
Automation
Integration
OSLC
OSLC
Trigger Update
Delivery configuration
s Trigger
Pull deployment Deploy
changes Delivery Provisioning service
Pipeline Automation
Change Collaborative Lifecycle
OSLC OSLC
Management Start stubs
Management
OSLC Configure
endpoints Service
Trigger Simulation & Cloud
Track
work tests Testing
Track
work OSLC
Track Configure Monitor
quality agents application
Requirement Quality Application
Management Management Monitoring
OSLC OSLC OSLC
Track
Link defect incident
Incident
Management
OSLC © 2013 IBM Corporation
26. 26
Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Sucessos em clientes IBM
Planos de instalação de 80 páginas
35% 95% 50%
Crescimento da Redução no tempo 12 equipes de
demanda em 35% foi de testes de desenvolvimento, múltipl
suportado pela mesma aceitação de 2 as entregas semanais
equipe semanas para 3
Padronizou e
horas, acelerando a
Reduziu o tempo para automatizou o processo
entrega com maior
início de um projeto de 3 de build e entrega
qualidade
meses para 4 semanas
Redução de 50% no
Preparação do
Tempo de implantação: tempo de build/entrega
ambiente de testes:
3 dias 15 minutos
2 dias 1 hora
12 © 2013 IBM Corporation
27. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Sumário
É o momento para DevOps
Sucesso no DevOps requer
Mudança Cultural
Padronização dos processos
Tecnologias para automação
A Cloud é um catalizador para projetos DevOps (e
vice versa)
DevOps possibilita inovar enquanto se reduz o
suporte a aplicações existentes
27 © 2013 IBM Corporation
28. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Mais informações sobre DevOps
Visão geral de DevOps
– http://youtu.be/Lws9aMzRJ_g
Demonstração do IBM SmartCloud Contiunous Delivery
– http://youtu.be/8oLj3lGFRpc
DevOps distilled: A new look at DevOps
– http://ibm.co/WHHeKa
Sobre o Produto (versão Trial, feedback, etc)
– https://jazz.net/products/smartcloud-continuous-delivery/
Sobre DevOps e Desenvolvimento de Software no Brasil Blog Rational
Brasil
– https://www.ibm.com/developerworks/mydeveloperworks/blogs/rationalbrasil/
28 © 2013 IBM Corporation
29. Encontro Rational de Desenvolvimento de Software – 12 de Março de 2013
Felipe Freire – pfreire@br.ibm.com
29 © 2013 IBM Corporation
Hinweis der Redaktion * - Forrestor Study on DevOps, 2011** - From a commissioned study conducted by Forrester Consulting on behalf of IBM*** - Need a study Q: What do we see in industry today?A: 41% of organizations experience delays in application installs, 51% of apps rolled back due to production defect, 45% experience delays due to troubleshooting/fine tuning in production. Cycle time – 4-6 weeks to deploy code changes Citar o caso da Serasa no mainframe que implantou realease management limitando o número de entregas para 1 ao mês e depois de alguns meses buscou aumentar essa quantidade (devido à melhor organização da equipe, automação, et) Green == Existing capabilitiesOrange == New capabilitiesDashed border and Italics == No OSLC provider specification but is aspirational