Академический Документы
Профессиональный Документы
Культура Документы
2
“
DevOps is a set of practices
intended to reduce a the time
between committing a change to a
system and the change being
placed into normal production,
while ensuring high quality.
- Bass, Len. “DevOps: A Software
Architect’s Perspective.”
3
Motivação
◎ Quando um projeto ou uma empresa decide adotar o
paradigma DevOps mapea-se as áreas de acordo com
os pilares DevOps: pessoas, processos, cultura e
ferramentas.
◎ As ferramentas são uma parte importante da
abordagem DevOps. Elas estão intimamente
relacionados com diferentes práticas, como
automação, monitoramento e configuração.
[HAMUNEN, Joonas et al. 2016]
◎ Os problemas ligados à implementação tecnológica
do DevOps são um dos que mais causam desperdícios.
[AMARADRI, Anand Srivatsav et al. 2016]
4
Objetivo Geral
◎ Identificar empiricamente em projetos
padrões suas infraestruturas de CI/CD
DevOps e propor um Modelo de Arquitetura
de Referência.
5
Objetivo Específicos
◎ Apresentar conceitos encontrados na literatura
que discorrem sobre DevOps e AR;
◎ Identificar papéis de cada ferramenta utilizada
na infraestrutura no pipeline DevOps desses
projetos;
◎ Modelar uma arquitetura de referências DevOps.
6
2.
Metodologia
7
Natureza da Pesquisa
◎ Abordagem qualitativa;
◎ Pesquisa exploratória;
◎ Objeto de Estudo, ferramentas utilizadas
em uma infraestrutura DevOps;
◎ Locus da Pesquisa, projetos que fazem uso
de infraestrutura DevOps.
8
Metodologia
◎ Observação participante
◎ Análise da literatura focando nas seguintes
áreas: Arquitetura de Referência e DevOps.
◎ Mapear dos papéis desempenhados pelas
ferramentas dentro do CI/CD DevOps.
◎ Modelar uma arquitetura de referência
baseada nas ferramentas mapeadas e suas
respectivas funcionalidades.
9
Hipóteses
◎ Infraestruturas DevOps no processo CI/CD
possuem uso de ferramentas com papéis
similares.
◎ A não adoção de um modelo de arquitetura
de referência pode acabar gerando uma
utilização ineficiente de ferramentas.
◎ Usar IaC na para replicação de
Infraestrutura DevOps aumenta o
produtividade.
10
3.
Fudamentação
Teórica
11
Evolução Histórica
12
Sistema Toyota de
Produção
◎ Just-in-time, entrega sob demanda;
◎ Jidoka, automação;
◎ Heijunka, lotes;
◎ Kaizen, melhoria contínua.
13
Movimento Lean
◎ Melhoria contínua;
◎ Redução de custos;
◎ Agilidade na produção;
◎ Maior capacidade produtiva;
◎ Melhorias do ambiente de trabalho para os
funcionários.
14
Manifesto Ágil
◎ Indivíduos e interações mais que processos
e ferramentas;
◎ Software em funcionamento mais que
documentação abrangente;
◎ Colaboração com o cliente mais que
negociação de contratos;
◎ Responder a mudanças mais que seguir um
plano.
15
Integração Contínua
◎ Manter um único repositório de código;
◎ Automatize a Build;
◎ Fazer a Build ser auto-testável;
◎ Modificações todos os dias.
16
Entrega Contínua
◎ Software implementável em todo o seu
ciclo de vida;
◎ Equipe prioriza manter o software
implantável em vez de trabalhar em novos
recursos;
◎ Qualquer pessoa pode obter feedback
rápido e automatizado sobre o estado de
produção, sempre que alguém fizer uma
alteração neles;
◎ Deploy pode ser feito a qualquer momento.
17
Implantação Contínua
◎ Evolução da Entrega Contínua;
◎ A cada commit uma nova versão gerada e
deployada;
◎ É exigido um nível extremamente alto de
maturidade.
18
DevOps
◎ Pilares DevOps:
○ Pessoas
○ Processos
○ Ferramentas
○ Culture
◎ DevOps Three Ways
○ First Way: Work always flows in one direction –
downstream
○ Second Way: Create, shorten and amplify feedback
loops
○ Third Way: Continued experimentation, in order to
learn from mistakes, and achieve mastery
○ 19
Arquitetura de
Referência
◎ Conceitos comprovados na prática onde a
maioria das arquiteturas precedentes é
extraída desses conceitos;
◎ Transformada em orientação para várias
organizações que evoluem ou criam novas
arquiteturas;
◎ O valor está em ambientes com alta
multiplicidade, criando complexidade
social, organizacional, de aplicação e
técnica.
20
3.
Desenvolvimento
da Proposta
21
Modelo Físico Financeiro
ge Stage
a na
M
Push Stage
Commit
it l rts
s
Com
og
mm po
s
o rt gs
Co to-re
p o
mu
- re st l Stage
to /Te
nic
Au
u
A ild
a
Bu
te
ATM/PROD
Auto-reports
deployment logs 22
Modelo Físico Telecom
ge Stage
a na
M
y
e plo
D
GitLab CI
Push Stage
Commit
it l rts
De
s
Com
pl
og
mm po
s
o rt gs oy
Co to-re
p o
mu
- re st l Stage
to /Te
nic
Au
u
A ild
a
Bu
te
User
Auto-reports Device/PROD
deployment logs 23
Modelos de ARD
◎ DRA Conceptual Model
◎ DRA Logical Model
◎ DRA Physical Model
24
ARD Conceptual Model
Human Factor
and Cultural
Communication Manage
Sharing QA/Testing
Integration Planning
Automation
25
ARD Conceptual Model
Platform as a
Infrastructure as a
Service
Service
Monitoring and
Logging
Communication
Plataform Database as a
Service
Infrastructure as
Security and code
Privacy
DevOPs
Conceptual
Model
Design
CI
Plan Test Broker Deploy Stage Deliver
Synchronize
Build Deploy
Platform
Conceptual
Model
27
ARD - Modelo Lógico
M5: Base de
Dados
● Gerenciamento Exchange
Cloud DB. User
● NoSQL DB Device
● SQL DB
e
ag ● Shared
an Resources
M
Stage
M1: Repositório M2: Orquestrador M3: Plataforma CD
M4: Monitoramento
e Comunicação
28
ARD - Modelo Lógico
Modelo ARD Modelo Lógico
Atividades Ferramentas
M1 → Sincronização de → GitHub
Código → Bitbucket
→ Push automático → Gitlab
→ Relatório de logs → Phabricator
automáticos
M3 → Escalabilidade → AWS
→ Ambiente de → GCP
Implantação → Heroku
→ Ambiente de → Oracle Cloud
Armazenamento de → Bare Metal
Pacote
→ Instâncias na
Nuvem
→ Ambiente de Staging
ARD - Modelo Lógico
Atividades Ferramentas
M4 → Gerenciamento de → Slack
Relatórios → Microsoft Teams
→ Integração com → Hip Chat
ferramentas de
Comunicação
→ Notificações
Automáticas
M5 → Gerenciamento → MongoDB
Cloud DB → DBMaestro
→ NoSQL DB → Firebase
→ SQL DB → MySQL
→ Shared Resources
ARD - Modelo Físico
ge Stage
a na
M
y
e plo
D
De
s
Com
pl
og
mm po
s
o rt gs oy
Co to-re
p o
mu
- re st l Stage
to /Te
nic
Au
u
A ild
a
Bu
te
User
Auto-reports Device/PROD
deployment logs 31
ARD - Modelo Físico
Modelo ARD Modelo Lógico
Atividades Ferramentas
Atividades Ferramentas
35
Conlusão
◎ Adoção de infraestrutura CI/CD DevOps está
cada vez mais presente em para que a
indústria de software tenha a capacidade de
acompanhar a crescente demanda do
mercado;
◎ Adotar um conjunto de ferramentas DevOps
não garante a qualidade de entrega;
◎ Constatado na presente pesquisa que o
paradigma DevOps como agente de
transformação em projetos ágeis.
36
Contribuições
◎ A pesquisa proporcionou um panorama
geral sobre arquiteturas de referência para
infraestrutura DevOps em consonância com
os métodos de adoção;
◎ Pôde-se obter uma visão geral que tange a
criação de uma pipeline CI/CD e quais
papéis devem ser desempenhados pelas
ferramentas em cada fase do workflow.
37
Limitações e Trabalhos
Futuros
◎ Quantidade maior de projetos;
◎
◎ Uma possibilidade de trabalho futuro seira
vantagens ou problemáticas em adotar
ferramentas open-source em uma
infra-DevOps;
38
Obrigado.
39