SlideShare a Scribd company logo
1 of 44
Download to read offline
Laboratório de Sistemas
Computacionais Complexos
2020/04/16 - AULA 11
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP
Alfredo Goldman
gold@ime.usp.br
https://uclab.xyz/sistemas-complexos-aula11
João Francisco Daniel
joaofran@ime.usp.br
Renato Cordeiro Ferreira
renatocf@ime.usp.br
Thatiane de Oliveira Rosa
thatiane@ime.usp.br
Leonardo Leite
leofl@ime.usp.br
Agenda
Tema da aula:
DevOps
1. Definição DevOps
2. Cultura DevOps
3. Entrega contínua
4. Runtime and reliability
5. DevOps e microsserviços
6. Ferramentas
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 2
Definição de DevOps
DevOps is a collaborative and multidisciplinary effort within an
organization to automate continuous delivery of new software
versions, while guaranteeing their correctness and reliability
(LEITE et al., 2019)
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 3
Definição de DevOps - CAMS
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 4
⚫ Culture
⚫ Automation
⚫ Measurement
⚫ Sharing
(HUMBLE and MOLESKY, 2011)
DevOps
DevOps is a collaborative and multidisciplinary effort within an organization to
automate continuous delivery of new software versions, while guaranteeing their
correctness and reliability
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 5
DevOps
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 6
Entre Devs e Ops
Antes o ágil ficava só nos devs
DevOps is a collaborative and multidisciplinary effort within an organization to
automate continuous delivery of new software versions, while guaranteeing their
correctness and reliability
DevOps
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 7
Cultura de colaboração!
DevOps is a collaborative and multidisciplinary effort within an organization to
automate continuous delivery of new software versions, while guaranteeing their
correctness and reliability
Cultura (Westrum, 2014)
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 8
⚫ Pathological (power-oriented)
Fear and threat
⚫ Bureaucratic (rule-oriented)
Protect the department
⚫ Generative (performance-oriented)
Focus on the mission (alinhamento)
Cultura (Westrum, 2014)
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 9
Pathological Bureaucratic Generative
Low cooperation Modest cooperation High cooperation
Messengers “shot” Messengers neglected Messengers trained
Responsibilities shirked Narrow responsibilities Risks are shared
Bridging discouraged Bridging tolerated
Bridging encouraged
Failure leads to scapegoating Failure leads to justice Failure leads to inquiry
Novelty crushed Novelty leads to problems Novelty implemented
Cultura e desempenho de entrega
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 10
(FORSGREN et al., 2018)
The three ways of DevOps
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 11
⚫ Mapping the value stream for global optimization, not local optimization
⚫ Amplifying continuous feedback loops to support necessary corrections
⚫ Improving daily work through a culture promoting frequent experimentation,
risk-taking, learning from mistakes, and knowing that practice and repetition are
prerequisites to mastery
(KIM et al., 2016)
⚫ Mapping the value stream for global optimization, not local optimization
⚫ Amplifying continuous feedback loops to support necessary corrections
⚫ Improving daily work through a culture promoting frequent experimentation,
risk-taking, learning from mistakes, and knowing that practice and repetition are
prerequisites to mastery
The three ways of DevOps
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 12
Muito mais sobre cultura, né?
CAMS
(KIM et al., 2016)
DevOps
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 13
DevOps is a collaborative and multidisciplinary effort within an organization to
automate continuous delivery of new software versions, while guaranteeing
their correctness and reliability
Entrega contínua
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 14
⚫ Any software version committed to the repository
must be a production-candidate version
⚫ After passing through stages, such as compilation
and automated tests, the software is sent to
production by the press of a button
CAMS
Entrega contínua
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 15
O deploy se torna chato!
Entrega contínua
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 16
Entrega contínua
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 17
Entrega contínua
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 18
(FORSGREN et al., 2018)
Delivery performance
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 19
⚫ Frequência de implantação
⚫ Tempo de entrega
⚫ Tempo de recuperação
⚫ Frequência de falhas
(FORSGREN et al., 2018)
⚫ Frequência de implantação
⚫ Tempo de entrega
⚫ Tempo de recuperação
⚫ Frequência de falhas
Delivery performance
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 20
I.e.: o quão bem você consegue fazer entrega contínua
(FORSGREN et al., 2018)
Implantação contínua
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 21
Sempre automático
Práticas - Entrega Contínua
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 22
(FORSGREN et al., 2018)
Integração contínua
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 23
⚫ Integrate and test changes after no more than a couple of hours
⚫ Team programming isn’t a divide and conquer problem
⚫ It’s a divide, conquer, and integrate problem
⚫ The integration step is unpredictable
⚫ The longer you wait to integrate, the more it costs
(BECK and ANDRES, 2004)
O que seria não fazer integração contínua?
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 24
?
Integração contínua vs entrega contínua?
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 25
?
DevOps
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 26
DevOps is a collaborative and multidisciplinary effort within an organization to
automate continuous delivery of new software versions, while guaranteeing their
correctness and reliability
Como garantir correctness?
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 27
?
Reliability
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 28
⚫ Reduce toil
⚫ Infrastructure staff code to improve NFR
⚫ Limit of 50% of operational work to the infrastructure
staff
⚫ Developers sustain the product for a period
Práticas Runtime
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 29
(LEITE et al., 2019)
CAMS
Práticas Runtime
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 30
(LEITE et al., 2019)
Microsserviços
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 31
⚫ The microservice architectural style is an approach to developing a single
application as a suite of small services, each running in its own process and
communicating with lightweight mechanisms, often an HTTP resource API
⚫ These services are built around business capabilities and independently
deployable by fully automated deployment machinery
(LEWIS and FOWLER, 2014)
Por que microsserviços precisam de DevOps?
32
?
Por que DevOps precisa de microsserviços?
33
?
Microsserviços e DevOps
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 34
⚫ Automação de deploy
⚫ Entrega contínua com monolito é mais difícil
⚫ Build de 10 minutos
⚫ Log aggregator
⚫ Correlation ID's
⚫ Monitoração
⚫ Extra: automação da automação!
Ferramentas
35
Ferramentas
36
Tem que saber tudo isso para ser um DevOps?
?
Ferramentas
37
(LEITE et al., 2019)
Ferramentas
38
(LEITE et al., 2019)
Referências
Kent Beck, Cynthia Andres. Extreme Programming Explained: Embrace Change. 2 ed.
Addison-Wesley Professional, 2004
Jez Humble, David Farley. Continuous Delivery: Reliable Software Releases through Build, Test,
and Deployment Automation. 2010
Jez Humble and Joanne Molesky. Why Enterprises Must Adopt Devops to Enable Continuous
Delivery. Cutter IT Journal. 2011
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 39
Referências
Ron Westrum. The study of information flow: A personal journey. Safety Science. 67, 58-63, 2014.
James Lewis and Martin Fowler. Microservices. 2014.
https://www.martinfowler.com/articles/microservices.html.
Gene Kim, Jez Humble, Patrick Debois, John Willis, John Allspaw. The DevOps Handbook: How to
Create World-Class Agility. 2016
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 40
Referências
Niall Richard Murphy, Betsy Beyer, Chris Jones, Jennifer Petoff. Site Reliability Engineering: How
Google Runs Production Systems. 2016
Nicole Forsgren, Jez Humble, Gene Kim. Accelerate: The Science of Lean Software and DevOps:
Building and Scaling High Performing Technology Organizations. 2018
Leonardo Leite, Carla Rocha, Fabio Kon, Dejan Milojicic, and Paulo Meirelles. A Survey of DevOps
Concepts and Challenges. ACM Computing Surveys, 52, 1-35, 2019.
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 41
Licença
Estes slides são concedidos sob uma Licença Creative Commons. Sob as seguintes condições:
Atribuição, Uso Não-Comercial e Compartilhamento pela mesma Licença.
Mais detalhes sobre essa licença em: creativecommons.org/licenses/by-nc-sa/3.0/
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 42
Leonardo Leite
https://www.ime.usp.br/~leofl/
https://ccsl.ime.usp.br/devops/
https://twitter.com/leonardofl
https://www.linkedin.com/in/leonardo-alexandre-ferreira-leite-17194322
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 43
Laboratório de Sistemas
Computacionais Complexos
2020/04/16 - AULA 11
MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP
Alfredo Goldman
gold@ime.usp.br
https://uclab.xyz/sistemas-complexos-aula11
João Francisco Daniel
joaofran@ime.usp.br
Renato Cordeiro Ferreira
renatocf@ime.usp.br
Thatiane de Oliveira Rosa
thatiane@ime.usp.br
Leonardo Leite
leofl@ime.usp.br

More Related Content

Similar to Sistemas complexos-devops-2020-04-16

Performance Test Slideshow Recent
Performance Test Slideshow RecentPerformance Test Slideshow Recent
Performance Test Slideshow Recent
Future Simmons
 
Performance Test Slideshow R E C E N T
Performance Test Slideshow R E C E N TPerformance Test Slideshow R E C E N T
Performance Test Slideshow R E C E N T
Future Simmons
 
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
ghodgkinson
 
Curiosity Software Presents: Modelling for Continuous Testing
Curiosity Software Presents: Modelling for Continuous TestingCuriosity Software Presents: Modelling for Continuous Testing
Curiosity Software Presents: Modelling for Continuous Testing
Curiosity Software Ireland
 
Agile maintenance
Agile maintenanceAgile maintenance
Agile maintenance
aralikatte
 

Similar to Sistemas complexos-devops-2020-04-16 (20)

How to Use DevOps & APM to Release Better Software Faster
How to Use DevOps & APM to Release Better Software FasterHow to Use DevOps & APM to Release Better Software Faster
How to Use DevOps & APM to Release Better Software Faster
 
Upmc tpdev5
Upmc tpdev5Upmc tpdev5
Upmc tpdev5
 
Performance Test Slideshow Recent
Performance Test Slideshow RecentPerformance Test Slideshow Recent
Performance Test Slideshow Recent
 
Performance Test Slideshow R E C E N T
Performance Test Slideshow R E C E N TPerformance Test Slideshow R E C E N T
Performance Test Slideshow R E C E N T
 
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
 
Continuous Testing - The New Normal
Continuous Testing - The New NormalContinuous Testing - The New Normal
Continuous Testing - The New Normal
 
Our Journey To Continuous Delivery
Our Journey To Continuous DeliveryOur Journey To Continuous Delivery
Our Journey To Continuous Delivery
 
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
 
DevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practicesDevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practices
 
Using Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
Using Lean Thinking to Identify and Address Delivery Pipeline BottlenecksUsing Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
Using Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
 
Shift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deploymentShift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deployment
 
Curiosity Software Presents: Modelling for Continuous Testing
Curiosity Software Presents: Modelling for Continuous TestingCuriosity Software Presents: Modelling for Continuous Testing
Curiosity Software Presents: Modelling for Continuous Testing
 
DevOps for dummies study sharing - part II
DevOps for dummies study sharing - part IIDevOps for dummies study sharing - part II
DevOps for dummies study sharing - part II
 
Continuous Software Engineering - A tutorial
Continuous Software Engineering - A tutorialContinuous Software Engineering - A tutorial
Continuous Software Engineering - A tutorial
 
Requirements driven Model-based Testing
Requirements driven Model-based TestingRequirements driven Model-based Testing
Requirements driven Model-based Testing
 
Introduction to DevOps slides.pdf
Introduction to DevOps slides.pdfIntroduction to DevOps slides.pdf
Introduction to DevOps slides.pdf
 
DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...
DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...
DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...
 
Continuous Testing through Service Virtualization
Continuous Testing through Service VirtualizationContinuous Testing through Service Virtualization
Continuous Testing through Service Virtualization
 
Agile maintenance
Agile maintenanceAgile maintenance
Agile maintenance
 
Continuous Testing through Service Virtualization
Continuous Testing through Service VirtualizationContinuous Testing through Service Virtualization
Continuous Testing through Service Virtualization
 

More from Leonardo Ferreira Leite

More from Leonardo Ferreira Leite (6)

Microsserviços, por que tão difícil? Um catálogo de padrões para criar serviç...
Microsserviços, por que tão difícil? Um catálogo de padrões para criar serviç...Microsserviços, por que tão difícil? Um catálogo de padrões para criar serviç...
Microsserviços, por que tão difícil? Um catálogo de padrões para criar serviç...
 
Interação entre times de plataforma e desenvolvedores: como deve ser?
Interação entre times de plataforma e desenvolvedores: como deve ser?Interação entre times de plataforma e desenvolvedores: como deve ser?
Interação entre times de plataforma e desenvolvedores: como deve ser?
 
Defesa de doutorado - Leonardo Leite (USP)
Defesa de doutorado - Leonardo Leite (USP)Defesa de doutorado - Leonardo Leite (USP)
Defesa de doutorado - Leonardo Leite (USP)
 
Do commit à produção: integração contínua e entrega contínua no pipeline de i...
Do commit à produção: integração contínua e entrega contínua no pipeline de i...Do commit à produção: integração contínua e entrega contínua no pipeline de i...
Do commit à produção: integração contínua e entrega contínua no pipeline de i...
 
Times plataforma-tdc2020
Times plataforma-tdc2020Times plataforma-tdc2020
Times plataforma-tdc2020
 
Software livre no governo
Software livre no governoSoftware livre no governo
Software livre no governo
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Sistemas complexos-devops-2020-04-16

  • 1. Laboratório de Sistemas Computacionais Complexos 2020/04/16 - AULA 11 MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP Alfredo Goldman gold@ime.usp.br https://uclab.xyz/sistemas-complexos-aula11 João Francisco Daniel joaofran@ime.usp.br Renato Cordeiro Ferreira renatocf@ime.usp.br Thatiane de Oliveira Rosa thatiane@ime.usp.br Leonardo Leite leofl@ime.usp.br
  • 2. Agenda Tema da aula: DevOps 1. Definição DevOps 2. Cultura DevOps 3. Entrega contínua 4. Runtime and reliability 5. DevOps e microsserviços 6. Ferramentas MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 2
  • 3. Definição de DevOps DevOps is a collaborative and multidisciplinary effort within an organization to automate continuous delivery of new software versions, while guaranteeing their correctness and reliability (LEITE et al., 2019) MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 3
  • 4. Definição de DevOps - CAMS MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 4 ⚫ Culture ⚫ Automation ⚫ Measurement ⚫ Sharing (HUMBLE and MOLESKY, 2011)
  • 5. DevOps DevOps is a collaborative and multidisciplinary effort within an organization to automate continuous delivery of new software versions, while guaranteeing their correctness and reliability MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 5
  • 6. DevOps MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 6 Entre Devs e Ops Antes o ágil ficava só nos devs DevOps is a collaborative and multidisciplinary effort within an organization to automate continuous delivery of new software versions, while guaranteeing their correctness and reliability
  • 7. DevOps MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 7 Cultura de colaboração! DevOps is a collaborative and multidisciplinary effort within an organization to automate continuous delivery of new software versions, while guaranteeing their correctness and reliability
  • 8. Cultura (Westrum, 2014) MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 8 ⚫ Pathological (power-oriented) Fear and threat ⚫ Bureaucratic (rule-oriented) Protect the department ⚫ Generative (performance-oriented) Focus on the mission (alinhamento)
  • 9. Cultura (Westrum, 2014) MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 9 Pathological Bureaucratic Generative Low cooperation Modest cooperation High cooperation Messengers “shot” Messengers neglected Messengers trained Responsibilities shirked Narrow responsibilities Risks are shared Bridging discouraged Bridging tolerated Bridging encouraged Failure leads to scapegoating Failure leads to justice Failure leads to inquiry Novelty crushed Novelty leads to problems Novelty implemented
  • 10. Cultura e desempenho de entrega MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 10 (FORSGREN et al., 2018)
  • 11. The three ways of DevOps MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 11 ⚫ Mapping the value stream for global optimization, not local optimization ⚫ Amplifying continuous feedback loops to support necessary corrections ⚫ Improving daily work through a culture promoting frequent experimentation, risk-taking, learning from mistakes, and knowing that practice and repetition are prerequisites to mastery (KIM et al., 2016)
  • 12. ⚫ Mapping the value stream for global optimization, not local optimization ⚫ Amplifying continuous feedback loops to support necessary corrections ⚫ Improving daily work through a culture promoting frequent experimentation, risk-taking, learning from mistakes, and knowing that practice and repetition are prerequisites to mastery The three ways of DevOps MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 12 Muito mais sobre cultura, né? CAMS (KIM et al., 2016)
  • 13. DevOps MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 13 DevOps is a collaborative and multidisciplinary effort within an organization to automate continuous delivery of new software versions, while guaranteeing their correctness and reliability
  • 14. Entrega contínua MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 14 ⚫ Any software version committed to the repository must be a production-candidate version ⚫ After passing through stages, such as compilation and automated tests, the software is sent to production by the press of a button CAMS
  • 15. Entrega contínua MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 15 O deploy se torna chato!
  • 16. Entrega contínua MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 16
  • 17. Entrega contínua MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 17
  • 18. Entrega contínua MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 18 (FORSGREN et al., 2018)
  • 19. Delivery performance MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 19 ⚫ Frequência de implantação ⚫ Tempo de entrega ⚫ Tempo de recuperação ⚫ Frequência de falhas (FORSGREN et al., 2018)
  • 20. ⚫ Frequência de implantação ⚫ Tempo de entrega ⚫ Tempo de recuperação ⚫ Frequência de falhas Delivery performance MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 20 I.e.: o quão bem você consegue fazer entrega contínua (FORSGREN et al., 2018)
  • 21. Implantação contínua MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 21 Sempre automático
  • 22. Práticas - Entrega Contínua MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 22 (FORSGREN et al., 2018)
  • 23. Integração contínua MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 23 ⚫ Integrate and test changes after no more than a couple of hours ⚫ Team programming isn’t a divide and conquer problem ⚫ It’s a divide, conquer, and integrate problem ⚫ The integration step is unpredictable ⚫ The longer you wait to integrate, the more it costs (BECK and ANDRES, 2004)
  • 24. O que seria não fazer integração contínua? MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 24 ?
  • 25. Integração contínua vs entrega contínua? MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 25 ?
  • 26. DevOps MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 26 DevOps is a collaborative and multidisciplinary effort within an organization to automate continuous delivery of new software versions, while guaranteeing their correctness and reliability
  • 27. Como garantir correctness? MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 27 ?
  • 28. Reliability MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 28 ⚫ Reduce toil ⚫ Infrastructure staff code to improve NFR ⚫ Limit of 50% of operational work to the infrastructure staff ⚫ Developers sustain the product for a period
  • 29. Práticas Runtime MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 29 (LEITE et al., 2019) CAMS
  • 30. Práticas Runtime MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 30 (LEITE et al., 2019)
  • 31. Microsserviços MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 31 ⚫ The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API ⚫ These services are built around business capabilities and independently deployable by fully automated deployment machinery (LEWIS and FOWLER, 2014)
  • 32. Por que microsserviços precisam de DevOps? 32 ?
  • 33. Por que DevOps precisa de microsserviços? 33 ?
  • 34. Microsserviços e DevOps MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 34 ⚫ Automação de deploy ⚫ Entrega contínua com monolito é mais difícil ⚫ Build de 10 minutos ⚫ Log aggregator ⚫ Correlation ID's ⚫ Monitoração ⚫ Extra: automação da automação!
  • 36. Ferramentas 36 Tem que saber tudo isso para ser um DevOps? ?
  • 39. Referências Kent Beck, Cynthia Andres. Extreme Programming Explained: Embrace Change. 2 ed. Addison-Wesley Professional, 2004 Jez Humble, David Farley. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. 2010 Jez Humble and Joanne Molesky. Why Enterprises Must Adopt Devops to Enable Continuous Delivery. Cutter IT Journal. 2011 MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 39
  • 40. Referências Ron Westrum. The study of information flow: A personal journey. Safety Science. 67, 58-63, 2014. James Lewis and Martin Fowler. Microservices. 2014. https://www.martinfowler.com/articles/microservices.html. Gene Kim, Jez Humble, Patrick Debois, John Willis, John Allspaw. The DevOps Handbook: How to Create World-Class Agility. 2016 MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 40
  • 41. Referências Niall Richard Murphy, Betsy Beyer, Chris Jones, Jennifer Petoff. Site Reliability Engineering: How Google Runs Production Systems. 2016 Nicole Forsgren, Jez Humble, Gene Kim. Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations. 2018 Leonardo Leite, Carla Rocha, Fabio Kon, Dejan Milojicic, and Paulo Meirelles. A Survey of DevOps Concepts and Challenges. ACM Computing Surveys, 52, 1-35, 2019. MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 41
  • 42. Licença Estes slides são concedidos sob uma Licença Creative Commons. Sob as seguintes condições: Atribuição, Uso Não-Comercial e Compartilhamento pela mesma Licença. Mais detalhes sobre essa licença em: creativecommons.org/licenses/by-nc-sa/3.0/ MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP 42
  • 44. Laboratório de Sistemas Computacionais Complexos 2020/04/16 - AULA 11 MAC0475 - Laboratório de Sistemas Computacionais Complexos - IME-USP Alfredo Goldman gold@ime.usp.br https://uclab.xyz/sistemas-complexos-aula11 João Francisco Daniel joaofran@ime.usp.br Renato Cordeiro Ferreira renatocf@ime.usp.br Thatiane de Oliveira Rosa thatiane@ime.usp.br Leonardo Leite leofl@ime.usp.br