DevOpsFlávio Secchieri MariottiEnterprise Architect
CSC Proprietary and Confidential
Motivação (Drivers e Benefícios)
DevOps
Cultura, Tecnologia e Processo
DevOps nas Empresas
Maturidade
DevOps, Como começar?
CSC - Cases de Sucesso
Agenda
CSC Proprietary and Confidential
DevOpsDesenvolvimento de Software e Operação de TI
CSC Proprietary and Confidential
DevOps Drivers e Benefícios
Redução no tempo de
interrupção operacional e
de implantação
Redução de erros
“humanos”
Suportar a pressão por
entregas de alta
qualidade e mais
rapidamente
Drivers
Implantação acelerada com automatização
Colaboração entre os
departamentos (Dev, QA, TI
Operação)
Redução nos gastos com
“retrabalho”
Redução do tempo de ciclo de
TI
Benefícios
CSC Proprietary and Confidential
DevOps ROI – Retorno do Investimento
66% das empresas adotaram ou planejam adotar métodos DevOps.
Crescimento em até 3X em atualizações de aplicativos ou
implantações.
21% de redução no tempo lidando com casos de suporte.
37% de redução no tempo “apagando incêndios”.
50% menos falhas.
30% mais rápido na entrega de novas funcionalidades.
33% de aumento em melhoria no ambiente de infraestrutura
CSC Proprietary and Confidential
DevOps promove colaboração entre Dev + Ops de modo a aumentar a cooperação através da entrega contínua sem sacrificar a qualidade de software em produção
DevOps é um conjunto de princípios, métodos e tecnologias para
lidar com o desafio de liberar rapidamente a evolução do software
de alta qualidade desde o desenvolvimento até a produção,
onde tudo se torna programável: aplicação, testes e Infra-estrutura.
CSC Proprietary and Confidential
DevOps Mas afinal, como fazemos hoje?
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.
-- Melvyn Conway, 1967
8
Devops é uma mudança cultural que fomenta comunicação,
colaboração e alinhamento de objetivos entre as diversas áreas de
tecnologia da informação
▪ Entrega contínua via sprints
▪ Integra processos, pessoas e ferramentas visando agilidade ao negócio e minimizando retrabalhos.
▪ É a interseção produtiva da cooperação entre times multidisciplinares;
DEVOPS enfatiza:
Flexibilidade
Agilidade
Automação
Colaboração
Comunicação
Cooperação entre equipes
Responsabilidade
Abordagem
DevOps Transformação
CSC Proprietary and Confidential
CADS DevOps Integrando processos
Methodologies
Development Methodology Quality Assurance
SCRUM++ Peer Review & Audits
5 Stars Build
Quality Standards
Development Guidelines
C-RUP
Software Configuration ManagementProcesses and Tools
Software Configuration Management Software Quality Management
Software Release Management
Branching Strategy
Features Traceability
Version Control
Continuous Integration
Defect Tracking
Unit Testing & Code Coverage
Automated Functional Tests
Code Analyzers
Automated Provisioning
Release Workflow
Policies & Security
Cloud Orchestration
Custom Apps Development Services
Test Driven Development
Waterfall
CSC Proprietary and Confidential
CSC DevOpsFramework e Tecnologia
11
CSC’s ‘DevOps Acceleration’ offering relies on delivery lifecycle key pilars to accelerate the move to DevOps
DEV OPSContinuous Testing
Continuous Deployment
Continuous Integration
Continuous Provisioning
Continuous Delivery
12
DevOps - abordagem que integra melhores práticas, baseada nos conceitos de Lean Manufacturing, visando maior agilidade na resposta da organização as necessidades do mercado.
Agile Development + CI + CT + Continuous Deployment
Agile Development + Continuous Integration
Agile Development
Inception Elaboration Construction Transition
Development Team
Agile Development + CI + Continuous Testing
Operations Team
Plan Design OperateBuild Integrate Test Deploy
Capacity Planning
Automated DeploymentAutomated Provisioning
Col
labo
rativ
e A
pps
Dev
elop
men
t Tea
m
13
DevOps traz benefícios tanto no SDLM (Software Development Lifecycle Management) quanto no ALM (Application Lifecycle Management)
TDD – Abordagem Test Driven Deployment já no
levantamento de requerimentos
Sprints de grupos de funcionalidades
Ambientes Dev, QA e Produção permitindo a
integração contínua
Testes Automatizados
Procedimentos padronizados e automatizados em
todas as etapas do processo (incluindo promoção a
produção)
Orquestração dos ambientes incluindo nuvens híbridas
KPIs medindo e monitorando as etapas do processo
CSC Proprietary and Confidential
IDE
CADS AppWorks
Continuous Build
Automated Code Analysis
Build Scan Integrate OperateTest
Activity Panel
Repository
Code AnalysisCont. Integration
Unit TestFunctional Test
Cloud & Release Orchestration
THE BUSINESS MARKET
Deploy to DEV
Pre-configured DEV
Environment
Deploy to UAT
Pre-configured UAT
Environment
Pre-configured PROD
Environment
AutoTest
AutoTest
Deploy to PROD
DEV UAT PROD
Enterprise DevOpsIsto é mais do que desenvolvimento Ágil
Configurable Workflows
Paa
S
Also available for Microsoft Technologies
CSC Proprietary and Confidential
CSC DevOpsMaturidade
16
Level 1Initial
Level 2Managed
Level 3Defined
Level 4Measured
Level 5Optimized
• Dev & Ops are part of multidisciplinary delivery team and share responsibilities
• Time-to-market and ROI is benchmarked
• Dev & Ops collaborate to accelerate delivery cycle, sharing knowledge and feedbacks
• KPIs measure delivery process efficiency
• Dev & Ops are striving to ensure end-to-end delivery process and limit non-added value task
• Workflows and tools are integrated
• Dev & Ops work together when it is required
• Delivery process interfaces are managed (eg: release notes)
• Organization is siloed ; Dev & Ops objectives and practices strongly differ
• Operations are involved at the end of the projects / deliveries
• Continuous integration, fully automated: every day the system’s components are integrated, analyzed, measured and tested together
• Integration tests are fully automated and performed as often as possible to detect bugs
• Everyone commits to the baseline every day
• The integration environment is used on a regular basis to develop, test and deploy
• Integration tests are mainly automated
• An integration env. (clone of production env.) is available to test all the components of the release at least once together before the roll out
• Integration tests are lately and partially done
• Lately and partially integrated in the pre-production environment
• Tests are fully automated
• Continuous testing + efficient environment provisioning reduce test cycle and failures impacts
• Test driven deployment (TDD) and automation is the rule
• Load testing is integrated early in the dev. cycle
• Automated tests are generalized to the downstream phases
• Tests design + execution early in the delivery cycle (Dev-Test-Ops approach)
• Automated tests are initiated with a focus on unit testing
• Test phases anticipated in the project plan
• Tests require mainly manual activities
• Tests partially written and done at the end of the project (bottleneck effects)
• Continuous end-to-end deployment implemented
• Tools used to monitor deployment performance
• One single, repeatable deployment process defined and tested over the multiple environments
• Rollback is automated
• Roll out of applications is automated (performed by a ‘push button’ )
• Deployment is repeatable and automatically executed
• Effort made to automate and define deployment standards across the delivery phases
• Self service deployment to development and test
• Deployments are realized manually or through separate scripts for installations of applications and DB per environments
• Continuous and automated provisioning with self service portal implemented
• Virtualized and as a service infrastructure
• Environment can be created and torn down by a push of the button (end-to-end provisioning approach)
• Operating system is virtualized
• Environments are standardized
• Several tools are used to provision and configure an environment
• Scripted installations per component for each server
• Request and configuration management process is initialized
• Manual installation and configuration of environments with no standards / patterns
• Request Management process is not normalized
Operating Model
Continuous Integration
Continuous Testing
Continuous Deployment
Continuous Provisionning
CSC ‘DevOps Maturity Model: qual meu nível de maturidade?
17
1 – Assess
ORGANIZATION(People, Culture)
PROCESSES & GOVERNANCE
TECHNOLOGIES & TOOLS
MEASUREMENT(KPI, ROI)
3 –Accelerate transformation
Scoping
• Organization Maturity• Dev/Ops interface• HR review
• Delivery process and governance efficiency
• Tools cartography• Automation level • Technologies capabilities
• As is key metrics and cost model benchmark
Assessment Synthesis (Key improvement axes)
Final review, continuous improvement setup
Mid-term transformation assessment (maturity model) and roadmap adjustments
• Operating Model transformation
• DevOps promotion & cultural shift
• Tools integration• Technologies changes• Automation
Transformation launching & communication
• Processes alignment and integration
• Governance model setup
• Dashboard implementation
• KPI and ROI measurement
1 month approx.
6 months approx
2 – Define Target
Target Evaluation, transformation scenarios evaluation & Strategic orientations validation
1month approx.
CSC DevOps transformation framework sets up an accelerated path to continuous delivery, automation and teams cooperation
Overall Assessment (DevOps maturity model)
• Target operating Model• People & cultural change
• Target delivery processes and governance model
• Target Architecture and toolset
• Automation strategy• Target key metrics and
objectives
• Impacts on organization, culture and people
• Impacts on architecture, technologies and tools
• Impacts on processes and governance
• Impacts on measurement/reporting
Project organization and deployment roadmap planning
CSC Proprietary and Confidential
DevOpsPróximos Passos
19
Próximos passosSugestões para começar…
Escolha entre 1 e 2 aplicações Java, SharePoint, .NET
Piloto
Avaliação portfólio / Legados para Aplicações ModernasTransformação de Aplicações / Modernização para Nuvem Adoção de Operacionalização ServiceMesh Alavancando
(para cenários de nuvem híbrida)
Pós Piloto
20
Continuous Delivery
Set up end-to-end continuous delivery integrating Dev & Ops processes and tooling Mix resources from Dev & Ops in new organizational schemes (central release team) Sustain collaboration and continuous improvement sharing knowledge and feedback
Projeto PilotoPrincípios básicos do DevOps
Continuous integration
Continuous testing
Continuous Deployment
Review delivery cycle to accelerate time-to-market with no compromise on Software Quality through automated testing and deployment industrialization
• Implement an integration environment (clone of prod.) to test components together• Commit and test package deployment on a regular basis to detect bugs early• Automate integration testing to ensure deployment integrity and limit cost / efforts
• Promote Test Driven Development to accelerate test cycle (Dev-test-Ops approach)• Integrate testing design + execution (including load test) early in the dev. cycle• Develop testing automation sustained with efficient environments provisioning
• Implement end-to-end continuous deployment : single, secured, tested and repeatable process over the multiple environments
• Automate the deployments (“push button”) and monitor the performance
Define standards for infrastructure and environments provisioning acceleration (virtualized and as a service infrastructure approach)
Automate the components provisioning, installation, configuration and administration Implement on demand portal aligned with capacity and costs measurement
Continuous provisioning
Operating Model Transformation
21
CSC DevOpsLessons Learned from the DevOps Front Lines
CSC Proprietary and Confidential
CSC CasesNossa Experiência de Sucesso
CSC Proprietary and Confidential
DevOps Cases de Sucesso
NICE V2: Construção de novo sistema de distribuição multi-canal centrado no cliente com uma gestão integrada do ciclo de vida da aplicação
Programa de Cartões & Pagamentos da Cedicam: construindo a fábrica de integração de cartões
Uso do CSC AppWorks Method para alcançar a transformação para um processo de desenvolvimento Agile e suite de ferramentas de DevOps
Cloud DevOps: industrialização do ciclo de vida de entrega de projetos do desenvolvimento ao ambiente de produção
Programa de Transformação (otimizar os custos de integração e implantação com redução de prazos)
CSC Proprietary and Confidential