SlideShare uma empresa Scribd logo
1 de 30
The Digital Platform
Fundada em 2015 Sede em São
Paulo/Brasil e
Braga/Portugal
Desenvolvimento ágil e referência
em transformação digital
QUICK FACTS
Principais Clientes e Cases
BIO
CTO na Platform Builders, com mais de 18
anos de experiência em desenvolvimento e
arquitetura de software, devops e
infraestrutura cloud, nos últimos 6 anos
estive mais focado em arquitetura de
software, cloud e devops, tive oportunidades
de trabalhar em várias empresas/projetos
bacanas, sendo eles, Amil, Alelo, Cielo,
Redecard (RedePay), CI&T, Itaú,
Pernambucanas, Portocred, Conductor,
grupo Iguatemi, meu novo desafio na
Builders é buscar novidades no mercado
Cloud e aplicar em nossos cases/clientes.
AGENDAS
HANDS-ON
● Introdução ao Kubernetes e seus componentes
● Kubernetes + Microservices
● Design de Microservices, boas práticas com Kubernetes
● Ambiente Kubernetes monitorado e escalado vertical e
horizontal
INTRODUÇÃO A KUBERNETES E
SEUS COMPONENTES
TÓPICOS
● Duas características de uma startup
● O que é Kubernetes?
● Arquitetura do Kubernetes e seus componentes
● Quando usar Kubernetes?
● Instalando Kubernetes
● Conhecendo na prática o funcionamento de seus
componentes
● Dicas
REPETÍVEL
ESCALÁVEL
e
DUAS CARACTERÍSTICAS DE UMA STARTUP
● Sex a Dom 50K usuários
simultâneos
● 200 servidores sendo usados
● ~300 buscas por segundo
● ~50 pedidos a cada segundo
IFOOD BLACK FRIDAY
APP PERNAMBUCANAS BLACK
FRIDAY E FINAL DE ANO
● ~ 9 Milhoes de requests
(Digital) dias normais
● 15 servidores em dias normais
● ~ 2,5 Milhoes de usuarios App
● ~ 15 Milhoes de requests
(Digital)
● 22 servidores black friday e
final de ano
FRONT E BACKEND EM UMA STARTUP
O QUE É KUBERNETES?
UM POUCO SOBRE KUBERNETES
ARQUITETURA
● Replicação de containers entre diferentes nós para garantir
alta disponibilidade
● Recuperação automática de container quando ele falha por
qualquer motivo
● Autoescala de container com base em métricas de cluster
Kubernetes, como o consumo de CPU
● Liberação de deployments e rollbacks de deployment
● Descoberta de serviço. Isso é bom para deploying de
microsserviços
● Balanceamento de carga e gerenciamento de volume
● Verificações da saúde do container
● Isolamento de recursos lógicos usando Namespaces
● Controle de recursos e cotas por Namespaces
● Gerenciando tarefas cron
ARQUITETURA
ETCD: é uma base de dados de chave valor. Ele armazena os dados de
configuração do cluster e o estado do cluster;
API Server: fornece API kubernetes usando Jason. Estados de objetos da
API são armazenados no ETCD, e o kubectl usa o API Serve para se
comunicar com o cluster;
Controller Manager: monitora os controladores de replicação e cria os pods
para manter o estado desejado;
Scheduler: é responsável por executar as tarefas de agendamento, como
execução de contêineres nos minions com base na disponibilidade de
recursos.
MASTER
NODE/WORKER/MINION
MASTER/WORKER
NODE/WORKER
QUANDO USAR KUBERNETES?
QUANDO USAR?
INSTALANDO O KUBERNETES
Alguns exemplos de services, deployment e pods
DICAS
● Kubernetes - https://kubernetes.io/
● Github Kubernetes - https://github.com/kubernetes/kubernetes
● CNCF - https://www.cncf.io/
● Play with Kubernetes - https://labs.play-with-k8s.com/
● The hard way - https://linuxacademy.com/containers/training/course/name/kubernetes-the-
hard-way
● Minikube - https://kubernetes.io/docs/setup/minikube/
SEJA UM BUILDER
TEMOS VAGAS!
OBRIGADO!
/valdomiro.bilharvas
/neto-valdomiro-781b9964/
/topornet

Mais conteúdo relacionado

Semelhante a Acelerando sua startup com kubernetes

Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...Renato Groff
 
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
 
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Renato Groff
 
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Renato Groff
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Renato Groff
 
Tendências 2015: Kubernetes & Google Container Engine
Tendências 2015: Kubernetes & Google Container EngineTendências 2015: Kubernetes & Google Container Engine
Tendências 2015: Kubernetes & Google Container EngineDaniel Costa Gimenes
 
Publicando WSO2 API Manager no Kubernetes (Portuguese)
Publicando WSO2 API Manager no Kubernetes (Portuguese)Publicando WSO2 API Manager no Kubernetes (Portuguese)
Publicando WSO2 API Manager no Kubernetes (Portuguese)WSO2
 
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...Renato Groff
 
Construindo aplicações Web escaláveis com Docker, Kubernetes e o Microsoft Az...
Construindo aplicações Web escaláveis com Docker, Kubernetes e o Microsoft Az...Construindo aplicações Web escaláveis com Docker, Kubernetes e o Microsoft Az...
Construindo aplicações Web escaláveis com Docker, Kubernetes e o Microsoft Az...Renato Groff
 
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Renato Groff
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers DockerJosé Barbosa
 
Gerenciando Clusters Kubernetes usando Cluster API, Azure Arc e GitOps
Gerenciando Clusters Kubernetes usando Cluster API, Azure Arc e GitOpsGerenciando Clusters Kubernetes usando Cluster API, Azure Arc e GitOps
Gerenciando Clusters Kubernetes usando Cluster API, Azure Arc e GitOpsJorge Arteiro
 
Latinoware 2019 - Kubernetes a plataforma de grandes ideias
Latinoware 2019 - Kubernetes a plataforma de grandes ideiasLatinoware 2019 - Kubernetes a plataforma de grandes ideias
Latinoware 2019 - Kubernetes a plataforma de grandes ideiasRaul Leite
 
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
 
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...Renato Groff
 
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
 
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...Renato Groff
 
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...Renato Groff
 
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018Renato Groff
 

Semelhante a Acelerando sua startup com kubernetes (20)

Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
 
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 ...
 
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
 
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
 
Tendências 2015: Kubernetes & Google Container Engine
Tendências 2015: Kubernetes & Google Container EngineTendências 2015: Kubernetes & Google Container Engine
Tendências 2015: Kubernetes & Google Container Engine
 
Publicando WSO2 API Manager no Kubernetes (Portuguese)
Publicando WSO2 API Manager no Kubernetes (Portuguese)Publicando WSO2 API Manager no Kubernetes (Portuguese)
Publicando WSO2 API Manager no Kubernetes (Portuguese)
 
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
 
Iniciando com kubernetes
Iniciando com kubernetesIniciando com kubernetes
Iniciando com kubernetes
 
Construindo aplicações Web escaláveis com Docker, Kubernetes e o Microsoft Az...
Construindo aplicações Web escaláveis com Docker, Kubernetes e o Microsoft Az...Construindo aplicações Web escaláveis com Docker, Kubernetes e o Microsoft Az...
Construindo aplicações Web escaláveis com Docker, Kubernetes e o Microsoft Az...
 
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers Docker
 
Gerenciando Clusters Kubernetes usando Cluster API, Azure Arc e GitOps
Gerenciando Clusters Kubernetes usando Cluster API, Azure Arc e GitOpsGerenciando Clusters Kubernetes usando Cluster API, Azure Arc e GitOps
Gerenciando Clusters Kubernetes usando Cluster API, Azure Arc e GitOps
 
Latinoware 2019 - Kubernetes a plataforma de grandes ideias
Latinoware 2019 - Kubernetes a plataforma de grandes ideiasLatinoware 2019 - Kubernetes a plataforma de grandes ideias
Latinoware 2019 - Kubernetes a plataforma de grandes ideias
 
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
 
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
 
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 ...
 
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
 
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
 
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
 

Acelerando sua startup com kubernetes

  • 2.
  • 3.
  • 4. Fundada em 2015 Sede em São Paulo/Brasil e Braga/Portugal Desenvolvimento ágil e referência em transformação digital QUICK FACTS
  • 6.
  • 7.
  • 8. BIO CTO na Platform Builders, com mais de 18 anos de experiência em desenvolvimento e arquitetura de software, devops e infraestrutura cloud, nos últimos 6 anos estive mais focado em arquitetura de software, cloud e devops, tive oportunidades de trabalhar em várias empresas/projetos bacanas, sendo eles, Amil, Alelo, Cielo, Redecard (RedePay), CI&T, Itaú, Pernambucanas, Portocred, Conductor, grupo Iguatemi, meu novo desafio na Builders é buscar novidades no mercado Cloud e aplicar em nossos cases/clientes.
  • 10. HANDS-ON ● Introdução ao Kubernetes e seus componentes ● Kubernetes + Microservices ● Design de Microservices, boas práticas com Kubernetes ● Ambiente Kubernetes monitorado e escalado vertical e horizontal
  • 11. INTRODUÇÃO A KUBERNETES E SEUS COMPONENTES
  • 12. TÓPICOS ● Duas características de uma startup ● O que é Kubernetes? ● Arquitetura do Kubernetes e seus componentes ● Quando usar Kubernetes? ● Instalando Kubernetes ● Conhecendo na prática o funcionamento de seus componentes ● Dicas
  • 14. ● Sex a Dom 50K usuários simultâneos ● 200 servidores sendo usados ● ~300 buscas por segundo ● ~50 pedidos a cada segundo IFOOD BLACK FRIDAY
  • 15. APP PERNAMBUCANAS BLACK FRIDAY E FINAL DE ANO ● ~ 9 Milhoes de requests (Digital) dias normais ● 15 servidores em dias normais ● ~ 2,5 Milhoes de usuarios App ● ~ 15 Milhoes de requests (Digital) ● 22 servidores black friday e final de ano
  • 16. FRONT E BACKEND EM UMA STARTUP
  • 17. O QUE É KUBERNETES?
  • 18. UM POUCO SOBRE KUBERNETES
  • 19. ARQUITETURA ● Replicação de containers entre diferentes nós para garantir alta disponibilidade ● Recuperação automática de container quando ele falha por qualquer motivo ● Autoescala de container com base em métricas de cluster Kubernetes, como o consumo de CPU ● Liberação de deployments e rollbacks de deployment ● Descoberta de serviço. Isso é bom para deploying de microsserviços ● Balanceamento de carga e gerenciamento de volume ● Verificações da saúde do container ● Isolamento de recursos lógicos usando Namespaces ● Controle de recursos e cotas por Namespaces ● Gerenciando tarefas cron
  • 21. ETCD: é uma base de dados de chave valor. Ele armazena os dados de configuração do cluster e o estado do cluster; API Server: fornece API kubernetes usando Jason. Estados de objetos da API são armazenados no ETCD, e o kubectl usa o API Serve para se comunicar com o cluster; Controller Manager: monitora os controladores de replicação e cria os pods para manter o estado desejado; Scheduler: é responsável por executar as tarefas de agendamento, como execução de contêineres nos minions com base na disponibilidade de recursos. MASTER
  • 27. INSTALANDO O KUBERNETES Alguns exemplos de services, deployment e pods
  • 28. DICAS ● Kubernetes - https://kubernetes.io/ ● Github Kubernetes - https://github.com/kubernetes/kubernetes ● CNCF - https://www.cncf.io/ ● Play with Kubernetes - https://labs.play-with-k8s.com/ ● The hard way - https://linuxacademy.com/containers/training/course/name/kubernetes-the- hard-way ● Minikube - https://kubernetes.io/docs/setup/minikube/

Notas do Editor

  1. Agradecimentos: Deus pela oportunidade, Tales da Muvers pelo espaco, Gustavo pela nossas conversas, e voces com a presenca. Brindes, e a cada pergunta e resposta um brinde! 40 minutos e intervalo Explicar a dinamica do evento e no final formulario de respostas.
  2. Ate aqui 10 minutos
  3. Perguntas: Quem e de front, back? Quem e de infra? Quem trabalha com Cloud? Quem conhece ou trabalha com Kubernetes? Alguem sabe porque e conhecido o Kubernetes por k8s?
  4. Ate aqui 5 minutos
  5. Startup é uma empresa jovem com um modelo de negócios repetível e escalável, em um cenário de incertezas e soluções a serem desenvolvidas. Embora não se limite apenas a negócios digitais, uma startup necessita de inovação para não ser considerada uma empresa de modelo tradicional. De fato, startup é um termo que está na moda e empreender virou o sonho de muita gente, tanto no Brasil quanto fora dele. Um erro comum que permeia a definição de startups é se elas são somente empresas de internet. Não necessariamente, elas só são mais frequentes na Internet porque é bem mais barato e facilmente propagável criar uma empresa online do que uma de agronegócio, por exemplo. Há bastante espaço para discussão e interpretação do significado real do que é uma startup. Muitas pessoas dizem que qualquer pequena empresa em seu período inicial pode ser considerada uma startup. Outros defendem que uma startup é uma empresa com custos de manutenção muito baixos, mas que consegue crescer rapidamente e gerar lucros cada vez maiores. Há ainda quem diga que a “tia do cachorro-quente” é uma startup e uma franquia de lanches é uma empresa. Se desmembrando a palavra, chegamos ao ato de iniciar algo, seria todo empreendimento um dia uma startup? A resposta é: não! Existem algumas características que definem esse tipo de empresa que excluem negócios tradicionais. Elas são: modelo de negócio inovador, repetível e escalável e cenário de incertezas. Características de uma startup O que é um modelo de negócios? E um negócio escalável e repetível? O que pode ser considerado um cenário de incertezas? Esses fatores essenciais para uma startup e são tópicos recorrentes no ecossistema. No entanto, não são óbvios para quem não está familiarizado com o meio. Modelo de negócios Antes de tudo, o modelo de negócios é diferente de um plano de negócios, que foca em estratégias detalhadas para atingir metas, por exemplo. No modelo de negócios, o foco não é necessariamente no produto, mas no valor e, consequentemente, na rentabilidade. Em outras palavras, como o seu negócio soluciona a dor do cliente de forma lucrativa. Muitas vezes, o desafio do modelo de negócios de startups é criar algo inovador: ou adaptar um modelo de negócios para uma área onde não é comumente aplicado, ou criar um modelo totalmente novo. Repetível e escalável Esses dois fatores são super importantes para uma startup, uma vez que sem eles o negócio tem grandes chances de se tornar insustentável. Quem empreende com uma startup nunca sabe o dia de amanhã: afinal, a empresa terá capital para se manter? Essa é uma pergunta vital para esse negócio. Um produto repetível e escalável traz inúmeras vantagens, uma vez que ele promete atingir um grande número de clientes e gerar lucro de forma rápida! Para um negócio ser repetível significa que ele é capaz de entregar o mesmo produto em escala potencialmente ilimitada. Dessa forma, não é viável muitas customizações ou adaptações, pois a meta é multiplicar. Já ser escalável significa crescer cada vez mais sem que isso influencie no modelo de negócios. Como resultado, um modelo de negócio repetível e escalável que tem um fit no mercado tem grandes chances de ser uma startup de sucesso. Cenário de incertezas Criar uma startup é fugir do tradicional. Como procura ser disruptiva, dificilmente uma startup vai ter um manual de como ser bem sucedida. Não há como afirmar se a ideia ou projeto de empresa irão realmente deslanchar. Dessa forma, o caminho a ser trilhado e os passos que o empreendedor deve tomar são minimamente incertos. É justamente por esse ambiente, recorrente até que o modelo de negócios seja bem definido, que tanto se fala em investimento para startups. Sem capital de risco, é muito difícil persistir na busca por um modelo de negócios que comece a gerar grana e se sustente. O ideal é o negócio sobreviver até a comprovação de que o modelo existe e sua receita comece a de fato crescer. Caso contrário, provavelmente será necessário uma nova rodada de investimentos para que essa startup se torne uma empresa sustentável. Uma forma de lidar melhor com esse cenário de incertezas é o produto mínimo viável, também conhecido como MVP. Ele tem o objetivo de validar uma solução e ajudar a entender o que o cliente realmente quer gastando o mínimo possível. Quer entender melhor?
  6. Quem ja trabalhou ou trabalha no ifood?
  7. Ate 15 minutos
  8. Alguem conhece ou ja ouviu falar no termo? Quem trabalha com kubernetes?
  9. Ate aqui 10 minutos O Kubernetes, ou K8s (um trocadilho com o nome Kubernetes – k + 8 caracteres + s) ou “kube”, para aqueles que já estão mais íntimos, é um sistema de cluster e orquestração para containers Docker que suporta outros sistemas de container, como o Rocket e CRI, por exemplo. Em outras palavras, o Kubernetes é uma ferramenta de código aberto usada para orquestrar e gerenciar clusters de containers. Só que aqui o cluster são várias máquinas com um engine de container, que no nosso caso e na maioria de todos os casos é o Docker, a engine mais usada para esse trabalho de provisionar os containers nos hosts do cluster. O Kubernetes entra aqui para gerenciar esses hosts e executar demandas que são recebidas pelo cluster. Muita gente ainda tem dúvida ou faz confusão tentando comparar Docker e Kubernetes, mas a comparação correta seria “Docker Swarm” e Kubernetes, ambas ferramentas de orquestração de cluster. O Kubernetes usa o Docker para criar os containers nos nós do cluster. O trabalho dele aqui é gerenciar, controlar e monitorar o estado desses containers ao longo do cluster. Um pouco de história O Kubernetes foi criado e desenvolvido pelos engenheiros da Google, uma dos pioneiros no desenvolvimento da tecnologia de containers. A Google já revelou que executa alguns dos seus serviços em containers, como Google Docs e Gmail, por exemplo, e tem alguns números surreais: são mais de 2 bilhões de implantações de contêineres por semana, que são viabilizadas por uma plataforma interna chamada Borg, antecessor do Kubernetes e que serviu como base para seu desenvolvimento. Em 2015 o Kubernetes foi doado para a “Cloud Native Computing foundation” e Linux Foundations, e se tornou um projeto Open Source. Uma curiosidade sobre o Kubernetes é que os sete raios do logotipo fazem referência ao nome original do projeto, “Project Seven of Nine” (Projeto Sete de Nove). A palavra Kubernetes vem da palavra grega, que representa a pessoa que pilota o navio.
  10. Intervalo Estrutura do Kubernetes O Kubernetes possui alguns termos e componentes para determinadas funções e tarefas. Inicialmente pode parecer confuso e não fazer muito sentido alguns desses componentes, mas ao começar a usar o Kubernetes e a entender a forma como ele trabalha fica mais fácil saber o que cada carinha desse faz. Antes deles, porém, vamos falar sobre como é a estrutura do cluster. Até aqui é bem parecido com o Swarm, no qual temos os Masters e os nós Workes, que aqui chamávamos de “Minions“. Esse conceito não é mais usado, mas ainda pode ser encontrado em alguns artigos e documentações mais antigas. Minions = nodes ou worker Master, por sua vez, é a máquina que controla os nós do Kubernetes. É nela que todas as atribuições de tarefas do cluster se originam. No Master temos todos os componentes rodando, assim: O Kubernetes possue um conjunto de excelentes recursos que são muito úteis, especialmente quando falamos de ambientes de produção: Replicação de containers entre diferentes nós para garantir alta disponibilidade Recuperação automática de container quando ele falha por qualquer motivo Autoescala de container com base em métricas de cluster Kubernetes, como o consumo de CPU Liberação de deployments e rollbacks de deployment Descoberta de serviço. Isso é bom para deploying de microsserviços Balanceamento de carga e gerenciamento de volume Verificações da saúde do container Isolamento de recursos lógicos usando Namespaces Controle de recursos e cotas por Namespaces Gerenciando tarefas cron
  11. Estrutura do Kubernetes O Kubernetes possui alguns termos e componentes para determinadas funções e tarefas. Inicialmente pode parecer confuso e não fazer muito sentido alguns desses componentes, mas ao começar a usar o Kubernetes e a entender a forma como ele trabalha fica mais fácil saber o que cada carinha desse faz. Antes deles, porém, vamos falar sobre como é a estrutura do cluster. Até aqui é bem parecido com o Swarm, no qual temos os Masters e os nós Workes, que aqui chamávamos de “Minions“. Esse conceito não é mais usado, mas ainda pode ser encontrado em alguns artigos e documentações mais antigas. Minions = nodes ou worker Master, por sua vez, é a máquina que controla os nós do Kubernetes. É nela que todas as atribuições de tarefas do cluster se originam. No Master temos todos os componentes rodando, assim: O Kubernetes possue um conjunto de excelentes recursos que são muito úteis, especialmente quando falamos de ambientes de produção: Replicação de containers entre diferentes nós para garantir alta disponibilidade Recuperação automática de container quando ele falha por qualquer motivo Autoescala de container com base em métricas de cluster Kubernetes, como o consumo de CPU Liberação de deployments e rollbacks de deployment Descoberta de serviço. Isso é bom para deploying de microsserviços Balanceamento de carga e gerenciamento de volume Verificações da saúde do container Isolamento de recursos lógicos usando Namespaces Controle de recursos e cotas por Namespaces Gerenciando tarefas cron
  12. Ate aqui 15 minutos Master, por sua vez, é a máquina que controla os nós do Kubernetes. É nela que todas as atribuições de tarefas do cluster se originam. No Master te Agora vamos aos componentes, ou os serviços que sobem na máquina Master para manter o estado desejado dos nossos serviços no cluster. São quatro: ETCD: é uma base de dados de chave valor. Ele armazena os dados de configuração do cluster e o estado do cluster; API Server: fornece API kubernetes usando Jason. Estados de objetos da API são armazenados no ETCD, e o kubectl usa o API Serve para se comunicar com o cluster; Controller Manager: monitora os controladores de replicação e cria os pods para manter o estado desejado; Scheduler: é responsável por executar as tarefas de agendamento, como execução de contêineres nos minions com base na disponibilidade de recursos. Kubectl é um utilitário de linha de comando que se conecta ao servidor API, usado pelos administradores para criar pods, deployments, serviços etc. Esse cara vamos usar bastante para gerenciar nosso cluster. Workes é o nome dado para cada host do cluster (nós ou nodes). São as máquinas que realizam as tarefas solicitadas.
  13. Kubelet: agente que é executado em cada nó worker, se conecta ao Docker e cuida da criação, execução e exclusão de contêineres; Docker: nem preciso nem falar muito, né? É responsável por rodar e executar os containers, só que quem vai solicitar é o Kubernetes; Kube-Proxy: encaminha o tráfego para os contêineres apropriados com base no endereço IP e no número da porta da solicitação recebida. Além desses, ainda temos alguns conceitos que são interessantes ter em mente no Kubernetes: Pod, que pode ser definido como um grupo de contêineres que são implantados em um único nó de trabalho. É a menor unidade dentro de um cluster Kubernetes e nada mais é do que containers rodando dentro de seu cluster de Kubernetes. Pode ser um container rodando nginx, php, apache, etc. Pod é a abstração de containers, pode ter um ou mais containers em um Pod e posso ter vários Pods dentro de cada nó. Replication Controller é o responsável por manter um número determinado de pods em execução. É no RC que você diz quantos containers você deseja que fiquem rodando para atender determinado serviço, e caso um caia o RC outra instância é criada automaticamente. Por exemplo: em três réplicas do Nginx, o RC fica responsável por garantir o estado desse serviço, e caso um caia o RC sobe outro automaticamente. Services é o responsável por atrelar uma faixa de IP para um determinado RC. Cada vez que o RC cria uma nova instância de pod, ele inicia com um IP determinado pelo service. Services vai ser o ponto de entrada dos nossos serviços. Com o Namespace você pode dividir seu Cluster de Kubernetes em dois ambientes, como Produção e Teste, por exemplo, podendo limitar os recursos computacionais para ambos. s todos os componentes rodando, assim:
  14. Kubelet: agente que é executado em cada nó worker, se conecta ao Docker e cuida da criação, execução e exclusão de contêineres; Docker: nem preciso nem falar muito, né? É responsável por rodar e executar os containers, só que quem vai solicitar é o Kubernetes; Kube-Proxy: encaminha o tráfego para os contêineres apropriados com base no endereço IP e no número da porta da solicitação recebida. Além desses, ainda temos alguns conceitos que são interessantes ter em mente no Kubernetes: Pod, que pode ser definido como um grupo de contêineres que são implantados em um único nó de trabalho. É a menor unidade dentro de um cluster Kubernetes e nada mais é do que containers rodando dentro de seu cluster de Kubernetes. Pode ser um container rodando nginx, php, apache, etc. Pod é a abstração de containers, pode ter um ou mais containers em um Pod e posso ter vários Pods dentro de cada nó. Replication Controller é o responsável por manter um número determinado de pods em execução. É no RC que você diz quantos containers você deseja que fiquem rodando para atender determinado serviço, e caso um caia o RC outra instância é criada automaticamente. Por exemplo: em três réplicas do Nginx, o RC fica responsável por garantir o estado desse serviço, e caso um caia o RC sobe outro automaticamente. Services é o responsável por atrelar uma faixa de IP para um determinado RC. Cada vez que o RC cria uma nova instância de pod, ele inicia com um IP determinado pelo service. Services vai ser o ponto de entrada dos nossos serviços. Com o Namespace você pode dividir seu Cluster de Kubernetes em dois ambientes, como Produção e Teste, por exemplo, podendo limitar os recursos computacionais para ambos.
  15. Ate aqui 10 minutos Kubelet: agente que é executado em cada nó worker, se conecta ao Docker e cuida da criação, execução e exclusão de contêineres; Docker: nem preciso nem falar muito, né? É responsável por rodar e executar os containers, só que quem vai solicitar é o Kubernetes; Kube-Proxy: encaminha o tráfego para os contêineres apropriados com base no endereço IP e no número da porta da solicitação recebida. Além desses, ainda temos alguns conceitos que são interessantes ter em mente no Kubernetes: Pod, que pode ser definido como um grupo de contêineres que são implantados em um único nó de trabalho. É a menor unidade dentro de um cluster Kubernetes e nada mais é do que containers rodando dentro de seu cluster de Kubernetes. Pode ser um container rodando nginx, php, apache, etc. Pod é a abstração de containers, pode ter um ou mais containers em um Pod e posso ter vários Pods dentro de cada nó. Replication Controller é o responsável por manter um número determinado de pods em execução. É no RC que você diz quantos containers você deseja que fiquem rodando para atender determinado serviço, e caso um caia o RC outra instância é criada automaticamente. Por exemplo: em três réplicas do Nginx, o RC fica responsável por garantir o estado desse serviço, e caso um caia o RC sobe outro automaticamente. Services é o responsável por atrelar uma faixa de IP para um determinado RC. Cada vez que o RC cria uma nova instância de pod, ele inicia com um IP determinado pelo service. Services vai ser o ponto de entrada dos nossos serviços. Com o Namespace você pode dividir seu Cluster de Kubernetes em dois ambientes, como Produção e Teste, por exemplo, podendo limitar os recursos computacionais para ambos.
  16. Alguem conhece ou ja ouviu falar no termo? Quem trabalha com kubernetes?
  17. Ate aqui 15 minutos O Kubernetes pode ser executado em várias plataformas: no seu laptop, VMs em um provedor de nuvem e em vários servidores bare metal, além de podermos instalar em vários sistemas Linux (Centos, Ubuntu, Debian ou Redhat). A principal vantagem de usar é que os clusters podem abranger hosts em clouds públicas, privadas ou híbridas e funciona muito bem para ambientes que rodam vários containers com vários nós em larga escala. Ele ainda suporta mais de um runtime de container, alta disponibilidade, escalável entre outros fatores. Por outro lado, a documentação não é amigável para marinheiros de primeira viagem e a curva de aprendizagem é mais longa se comparada ao seu concorrente direto, o Docker Swarm. Entretanto, vale lembrar que o fato do Kubernetes ser mais difícil não o desabona em nada! A plataforma é excelente para esse tipo de trabalho e é mais madura que o Swarm, que é relativamente novo se comparado ao Kubernetes. A comunidade é muito boa e vem crescendo a cada dia, e além disso o site do kubernetes.io vem tentando deixar a documentação mais fácil, separando os tópicos e sugerindo tutoriais. Esses são só alguns dos motivos que fazem o Kubernetes ser mais usado em produção e ser o queridinho da maioria. Mas se você ainda não está convencido pode saber mais sobre um case recente interessante, o Pokémon Go. O Kubernetes possue um conjunto de excelentes recursos que são muito úteis, especialmente quando falamos de ambientes de produção: Replicação de containers entre diferentes nós para garantir alta disponibilidade Recuperação automática de container quando ele falha por qualquer motivo Autoescala de container com base em métricas de cluster Kubernetes, como o consumo de CPU Liberação de deployments e rollbacks de deployment Descoberta de serviço. Isso é bom para deploying de microsserviços Balanceamento de carga e gerenciamento de volume Verificações da saúde do container Isolamento de recursos lógicos usando Namespaces Controle de recursos e cotas por Namespaces Gerenciando tarefas cron