SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Projeto Estaleiro - O
caminho para o uso de
Kubernetes no Governo
Federal
XaaS e a fábrica de salsichas
● XaaS - Qualquer coisa como serviço
● IaaS - Entra especificação, sai máquina
● PaaS - Entra código, sai app server rodando
● Por trás de qualquer coisa as a Service, existe um motor de
orquestração decidindo onde, quando e como o serviço será
provisionado
Alguns conceitos
Container é apenas um
processo em execução no
Sistema Operacional
Containers
Container é apenas uma aplicação
rodando em um servidor e expondo
seus serviços em uma porta
qualquer
Containers
SERPRO e a fábrica de aviões
● +- 5 mil Servidores
● Mainframes
● Muitos e muitos serviços críticos
● Muitas e muitas tecnologias
● Muitas questões: Agilidade em entrega, performance das
aplicações, segurança, diversas configurações necessárias
SERPRO e a fábrica de aviões
● Durante o dia: Troca de um dos motores
○ Avião desbalanceado!! Problema em vôo !!
● Desenvolvimento: O avião está com problemas!!!
○ Troca aquela peça lá e vê se resolve.
● Comandante do vôo: Emergência declarada. Checklist XPTO
para pouso de emergência!!
SERPRO e a fábrica de aviões
Nós construímos o barco
que leva o seu container
Projeto Estaleiro
Projeto Estaleiro
● Docker - Engine para execução de containers
○ Um orquestrador, que recebe especificação e cria
mecanismos de isolamento de processos no servidor
● Kubernetes
○ Um orquestrador de containers :)
○ E outras coisas a mais ;)
Nosso Foco
Projeto Estaleiro
● Integrações com o mundo tradicional
○ Bancos proprietários, Mainframe, SFTP…
● Aplicações antigas no novo mundo
○ Armazenamento local de arquivos
○ Aplicações com persistência de sessão - Ex.: JSF
○ Aplicações em linguagens não suportadas - Ex.: .NET
E os problemas do mundo real ?
● Boas práticas de desenvolvimento para aplicações cloud native.
● Aplicável aos desenvolvedores de soluções para o novo mundo.
● Aplicável aos engenheiros de operação dessas aplicações
● Aplicável também à infraestrutura desses serviços
○ CoreOS - Cloudinit, log driver remoto, etc
12 Factors
● Códigos no GIT
● Do GIT a publicação só ocorre via CI
● Gitlab tem um plugin de publicação no Kubernetes
● Para o Projeto Estaleiro - API própria, com CLI própria usada
nos Runners
● github.com/estaleiro/12factors
Factor 1 - Code Base
Factor 1 - Code Base
● PaaS - Para cada plataforma, existe a possibilidade de
declaração de dependências
● Imagem final construída à partir de dependências + a aplicação
em si - Source to Image
● Não fazemos a compilação da aplicação, logo aplicações Java
devem utilizar Maven, Gradle, etc.
Factor 2 - Dependências
● Mesma imagem, diferentes configurações
● Para cada ambiente, integrações diferentes (mas a mesma
imagem)
● Kubernetes: Objeto de deployment
○ Especificar a imagem, usar as configurações definidas em
variáveis de ambiente
Factor 3 - Configurações
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: app-katz-dev
spec:
replicas: 1
template:
metadata:
labels:
app: app-katz-dev
spec:
containers:
- name: app-katz
image: rpkatz/app-katz
ports:
- containerPort: 8080
env:
- name: MENSAGEM
value: "Olá! Esse é o ambiente de desenvolvimento"
Factor 3 - Configurações
Factor 3 - Configurações
Demonstração
● Toda integração deve estar declarada
● Como forçar?
Factor 4 - Attached Resources / Serviços de apoio
● Toda integração deve estar declarada
● Como forçar?
○ Regras de firewall na saída
○ Calico - Stack de rede para o Kubernetes
○ Necessário declarar integrações como anotação, para que
as regras sejam abertas!
● Documentação de integrações:
Factor 4 - Attached Resources / Serviços de apoio
● Existe um container base para cada plataforma
● O processo de publicação cria um novo container com a
imagem base (jboss, php, python) + dependências + aplicação
compilada (Factor 2)
● Nova imagem: projeto/aplicacao:versao
● Essa versão pode (e deve) ser usada em todo o ciclo de vida do
ambiente
Factor 5 - Build, Release, Run
● Se você armazena estado, como sua aplicação será escalável?
● Ahm, mas eu preciso de afinidade de sessão...
Factor 6 - Processos stateless
● Se você armazena estado, como sua aplicação será escalável?
● Ahm, mas eu preciso de afinidade de sessão…
● Mas eu preciso MUITO de afinidade de sessão…
● https://github.com/kubernetes/ingress/pull/258
● Mas...por sua conta e risco, veja o problema a seguir...
Factor 6 - Processos stateless
Factor 6 - Processos stateless
Demonstração
● Além do PR no Ingress, outras abordagens para tratar esse
fator:
○ Redis como plataforma, para controle de sessão (inclusive
para .NET Core!)
○ Evitar usar abordagens que dependem de sessão (apps com
JSF)
Factor 6 - Processos stateless
● A aplicação tem sua própria porta e não depende de um
serviço/plataforma externa para isso.
● Cada aplicação / deployment isolada, com sua própria porta
● Bom: Apps Java com Jetty, Apps Go com seu HTTP Server,
.NET Core com sua porta, Apps J2EE com Wildfly Swarm
● Não tão bom... Usar Wildfly completo, Apache + PHP, etc
● Para esse, ainda não temos uma solução em uso :(
Factor 7 - Port Binding
● App de demonstração dessa palestra:
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", logRequest(http.DefaultServeMux))
}
● Código completo em http://github.com/Estaleiro/12factors
Factor 7 - Port Binding
● A aplicação deve estar preparada para concorrência e
elasticidade
● Kubernetes permite o crescimento horizontal, conforme uso de
CPU, e as aplicações devem estar preparadas para isso!
○ Horizontal Pod Autoscaling (HPA)
Factor 8 - Concorrência e Elasticidade
Factor 8 - Concorrência e elasticidade
● Container morreu? Cria de novo!
○ Morre rápido, sobe rápido
● SRE Book (Google) - Manter 100% de disponibilidade é MUITO
CARO! - É mais barato manter a disponibilidade de 99.999% e
assumir que as coisas podem (e vão!) falhar.
● Deployment Health Check
● Ex.: Aplicação (em produção) morre 400x por semana e tem 0
incidentes!
Factor 9 - Descartabilidade
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: app-katz-dev
spec:
replicas: 1
template:
spec:
containers:
- name: app-katz
image: rpkatz/app-katz
livenessProbe:
httpGet:
path: /factor9
port: 8080
initialDelaySeconds: 3
periodSeconds: 3
ports:
- containerPort: 80
Factor 9 - Descartabilidade
Factor 9 - Descartabilidade
Demonstração
● “No meu ambiente funciona!”
● Solução: O cluster K8S é o mesmo, de Dev a Prod
● Mesma build, diferentes diretivas
○ Pode rodar na sua estação se quiser!
Factor 10 - Paridade Dev/Prod
● Graylog!!!
● Em toda engine Docker, subimos ela com o Gelf Log Driver
● Graylog extrai e trata campos, gera alertas baseados em
comportamento
● Tratamento de erros: Aplicação deve fazer
● Erros e stack traces == Inferno
○ Solução: Sentry
Factor 11 - Logs e fluxos de evento
● Mesma base de código, container diferente para isso
● Pode ser por exemplo um ‘Short running’ Container que suba,
execute as tarefas administrativas e finalize, mas com a mesma
base de código.
● Ex.: Carga de um banco de dados
● Kubernetes Jobs para isso
○ Ou ainda um kubectl exec em algum container, e algum
comando especial (não é o ideal!)
Factor 12 - Processos Administrativos
● OS DOIS!!!
● Flexibilidade - Demandas não aderentes ao 12 Factor tem valor,
geram conhecimento (e código!) e devem ser tratadas
● Ex.: Discussão de evolução de plataformas de produção do
Wildfly para aplicações auto contidas (Factor 7)
● Risco x Valor - Containers não são (e nem tem como ser)
solução para tudo, mas não devemos desistir tão facilmente.
Você quer ter razão ou ser feliz??
● https://12factor.net/pt_br/
● https://github.com/gomex/docker-para-desenvolvedores
● https://docs.gitlab.com/ce/user/project/integrations/kubernetes.ht
ml
● Kubernetes Docs
Referências
Dúvidas?
Agradecemos pela atenção.
Ricardo Pchevuzinske Katz
ricardo.katz@serpro.gov.br
@katzsp
github.com/Estaleiro

Mais conteúdo relacionado

Mais procurados

Estendendo o kubernetes
Estendendo o kubernetesEstendendo o kubernetes
Estendendo o kubernetesRicardo Katz
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Renato Groff
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaiMasters
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Renato Groff
 
Kubecon EU 2019 Remarks
Kubecon EU 2019 RemarksKubecon EU 2019 Remarks
Kubecon EU 2019 RemarksRicardo Katz
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
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
 
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresasDockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresasRafael Gomes
 
DevOps na prática - Savanna Denega
DevOps na prática - Savanna DenegaDevOps na prática - Savanna Denega
DevOps na prática - Savanna DenegaSavanna Denega
 
Programando interfaces reativas com Xamarin e Reactive UI
Programando interfaces reativas com Xamarin e Reactive UIProgramando interfaces reativas com Xamarin e Reactive UI
Programando interfaces reativas com Xamarin e Reactive UIMahmoud Ali Neto
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Renato Groff
 
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...tdc-globalcode
 
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Renato Groff
 
TDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unhaTDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unhatdc-globalcode
 
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers tdc-globalcode
 
Cansei de trabalho manual, quero automatizar tudo!
Cansei de trabalho manual, quero automatizar tudo!Cansei de trabalho manual, quero automatizar tudo!
Cansei de trabalho manual, quero automatizar tudo!Rafael Gomes
 
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelosEvandro Silvestre
 
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Renato Groff
 

Mais procurados (20)

Estendendo o kubernetes
Estendendo o kubernetesEstendendo o kubernetes
Estendendo o kubernetes
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
 
Foreman como provisionador
Foreman como provisionadorForeman como provisionador
Foreman como provisionador
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
 
Kubecon EU 2019 Remarks
Kubecon EU 2019 RemarksKubecon EU 2019 Remarks
Kubecon EU 2019 Remarks
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
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
 
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresasDockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
 
DevOps na prática - Savanna Denega
DevOps na prática - Savanna DenegaDevOps na prática - Savanna Denega
DevOps na prática - Savanna Denega
 
Programando interfaces reativas com Xamarin e Reactive UI
Programando interfaces reativas com Xamarin e Reactive UIProgramando interfaces reativas com Xamarin e Reactive UI
Programando interfaces reativas com Xamarin e Reactive UI
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
 
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
 
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
 
TDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unhaTDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unha
 
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
 
Cansei de trabalho manual, quero automatizar tudo!
Cansei de trabalho manual, quero automatizar tudo!Cansei de trabalho manual, quero automatizar tudo!
Cansei de trabalho manual, quero automatizar tudo!
 
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
#noOps?? Transcendendo o DevOps pelo caminho de tijolos (não muito) amarelos
 
Guday netflix oss
Guday netflix ossGuday netflix oss
Guday netflix oss
 
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
 

Semelhante a TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team at - Projeto Estaleiro - O caminho para o uso de Kubernetes no Governo Federal

12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com DockerWellington Silva
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsRafael Salerno de Oliveira
 
The twelve factor apps and openruko
The twelve factor apps and openrukoThe twelve factor apps and openruko
The twelve factor apps and openrukoÉverton Ribeiro
 
Resumo Sessão Técnica "ArcGIS 10.1 Desktop Developer Migration Topics" do ESR...
Resumo Sessão Técnica "ArcGIS 10.1 Desktop Developer Migration Topics" do ESR...Resumo Sessão Técnica "ArcGIS 10.1 Desktop Developer Migration Topics" do ESR...
Resumo Sessão Técnica "ArcGIS 10.1 Desktop Developer Migration Topics" do ESR...Bruno Caimar
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?tdc-globalcode
 
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...tdc-globalcode
 
Google App Engine e PHP
Google App Engine e PHPGoogle App Engine e PHP
Google App Engine e PHPLuiz Messias
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...tdc-globalcode
 
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)Wellington Silva
 
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...iMasters
 
Criando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumElias Nogueira
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao TerraformLeandro Silva
 
Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serproRicardo Katz
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android EmbarcadoOdair Sousa
 
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...tdc-globalcode
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018Graziella Bonizi
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Android DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoAndroid DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoiMasters
 

Semelhante a TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team at - Projeto Estaleiro - O caminho para o uso de Kubernetes no Governo Federal (20)

12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Putting a-heat-with-thermostat
Putting a-heat-with-thermostatPutting a-heat-with-thermostat
Putting a-heat-with-thermostat
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
The twelve factor apps and openruko
The twelve factor apps and openrukoThe twelve factor apps and openruko
The twelve factor apps and openruko
 
Resumo Sessão Técnica "ArcGIS 10.1 Desktop Developer Migration Topics" do ESR...
Resumo Sessão Técnica "ArcGIS 10.1 Desktop Developer Migration Topics" do ESR...Resumo Sessão Técnica "ArcGIS 10.1 Desktop Developer Migration Topics" do ESR...
Resumo Sessão Técnica "ArcGIS 10.1 Desktop Developer Migration Topics" do ESR...
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
 
Google App Engine e PHP
Google App Engine e PHPGoogle App Engine e PHP
Google App Engine e PHP
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
 
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
 
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
 
Curso de Grails
Curso de GrailsCurso de Grails
Curso de Grails
 
Criando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com Appium
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serpro
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android Embarcado
 
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Android DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoAndroid DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimento
 

Mais de tdc-globalcode

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadetdc-globalcode
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...tdc-globalcode
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucessotdc-globalcode
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPAtdc-globalcode
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinotdc-globalcode
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...tdc-globalcode
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicestdc-globalcode
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publicatdc-globalcode
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#tdc-globalcode
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocustdc-globalcode
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?tdc-globalcode
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golangtdc-globalcode
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QAtdc-globalcode
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciatdc-globalcode
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Servicetdc-globalcode
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETtdc-globalcode
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8tdc-globalcode
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...tdc-globalcode
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#tdc-globalcode
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Coretdc-globalcode
 

Mais de tdc-globalcode (20)

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 

Último

Estudo Dirigido de Literatura / Terceira Série do E.M.
Estudo Dirigido de Literatura / Terceira Série do E.M.Estudo Dirigido de Literatura / Terceira Série do E.M.
Estudo Dirigido de Literatura / Terceira Série do E.M.Paula Meyer Piagentini
 
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptx
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptxEVANGELISMO É MISSÕES ATUALIZADO 2024.pptx
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptxHenriqueLuciano2
 
Jogo de Revisão Terceira Série (Primeiro Trimestre)
Jogo de Revisão Terceira Série (Primeiro Trimestre)Jogo de Revisão Terceira Série (Primeiro Trimestre)
Jogo de Revisão Terceira Série (Primeiro Trimestre)Paula Meyer Piagentini
 
Com base no excerto acima, escreva um texto explicando como a estrutura socia...
Com base no excerto acima, escreva um texto explicando como a estrutura socia...Com base no excerto acima, escreva um texto explicando como a estrutura socia...
Com base no excerto acima, escreva um texto explicando como a estrutura socia...azulassessoria9
 
Free-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptxFree-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptxkarinasantiago54
 
A alimentação na Idade Média era um mosaico de contrastes. Para a elite, banq...
A alimentação na Idade Média era um mosaico de contrastes. Para a elite, banq...A alimentação na Idade Média era um mosaico de contrastes. Para a elite, banq...
A alimentação na Idade Média era um mosaico de contrastes. Para a elite, banq...azulassessoria9
 
Poema em homenagem a Escola Santa Maria, pelos seus 37 anos.
Poema em homenagem a Escola Santa Maria, pelos seus 37 anos.Poema em homenagem a Escola Santa Maria, pelos seus 37 anos.
Poema em homenagem a Escola Santa Maria, pelos seus 37 anos.Mary Alvarenga
 
Livro de bio celular e molecular Junqueira e Carneiro.pdf
Livro de bio celular e molecular Junqueira e Carneiro.pdfLivro de bio celular e molecular Junqueira e Carneiro.pdf
Livro de bio celular e molecular Junqueira e Carneiro.pdfRafaela Vieira
 
CAMINHOS PARA A PROMOÇÃO DA INLUSÃO E VIDA INDEPENDENTE
CAMINHOS PARA  A PROMOÇÃO DA INLUSÃO E VIDA INDEPENDENTECAMINHOS PARA  A PROMOÇÃO DA INLUSÃO E VIDA INDEPENDENTE
CAMINHOS PARA A PROMOÇÃO DA INLUSÃO E VIDA INDEPENDENTEJoaquim Colôa
 
Jogo de Revisão Segunda Série (Primeiro Trimestre)
Jogo de Revisão Segunda Série (Primeiro Trimestre)Jogo de Revisão Segunda Série (Primeiro Trimestre)
Jogo de Revisão Segunda Série (Primeiro Trimestre)Paula Meyer Piagentini
 
Ler e compreender 7º ano - Aula 7 - 1º Bimestre
Ler e compreender 7º ano -  Aula 7 - 1º BimestreLer e compreender 7º ano -  Aula 7 - 1º Bimestre
Ler e compreender 7º ano - Aula 7 - 1º BimestreProfaCintiaDosSantos
 
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdf
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdfO Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdf
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdfQueleLiberato
 
UM CURSO DE INFORMATICA BASICA PARA IDOSOS
UM CURSO DE INFORMATICA BASICA PARA IDOSOSUM CURSO DE INFORMATICA BASICA PARA IDOSOS
UM CURSO DE INFORMATICA BASICA PARA IDOSOSdjgsantos1981
 
Jogo de Revisão Primeira Série (Primeiro Trimestre)
Jogo de Revisão Primeira  Série (Primeiro Trimestre)Jogo de Revisão Primeira  Série (Primeiro Trimestre)
Jogo de Revisão Primeira Série (Primeiro Trimestre)Paula Meyer Piagentini
 
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxPOETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxJMTCS
 
A FORMAÇÃO DO SÍMBOLO NA CRIANÇA -- JEAN PIAGET -- 2013 -- 6ced7f10b1a00cd395...
A FORMAÇÃO DO SÍMBOLO NA CRIANÇA -- JEAN PIAGET -- 2013 -- 6ced7f10b1a00cd395...A FORMAÇÃO DO SÍMBOLO NA CRIANÇA -- JEAN PIAGET -- 2013 -- 6ced7f10b1a00cd395...
A FORMAÇÃO DO SÍMBOLO NA CRIANÇA -- JEAN PIAGET -- 2013 -- 6ced7f10b1a00cd395...DominiqueFaria2
 
Estudo Dirigido de Literatura / Primeira Série do E.M.
Estudo Dirigido de Literatura / Primeira Série do E.M.Estudo Dirigido de Literatura / Primeira Série do E.M.
Estudo Dirigido de Literatura / Primeira Série do E.M.Paula Meyer Piagentini
 
Sistema de Bibliotecas UCS - A descoberta da terra
Sistema de Bibliotecas UCS  - A descoberta da terraSistema de Bibliotecas UCS  - A descoberta da terra
Sistema de Bibliotecas UCS - A descoberta da terraBiblioteca UCS
 

Último (20)

Estudo Dirigido de Literatura / Terceira Série do E.M.
Estudo Dirigido de Literatura / Terceira Série do E.M.Estudo Dirigido de Literatura / Terceira Série do E.M.
Estudo Dirigido de Literatura / Terceira Série do E.M.
 
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptx
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptxEVANGELISMO É MISSÕES ATUALIZADO 2024.pptx
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptx
 
Jogo de Revisão Terceira Série (Primeiro Trimestre)
Jogo de Revisão Terceira Série (Primeiro Trimestre)Jogo de Revisão Terceira Série (Primeiro Trimestre)
Jogo de Revisão Terceira Série (Primeiro Trimestre)
 
Com base no excerto acima, escreva um texto explicando como a estrutura socia...
Com base no excerto acima, escreva um texto explicando como a estrutura socia...Com base no excerto acima, escreva um texto explicando como a estrutura socia...
Com base no excerto acima, escreva um texto explicando como a estrutura socia...
 
Free-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptxFree-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptx
 
A alimentação na Idade Média era um mosaico de contrastes. Para a elite, banq...
A alimentação na Idade Média era um mosaico de contrastes. Para a elite, banq...A alimentação na Idade Média era um mosaico de contrastes. Para a elite, banq...
A alimentação na Idade Média era um mosaico de contrastes. Para a elite, banq...
 
Poema em homenagem a Escola Santa Maria, pelos seus 37 anos.
Poema em homenagem a Escola Santa Maria, pelos seus 37 anos.Poema em homenagem a Escola Santa Maria, pelos seus 37 anos.
Poema em homenagem a Escola Santa Maria, pelos seus 37 anos.
 
Livro de bio celular e molecular Junqueira e Carneiro.pdf
Livro de bio celular e molecular Junqueira e Carneiro.pdfLivro de bio celular e molecular Junqueira e Carneiro.pdf
Livro de bio celular e molecular Junqueira e Carneiro.pdf
 
CAMINHOS PARA A PROMOÇÃO DA INLUSÃO E VIDA INDEPENDENTE
CAMINHOS PARA  A PROMOÇÃO DA INLUSÃO E VIDA INDEPENDENTECAMINHOS PARA  A PROMOÇÃO DA INLUSÃO E VIDA INDEPENDENTE
CAMINHOS PARA A PROMOÇÃO DA INLUSÃO E VIDA INDEPENDENTE
 
Jogo de Revisão Segunda Série (Primeiro Trimestre)
Jogo de Revisão Segunda Série (Primeiro Trimestre)Jogo de Revisão Segunda Série (Primeiro Trimestre)
Jogo de Revisão Segunda Série (Primeiro Trimestre)
 
Ler e compreender 7º ano - Aula 7 - 1º Bimestre
Ler e compreender 7º ano -  Aula 7 - 1º BimestreLer e compreender 7º ano -  Aula 7 - 1º Bimestre
Ler e compreender 7º ano - Aula 7 - 1º Bimestre
 
Os Ratos - Dyonelio Machado FUVEST 2025
Os Ratos  -  Dyonelio Machado  FUVEST 2025Os Ratos  -  Dyonelio Machado  FUVEST 2025
Os Ratos - Dyonelio Machado FUVEST 2025
 
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdf
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdfO Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdf
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdf
 
UM CURSO DE INFORMATICA BASICA PARA IDOSOS
UM CURSO DE INFORMATICA BASICA PARA IDOSOSUM CURSO DE INFORMATICA BASICA PARA IDOSOS
UM CURSO DE INFORMATICA BASICA PARA IDOSOS
 
“O AMANHÃ EXIGE O MELHOR DE HOJE” _
“O AMANHÃ EXIGE O MELHOR DE HOJE”       _“O AMANHÃ EXIGE O MELHOR DE HOJE”       _
“O AMANHÃ EXIGE O MELHOR DE HOJE” _
 
Jogo de Revisão Primeira Série (Primeiro Trimestre)
Jogo de Revisão Primeira  Série (Primeiro Trimestre)Jogo de Revisão Primeira  Série (Primeiro Trimestre)
Jogo de Revisão Primeira Série (Primeiro Trimestre)
 
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxPOETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
 
A FORMAÇÃO DO SÍMBOLO NA CRIANÇA -- JEAN PIAGET -- 2013 -- 6ced7f10b1a00cd395...
A FORMAÇÃO DO SÍMBOLO NA CRIANÇA -- JEAN PIAGET -- 2013 -- 6ced7f10b1a00cd395...A FORMAÇÃO DO SÍMBOLO NA CRIANÇA -- JEAN PIAGET -- 2013 -- 6ced7f10b1a00cd395...
A FORMAÇÃO DO SÍMBOLO NA CRIANÇA -- JEAN PIAGET -- 2013 -- 6ced7f10b1a00cd395...
 
Estudo Dirigido de Literatura / Primeira Série do E.M.
Estudo Dirigido de Literatura / Primeira Série do E.M.Estudo Dirigido de Literatura / Primeira Série do E.M.
Estudo Dirigido de Literatura / Primeira Série do E.M.
 
Sistema de Bibliotecas UCS - A descoberta da terra
Sistema de Bibliotecas UCS  - A descoberta da terraSistema de Bibliotecas UCS  - A descoberta da terra
Sistema de Bibliotecas UCS - A descoberta da terra
 

TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team at - Projeto Estaleiro - O caminho para o uso de Kubernetes no Governo Federal

  • 1. Projeto Estaleiro - O caminho para o uso de Kubernetes no Governo Federal
  • 2. XaaS e a fábrica de salsichas
  • 3. ● XaaS - Qualquer coisa como serviço ● IaaS - Entra especificação, sai máquina ● PaaS - Entra código, sai app server rodando ● Por trás de qualquer coisa as a Service, existe um motor de orquestração decidindo onde, quando e como o serviço será provisionado Alguns conceitos
  • 4. Container é apenas um processo em execução no Sistema Operacional Containers
  • 5.
  • 6. Container é apenas uma aplicação rodando em um servidor e expondo seus serviços em uma porta qualquer Containers
  • 7.
  • 8. SERPRO e a fábrica de aviões
  • 9. ● +- 5 mil Servidores ● Mainframes ● Muitos e muitos serviços críticos ● Muitas e muitas tecnologias ● Muitas questões: Agilidade em entrega, performance das aplicações, segurança, diversas configurações necessárias SERPRO e a fábrica de aviões
  • 10. ● Durante o dia: Troca de um dos motores ○ Avião desbalanceado!! Problema em vôo !! ● Desenvolvimento: O avião está com problemas!!! ○ Troca aquela peça lá e vê se resolve. ● Comandante do vôo: Emergência declarada. Checklist XPTO para pouso de emergência!! SERPRO e a fábrica de aviões
  • 11.
  • 12. Nós construímos o barco que leva o seu container Projeto Estaleiro
  • 14. ● Docker - Engine para execução de containers ○ Um orquestrador, que recebe especificação e cria mecanismos de isolamento de processos no servidor ● Kubernetes ○ Um orquestrador de containers :) ○ E outras coisas a mais ;) Nosso Foco
  • 16. ● Integrações com o mundo tradicional ○ Bancos proprietários, Mainframe, SFTP… ● Aplicações antigas no novo mundo ○ Armazenamento local de arquivos ○ Aplicações com persistência de sessão - Ex.: JSF ○ Aplicações em linguagens não suportadas - Ex.: .NET E os problemas do mundo real ?
  • 17. ● Boas práticas de desenvolvimento para aplicações cloud native. ● Aplicável aos desenvolvedores de soluções para o novo mundo. ● Aplicável aos engenheiros de operação dessas aplicações ● Aplicável também à infraestrutura desses serviços ○ CoreOS - Cloudinit, log driver remoto, etc 12 Factors
  • 18. ● Códigos no GIT ● Do GIT a publicação só ocorre via CI ● Gitlab tem um plugin de publicação no Kubernetes ● Para o Projeto Estaleiro - API própria, com CLI própria usada nos Runners ● github.com/estaleiro/12factors Factor 1 - Code Base
  • 19. Factor 1 - Code Base
  • 20. ● PaaS - Para cada plataforma, existe a possibilidade de declaração de dependências ● Imagem final construída à partir de dependências + a aplicação em si - Source to Image ● Não fazemos a compilação da aplicação, logo aplicações Java devem utilizar Maven, Gradle, etc. Factor 2 - Dependências
  • 21. ● Mesma imagem, diferentes configurações ● Para cada ambiente, integrações diferentes (mas a mesma imagem) ● Kubernetes: Objeto de deployment ○ Especificar a imagem, usar as configurações definidas em variáveis de ambiente Factor 3 - Configurações
  • 22. apiVersion: extensions/v1beta1 kind: Deployment metadata: name: app-katz-dev spec: replicas: 1 template: metadata: labels: app: app-katz-dev spec: containers: - name: app-katz image: rpkatz/app-katz ports: - containerPort: 8080 env: - name: MENSAGEM value: "Olá! Esse é o ambiente de desenvolvimento" Factor 3 - Configurações
  • 23. Factor 3 - Configurações Demonstração
  • 24. ● Toda integração deve estar declarada ● Como forçar? Factor 4 - Attached Resources / Serviços de apoio
  • 25.
  • 26. ● Toda integração deve estar declarada ● Como forçar? ○ Regras de firewall na saída ○ Calico - Stack de rede para o Kubernetes ○ Necessário declarar integrações como anotação, para que as regras sejam abertas! ● Documentação de integrações: Factor 4 - Attached Resources / Serviços de apoio
  • 27. ● Existe um container base para cada plataforma ● O processo de publicação cria um novo container com a imagem base (jboss, php, python) + dependências + aplicação compilada (Factor 2) ● Nova imagem: projeto/aplicacao:versao ● Essa versão pode (e deve) ser usada em todo o ciclo de vida do ambiente Factor 5 - Build, Release, Run
  • 28. ● Se você armazena estado, como sua aplicação será escalável? ● Ahm, mas eu preciso de afinidade de sessão... Factor 6 - Processos stateless
  • 29.
  • 30. ● Se você armazena estado, como sua aplicação será escalável? ● Ahm, mas eu preciso de afinidade de sessão… ● Mas eu preciso MUITO de afinidade de sessão… ● https://github.com/kubernetes/ingress/pull/258 ● Mas...por sua conta e risco, veja o problema a seguir... Factor 6 - Processos stateless
  • 31. Factor 6 - Processos stateless Demonstração
  • 32. ● Além do PR no Ingress, outras abordagens para tratar esse fator: ○ Redis como plataforma, para controle de sessão (inclusive para .NET Core!) ○ Evitar usar abordagens que dependem de sessão (apps com JSF) Factor 6 - Processos stateless
  • 33. ● A aplicação tem sua própria porta e não depende de um serviço/plataforma externa para isso. ● Cada aplicação / deployment isolada, com sua própria porta ● Bom: Apps Java com Jetty, Apps Go com seu HTTP Server, .NET Core com sua porta, Apps J2EE com Wildfly Swarm ● Não tão bom... Usar Wildfly completo, Apache + PHP, etc ● Para esse, ainda não temos uma solução em uso :( Factor 7 - Port Binding
  • 34. ● App de demonstração dessa palestra: func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", logRequest(http.DefaultServeMux)) } ● Código completo em http://github.com/Estaleiro/12factors Factor 7 - Port Binding
  • 35. ● A aplicação deve estar preparada para concorrência e elasticidade ● Kubernetes permite o crescimento horizontal, conforme uso de CPU, e as aplicações devem estar preparadas para isso! ○ Horizontal Pod Autoscaling (HPA) Factor 8 - Concorrência e Elasticidade
  • 36. Factor 8 - Concorrência e elasticidade
  • 37. ● Container morreu? Cria de novo! ○ Morre rápido, sobe rápido ● SRE Book (Google) - Manter 100% de disponibilidade é MUITO CARO! - É mais barato manter a disponibilidade de 99.999% e assumir que as coisas podem (e vão!) falhar. ● Deployment Health Check ● Ex.: Aplicação (em produção) morre 400x por semana e tem 0 incidentes! Factor 9 - Descartabilidade
  • 38. apiVersion: extensions/v1beta1 kind: Deployment metadata: name: app-katz-dev spec: replicas: 1 template: spec: containers: - name: app-katz image: rpkatz/app-katz livenessProbe: httpGet: path: /factor9 port: 8080 initialDelaySeconds: 3 periodSeconds: 3 ports: - containerPort: 80 Factor 9 - Descartabilidade
  • 39. Factor 9 - Descartabilidade Demonstração
  • 40. ● “No meu ambiente funciona!” ● Solução: O cluster K8S é o mesmo, de Dev a Prod ● Mesma build, diferentes diretivas ○ Pode rodar na sua estação se quiser! Factor 10 - Paridade Dev/Prod
  • 41. ● Graylog!!! ● Em toda engine Docker, subimos ela com o Gelf Log Driver ● Graylog extrai e trata campos, gera alertas baseados em comportamento ● Tratamento de erros: Aplicação deve fazer ● Erros e stack traces == Inferno ○ Solução: Sentry Factor 11 - Logs e fluxos de evento
  • 42. ● Mesma base de código, container diferente para isso ● Pode ser por exemplo um ‘Short running’ Container que suba, execute as tarefas administrativas e finalize, mas com a mesma base de código. ● Ex.: Carga de um banco de dados ● Kubernetes Jobs para isso ○ Ou ainda um kubectl exec em algum container, e algum comando especial (não é o ideal!) Factor 12 - Processos Administrativos
  • 43. ● OS DOIS!!! ● Flexibilidade - Demandas não aderentes ao 12 Factor tem valor, geram conhecimento (e código!) e devem ser tratadas ● Ex.: Discussão de evolução de plataformas de produção do Wildfly para aplicações auto contidas (Factor 7) ● Risco x Valor - Containers não são (e nem tem como ser) solução para tudo, mas não devemos desistir tão facilmente. Você quer ter razão ou ser feliz??
  • 44. ● https://12factor.net/pt_br/ ● https://github.com/gomex/docker-para-desenvolvedores ● https://docs.gitlab.com/ce/user/project/integrations/kubernetes.ht ml ● Kubernetes Docs Referências
  • 45. Dúvidas? Agradecemos pela atenção. Ricardo Pchevuzinske Katz ricardo.katz@serpro.gov.br @katzsp github.com/Estaleiro

Notas do Editor

  1. Estaleiro: PaaS, STaaS, DBaaS, MaaS, etc