5. Integração contínua - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

5. Integração contínua

O sistema ML executa testes para validar se o sistema funciona de ponta a ponta, verificando possíveis pontos de falha. Os testes são executados automaticamente na confirmação, e testes mais longos são executados em um cronograma fixo. Os testes verificam as áreas tradicionais de engenharia de software, como no nível da unidade e do sistema. Além disso, os testes capturam os detalhes do ML verificando dados, recursos e o modelo.

5.1 Verificações de código local

Antes de confirmar o código em um repositório de código centralizado, os desenvolvedores executam localmente verificações, como testes unitários básicos e análise estática. Executar essas verificações antes da confirmação aumenta a qualidade geral do código e detecta problemas antes que eles entrem no controle de versão.

5.2 Análise estática de código

O repositório central de código tem ferramentas estáticas de análise de código que são executadas rapidamente na confirmação. Essas ferramentas devem melhorar o estilo e a formatação do código. Ele também deve verificar vulnerabilidades de segurança comuns no código-fonte e na infraestrutura, bugs comuns e outras fraquezas no código.

5.3 Testes de qualidade de dados

Os testes de qualidade de dados devem, no mínimo, verificar se os dados não violaram um esquema fixo. Uma abordagem mais abrangente é computar estatísticas de dados na ingestão, definir restrições nos dados e executar testes com eles.

É possível configurar testes de qualidade de dados de forma independente ou como parte do pipeline. As estatísticas e restrições são reutilizadas para monitoramento.

5.4 Testes de recursos

Como parte de um pipeline completo, a importância do recurso é gerada. Os testes de recursos afirmam que a importância dos recursos, ou a forma do modelo de atribuir valores dos recursos, não muda. Os testes de recursos podem alimentar o monitoramento porque podem alertar e rastrear violações nas entradas de um modelo.

5.5 Testes unitários

Os testes de unidade para todo o código — modelo, aplicativo e infraestrutura — são executados antes da confirmação e após a confirmação. Cada teste de unidade fornece uma verificação em uma parte importante do código para confirmar se ela funciona conforme o esperado. No caso do código ML, os testes podem ser executados para verificar a exatidão algorítmica.

5.6 Testes de integração

Um teste de integração verifica se o pipeline é executado de ponta a ponta com sucesso, incluindo a manutenção da infraestrutura associada ao pipeline. Esse teste valida se o sistema está funcionando e registrando conforme o esperado. Se a implantação for separada, também deve haver um end-to-end teste para garantir que a implantação funcione.

5.7 Testes de fumaça

O sistema possui testes de fumaça que são executados em mini e rápida regressão de cada peça de funcionalidade. Os testes de fumaça fazem parte da integração contínua e podem ser executados em um ambiente em contêineres para imitar a funcionalidade da nuvem.

5.8 Teste de carga

O teste de carga sob demanda está em vigor. Além de capturar como o sistema de ML se comporta sob cargas altas e baixas, os testes de carga fornecem estatísticas sobre a taxa de transferência ou latência de todo o sistema. Os dados coletados por meio de testes de carga fornecem informações sobre tamanhos de recursos e políticas de escalabilidade.

5.9 Testes funcionais do modelo

As saídas e entradas do modelo são executadas por meio de testes funcionais automatizados. Para verificar um comportamento dentro de um recurso, tanto as saídas quanto as entradas do modelo são testadas em dados reais ou falsos com exemplos básicos.

5.10 Testes de inferência de modelos com casos extremos

Como parte do teste mínimo de funcionalidade, os testes de modelo devem verificar o comportamento extremo de acordo com determinadas entradas antes da promoção do modelo. Isso coloca uma grade de proteção adicional para ajudar a evitar comportamentos inesperados.