3. #1
Walmart
pela
Fortune
• Ranking
Fortune
Global
500
elegeu
as
maiores
companhias
em
lucro
e
faturamento
1. Walmart
2. Royal
Dutch
Shell
3. Sinopec
Group
4. China
Na&onal
Petroleum
5. Exxon
Mobil
hUp://exame.abril.com.br/negocios/no&cias/revista-‐fortune-‐aponta-‐wal-‐mart-‐como-‐maior-‐empresa-‐do-‐mundo
19. Novas
dire&vas
• Data
center
próprio
• Equipe
de
infraestrutura
(~4)
• Equipe
de
System
Engineers
(1)
• Equipe
de
InfoSec
(1)
• Equipe
de
desenvolvimento
(~10)
• Agilista
(1)
20. Nova
equipe
• Foco
na
entrega
• Equipe
enxuta
• Autonomia
• Automação
• Inovação
• Novas
tecnologias
21. Automação
e
novas
tecnologias
Push
Pull
…
Package
Repository
apt-‐get
yum
22. Novo
sistema
no
ar
em
poucas
semanas
• +90%
de
cobertura
de
testes
unitários
• Testes
funcionais
automa&zados
• TDD
• Pair
programming
• Infraestrutura
como
código
• Build
automa&zado
• Down&me
zero
durante
deploy
• Possibilidade
de
realizar
N
deploys
a
qualquer
momento
• Agile
• Dev
+
Ops
34. Vários
jenkins
espalhados
Vários
padrões
Perda
de
foco
em
novas
features
hUp://2.bp.blogspot.com/-‐cN416AOoo_E/Tu3t5a97IEI/AAAAAAAAAr4/qXo3ez1WytY/s1600/child%2527s+progress.jpg
Apenas
Sys.
Engs
&nham
acesso
a
receita
do
chef
Devs
não
sen&am
que
a
código
de
infra
é
parte
do
fluxo
Deploy
após
vários
sprints
Grandes
entregas
com
potenciais
de
rollback
“Pacote
está
pronto,
só
falta
instalar”
Entregas
demoradas
39. Desenvolver
ferramentas
para
facilitar
a
prá*ca
de
Con*nuous
Delivery
e
promover
as
prá&cas
de
engenharia
de
so9ware
ágil
para
reduzir
o
lead
&me,
reduzir
o
risco
e
aumentar
a
qualidade
dos
so0wares
desenvolvidos.
42. Build
automa&zado
Testes
unitários
automa&zado
Testes
de
desempenho
20
equipes
Script
de
build
Servidor
de
CI
Build
quebrando
em
função
de
testes
que
falham
Deploy
automa&zado
Teste
funcional
automa&zado
Ambientes
Mapa
das
equipes
x
Prá&cas
de
engenharia
45. Cultura
Engenharia
de
Releases
Ferramentas
hUp://lendio.com/cms/wp-‐content/uploads/2011/08/ThreePillars.png
46. “Culture
is
the
way
you
think,
act,
and
interact.”
• Pair
programming
• Testes,
testes,
testes
e
mais
testes
• TDD
• Con&nuous
Integra&on
(CI)
• “Every
build
is
a
poten&al
version”
(kill
snapshot)
• Dev
+
Ops
donos
do
código
de
infraestrutura
50. Con&nuous
Integra&on
“Con&nuous
Integra&on
(CI)
is
the
prac&ce,
in
so0ware
engineering,
of
merging
all
developer
working
copies
with
a
shared
mainline
several
&mes
a
day.”
53. Testes
Automa&zados
• Testes
Automa&zados
• Execução
dos
testes
automa&zados
no
jenkins
• O
resultado
dos
testes
são
decisivos
• O
resultado
dos
testes
devem
ser
visíveis
a
todos
55. “The
whole
point
of
con&nuous
delivery
is
that
every
check-‐in
creates
a
poten&al
release
candidate.
“
Kill Snapshot
Jez
Humble
• Testes
realizados
com
pacote
“-‐snapshot”
não
eram
os
mesmos
que
eram
promovidos
para
produção.
• Testes
realizados
2x.
Pacote
“-‐snapshot”
e
pacote
released
• Ausência
de
tag
no
git
com
a
versão
do
pacote
fechada
• Falta
de
rastreabilidade
no
código
56. StepUp
Marcelo
Manzan
StepUp
is
an
u&lity
that
helps
other
projects
to
manage
your
versioning
increase.
• Bene|cios
hUps://github.com/kawamanza/step-‐up
– Seman&c
Versioning
(hUp://semver.org/)
– Changelog!
e
versionado
– Não
é
necessário
lembrar
o
que
foi
feito
para
definir
um
número
de
versão
– Menos
preocupação
para
o
desenvolvedor
“Um
grupo
de
commits
é
uma
potencial
versão
para
produção”
57. >
git
commit
–m
“xyz”
>
git
commit
–m
“abc”
>
git
commit
–m
“e”
>
stepup
notes
add
-‐-‐sec&on
bugfixes
-‐m
"support
for
old
installa&ons”
>
git
push
1.0.0
Bugfixes:
-‐
support
for
old
installa&ons
58. >
git
commit
–m
“xyz”
>
git
commit
–m
“abc”
>
git
commit
–m
“e”
>
stepup
notes
add
-‐-‐sec&on
bugfixes
-‐m
"support
for
old
installa&ons”
>
git
push
Pull
>
stepup
version
create
QA
Package
Repository
App
App
App
App
App
1.0.0
1.0.1
Bugfixes:
-‐
support
for
old
installa&ons
59. >
git
commit
–m
“xyz”
>
git
commit
–m
“abc”
>
git
commit
–m
“e”
>
stepup
notes
add
-‐-‐sec&on
bugfixes
-‐m
"support
for
old
installa&ons”
>
git
push
Pull
>
stepup
version
create
QA
Package
Repository
App
App
App
App
App
STG
Package
Repository
App
App
App
App
App
Promote
1.0.0
1.0.1
Bugfixes:
-‐
support
for
old
installa&ons
61. Outras
mudanças
culturais
• Feature
toggle
• Branch
by
abstrac&on
• Teste
é
da
equipe,
não
do
QA
• Deploy
frequentes
• Pacotes
menores
• Deploy
não
deve
ser
uma
cerimônia
• Rollback
não
é
a
morte!
• "A
vida
é
muito
curta
para
fazer
deploy
de
madrugada"
63. BACON
Build
Applica&on
CON&nuously
• Plataforma
para
agilizar
a
entrega
de
so0ware
• Independente
de
linguagem
e
tecnologia
• Suporte
a
novas
tecnologias
rapidamente
• Serviço
core
para
equipes
(monitoração,
backup,
24hx7,
…)
• Suporte
a
u&lização
65. Ecossistema
Logging
&
Metrics
Test
Environment
Orchestra&on
Build
Data
Repo
SCM
Ar&fact
Repo
Build
Provision
Deploy
Test
Release
66. Organização
das
equipes
de
devtools,
qa,
syseng,
infosec,…
ITGov
System
Engineers/
System
Administrators
DevTools
Equipes
de
desenvolvimento
Quality
Assurance
Agile
Process
InfoSec
67. Deploy
+
+
• Entender
o
fluxo
• Criamos
uma
ferramenta
interna
para
fazer
a
“cola”
entre
jenkins
e
chef
• Primeiro
este
passo,
para
então
u&lizar
as
ferramentas
corretas
77. Métricas
• Sonar
• Projeto
interno
para
visualizar
métricas
por
projeto
de
so0ware
• Score
por
projeto
de
so0ware
• Score
é
decisório
para
“Mudança
ágil”
78. Pontos
importantes
• Métricas
são
fundamentais
• Padrões
são
necessários
para
automação
• Mudança
cultural
organizacional
é
imprescíndivel
• Plan
Do
Check
Act
• Cada
equipe
tem
o
seu
tempo
para
amadurecer
• Cada
equipe
é
única,
e
cada
so0ware
também
• Não
desista!
Vale
a
pena