O documento discute a evolução da arquitetura de software, desde aplicações monolíticas implantadas localmente até microsserviços implantados na nuvem usando containers e Kubernetes. Containers permitem isolamento e reuso de código, enquanto Kubernetes fornece orquestração para gerenciar containers em vários ambientes. Istio adiciona serviços de rede, segurança e monitoramento para microsserviços implantados com Kubernetes.
3. INFRA GUYSDEV GUYS
METODOLOGIA DESENVOLVIMENTO IMPLANTAÇÃO AMBIENTE
WATERFALL APLICAÇÃO
MONOLÍTICA
BARE METAL ON-PREMISES
be.relevant(act2)
90 dias
4. INFRA GUYSDEV GUYS
METODOLOGIA DESENVOLVIMENTO IMPLANTAÇÃO AMBIENTE
AGILE N-TIER VIRTUAL SERVER OFF-PREMISES
be.relevant(act2)
5 dias + a madrugada da sexta
8. DEV GUYS + INFRA GUYS
METODOLOGIA DESENVOLVIMENTO IMPLANTAÇÃO AMBIENTE
DEVOPS MICROSERVIÇOS CONTAINER CLOUD
be.relevant(act2)
9. METODOLOGIA DESENVOLVIMENTO IMPLANTAÇÃO AMBIENTE
WATERFALL APLICAÇÃO
MONOLÍTICA
BARE METAL ON-PREMISES
AGILE N-TIER VIRTUAL SERVER OFF-PREMISES
DEVOPS MICROSERVIÇOS CONTAINER CLOUD
10. METODOLOGIA DESENVOLVIMENTO IMPLANTAÇÃO AMBIENTE
WATERFALL APLICAÇÃO
MONOLÍTICA
BARE METAL ON-PREMISES
AGILE N-TIER VIRTUAL SERVER OFF-PREMISES
DEVOPS MICROSERVIÇOS CONTAINER CLOUD
11. METODOLOGIA DESENVOLVIMENTO IMPLANTAÇÃO AMBIENTE
WATERFALL APLICAÇÃO
MONOLÍTICA
BARE METAL ON-PREMISES
AGILE N-TIER VIRTUAL SERVER OFF-PREMISES
DEVOPS MICROSERVIÇOS CONTAINER CLOUD
14. O que são containers?
Uma maneira simples de virtualizar aplicações
be.relevant(act2)
- lightweight
- hermetically sealed
- isolated
- introspectable
- easily deployable
- composable
15. Porque containers?
be.relevant(act2)
Bare Metal
- no isolation
- common libs
- highly coupled apps
& os
Virtual Server
- isolation
- no common libs
- expensive and inefficient
- hard to manage
Container
- isolation
- no common libs
- less overhead
- less dependency on host os
source: https://pt.slideshare.net/Codemotion/resilient-microservices-with-kubernetes-mete-atamel-codemotion-rome-2017
16. E como isso funciona na prática?
be.relevant(act2)
Filesystem
Base OS / Kernel
Fedora Ubuntu
tomcat tomcatliberty
Container1 Container2 Container3 Container4
app1 app2 app4app3
Layers
- Docker utiliza um sistema de arquivos copy-on-write (union)
- Novos arquivos e modificações são visíveis apenaspara a camada atual/acima
- As camadas permitem reuso e cache
17. Para o desenvolvedor…
$ cat Dockerfile
FROM node:6.9.2
EXPOSE 8080
COPY server.js .
CMD node server.js
$ docker build -t hello-node:v1 .
$ docker run –name hello-node –i –t hello-node:v1
be.relevant(act2)
19. Kubernetes
- container orchestrator
- runs and manages containers
- supports multiple cloud and
bare-metal environments
- inspired and informed by Google's
experiences and internal systems
- open source, written in Go
- manage applications, not machines
- rich ecosystem of plug-insfor scheduling,
storage, networking, logging
be.relevant(act2)
20. Networking
- Firewall
- Load Balancer
- VLAN
- NAT…
- Um monte de appliances
- E mais um outro final de semana
para publicar a nova API dentro do
prazo da GMUD
be.relevant(act2)
22. Istio
be.relevant(act2)
- Controle de tráfego: controle
do fluxo de dados entre
serviços
- Observabilidade: entender as
dependênciasentre serviços e
detectar problemas
- Políticas de acesso: rate
limiting, pre-condition,
segurança, autenticação