# Calendário da Poc Kafka
# Início 26/02/2024 as 13:00
#### Instalação do kafka, node, mongo, Oracle Express, Java, Sistema Será Criado em Java,
#### Instalação kubernetes, docker, Container
#### Configuração do Linux WSL, os kubernetes funcionando no Linux
#### Início da Configuração do Open Shift (Não testei)
#### Inicei a instalação, mas irei fazer o ambiente com kubernetes minikube e kubectl por enquanto.
#### Esse ambiente irei receber em Funcionamento
#### Sem teste não roda nada
- Início do Projeto
- Etapa Criação do gateway para autenticação e Validação do Usuário em Mock em Funcionamento, já listando com autenticação e gerando um token jwt.
- etapa varrer o banco de dados para o Login com gravação no mongodb o back está todo sendo feito com node JS.
- feito --> Done
- hoje login com Kafka do Projeto
- Espero Começar a Validar com disparo de 2000 usuarios amanhã via kafka Consumer e Producer com NodeJs.
- Vamos para a validação Técnica do que foi feito (Apresentação e validação na parte da tarde 200.000 indo no banco)
- Amanhã vou configurar e codar, para que na parte da tarde já esteja funcionando todos esses passos indo até o banco mongodb, gravação,listagem, consumo, volumetria até 100000 usuários irei testar,dentro dessa Poc criação uma api para o gateway, criação do producer e consumer, Autenticação do Usuário, Teste para verificar a volumetria do kafka 100.000.
- (quinta) Integração e ponto de checagem dos dados o Java Tecsidel .
- Conversão Oracle e Java o que foi feito no ambiente com NodeJs
- Primeira Etapa acredito na Sexta já esteja funcionando todo o projeto listado acima com Kafka-Java-Oracle até sexta-feira ... Somente Back.
## Container com minishift e com kuberctl
## Ambiente do Minishift
```cmd=
# power shell versão 7.4
winget install --id Microsoft.Powershell --source winget
$PSVersionTable.PSVersion
winget install -e --id Kubernetes.kubectl
# or
scoop install kubectl
#
winget install --id Microsoft.Powershell.Preview --source winget
kubectl version --client
-- Download kubernetes power shell do windows
curl.exe -LO "https://dl.k8s.io/release/v1.29.2/bin/windows/amd64/kubectl.exe"
choco install kubernetes-cli
```
## Segunda _ inserir e modificar para o ambiente onPremises, Integração do Projeto por containers oc
- (sex)Verificar o login com oc, autenticação com oc
- (sex)Verificar o prompt da aws de comandos com oc da aws, teste
### Montar o ambiente de integração no Open Shift
- Ambiente de dev (sex)
- ambiente de qa (sex/aprovação/seg)
- ambiente de homol (sex/aprovação/seg)
- ambiente de produção (sex/aprovação/seg)
### Ambiente estando pronto, faze um do ambiente buscar os prontos de consumo, os campos,
- Consumo do Tecsidel
- Checagem das tabelas e criação das tabelas do sistema Tecsidel e backOffice Suat
- Teste dos Proxys
- Dados do Ambiente de dev replicados e testados com o Eduardo até o Aceite Ok
- Teste de Integração
- Verficação ou criação do Ambiente Kafka no Servidor
- Dados do Tecsidel Integração com a Poc, check de velocidade, Velocidade do que está em Prod, versus o da Poc
- Teste de escalabilidade
- Início da Programação dos testes do Producer versus Consumer
- início da Programação do Producer, replicando os dados do tecsidel, Código do Java 17 utilizando Kakfka do OC.
- início da Programação do Consumer, replicando os dados do tecsidel, Código do Java 17 utilizando Kakfka do OC.
- início da Programação do Producer, replicando os dados do back-office, Código do Java 17 utilizando Kakfka do OC.
- Teste de Escalabilidade
- Início do Consumer dos dois Tópicos
- Desenvolvimento Log com Grafana ou que melhor se adequar a velocidade e ambiente dos containers com aws.
- Sistema de Kafka Com Desenvolvimento Centralizado em Logs
- Utilização de dois bancos de dados para tudo que chega no sistema gravação assíncrona no mongodb. Para Checagem
- Sistema de Kafka com Disparo de Producer e Consumer, Ponto de checagem de escape dos Dados, verificação da entrega. Garantia do funcionamento não pode ter nenhuma quebra no sistema criado, verificação dos erros, utilização ou do Servless ou utilização
- programação assíncrona em todos os processos para ganho de velocidade
- OBS--> Itens abaixo Ainda não decidido para não esquecer
- sidecar , Command Query Responsibility Segregation (CQRS), Saga Pattern**
- Centralizado em logs, dois banco de dados, containers, Saga ou Serverless ou Lambda
- Testes de Integração Homol, testes de Escalabilidade, teste de Stress (aqui é para tentar derrubar o sistema com volumetria no máximo, rodar o projeto as 7:00e 18:00, 12:15 Horário de pico nos free Flow, testar com a integração em prod, a integração não pode ser sempre, buscando o projeto em homol)
- Depois dos testes em Homol estressados
- Testes no Aws nossa em Homol e consumo somente do sistema em Prod
- Verificar a volumetria, e o que alterou no sistema ?, o que alterou no sistema em log ?, verificar o que não tinhamos visto, pessoal de fora do projeto, pessoal que não está pensando no projeto, de fora, pessoas de negócio para testes consumindo o sistema em prod ... read somente
- Antes Validar, A poc não pode de forma nenhuma reduzir a velocidade e algo em produção, deve dar mais opções e aumentar a velocidade, aumentar a cobertura de testes, aumentar a produtividade do sistema ?
- Passos com Stake Holders do Projeto Definição do Pronto com Eduardo/Ruth/OC e Aws.
- **Ci/Cd dinâmico de toda esteira, acredito aws codepipeline já fará isso. aws code deploy **
- **Muitos dos Recursos que estão na sequência deverão ser atendidos, pode se reduzir nos recursos de programação, de forma ao projeto ganhar velocidade, somente para isso**
- Nenhum teste será retirado e a importância de outra visão de programação, na criação do microservices.
- Se o Sistema vai servir de Base "foco" em teste, executar sempre o projeto, irei rodar os testes para execução.
#### **Objetivo do projeto é verificar como se comporta o Kafka na Integração, o que agregar ao projeto e o que não agregar ao projeto retirar enquanto está fazendo esse estudo de caso, não esquecer o que for retirado quando estiver sendo programado na vida real, registrar na documentação de falha**.
#### **Ex: que pelo caminho do serverless para verificação dos logs não está sendo eficaz em suas verificações, redução do tempo do scheduler apontar na documentação, soluções arquitetadas**

## Comunicação entre os sistemas
