Introdução
O que é Cloudsupport?
A arquitetura de referência Cloudsupport é um conjunto full stack de tecnologias (linguagens de programação,
bibliotecas, frameworks, ferramentas) e padrões técnicos (protocolos, regras, convenções) para o desenvolvimento de
aplicações web e móveis escaláveis baseadas em microsserviços. As linguagens principais são Java e JavaScript e os frameworks
principais são Spring Boot, Next.js e React Native, abrangendo do backend ao frontend,
incluindo soluções para API Gateway e Observabilidade.
A arquitetura Cloudsupport define padrões que promovem um código-fonte enxuto, coeso, organizado e de fácil manutenção,
favorecendo a produtividade e a evolução contínua do sistema. Ela também estabelece diretrizes e boas práticas para o uso
eficiente dos frameworks selecionados.
Todos os frameworks podem ser utilizados sem limitações!
Clique aqui e começe a desenvolver seguindo as boas práticas da arquitetura Cloudsupport!
Escopo
A arquitetura Cloudsupport contempla:
-
Manual do Desenvolvedor - a presente documentação - que descreve os padrões técnicos, regras e convenções adotadas.
-
Bibliotecas de apoio que simplificam o desenvolvimento e a adoção dos padrões recomendados.
- Basta adicionar a biblioteca no seu projeto Java ou React que os frameworks recomendados são importados automaticamente, além de componentes extras providos pela arquitutura que viabilizam um o código-fonte mais enxuto da aplicação.
-
Arquétipos de aplicações, que são exemplos simples e funcionais de aplicações desenvolvidas na arquitetura
Cloudsupport. Podem ser copiados como ponto de partida para novos projetos. É muito simples começar!
Todas as bibliotecas e arquitétipos são open source e gratuitos.
Em consonância com os padrões estabelecidos nesta arquitetura, sugere-se:
-
Adotação do fluxo de trabalho baseado em branches, conforme capítulo Git Workflow desta documentação.
-
Infraestrutura e ambiente DevOps, baseados em Kubernetes.
-
Metodologia de desenvolvimento ágil.
Solicite o link de download das bibliotecas e arquétipos via [email protected]. Política de Privacidade e Termos de Uso são aplicados.
Bibliotecas
As bibliotecas de apoio da arquitetura Cloudsupport são:
-
Biblioteca Java para backend, que extende o Spring Boot com:
-
Motor para implementação de rotinas (jobs) em background com suporte a: multihreading, processo Produtor-Consumidor, agendamento, monitoramento, gerenciamento programático ou via endpoints Actuator, persistência do progresso e controle de falhas.
-
Integrações com Kubernetes para provimento de alta disponibilidade.
-
Complementos que auxiliam a implementação orientada ao requisito funcional, uma abordagem da arquitetura que visa garantir código-fonte mais coeso e bem encapsulado.
-
-
Extensão OpenTelemetry, que complementa o instrumentador OpenTelemetry Java Agent para captura de tracing das camadas de software definidas na arquitetura.
-
Biblioteca JavaScript para frontend web, que extende o React e Next.js com:
-
Módulo para gerenciamento de configurações por ambiente (profile) em tempo de execução.
-
Complementos para facilitar a gestão de atualizações da aplicação client-side.
-
Integração OIDC, com suporte a renovação automática de JWT, injeção automática do token nas requisições para o backend via API nativa do JavaScript, configuração facilitada de redirects pós-login e pós-logoff do SSO OIDC e componentes React para proteger o acesso a páginas que requerem autenticação.
-
Componentes de UI e Hooks suplementares para maior produtividade.
-
-
Biblioteca JavaScript para frontend mobile, que extende o React Native com:
- Suite com mais de 50 componentes de UI, contemplando tipografia, campos de entrada, menus, overlays, exibição de imagens, gráficos, suporte a temas e framework extensível de validação de formularios.
-
Biblioteca JavaScript, que oferece uma solução simplificada para persistência de dados em aplicações móveis.
Tecnologias
São players importantes que proveem tecnologias alicerce da arquitetura Cloudsupport:

-
VMware: Mantém o Spring Boot e seus frameworks, um dos maiores projetos enterprise para Java. -
Meta: Mantém o React e React Native, frameworks amplamente utilizados para web, iOS e Android. -
Google: Desenvolveu o Kubernetes, ferramenta para orquestração de containers, que alcançou nível graduado noCNCF(Cloud Native Computing Foundation). O CNCF é um projeto da Linux Foundation criado por grandes empresas como Google, Twitter, Intel, Cisco, IBM, Red Hat.
Todas as tecnologias utilizadas são open source e permitem uso governamental e comercial.
Conheça também a ferramenta web Kubepit, que automatiza a publicação de aplicações em ambiente Kubernetes através de um fluxo de solicitação e aprovação de mudança, garantido rastreabilidade, segurança e auditoria. Com Kubepit o time não precisa conhecer o Kubernetes. A ferramenta monitora a implantação e emite notificações do andamento.
Visão Geral
Estes são os principais componentes de uma solução baseada na arquitetura Cloudsupport:

-
Common Resources: São os recursos corporativos comuns a todos os ambientes, seja produção, teste ou desenvolvimento. Para on-premises, sugere-se oGitLabcomo ferramenta deSCMeCI/CD, oNexus Repositorycomo repositório de bibliotecas compartilhadas (MaveneNPM) e de imagens Docker (Docker Registry). -
Kubernetes: Podendo ser a distribuição oficial, proprietária (ex: OpenShift) ou serviços em cloud como Amazon EKS, Google GKS, Azure AKS. Réplicas do cluster pode, existir para fins do ambiente de teste ou homologação. -
User: Representa o ambiente do usuário, onde estão as aplicações de frontend, sejam Web ou móveis. -
DB: Banco de dados, como PostgreSQL, Oracle, Aurora, Cassandra, etc. -
Storage: Armazenamento de arquivos, como NFS, S3, etc. -
Workstation: Estação de trabalho do desenvolvedor, composta essencialmente por IDEs (Ambientes de Desenvolvimento Integrado), como IntelliJ, Visual Studio Code, Xcode e por SDKs (Software Development Kit).
Premissas
São premissas adotadas na elaboração da arquitetura Cloudsupport:
-
Prover
durabilidadeesegurançanas aplicações desenvolvidas através da adoção de tecnologias padrões de mercado, maduras e com grande suporte da comunidade. -
Prover
manutenibilidadepor meio da definição de padrões técnicos e aplicação de boas práticas que viabilizam código-fonte de baixo acoplamento, alta coesão, modular e de boa legibilidade. -
Prover
resiliênciaà rotatividade de profissionais, fruto da alta manutenibilidade, que facilita a compreensão do código-fonte em razão de sua homogeneidade entre os vários projetos desenvolvidos. -
Prover alta
produtividadeatravés da disponibilização de bibliotecas que fornecerão configurações padrões e componentes comuns às aplicações. -
Permitir
alta disponibilidadecom zero downtime durante a atualização de versões da aplicação através da integração com Kubernetes. -
Permitir
escalabilidadepela adoção de patterns relacionados à abordagem de desenvolvimento por microsserviços. -
Reduzir custocom licenças atráves da utilização tecnologias open source.
Próximos Passos
Leia o capítulo Como Começar, que contém as instruções para iniciar
o desenvolvimento de aplicação usando a arquitetura Cloudsupport.