Developer Control Plane

O "Developer Control Plane" é uma camada de controle destinada a desenvolvedores. Esta camada fornece as ferramentas e interfaces que os desenvolvedores usam diretamente para escrever, gerenciar e versionar o código, bem como acessar e configurar as suas aplicações. Basicamente, é o conjunto de ferramentas que os desenvolvedores utilizam para controlar o ciclo de vida do desenvolvimento do software.

IDE Um IDE é um Ambiente de Desenvolvimento Integrado que fornece uma interface para os desenvolvedores escreverem, testarem e depurarem seu código. Exemplos comuns de IDEs incluem o Visual Studio Code, IntelliJ IDEA e PyCharm. Eles geralmente incluem um editor de código, ferramentas de construção automatizadas e um depurador.

Developer Portal O Developer Portal é uma plataforma centralizada onde os desenvolvedores podem acessar recursos, documentações, APIs, e outras ferramentas necessárias para o desenvolvimento de software. Ele facilita a colaboração, fornecendo um ponto único de acesso às informações e ferramentas necessárias para os desenvolvedores.

Version Control O Version Control (Controle de Versão) é um sistema que registra as mudanças em um arquivo ou conjunto de arquivos ao longo do tempo, para que você possa lembrar versões específicas mais tarde. Git é o sistema de controle de versão mais usado atualmente. Ele permite que múltiplos desenvolvedores trabalhem no mesmo projeto simultaneamente, mantendo um histórico detalhado das alterações feitas no código.

  • Aplication source code

Application Source Code refere-se ao código que compõe a aplicação ou os aplicativos desenvolvidos pela equipe de desenvolvimento. Isso inclui:

-Código de Funcionalidades: Toda a lógica da aplicação, funcionalidades específicas, interfaces de usuário, e qualquer outro código que define como a aplicação se comporta e interage com os usuários.

-Bibliotecas e Dependências: Bibliotecas externas e dependências que a aplicação utiliza.

-Testes: Scripts de testes automatizados que garantem a qualidade e a funcionalidade do aplicativo.

Esse código é geralmente versionado para permitir a colaboração entre desenvolvedores, rastrear mudanças, reverter a versões anteriores se necessário, e gerenciar o ciclo de vida do desenvolvimento da aplicação.


  • Platform source code

Platform Source Code refere-se ao código que compõe a plataforma subjacente que suporta as aplicações. Isso pode incluir:

-Infraestrutura como Código (IaC): Scripts e configurações para provisionar e gerenciar a infraestrutura (por exemplo, usando Terraform, Ansible, etc.).

-Serviços Comuns: Serviços compartilhados que fornecem funcionalidades como autenticação, autorização, logging, monitoramento, etc.

-Orquestração e Automação: Scripts e ferramentas que automatizam o desenvolvimento, implantação e operações (por exemplo, pipelines de CI/CD, scripts de deploy, etc.).

-Componentes da Plataforma: Qualquer outro código que define como a plataforma subjacente funciona e é gerenciada.

Esse código é versionado para garantir que a plataforma seja consistente, replicável e possa ser mantida e atualizada de maneira coordenada.

Integration and Delivery Plane

O Integration and Delivery Plane (Plano de Integração e Entrega) é uma camada que engloba ferramentas e processos para integrar, testar e entregar software de maneira contínua. Esta camada foca na automação dos processos de integração, testes, construção de artefatos e implantação em ambientes de produção.

CI Pipeline O CI Pipeline refere-se ao conjunto de processos automatizados que são usados para integrar mudanças de código de todos os desenvolvedores de forma contínua. Os principais elementos incluem:

-Build Automation: Compilação automática do código fonte quando novas mudanças são submetidas.

-Automated Testing: Execução de testes automatizados para garantir que as mudanças não introduzam novos erros.

-Code Quality Checks: Análise de qualidade do código e verificação de conformidade com padrões de codificação.

-Artifact Creation: Criação de artefatos de construção (por exemplo, pacotes de software) que podem ser implantados em ambientes de teste ou produção.


Image Registry

O Image Registry é um repositório centralizado onde as imagens de containers são armazenadas e gerenciadas. Imagens de containers são snapshots de uma aplicação e seus componentes (como bibliotecas, dependências e configurações) que podem ser executadas em qualquer ambiente que suporte containers (por exemplo, Docker, Kubernetes). Os principais aspectos incluem:

-Storage: Armazenamento seguro e eficiente de imagens de containers.

-Versioning: Controle de versões para gerenciar diferentes versões de imagens de containers.

-Distribution: Facilitar a distribuição de imagens para diferentes ambientes (desenvolvimento, teste, produção).

-Security: Verificação de segurança e escaneamento de vulnerabilidades nas imagens.

Platform Orchestrator Platform Orchestrator é uma ferramenta ou conjunto de ferramentas que gerencia a coordenação de recursos e serviços em uma plataforma de maneira automatizada. Ele facilita a implantação, escalonamento e gerenciamento das aplicações e dos serviços de infraestrutura, garantindo que todas as partes da plataforma funcionem harmoniosamente.

Principais funcionalidades:

-Automatização de Tarefas: Automatiza tarefas repetitivas e complexas, como a implantação de aplicações e a escalabilidade de serviços.

-Gestão de Recursos: Garante que os recursos (CPU, memória, armazenamento) sejam alocados de maneira eficiente.

-Escalabilidade: Permite o escalonamento automático de serviços conforme a demanda aumenta ou diminui.

-Orquestração de Containers: Em ambientes de containers, como Kubernetes, gerencia a distribuição e o estado dos containers.


CD Pipiline CD Pipeline refere-se ao conjunto de processos e ferramentas que automatizam a entrega contínua do software. Isso envolve a preparação do software para ser liberado em produção, garantindo que todas as mudanças de código passem por testes rigorosos e processos de validação antes da implantação.

Principais funcionalidades:

-Automatização de Deployments: Automatiza a implantação de novas versões do software em ambientes de produção ou pré-produção.

-Testes Automatizados: Inclui testes de integração, testes de aceitação e outros tipos de testes para garantir a qualidade do software.

-Aprovações Manuais: Possui gates de aprovação manual, se necessário, antes de promover o software para o próximo estágio.

-Rollback Automático: Implementa mecanismos para reverter implantações que falham, garantindo a estabilidade do ambiente de produção.


Infrastructure Control Plane Infrastructure Control Plane é a camada responsável pelo gerenciamento e controle da infraestrutura subjacente. Ela proporciona visibilidade, controle e automação sobre os recursos de infraestrutura que suportam as aplicações.

Principais funcionalidades:

-Gerenciamento de Infraestrutura: Permite a definição, configuração e gerenciamento de recursos de infraestrutura, como servidores, redes, e armazenamento.

-Provisionamento Automatizado: Automatiza o provisionamento de recursos conforme necessário, utilizando ferramentas de infraestrutura como código (IaC).

-Monitoramento e Alertas: Oferece monitoramento contínuo dos recursos de infraestrutura e configura alertas para quaisquer problemas ou anomalias detectadas.

-Escalabilidade e Resiliência: Garante que a infraestrutura seja escalável e resiliente, adaptando-se às mudanças na demanda e garantindo a continuidade do serviço.

Monitoring and Logging Plane

O Monitoring and Logging Plane(plano de monitoramento e registro) é fundamental para garantir que os sistemas e aplicativos estejam funcionando de maneira eficaz e eficiente. O objetivo principal é coletar e analisar métricas de desempenho, disponibilidade e integridade. Essas métricas incluem dados quantitativos, como uso de CPU, memória, latência de rede, taxa de erros e outras estatísticas que ajudam a entender o comportamento e o estado dos sistemas.

Observability Observability é um conceito mais amplo que se refere à capacidade de entender o estado interno de um sistema examinando suas saídas. Ela abrange não apenas monitoramento e registro, mas também rastreamento e outros métodos de coleta de dados para dar uma imagem completa do que está acontecendo dentro de um sistema. A observabilidade é essencial para identificar e diagnosticar problemas, entender o comportamento do sistema e garantir a saúde geral do sistema. Os três pilares da observabilidade são:

- Métricas: Dados quantitativos que medem vários aspectos do desempenho do sistema, como uso da CPU, consumo de memória, taxas de solicitação e taxas de erro.

- Logs: Registros detalhados e com registro de data e hora de eventos que acontecem dentro de um sistema. Os logs fornecem contexto e insights sobre ações e comportamentos específicos do sistema.

- Rastros: Rastros distribuídos rastreiam o fluxo de solicitações por meio de diferentes componentes de um sistema, mostrando o caminho e o desempenho de transações individuais em microsserviços.

Analytics Analytics no plano de monitoramento e registro envolve extrair insights acionáveis dos dados coletados para melhorar o desempenho do sistema, a confiabilidade e a experiência geral do usuário.

Security Plane

O Security Plane se refere aos componentes e processos dedicados a manter a segurança da infraestrutura. Ele abrange uma variedade de funções, ferramentas e protocolos projetados para proteger dados, garantir privacidade e manter a integridade e disponibilidade dos serviços. Aqui está uma análise do que o Security Plane normalmente envolve:

Identity and Access Management (IAM)

- Autenticação: Verificar a identidade de usuários e dispositivos.

- Autorização: Determinar o que usuários e dispositivos autenticados têm permissão para fazer.

- Gerenciamento de usuários: Lidar com contas de usuários, funções e permissões.

Sem contar que existe várias outras análises como: Network Security,Data Security, Application Security, Endpoint Security, Security Information and Event Management (SIEM) e Governance, Risk, and Compliance (GRC).


Secrets Management O Secrets Management é um aspecto crucial do Security Plane que foca no manuseio seguro de dados sensíveis, como senhas, chaves de API, chaves de criptografia, certificados e outras credenciais. O gerenciamento eficaz de segredos garante que essas informações sensíveis sejam armazenadas, transmitidas e acessadas com segurança, minimizando o risco de acesso não autorizado e violações de dados.

Security O conceito de Security está ligado à proteção, como a segurança da infraestrutura, de ativos e de pessoas. Dessa forma, um centro de distribuição, por exemplo, contrata uma empresa de segurança para proteger o local contra ações criminosas intencionais, como roubo, vandalismo e invasão.

Resource Plane

O Resource Plane se refere à camada responsável por gerenciar e otimizar a alocação e utilização de recursos em todo o sistema. Ele desempenha um papel crucial em garantir a operação e o desempenho eficientes de aplicativos e serviços, alocando recursos dinamicamente com base na demanda e nos requisitos de carga de trabalho.

Compute - Cluster Management Gerenciamento de cluster em computação se refere ao processo de gerenciamento eficiente de um cluster de computadores ou servidores interconectados como um único sistema. Clusters são comumente usados ​​em vários ambientes de computação, incluindo data centers, computação em nuvem, computação de alto desempenho (HPC) e sistemas distribuídos.

Data Dados se refere a fatos, números ou informações brutas, normalmente em um formato estruturado, que são coletados, armazenados e processados ​​por computadores. Os dados podem ser quantitativos ou qualitativos e são fundamentais para vários campos, incluindo ciência, negócios, tecnologia e vida cotidiana.

Networking Networking refere-se à prática de conectar dispositivos de computação, sistemas e equipamentos para permitir a comunicação e o compartilhamento de recursos. Ele abrange os componentes de hardware e software necessários para que os dispositivos se comuniquem entre si e acessem recursos compartilhados, como dados, aplicativos e serviços.

Services

  • Messaging
  • RabbitMq: O RabbitMQ é um software de mensagens com código aberto, que implementou o protocolo "Advanced Message Queuing Protocol", que foi estendido com uma arquitetura de plug-in para suportar o protocolo "Streaming Text Oriented Messaging Protocol", o MQTT entre outros protocolos.
  • ActivMQ: Apache ActiveMQ é um message broker de código-fonte aberto escrito em Java, juntamente com um cliente completo de Java Message Service. Ele fornece "recursos empresariais", ou seja, promove a comunicação de mais de um cliente ou servidor.