SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
Estamos trabalhando melhor
com dependências e ambientes
usando containers?
Na minha
máquina
funciona!
Com containers você
não terá mais...
- Problemas de dependências
- Diferenças entre ambientes
Melhoramos?
Ou só jogamos nossa “bagunça”
para um container?
Roteiro
1. Dependências
1.1. Bibliotecas da linguagem
1.2. Configurações
1.3. Serviços externos
1.4. Linguagem
1.5. Sistema operacional
2. Ambientes
2.1. Construção de imagens
2.2. Uso de camadas
2.3. Movimentação de imagens
Dependências...
(Maven, Gradle)
(RubyGems)
(PIP)
(NPM)
1.1 Bibliotecas da linguagem
Uma das vantagens é
Cometemos algumas falhas como:
Dia 01/04
lib-x 1.0.0
Dia 20/04
lib-x 1.1.0
● Declarar dependência sem a versão.
lib 1.1.0
● Não declarar dependência porque já vem
instalado.
Cometemos algumas falhas como:
● Não diferenciar dep de testes, execução...
lib 1.1.0
lib-x 1.12.0
lib-y 5.0.0
dep-test 1.0.0
test-utils 2.5.0
mock 1.10.0
}
Cometemos algumas falhas como:
É preciso diferenciar
dependências!
projeto x imagem
Mas...
dependência
é só isso?
O que mais podemos considerar
como dependências?
1.2 Configurações do sistema
○ *.properties
○ *.yml
○ *.xml
○ *.conf
○ Variáveis de ambiente
● Configurações fixas
● ENVS definidos no
arquivo da imagem...
Cometemos algumas falhas como:
Como melhorar?
● Configurações via variáveis de ambiente.
○ DATABASE_URL, EXTERNAL_SERVICE_URL,
EXTERNAL_SERVICE_API_KEY
● Variáveis informadas ao container na execução.
○ docker run 
-e DATABASE_URL='xyz' 
-e EXTERNAL_SERVICE_URL='abc' ...
1.3 Ferramentas e serviços externos
○ Banco de dados
○ Cache
○ Mensageria
○ Armazenamento de arquivos
○ Programas/bibliotecas do SO
Também são dependências...
● Imagem com outros serviços encapsulados.
● Sistema usando programas do SO.
● Diretórios da máquina host.
Cometemos algumas falhas como:
-> Cada serviço em um container.
-> Busque bibliotecas da linguagem.
-> Serviços de armazenamento.
cometemos algumas falhas como:
○ personalizações nas instalações!
Use !!!
○ imagens oficiais!
○ avalie imagens “+ enxutas”: slim, alpine.
1.4 Linguagem
○ Sabemos qual está sendo usado?
○ Conhecemos o gerenciador de pacotes do SO?
1.5 O sistema operacional!
Container vai te ajudar!
Mas não vai resolver os
problemas de dependências!
E no
assunto
ambientes?
Ambientes...
2.1 Construímos pensando em dev ou prd?
○ É preciso entender cada pacote instalado.
○ Podemos tirar coisas desnecessárias.
○ Considere aspectos de segurança.
2.2 FAZER MAIOR USO DE CAMADAS/HERANÇA!
PRD
DEV
BASE
2.3
Movimentar as
imagens
entre os ambientes !
Analogia ao uso de containers na
área de transportes
no mundo de software..
usar mesma imagem em todos ambientes
STAGING PRODUCTIONSANDBOX
poder enviar a mesma imagem para
qualquer cloud!
GOOGLEHEROKU AZUREAWS
não existe só docker no mundo de
containers !
recapitulando !
falamos de
Dependências
Bibliotecas
Configurações
Serviços externos
Linguagem e SO
Ambientes
Construção imagens
Movimentação imagens
Várias clouds
Se você já aplica todas
boas práticas citadas...
Parabéns ! =)
ou...
dependências e
ambientes ainda devem
ser problemas =(
Uma dica:
http://12factor.net/
VII. Vínculo de porta
VIII. Concorrência
IX. Descartabilidade
X. Dev/prod semelhantes
XI. Logs
XII. Processos de Admin
I. Base de Código
II. Dependências
III. Configurações
IV. Serviços de Apoio
V. Build, release, run
VI. Processos
12factor.net
Obrigado !
Dúvidas ?
Isaac Felisberto de Souza
isaacsouza@gmail.com
linkedin.com/in/isaacfsouza

Mais conteúdo relacionado

Mais procurados

Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosFábio José Moraes
 
Subvertendo o código PHP com SVN
Subvertendo o código PHP com SVNSubvertendo o código PHP com SVN
Subvertendo o código PHP com SVNRicardo Coelho
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátilWanderlei Silva do Carmo
 
Tdc2016 trilha testes - browsersync acelerando seus testes na web
Tdc2016 trilha testes - browsersync acelerando seus testes na webTdc2016 trilha testes - browsersync acelerando seus testes na web
Tdc2016 trilha testes - browsersync acelerando seus testes na webDanilo Feijó
 
Subvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLSubvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLRicardo Coelho
 
1001 maneiras de debugar o WordPress
1001 maneiras de debugar o WordPress1001 maneiras de debugar o WordPress
1001 maneiras de debugar o WordPressRudá Almeida
 
Kraftwagen, porque fazer builds - Drupal camp sp 2015
Kraftwagen, porque fazer builds - Drupal camp sp 2015Kraftwagen, porque fazer builds - Drupal camp sp 2015
Kraftwagen, porque fazer builds - Drupal camp sp 2015Handrus Nogueira
 
DrupalCamp SP 2015 - Kraftwagen por Handrus Nogueira
DrupalCamp SP 2015 -  Kraftwagen por Handrus NogueiraDrupalCamp SP 2015 -  Kraftwagen por Handrus Nogueira
DrupalCamp SP 2015 - Kraftwagen por Handrus NogueiraTaller Negócio Digitais
 
ruby - programar é divertido
ruby - programar é divertidoruby - programar é divertido
ruby - programar é divertidoElomar Souza
 
Palestra sobre produção de Vídeo em Software Livre no Latinoware 2011
Palestra sobre produção de Vídeo em Software Livre no Latinoware 2011Palestra sobre produção de Vídeo em Software Livre no Latinoware 2011
Palestra sobre produção de Vídeo em Software Livre no Latinoware 2011Drica Veloso
 
Case de integração de user parameter e notes
Case de integração de user parameter e notesCase de integração de user parameter e notes
Case de integração de user parameter e notesDouglas Esteves
 
Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Glauton Vieira
 
Vagrant você deveria está usando
Vagrant   você deveria está usandoVagrant   você deveria está usando
Vagrant você deveria está usandoHudson Brendon
 
C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015Renato Groff
 

Mais procurados (16)

Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviços
 
Subvertendo o código PHP com SVN
Subvertendo o código PHP com SVNSubvertendo o código PHP com SVN
Subvertendo o código PHP com SVN
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátil
 
Tdc2016 trilha testes - browsersync acelerando seus testes na web
Tdc2016 trilha testes - browsersync acelerando seus testes na webTdc2016 trilha testes - browsersync acelerando seus testes na web
Tdc2016 trilha testes - browsersync acelerando seus testes na web
 
Subvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLSubvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOL
 
1001 maneiras de debugar o WordPress
1001 maneiras de debugar o WordPress1001 maneiras de debugar o WordPress
1001 maneiras de debugar o WordPress
 
Kraftwagen, porque fazer builds - Drupal camp sp 2015
Kraftwagen, porque fazer builds - Drupal camp sp 2015Kraftwagen, porque fazer builds - Drupal camp sp 2015
Kraftwagen, porque fazer builds - Drupal camp sp 2015
 
DrupalCamp SP 2015 - Kraftwagen por Handrus Nogueira
DrupalCamp SP 2015 -  Kraftwagen por Handrus NogueiraDrupalCamp SP 2015 -  Kraftwagen por Handrus Nogueira
DrupalCamp SP 2015 - Kraftwagen por Handrus Nogueira
 
ruby - programar é divertido
ruby - programar é divertidoruby - programar é divertido
ruby - programar é divertido
 
Palestra sobre produção de Vídeo em Software Livre no Latinoware 2011
Palestra sobre produção de Vídeo em Software Livre no Latinoware 2011Palestra sobre produção de Vídeo em Software Livre no Latinoware 2011
Palestra sobre produção de Vídeo em Software Livre no Latinoware 2011
 
Case de integração de user parameter e notes
Case de integração de user parameter e notesCase de integração de user parameter e notes
Case de integração de user parameter e notes
 
Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!
 
Vagrant você deveria está usando
Vagrant   você deveria está usandoVagrant   você deveria está usando
Vagrant você deveria está usando
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
12 threads
12 threads12 threads
12 threads
 
C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015
 

Semelhante a Melhorando dependências e ambientes com containers

TDC2018FLN | Trilha Containers - Estamos trabalhando melhor com dependencias ...
TDC2018FLN | Trilha Containers - Estamos trabalhando melhor com dependencias ...TDC2018FLN | Trilha Containers - Estamos trabalhando melhor com dependencias ...
TDC2018FLN | Trilha Containers - Estamos trabalhando melhor com dependencias ...tdc-globalcode
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: IntroduçãoJugVale
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO IOs Fantasmas !
 
Programação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com JavaProgramação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com JavaRosicleia Frasson
 
Docker e outras ferramentas Devops
Docker e outras ferramentas DevopsDocker e outras ferramentas Devops
Docker e outras ferramentas DevopsCristian Trucco
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerLuís Bianchin
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerWellington Silva
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java FundamentosWilson Lima
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Gerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixGerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixAndré Déo
 
Aula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixAula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixCris Fidelix
 
Aula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixAula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixCris Fidelix
 

Semelhante a Melhorando dependências e ambientes com containers (20)

TDC2018FLN | Trilha Containers - Estamos trabalhando melhor com dependencias ...
TDC2018FLN | Trilha Containers - Estamos trabalhando melhor com dependencias ...TDC2018FLN | Trilha Containers - Estamos trabalhando melhor com dependencias ...
TDC2018FLN | Trilha Containers - Estamos trabalhando melhor com dependencias ...
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
Fundamentos Java - 01
Fundamentos Java - 01Fundamentos Java - 01
Fundamentos Java - 01
 
Aula 1a.ppt
Aula 1a.pptAula 1a.ppt
Aula 1a.ppt
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: Introdução
 
Docker
DockerDocker
Docker
 
Caminhando pelo db2
Caminhando pelo db2Caminhando pelo db2
Caminhando pelo db2
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
 
Programação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com JavaProgramação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com Java
 
Docker e outras ferramentas Devops
Docker e outras ferramentas DevopsDocker e outras ferramentas Devops
Docker e outras ferramentas Devops
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre Docker
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java Fundamentos
 
Workshop Docker
Workshop DockerWorkshop Docker
Workshop Docker
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Vagrant sti
Vagrant stiVagrant sti
Vagrant sti
 
Gerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixGerenciamento de Redes com Zabbix
Gerenciamento de Redes com Zabbix
 
Aula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixAula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane Fidelix
 
Aula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixAula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane Fidelix
 

Mais de Isaac de Souza

Sua solução escala? Testes de Stress e APMs podem responder.
Sua solução escala? Testes de Stress e APMs podem responder.Sua solução escala? Testes de Stress e APMs podem responder.
Sua solução escala? Testes de Stress e APMs podem responder.Isaac de Souza
 
Seu código fonte é sustentável?
Seu código fonte é sustentável?Seu código fonte é sustentável?
Seu código fonte é sustentável?Isaac de Souza
 
Compondo uma plataforma de software com microservices.
Compondo uma plataforma de software com microservices.Compondo uma plataforma de software com microservices.
Compondo uma plataforma de software com microservices.Isaac de Souza
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Isaac de Souza
 
Compondo uma plataforma de software
Compondo uma plataforma de softwareCompondo uma plataforma de software
Compondo uma plataforma de softwareIsaac de Souza
 
A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!Isaac de Souza
 
Desenhando a arquitetura do software!
Desenhando a arquitetura do software!Desenhando a arquitetura do software!
Desenhando a arquitetura do software!Isaac de Souza
 
Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...Isaac de Souza
 
Microservices em Python. Como estamos construindo a maior plataforma Agro do ...
Microservices em Python. Como estamos construindo a maior plataforma Agro do ...Microservices em Python. Como estamos construindo a maior plataforma Agro do ...
Microservices em Python. Como estamos construindo a maior plataforma Agro do ...Isaac de Souza
 
A multiplicação dos devs!
A multiplicação dos devs!A multiplicação dos devs!
A multiplicação dos devs!Isaac de Souza
 
É hora de pensar em soluções portáveis na cloud!
É hora de pensar em soluções portáveis na cloud!É hora de pensar em soluções portáveis na cloud!
É hora de pensar em soluções portáveis na cloud!Isaac de Souza
 
Cloud computing, quais vantagens reais?
Cloud computing, quais vantagens reais?Cloud computing, quais vantagens reais?
Cloud computing, quais vantagens reais?Isaac de Souza
 
Maior performance no seu sistema com o uso adequado de orm em rails
Maior performance no seu sistema com o uso adequado de orm em railsMaior performance no seu sistema com o uso adequado de orm em rails
Maior performance no seu sistema com o uso adequado de orm em railsIsaac de Souza
 

Mais de Isaac de Souza (14)

Sua solução escala? Testes de Stress e APMs podem responder.
Sua solução escala? Testes de Stress e APMs podem responder.Sua solução escala? Testes de Stress e APMs podem responder.
Sua solução escala? Testes de Stress e APMs podem responder.
 
Seu código fonte é sustentável?
Seu código fonte é sustentável?Seu código fonte é sustentável?
Seu código fonte é sustentável?
 
Compondo uma plataforma de software com microservices.
Compondo uma plataforma de software com microservices.Compondo uma plataforma de software com microservices.
Compondo uma plataforma de software com microservices.
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
 
Compondo uma plataforma de software
Compondo uma plataforma de softwareCompondo uma plataforma de software
Compondo uma plataforma de software
 
A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!
 
Desenhando a arquitetura do software!
Desenhando a arquitetura do software!Desenhando a arquitetura do software!
Desenhando a arquitetura do software!
 
Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...
 
Microservices em Python. Como estamos construindo a maior plataforma Agro do ...
Microservices em Python. Como estamos construindo a maior plataforma Agro do ...Microservices em Python. Como estamos construindo a maior plataforma Agro do ...
Microservices em Python. Como estamos construindo a maior plataforma Agro do ...
 
A multiplicação dos devs!
A multiplicação dos devs!A multiplicação dos devs!
A multiplicação dos devs!
 
É hora de pensar em soluções portáveis na cloud!
É hora de pensar em soluções portáveis na cloud!É hora de pensar em soluções portáveis na cloud!
É hora de pensar em soluções portáveis na cloud!
 
Cloud computing, quais vantagens reais?
Cloud computing, quais vantagens reais?Cloud computing, quais vantagens reais?
Cloud computing, quais vantagens reais?
 
Maior performance no seu sistema com o uso adequado de orm em rails
Maior performance no seu sistema com o uso adequado de orm em railsMaior performance no seu sistema com o uso adequado de orm em rails
Maior performance no seu sistema com o uso adequado de orm em rails
 

Melhorando dependências e ambientes com containers