Experts in Angular

The Twelve-Factor AppXII. Admin Processes – Executar tarefas administrativas como processos únicos
Tarefas Administrativas Relevantes em Aplicações Angular

XII. Admin Processes – Executar tarefas administrativas como processos únicos

Tratar migrações, scripts e outras tarefas administrativas de forma isolada e pontual

12º Fator: Executar Processos Administrativos como Processos Únicos (One-Off Processes)

O décimo segundo fator da metodologia de doze fatores foca em como lidar com tarefas administrativas e de manutenção. Essas tarefas incluem migrações de banco de dados, execução de scripts temporários ou o uso de consoles REPL (Read-Eval-Print Loop) para inspecionar o estado da aplicação. O princípio fundamental aqui é que esses processos administrativos devem ser tratados como processos únicos que executam no mesmo ambiente da aplicação e seguem as mesmas práticas de isolamento de dependências e configuração que os processos regulares da aplicação.

O Que São Processos Administrativos?

Processos administrativos são tarefas esporádicas ou pontuais que não fazem parte do fluxo contínuo de execução da aplicação, mas que são essenciais para a manutenção, atualização e gerenciamento da aplicação.

No entanto, no contexto de uma aplicação Angular, que é essencialmente um frontend que gera uma aplicação web entregue como arquivos estáticos para um servidor web, esse conceito precisa ser interpretado de uma forma mais relevante ao seu ciclo de vida.

A aplicação Angular, por si só, não envolve migrações de banco de dados ou uso de consoles REPL como em backends tradicionais. Contudo, há tarefas administrativas relacionadas ao ciclo de vida da aplicação Angular e à maneira como ela é gerenciada em produção, que podemos destacar. Vamos explorar os processos únicos administrativos mais aplicáveis à realidade de um projeto Angular.

Tarefas Administrativas Relevantes em Aplicações Angular

  1. Builds e Otimizações de Produção
    • Build de Produção é uma das tarefas mais importantes no ciclo de vida de uma aplicação Angular. Diferente de outras etapas como desenvolvimento contínuo, o build de produção é uma tarefa única que gera a versão final dos arquivos estáticos otimizados (HTML, CSS, JS) prontos para serem servidos por um servidor web.
    • No Angular, o comando ng build --prod realiza essa tarefa, otimizando os arquivos, minificando o código e removendo trechos não utilizados. Isso gera uma versão leve e eficiente da aplicação que pode ser facilmente entregue em produção.
    • Processo Único: Essa etapa do build pode ser considerada uma tarefa administrativa única e deve ser tratada como tal, pois o processo de build, embora isolado, é fundamental para garantir que a versão final da aplicação seja consistente com o código e as dependências.
  2. Deploy em Ambientes de Produção
    • Depois do build de produção, a aplicação Angular deve ser implantada em um servidor web para servir os arquivos estáticos. A implantação em si também pode ser considerada uma tarefa administrativa única, já que, uma vez implantada, a aplicação está pronta para uso pelos usuários.
    • O processo de deploy pode envolver servidores como Nginx, Apache, ou servidores serverless, como o AWS S3 (com CloudFront) ou Firebase Hosting. A execução de scripts de deploy é uma tarefa importante e única em ambientes de produção.
  3. Gerenciamento de Configurações de Deploy
    • A aplicação Angular pode ter diferentes configurações de ambiente para desenvolvimento, homologação e produção. As configurações de variáveis de ambiente, como URLs de APIs, modos de execução e permissões, são críticas.
    • Arquivos como environment.ts e environment.prod.ts fornecem configurações diferentes para cada ambiente, e isso pode ser tratado como um processo único durante o build. A substituição desses arquivos durante o processo de build é essencial para garantir que a aplicação se comporte de acordo com o ambiente em que está sendo implantada.
  4. Auditoria e Atualizações de Dependências
    • Um aspecto crítico do desenvolvimento Angular é o gerenciamento e atualização das dependências. O comando npm audit ou yarn audit pode ser utilizado como um processo único para identificar vulnerabilidades de segurança nas dependências da aplicação.
    • Além disso, atualizações periódicas de bibliotecas e pacotes podem ser realizadas como processos únicos. Por exemplo, ng update pode ser usado para atualizar o Angular e suas dependências. Embora não sejam tarefas diárias, migrações e atualizações de dependências garantem que a aplicação esteja atualizada e segura.
  5. Execução de Testes Unitários e End-to-End (E2E)
    • Embora os testes sejam geralmente parte do ciclo de desenvolvimento contínuo, testes automatizados em um ambiente de produção antes do deploy final podem ser considerados tarefas administrativas únicas.
    • O uso de frameworks como Jasmine para testes unitários ou Protractor/Cypress para testes end-to-end é um processo crítico. Executar testes E2E em um ambiente de staging ou pré-produção garante que a aplicação Angular esteja funcionando conforme o esperado antes de ser liberada para os usuários.
  6. SEO e Auditoria de Performance
    • Ferramentas como Google Lighthouse podem ser usadas como um processo único para realizar auditorias de SEO, performance e acessibilidade. Essas auditorias podem ser executadas como parte do pipeline de build, mas também podem ser tratadas como processos administrativos separados, garantindo que a aplicação Angular atenda aos requisitos de otimização e seja descoberta por motores de busca.
  7. Monitoramento e Atualização de Certificados SSL
    • Quando uma aplicação Angular é servida por HTTPS, o monitoramento e renovação de certificados SSL pode ser considerado uma tarefa administrativa crítica. O uso de serviços como Let’s Encrypt para renovar e atualizar os certificados pode ser tratado como um processo único no ciclo de vida da aplicação.

Comparação com Processos Tradicionais

Diferentemente de aplicações backend, onde operações como migrar um banco de dados ou manipular um console REPL são processos administrativos regulares, em uma aplicação Angular os processos únicos estão mais ligados a:

  • Otimização e deploy da aplicação.
  • Gerenciamento de configuração e ambiente.
  • Auditoria de dependências e vulnerabilidades.
  • Execução de testes e auditorias de performance.

Esses processos são fundamentais para garantir que a aplicação Angular seja implantada de forma segura e otimizada para rodar em um servidor web ou serviço de hospedagem.

Conclusão

No contexto de uma aplicação Angular, os processos administrativos únicos se manifestam principalmente nas atividades de build, deploy e manutenção da aplicação em ambientes de produção. Embora o Angular seja essencialmente uma aplicação frontend, as etapas críticas que levam a essa aplicação ser servida de forma otimizada e segura são tratadas como processos únicos.

Ao invés de migrações de banco de dados ou consoles REPL, a relevância do décimo segundo fator para o Angular está no gerenciamento de builds de produção, deploys automatizados, auditoria de dependências, e testes automatizados, assegurando que a aplicação esteja pronta para escalar, com alta performance e segurança, em ambientes de produção.