2º Encontro Rational de Desenvolvimento de Software 24 de setembro de 2013 São Paulo Entrega Contínua de Software na Prática Felipe Freire pfreire@br.ibm.com 2º Encontro Rational de Desenvolvimento de Software Building better software 2012 IBM Corporation
Agenda DevOps Entrega Contínua Demonstração Cenário de Entrega Contínua com ferramenta IBM 2
Inovação através de software é um diferencial competitivo 86 % Acreditam que a entrega de software é crítica ou muito importante Mas apenas 25 % Lidam com software com eficiência Das eficientes 69 % superam seus concorrentes ineficientes 3 Source: The Software Edge: How effective software development drives competitive advantage, IBM Institute of Business Value, March 2013
A ausência da entrega contínua impacta o negócio como um todo DESAFIOS CHALLENGES Costly, error prone manual processes and efforts to deliver software across an enterprise Slow deployment to development and test environments leave teams waiting and unproductive Upgrade risk due to managing multiple application configurations and versions across servers Customers Business Owners Development/ Test Operations/ Production Software glitch costs trading firm Knight Capital $440 million in 45 minutes New Zealand s biggest phone company, Telecom paid out $2.7 million to some 47,000 customers who were overcharged after a software glitch A bad software upgrade at RBS Bank left millions unable to access money for four days
Desafios em adotar DevOps nas empresas Ambientes heterogêneos Múltiplas tecnologias, múltiplos fornecedores Mobile App Desenvolvimento e implantação em silos Segregação Dev Ops Public Cloud Private Cloud Equipes distribuídas Routing Service Collaboration Content Providers EJB Business Partners Modelos de subcontratação (terceirização) Third-party Services Portals Archives Shared Services Water-Scrum-fall File systems Messaging Services Directory Identity Data Warehouse Mainframe Enterprise Service Bus Heterogeneous Environments 5
Cenários (exemplos) de dificuldades 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 Dev Daily Build Quem fez da última vez? O Davi Prod Monthly Delivery Mas ele não está aqui
Clientes Ciclo de vida DevOps Áreas de Negócio Desenvolvimento e Testes Operações / Produção 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 7
Desenvolver e testar em ambientes similares ao de produção Monitoração contínua e validação de características operacionais de qualidade Implantações frequentes e iterativas Pessoas Processo Ferramentas Processo de implantação confiável e repetitivo Ciclos de feedback rápidos 8
DevOps na prática no Jazz.net https://jazz.net/products/devops/whats-happening#activity 9
TESTES IMPLANTAÇÃO BUILD 2 o Encontro Rational de Desenvolvimento de Software 24 de setembro de 2013 Entrega contínua corporativa Enterprise continuous delivery BÁSICO INICIAL INTERMEDIÁRIO AVANÇADO EXTREMO Scripts de build Máquina de build Auto-serviço de build Builds noturnos Armazenamento dos artefatos de build Build no commit Repositório de dependências Configuração segura Builds ativados por gatilhos Cluster de build Build a partir de snapshots de VM Commits com verificações (gates) BÁSICO INICIAL INTERMEDIÁRIO AVANÇADO EXTREMO Scripts de implatação Auto-serviço para implantar em Teste Implantações autom. no 1 ambiente Implantações padron. Auto-serviço para Teste e Produção Processos para todos ambientes padronizados Promoção entre ambientes verificada por testes Implantações complexas banco de dados e multi-camadas Implantações contínuas para Produção BÁSICO INICIAL INTERMEDIÁRIO AVANÇADO EXTREMO Alguma automação de Testes Os testes mais importantes executados em tempo de construção Alguma análise estática Testes funcionais automatizados norturnos Alta cobertura de código Verificações de segurança Testes manuais baseados em risco Implantações contínuas para Produção http://www.urbancode.com/html/resources/white-papers/enterprise_continuous_delivery_maturity_model/
Urbancode, an IBM Company 11 Years Build, Release and Deployment Experience Global Customers Enterprise scalability, security, compliance and automation Training, consulting and implementation services One key benefit of UrbanCode is how quickly it can be implemented and used for deployments. Based in Cleveland, OH 11
Onde estão as mudanças? Layers Change Frequency Tools App. Config. App. Mid. Config. Mid. OS Config. OS Hardware ARA: udeploy 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) 12
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 Blueprint de Aplicação Conformidade: auditoria e segurança Facilidade de uso: designer de processos Inventário: o que está aonde Artefatos Versionados Artefatos Artefatos Artefatos Deploy ou Rollback Deploy ou Rollback Deploy ou Rollback Executado em Executado em Executado em Ambiente de Desenvolvimento Ambiente de Qualidade Ambiente de Produção 13
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
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... 15
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
Conjunto de soluções para suportar DevOps Rational Build Forge Rational Automation Framework Jenkins Chef Application Release Management Application Deployment Automation Cloud Provisioning Rational Team Concert (CLM) Rational Test Workbench SmartCloud Continuous Delivery SmartCloud Provisioning SmartCloud Orchestrator 17 SmartCloud Control Desk
18
19
20