Ir para o conteúdo

Princípios

Abaixo seguem os princípios que são preconizados em cada aplicação desenvolvida na plataforma TOTVS Apps.

TOTVS Apps
TOTVS Apps
Application
Application
Scalability
Scalability
Portability
Portability
Maintainability
Maintainability
Security
Security
Business
Business
Extensibility
Extensibility
Testability
Testability
Interoperability
Interoperability
Usability
Usability
Availability
Availability
Text is not SVG - cannot display

Manutenibilidade

A plataforma TOTVS Apps estimula o uso de boas práticas no desenvolvimento das aplicações através da disponibilização de ferramentas que viabilizam essa prática.

Abaixo seguem algumas ferramentas o que ajudam as aplicações a serem construídas de forma mais manutenível.

Versionamento de código-fonte

O sistema de versionamento de código é um requisito obrigatório no desenvolvimento de qualquer aplicação da plataforma TOTVS Apps. Esse serviço provê diversos benefícios de manutenibilidade, dentre eles:

  • A possibilidade de armazenar um histórico de versões do serviço que pode ajudar na resolução de problemas;
  • A possibilidade de separar o código-fonte de funcionalidade em desenvolvimento do código-fonte principal que é base para um processo de desenvolvimento mais organizado e para o uso de pull request.

Pull Requests

O uso de ferramentas de Pull Request (PR) permite que os times que desenvolvem as aplicações da plataforma possam avaliar as entradas de código-fonte em uma determinada branch viabilizando funcionalidades como a marcação obrigatória de revisores, o histórico de comentários de cada revisão, a organização de revisões por funcionalidade dentre outras práticas que visam garantir que o código entrante em produção esteja "de acordo" com o estilo de codificação do time que mantém o serviço em questão afim de facilitar sua evolução e sua manutenção.

Ferramentas de verificação de código-fonte

O uso do ferramentas de verificação de código é aplicado durante o processo de desenvolvimento e de empacotamento (build) das aplicações. Essas ferramentas propiciam uma verificação sistemática do código-fonte das aplicações para:

  • Proteção: Tomar ações para mitigar as vulnerabilidades e problemas relacionados a segurança encontradas.
  • Manutenibilidade: Encontrar e otimizar códigos complexos ou duplicados.
  • Detecção de Bugs: Encontrar e corrigir erros.
  • Cobertura de Testes: Apresenta relatório sobre a quantidade de código que está coberto por testes unitários. Devendo-se cumprir os pré-requisitos de qualidade estabelecidos para o projeto via Quality Gate.
  • Melhoria das habilidades dos desenvolvedores: O entendimento dos problemas de qualidade ajuda os desenvolvedores a aprimorar suas habilidades de codificação.

Usabilidade

A preocupação com usabilidade está presente nos serviços da plataforma desde a sua concepção, abaixo serão exibidos os principais pontos que são considerados para prover um alto nível de usabilidade.

Equipes de serviço especializadas

As aplicações contidas na plataforma TOTVS Apps são feitas por equipes especializadas no contexto de negócio que cada aplicação possui.

Equipes multidisciplinares

Essas equipes que desenvolvem e mantém as aplicações são multidisciplinares, possuem tanto analistas de negócio quanto profissionais técnicos das mais diferentes áreas de tecnologia, além de contarem com o apoio do time de UX da TOTVS.

TOTVS Design System

A plataforma recomenda o uso do Po UI como biblioteca de criação de componentes visuais que é baseado no design system padrão da TOTVS.

Disponibilidade

A disponibilidade é um pré-requisito na plataforma TOTVS Apps, pois entende-se que no mundo de aplicações cloud-native há sempre uma grande iminência de indisponibilidade, seja por intermitências na infraestrutura, por conta de eventuais erros ou, até mesmo, por vetores de ataque que agem intencionalmente em eventuais brechas de segurança afim de causar algum prejuízo à companhia ou de tirarem alguma vantagem indevida.

Abaixo serão apresentados os principais aspectos que preconizamos para manter a disponibilidade das aplicações da plataforma TOTVS Apps.

Elementos de suporte

A plataforma TOTVS Apps provê componentes que facilitam e resolvem necessidades conhecidas no processo de desenvolvimento de aplicações. Esses componentes são chamados de elementos de suporte. Os principais pré-requisitos para disponibilização desses componentes estão ligados à sua disponibilidade. Tais pré-requisitos cobrem desde aspectos de segurança até aspectos de distribuição geográfica e de backups diários.

Um dos principais elementos de suporte providos pela plataforma TOTVS Apps é o mecanismo de orquestração de contêineres que é utilizado para computação distribuída das cargas de trabalho baseadas em contêineres. Esse componente, dentre outras coisas, entrega a capacidade de escalabilidade horizontal elástica nessa camada e isso contribui para uma disponibilidade maior.

Além disso são disponibilizados outros elementos de suporte que também contribuem par ao aumento da disponibilidade das aplicações desenvolvidos na plataforma TOTVS Apps, tais como Firewalls, TLS, Messaging, etc.

Boas práticas de desenvolvimento

É preconizado o uso de boas práticas de desenvolvimento voltado para a criação de aplicações cloud-native, tais como:

  • O uso das recomendações do The 12-Factor App;
  • O uso de Pull Request para evitar erros que podem tirar a aplicação "do ar";
  • O cuidado redobrado com segurança para permitir que as aplicações construídas na plataforma sejam altamente disponíveis.

Backups diários

Os dados persistidos na plataforma TOTVS Apps possuem backups diários que são automaticamente gerenciados pelo time da plataforma.

Multi-zona

Os elementos de suporte estão presentes distribuídos geograficamente em zonas de disponibilidade distintas para garantir uma maior disponibilidade das aplicações.

Estratégias pré-definidas de implantação

A plataforma provê recursos para que cada implantação de cada serviço possua uma estratégia de implantação.

Essas estratégias visam atualizar uma aplicação em produção de modo planejado e organizado, causando maior transparência aos seus consumidores afim de reduzir o downtime. Dentre as estratégias possíveis, destaca-se as seguintes: Canary Release, Blue Green Deployment, Feature Toggles e etc.

Portabilidade

A plataforma TOTVS Apps não possui muitas restrições para execução das aplicações, as principais restrições são as citadas a seguir.

Filosofia de lock-in

Na plataforma TOTVS Apps há uma preferência de fazer lock-in com tecnologias e protocolos abertos do que com fornecedores.

Por isso as aplicações contidas nesta plataforma estão implantadas em contêineres que seguem o padrão OCI, pois estes são capazes de serem executados em qualquer orquestrador de contêineres OCI.

Interoperabilidade

Para ser interoperável é necessário seguir padrões abertos que facilitam a integração das aplicações e de seu ecossistema com o mundo ao ser redor. Abaixo seguem os pontos de interoperabilidade que estão contidos nas aplicações da plataforma TOTVS Apps.

Web

Por serem cloud-native, as aplicações da plataforma TOTVS Apps são distribuídos na web e podem ser acessadas pelos principais navegadores do mercado através do uso do PO UI.

Protocolos abertos

Na plataforma TOTVS Apps é preconizado o uso de mensagens no formato cloudevents aplicados aos protocolos de transporte HTTP, AMQP e gRPC para comunicação interna e externa entre as suas aplicações.

Testabilidade

Ser testável significa prover mecanismos que auxiliam na identificação e resolução de problemas em qualquer ambiente. A seguir será visto os pontos de testabilidade que são atribuídos às aplicações da plataforma TOTVS Apps.

Testes automatizados

A plataforma preconiza o uso de testes automatizados e provê funcionalidades para execução tanto de testes unitários quanto de testes de integração no processo de empacotamento das suas aplicações.

Observabilidade

Além disso, a plataforma TOTVS Apps provê elementos de suporte que facilitam a implementação de observabilidade em suas aplicações, tais como:

  • Serviço de Logs: Elemento de suporte que facilita o armazenamento, o processamento e a disponibilização dos logs das aplicações;
  • Serviço de Métricas: Elemento de suporte que facilita a exposição e o armazenamento das métricas geradas pelas aplicações;
  • Serviço de Dashboards: Elemento de suporte que facilita a criação de relatórios, o acompanhamento, e o entendimento em tempo real do que está acontecendo nas aplicações;
  • Serviço de Alertas: Elemento de suporte que facilita a criação de alertas que avisa os responsáveis pelas aplicações em caso de eventuais anomalias;
  • Página de Status: Elemento de suporte que facilita a identificação de queda de um determinada aplicação.

Infraestrutura como código

Na plataforma TOTVS Apps toda a infraestrutura é criada a partir de código-fonte. Isso tráz maior equidade e reprodutibilidade entre o que acontece nos ambientes produtivos e não-produtivos, além de outros benefícios como facilitar a portabilidade das aplicações da plataforma TOTVS Apps.

Isolabilidade

Cada aplicação da plataforma TOTVS Apps é executado em um ambiente virtualmente separado, isso traz maior isolabilidade e facilita a testabilidade e a identificação de eventuais problemas.

Extensibilidade

As aplicações da plataforma TOTVS apps seguem a seguinte filosofia:

Personalizações devem ser feitas por meio das configurações disponíveis em cada aplicação e customizações devem ser feitas por meio de extensões que provém do consumo de APIs ou da subscrição de eventos.

Segurança

A plataforma TOTVS Apps provê recursos de segurança obrigatórios em todas as etapas do desenvolvimento, abaixo serão apresentados os principais pontos.

Esteira segura

O uso da esteira segura consiste na obrigação do uso de determinadas etapas no processo de empacotamento e de implantação das aplicações nos ambientes oficiais da plataforma TOTVS Apps, tais como: o uso do sistema de versionamento de código-fonte oficial, o uso de revisões de código-fonte, a passagem por ferramentas de verificação de código-fonte, o uso eficaz de testes automatizados, a definição da infraestrutura como código e afins.

Essas etapas visam mitigar a entrada de códigos maliciosos nos ambientes da plataforma TOTVS Apps.

WAF

A plataforma TOTVS Apps provê de modo transparente e obrigatório um serviço de WAF como elemento de suporte às suas aplicações.

É uma condição sine qua non que todas integrações com as aplicações contidas na plataforma TOTVS Apps passem por esse serviço de WAF.

TLS

Outro elemento de suporte provido pela plataforma TOTVS Apps ás suas aplicações de modo transparente é o uso de TLS de ponta-a-ponta.

Junto com esse elemento de suporte é entregue a gestão centralizada de certificados digitais que está atrelada tanto na comunicação interna quanto da comunicação externa à plataforma.

Contingência

Na plataforma TOTVS Apps são entregues às aplicações diversos elementos de suporte que atuam na contingência de eventuais erros iminentes, tais como serviços de backups diários, entrega de serviços em um ambiente multi-zona além de outros recursos.

Autenticação e Autorização

Toda a integração realizada às aplicações da plataforma TOTVS Apps passa por elementos de suporte que cuidam da autenticação e da autorização dessas integrações. As aplicações da plataforma utilizam esses elementos para validar se podem ou não responder as requisições recebidas.

Escalabilidade

A preocupação em se ter escalabilidade está presente é intrínseca à criação de aplicações cloud-native uma vez que a quantidade de clientes que podem acessá-los também tende a escalar de maneira crescente. A seguir serão apresentados os principais pontos de escalabilidade contidos na plataforma TOTVS Apps.

Escalabilidade elástica

As aplicações da plataforma TOTVS Apps são elasticamente escaláveis podendo aumentar ou reduzir seu poder computacional conforme a sazonalidade de acessos. Isso é um advento proveniente do uso do mecanismo de orquestração de contêineres e dos demais elementos de suporte provido aos serviços da plataforma TOTVS Apps.

Escalabilidade horizontal

Na plataforma TOTVS Apps é preconizado o uso da escalabilidade horizontal em detrimento da escalabilidade vertical que, apesar de ser possível, dificulta a administração do cluster além de ferir algumas das boas práticas de desenvolvimento recomendadas pelos administradores da plataforma TOTVS Apps.

Mensageria

O uso de mensageria pelas aplicações contidos na plataforma TOTVS Apps é amplamente difundido principalmente pela existência de um elemento de suporte que facilita o seu uso.

Esse tipo de abordagem traz previsibilidade e robustez no tratamento de eventuais picos de processamento, além de ser mais econômico computacionalmente e, por consequência, financeiramente.

Voltar ao topo