Linha 119: Linha 119:


'''Services'''
'''Services'''
*'''Messaging: '''
*'''Messaging '''
*'''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'''
*'''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.'''

Edição das 17h18min de 18 de julho de 2024

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

CD Pipiline

Infrastructure Control Plane

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.