Gestão de projetos
A Gestão de Projetos e Controle de Desenvolvimento de Software envolve o planejamento, execução e acompanhamento de todas as atividades necessárias para criar um sistema ou aplicação. O objetivo é entregar software de qualidade dentro do prazo e orçamento, garantindo que a equipe trabalhe de forma organizada e produtiva.
-
Milestones → Grandes objetivos ou fases do projeto que agrupam várias issues. Eles representam pontos-chave no progresso de um trabalho, como a conclusão de uma fase, a entrega de um recurso específico ou o alcance de um objetivo importante. No GitHub, milestones podem agrupar issues e pull requests para organizar entregas. Exemplo: "Versão 1.0", "Refatoração do Backend".
-
Issues → Tarefas, bugs ou melhorias específicas a serem feitas. é um recurso que serve para apontar problemas ou tarefas dentro de um repositório. Está presente no Github. Para criar uma tarefa para issue basta ir em add a comment e em write usar o formato: - [ ] Nome da tarefa, e logo após pressionar enter para adicionar uma proxima. Exemplo: "Corrigir erro de login", "Implementar API de pagamento".
-
Build → Processo de copiar os arquivos, configurações do projeto, além de instalar todas as dependencias e construir um pacote final que será implantado (Deploy).
Principio do privilegio mínimo (principle of least privilege): para maior segurança de a menos quantidade de acesso.
POC (prova de conceito): qual menor custo e esforço eu posso ter para saber em que direção ir.
MVP ( Produto viável mínimo): se arrisca com mais cautela.
Overengieering: excesso de engenharia
Underengieering: falta de engenharia
MVC (Model View Controller) é um padrão de arquitetura de software que separa a lógica da aplicação em três camadas principais:
1️⃣ Model (Modelo) – Responsável pelos dados e regras de negócio. Um model é uma caixa de ferramentas onde cada ferramenta é util para realizar alguma tarefa. Processa os dados e executa as regras de negócio.
2️⃣ View (Visão) – Responsável pela interface com o usuário. Exibe as informações para o usuário (interface gráfica, HTML, etc.).
3️⃣ Controller (Controlador) – Responsável por processar as requisições e conectar o Model com a View. Recebe as ações do usuário, repassa para o Model processar e envia a resposta para a View.
Transpiling converter códigos numa versão compatível.
SLA ( acordo de nível de serviço) é a disponibilidade fornecida pela plataforma/serviço. As status pages, são paginas que monitoram a saúde do serviço. Coloque o nome do servidor e status, exemplo, vercel status no buscador.
- CI (Continuous Integration): Automatiza testes e integração de código frequentemente.
- CD (Continuous Delivery): Mantém o código pronto para deploy com aprovação manual.
- CD (Continuous Deployment): Faz deploy automático em produção sem intervenção humana.
| Prática | O que faz? | Deploy automático? | Necessita aprovação? |
|---|---|---|---|
| CI (Continuous Integration) | Automatiza integração e testes de código | ❌ Não | ✅ Sim (revisão do código) |
| CD (Continuous Delivery) | Garante que o código testado esteja pronto para deploy | ❌ Não | ✅ Sim |
| CD (Continuous Deployment) | Automatiza totalmente o deploy em produção | ✅ Sim | ❌ Não |
DataOps
DataOps (abreviação de Data Operations) é uma abordagem de gerenciamento de dados que busca aplicar práticas ágeis e automação ao processo de coleta, armazenamento, preparação e análise de dados dentro de uma organização. O objetivo principal do DataOps é melhorar a qualidade, a colaboração e a velocidade na entrega de dados para análise e decisão.
StreamSets e Apache NiFi são ferramentas de integração e orquestração de dados que se encaixam na metodologia DataOps porque ajudam a automatizar e gerenciar fluxos de dados, além de proporcionar monitoramento e controle de qualidade.
O StreamSets é uma ferramenta que ajuda empresas a mover, transformar e organizar dados entre sistemas de forma fácil, rápida e visual — quase como montar LEGO com dados.
Se houver dados espalhados e necessitar juntar tudo isso, organizar, limpar e mandar para outro lugar (como um banco de dados moderno, ou uma ferramenta de análise). O StreamSets ajuda você a fazer esse "caminho dos dados" com uma interface gráfica — sem precisar programar muito.
É uma ferramenta que unifica dados de fontes diferentes, transforma eles e entrega organizados para onde você quiser.
Quando você conecta o seu StreamSets Data Collector (docker gerado pela plataforma da IBM) local ao StreamSets Control Hub (a plataforma online), você está basicamente controlando o seu ambiente local de StreamSets remotamente a partir da interface online.
Primeiro você cria um Environment (ambiente lógico, tipo Produção ou Teste). Dentro do Environment você configura um Deployment (grupo de engines + regras). O Deployment instala/configura uma ou mais Engines (que são os "motores" que rodam de verdade suas pipelines). As pipelines são enviadas e rodam nas Engines.
| Nome | O que é | Pra que serve | Exemplo Rápido |
|---|---|---|---|
| Environment | Um agrupador de infraestrutura | Organizar ambientes de trabalho separados | "Produção", "Dev", "Homologação" |
| Deployment | Conjunto de engines + regras | Definir como engines são instaladas e usadas | "Deployment de Pipelines de Produção" |
| Engine | O motor que executa pipelines | Rodar fisicamente suas pipelines no servidor | "Data Collector Docker rodando" |
Para conectar no control hub precisa passar o jdbc conector .jar para external library da engine antes de configurar a conexão: jdbc:mysql://172.17.0.3:3306/fifa
Existem 3 tipos de estágios (stages):
-
Origin → Onde os dados nascem (entrada).
-
Processor → Onde os dados são transformados (processamento).
-
Destination → Onde os dados são enviados (destino).
Principais Stages do StreamSets:
| Stage | Tipo | O que faz |
|---|---|---|
| Directory | Origin | Lê arquivos de um diretório (CSV, Excel, JSON, etc.). |
| Dev Data Generator | Origin | Gera dados fictícios para testes de pipelines. |
| Stream Selector | Processor | Separa o fluxo de dados em diferentes caminhos com base em condições. (Ex: manda dados "Brasil" para um lado e "Argentina" para outro.) |
| Expression Evaluator | Processor | Cria ou modifica campos usando expressões (tipo somar valores, formatar textos). |
| Field Remover | Processor | Remove campos que você não quer mais no dado. |
| Field Masker | Processor | Mascara campos sensíveis (tipo esconder CPF, senha etc.). |
| Field Type Converter | Processor | Converte o tipo de um campo (por exemplo, texto para número). |
| Filter | Processor | Filtra registros — só deixa passar o que atende a uma condição. |
| Trash | Destination | Joga fora os dados que você não quer usar (tipo uma lixeira). |
| Local FS | Destination | Salva arquivos no sistema de arquivos local (em disco). |
| JDBC Producer | Destination | Envia dados para um banco de dados relacional (MySQL, PostgreSQL, etc.). |
| HTTP Client | Destination | Manda dados para uma API usando HTTP POST, PUT etc. |
| Kafka Producer | Destination | Publica mensagens em um tópico Kafka. |
| S3 Destination | Destination | Salva dados em um bucket do Amazon S3. |
Apache NiFi é uma alternativa gratuita ao StreamSets, também é uma plataforma de automação de fluxo de dados que permite movimentar, transformar e monitorar dados de forma visual (arrastar e soltar), semelhante ao StreamSets.
🔄 Comparativo Rápido: StreamSets vs Apache NiFi
| Recurso | StreamSets | Apache NiFi |
|---|---|---|
| Interface visual | ✅ Sim | ✅ Sim |
| Suporte a dados em tempo real | ✅ Sim | ✅ Sim |
| Suporte a dados em lote | ✅ Sim | ✅ Sim |
| Open-source | ❌ Não (versão IBM) | ✅ Sim |
| Gratuito | ❌ (Plano limitado) | ✅ Totalmente grátis |
| Comunidade ativa | Média | Muito ativa |
| Extensibilidade | Boa | Excelente (componentes customizáveis) |
Uma pipeline é um fluxo de dados — um caminho que os dados percorrem, desde a origem (source) até o destino (destination), passando por possíveis transformações, limpezas, filtros, validações, etc.