Giter Site home page Giter Site logo

badtuxx / giropops-senhas-labs Goto Github PK

View Code? Open in Web Editor NEW
84.0 5.0 35.0 158 KB

Esse repositório foi criado com as maravilhosas pessoas que estavam no chat da live da LINUXtips na Twitch.

License: GNU General Public License v3.0

Dockerfile 1.77% Python 8.42% CSS 42.94% HTML 16.95% JavaScript 5.64% Makefile 24.28%

giropops-senhas-labs's Introduction

Discord

YouTube Channel Subscribers YouTube Channel Views Twitch Status GitHub followers Twitter Follow Twitter Follow

Docker Pulls Docker Pulls Docker Pulls

GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars

Giropops Senhas

Esse repositório foi criado com as maravilhosas pessoas que estavam no chat da live da LINUXtips na Twitch.

DEMO

Como ter a stack completa de componentes da nossa solução em 5 minutos.

asciicast

 

Descrição do projeto

O objetivo do projeto é ter um ambiente completo para que as pessoas possam estudar os seguintes tópicos:

  • Micro-serviços
  • Observabilidade
  • Kubernetes
  • GitOps
  • Infra-As-Code
  • Platform Engineering
  • DevOps
  • Desenvolvimento

Instalando o projeto

Componentes Utilizados

  • Docker
  • Kind
  • ArgoCD
  • Giropops-Senha
  • Locust
  • Python
  • Flask
  • Prometheus
  • Grafana
  • AlertManager
  • MetalLB
  • Istio
  • Kiali
  • Chaos Mesh
  • Kubernetes-Dashboard

Como estamos usando os componentes

Estamos utilizando o Docker para que seja possível criar um cluster Kubernetes utilizando o Kind. Teremos um cluster Kubernetes com 03 nodes, sendo um control plane e dois workers. Estamos utilizando o ArgoCD para que seja possível utilizar GitOps para realizar o deploy de nossas aplicações. Até o momento, temos os seguintes serviços:

  • Giropops-Senhas que é uma app escrita em Python, onde temos uma API criada em Flask para que seja possível gerar senhas customizadas
  • Redis para que possa armazenar as senhas geradas temporariamente

Estamos usando o Locust para simular carga em nossos serviços.

Estamos utilizando o MetalLB para que seja possível expor nossos serviços para o mundo externo, sendo uma alternativa para criação de LoadBalancer no Kubernetes.

Temos o Istio para que seja possível realizar o Service Mesh em nossos serviços e o Kiali para visualizar o tráfego entre os serviços.

E para realizar os testes de caos e assim testar a resiliencia de nossa infra e de nossa apps, estamos utilizando o sensacional Chaos Mesh. Ele é um operator e possui uma excelente UI para que possamos criar e visualizar como estão os nossos chaos tests.

Para que seja possível visualizar todos os detalhes sobre o nosso cluster, estamos utilizando o Kubernetes Dashboard.

Após a instalação de todos os componentes, é necessário gerar um token para ter acesso ao dashboard. Para isso, basta executar o seguinte comando:

make dashboard-token

Instalando

Para fazer a instalação de todos os componentes, basta clonar esse repositório e utilizar o comando make para realizar o deploy de tudo.

git clone https://github.com/badtuxx/giropops-senhas.git

  Agora acesse o seguinte diretório:

cd giropops-senhas

 

Agora basta utilizar o make para que ela faça o deploy de tudo, desde a criação do cluster até o deploy das nossas apps utilizando o ArgoCD.

make all

 

Pronto, tudo instalado!

Você pode instalar componentes separadamente, por exemplo:

make kind

 

Após a instalação de todos os componentes, é necessário gerar um token para ter acesso ao dashboard. Para isso, basta executar o seguinte comando:

make dashboard-token

 

Para limpar e remover tudo o que instalamos:

make clean

 

Pronto! Lembrese, estamos ainda no começo do projeto, muito mais componentes serão adicionados.

 

Rodar projeto giropops-senhas localhost

  1. Instalar dependências

pip install -r requirements.txt

Recomendado:
Rodar projeto com virtualenv virtualenv venv
Iniciar ambiente source venv/bin/activate

pip install -r requirements.txt

se não tiver instalado, instalar com pip pipx install virtualenv

  1. Iniciar Redis local

docker container run --name redis -p 6379:6379 -v redis:/data -d redis
export REDIS_HOST=127.0.0.1

Se deseja rodar com Dockerfile, faça export para nome do container.
export REDIS_HOST=redis

  1. Rodar projeto

export FLASK_DEBUG=1
flask run

  1. Compilar CSS, necessário apenas se realizar mudanças de classes ou no arquivo static/css/styles.css

Com NodeJS instalado, rodar:
npx tailwindcss -i ./static/css/styles.css -o ./static/css/output.css

Para rodar no modo watch, caso esteja realizando mudanças de estilização
npx tailwindcss -i ./static/css/styles.css -o ./static/css/output.css --watch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.