Skip to content

Este repositório contém os arquivos necessários para reproduzir os testes demonstrados em: https://www.youtube.com/watch?v=kvkdUorLUkY

Notifications You must be signed in to change notification settings

titogarrido/observability-meetup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Meetup SRE Brasil #2 - Observability

Primeiras impressões com o Istio

Este repositório contém os arquivos necessários para reproduzir os testes demonstrados em: https://www.youtube.com/watch?v=kvkdUorLUkY

Requerimentos

Para fazer os testes abaixo você precisará de um servidor (ou sua próprio PC) com:

Diagrama das aplicações

Testando o Opentracing e o Jaeger

Requisitos

Para testar somente o Opentracing e o Jaeger você somente vai precisar ter instalado o:

  • Python
  • Pip
  • Docker

Instalando Jaeger

Comece inicializando a imagem Docker do Jaeger, chamada de jaeger-all-in-one:

docker run -d --name jaeger \
  -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
  -p 5775:5775/udp \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 14268:14268 \
  -p 9411:9411 \
  jaegertracing/all-in-one:1.9

A interface de consulta estará disponível em:

http://localhost:16686

Instalando o Mongo

docker run -d --name mongo -p 27017:27017 mongo

Executando a app1, app2 e app3

A aplicação 1 (app1) é o Frontend.

A aplicação 2 (app2) é o Backend.

A aplicação 3 (app3) é o Meaning of Life.

  1. Abra um terminal para cada aplicação, acesse o diretório de cada aplicação e execute:
    1. pip install -r requirements.txt

Para a app1:

cd src/sem-istio/app1
python app1.py

Para a app2:

cd src/sem-istio/app2
python app2.py

Para a app3:

cd src/sem-istio/app3
python app3.py

Execute todas as aplicações e acesse:

http://localhost:8082

Faça várias requisições e consulte o Jaeger em:

http://localhost:16686

Testando o Istio

Requisitos

  1. Kubernetes + Istio instalados e seu namespace default configurado para o sidecar Istio ser automaticamente acoplado quando a aplicação subir (istio-injection=enabled).
    1. https://istio.io/docs/setup/kubernetes/quick-start/

Instalando o Mongo

Execute o kubectl apply no mongo.yml que está dentro da pasta com-istio:

kubectl apply -f mongo.yml

Executando os apps no Kubernetes

Modifique os arquivos build.sh e deploy.yml de cada aplicação (frontend, backend e meaning) trocando o nome do usuário do Docker Hub de titogarrido para seu nome de usuário. Esse arquivos são:

com-istio/frontend/deploy.yml
com-istio/frontend/build.sh
com-istio/backend/deploy.yml
com-istio/backend/build.sh
com-istio/meaning/deploy.yml
com-istio/meaning/build.sh

Você pode atualizar com o sed utilizando o seguinte comando de dentro do diretório com-istio:

sed -i 's/titogarrido/SEU_USUARIO_DOCKER/g' frontend/*
sed -i 's/titogarrido/SEU_USUARIO_DOCKER/g' backend/*
sed -i 's/titogarrido/SEU_USUARIO_DOCKER/g' meaning/*

Depois de modificado para seu usuário Docker podemos fazer o build e deploy utilizando o script build.shde cada aplicação:

bash com-istio/frontend/build.sh
bash com-istio/backend/build.sh
bash com-istio/meaning/build.sh

Depois de executado observe seu dashboard do Kubernetes e confirme que os serviços estão no ar:

Acesse a aplicação frontend utilizando seu ingress. Para descobrir qual o endereço de seu ingress ip e porta siga os passos de:

https://istio.io/docs/tasks/traffic-management/ingress/#determining-the-ingress-ip-and-ports

Para o endereço dos serviços como Jaeger e Grafana utilize o kubectl:

kubectl get all --all-namespaces

Procure por service/grafanae service/jaeger-query:

istio-system service/grafana ClusterIP 10.152.183.114 <none> 3000/TCP

istio-system service/jaeger-query ClusterIP 10.152.183.113 <none> 16686/TCP

http://10.152.183.114:3000

e

http://10.152.183.113:16686

Boa sorte! Em caso de dúvidas pode abrir um issue ou entra em contato comigo via Linkedin ou Twitter.

About

Este repositório contém os arquivos necessários para reproduzir os testes demonstrados em: https://www.youtube.com/watch?v=kvkdUorLUkY

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages