Opções da Excelência Operacional
A Excelência Operacional fornece qualidade de carga de trabalho por meio da implementação de padrões claros de equipe, responsabilidade e prestação de contas compreendidas, atenção aos resultados do cliente e coesão da equipe. A implementação dessas metas está enraizada no DevOps, que recomenda minimizar a variação do processo, reduzir o erro humano e, por fim, aumentar o retorno de valor da carga de trabalho. Esse valor não é medido apenas em relação aos requisitos funcionais atendidos pelos componentes da carga de trabalho. Também é medido pelo valor que a equipe entrega na busca por melhorias.
Durante a fase de design de uma carga de trabalho e ao longo de seu ciclo de vida, à medida que as etapas de melhoria contínua são executadas, é importante considerar como as decisões baseadas nos princípios de design de Excelência Operacional e nas recomendações na lista de verificação de revisão de Design para Excelência Operacional podem influenciar as metas e otimizações de outros pilares. Certas decisões podem beneficiar alguns pilares, mas constituem compensações para outros. Este artigo descreve exemplos de compensações que uma equipe de carga de trabalho pode encontrar ao projetar a arquitetura e as operações da carga de trabalho.
Compensações de Excelência Operacional com Confiabilidade
Compensação: Maior complexidade. A confiabilidade prioriza a simplicidade, porque o design simples minimiza a configuração incorreta e reduz as interações inesperadas.
As estratégias de implantação segura geralmente exigem alguma compatibilidade com versões anteriores e posteriores entre a lógica do aplicativo e os dados na carga de trabalho. Essa complexidade adicional aumenta a carga de teste e pode levar a complexidades ou problemas de integridade com os dados da carga de trabalho.
A infraestrutura altamente em camadas, modularizada ou parametrizada como código pode aumentar a chance de configuração incorreta acidental devido à complexidade da interação entre os componentes do código.
Os padrões de design de nuvem que beneficiam as operações às vezes exigem a introdução de componentes adicionais, por exemplo, o uso de um repositório de configuração externo ou a coordenação de implantações de sidecar em uma plataforma de aplicativo em contêiner. Os componentes adicionais e as camadas adicionais de indireção aumentam os pontos de interação no sistema, aumentando a área de superfície para mau funcionamento ou configuração incorreta.
Os componentes de carga de trabalho projetados para evoluir de forma independente para dar suporte ao desenvolvimento e hospedagem ágeis introduzem dependências na descoberta de serviços como uma camada de indireção. A descoberta de serviços pode não ter capacidade de resposta à alteração e o mau funcionamento pode ser difícil de diagnosticar.
Compensação: Aumento de atividades potencialmente desestabilizadoras. O pilar Confiabilidade incentiva a evitar atividades ou escolhas de projeto que podem desestabilizar um sistema e levar a interrupções, interrupções ou mau funcionamento.
A implantação de pequenas alterações incrementais é uma técnica para mitigar riscos, mas também se espera que essas pequenas alterações sejam entregues à produção com mais frequência. As implantações podem desestabilizar um sistema, portanto, à medida que a taxa de implantação aumenta, esse risco também aumenta.
Uma cultura que se mede com métricas de velocidade, como implantações por semana, e usa automação que pode facilitar a introdução de mudanças em um ritmo mais rápido, também provavelmente realizará mais implantações em um período mais curto.
Aumentar a densidade para simplificar as operações, reduzindo o número de superfícies de controle e observabilidade, também pode levar a um maior risco de disponibilidade, pois o mau funcionamento ou a configuração incorreta aumentam o raio de impacto de um evento desestabilizador.
Compensações de Excelência Operacional com Segurança
Compensação: Aumento da área de superfície. O pilar Segurança recomenda uma área de superfície de carga de trabalho reduzida em termos de componentes e exposição às operações. Essa redução minimiza os vetores de ataque e produz um escopo menor para controle e teste de segurança.
Os componentes que cercam a carga de trabalho e dão suporte a suas operações, como automação ou um plano de controle personalizado, também devem estar no escopo de proteção e testes de segurança regulares.
Operações de rotina, ad hoc e de emergência aumentam os pontos de contato com a carga de trabalho. Uma abordagem de confiança zero requer que esses processos sejam considerados vetores de ataque e devem ser incluídos nos controles de segurança e na validação da carga de trabalho.
A plataforma de observabilidade do sistema coleta logs e métricas sobre a carga de trabalho, o que pode ser uma fonte valiosa de divulgação de informações. Portanto, a segurança da carga de trabalho precisa se estender para proteger os coletores de dados contra ameaças internas e externas.
Agentes de build, configuração externalizada e repositórios de alternância de recursos e abordagens de implantação lado a lado aumentam a área de superfície do aplicativo que requer segurança.
Uma frequência de implantação mais alta causada por pequenas alterações incrementais ou por esforços de "atualize-se, mantenha-se atualizado" resulta em mais testes de segurança no ciclo de vida de desenvolvimento de software.
Compensação: Aumento do desejo de transparência. Uma carga de trabalho segura é baseada em designs que protegem a confidencialidade dos dados que fluem pelos componentes do sistema.
As plataformas de observabilidade ingerem dados de todos os tipos para obter insights sobre a integridade e o comportamento de uma carga de trabalho. À medida que as equipes tentam obter maior fidelidade nos dados de observabilidade, há um risco maior de que os controles de classificação de dados, como o mascaramento de dados, dos sistemas de origem não se estendam aos logs e coletores de log da plataforma de observabilidade.
Compensação: Segmentação reduzida. Uma abordagem de segurança importante para isolar o acesso e a função é projetar uma estratégia de segmentação forte. Esse design é implementado por meio de isolamento de recursos e controles de identidade.
A colocalização de componentes de aplicativos diferentes em recursos compartilhados de computação, rede e dados para facilitar o gerenciamento reverte a segmentação ou dificulta a segmentação baseada em funções. Os componentes colocalizados também podem precisar compartilhar uma identidade de carga de trabalho, o que pode levar à atribuição excessiva de permissões ou à falta de rastreabilidade.
Coletar todos os logs de todo o sistema em um coletor de log unificado pode facilitar a consulta e a criação de alertas. No entanto, isso também pode dificultar ou impossibilitar o fornecimento de segurança baseada em linha para tratar dados confidenciais com os controles de auditoria necessários.
Simplificar o gerenciamento da segurança baseada em atributos ou em funções, reduzindo a granularidade das funções e suas atribuições, pode levar a permissões inadequadamente amplas.
Compensações de Excelência Operacional com Otimização de Custos
O pilar Excelência Operacional nunca recomenda atividades que reduzam a produtividade ou comprometam o retorno sobre o investimento de uma carga de trabalho. As recomendações que parecem mudar o foco das atividades de entrega levam em consideração os melhores interesses de longo prazo para a carga de trabalho e a equipe. Se sua carga de trabalho está se aproximando da data de desativação
Compensação: Aumento dos gastos com recursos. Um dos principais fatores de custo para uma carga de trabalho é o custo de seus recursos. Implantar menos recursos, dimensionar corretamente os recursos e reduzir o consumo geralmente ajuda a manter os custos baixos.
A implementação de práticas de implantação seguras, mesmo que as alterações sejam relativamente pequenas, pode levar a um aumento no número de recursos implantados simultaneamente. Esses padrões exigem a implantação de várias instâncias simultâneas do aplicativo ou componente de infraestrutura para que o tráfego possa ser deslocado de maneira controlada. Esse aumento é mais pronunciado em uma carga de trabalho que usa uma abordagem de infraestrutura imutável.
A equipe pode precisar introduzir componentes de carga de trabalho adicionais para implementar padrões de design de nuvem alinhados operacionalmente ou automação de carga de trabalho. Por exemplo, para dar suporte à agilidade de implantação, eles podem adicionar um componente de roteamento de gateway. Para dar suporte a um melhor gerenciamento de configuração, eles podem adicionar um repositório de configuração externo. Para dar suporte a eventos de ciclo de vida do locatário, eles podem criar um plano de controle. Esses recursos também influenciam os custos dos ambientes de pré-produção.
Aumentar o número de ambientes de pré-produção para melhorar a experiência de desenvolvimento e teste por meio do isolamento também aumenta o número de recursos. Esses recursos, que não são usados para fornecer em relação à demanda de produção, aumentam o custo da solução.
Aumentar a paridade dos ambientes de pré-produção com o ambiente de produção, em termos de contagem de recursos, SKUs e volumes de dados, melhora o processo de garantia de qualidade. O custo aumenta à medida que a paridade aumenta.
Embora os dados de telemetria não sejam diretamente um recurso, para permitir a eficácia das plataformas de observabilidade, esses dados precisam ser mantidos. A maioria dos armazenamentos de dados operacionais tem preços baseados em uma combinação de taxas de ingestão e volume. Geralmente, à medida que a quantidade de telemetria de baixa latência e alta diversidade aumenta, os custos também aumentam. Para implantações multirregionais, espera-se que esses coletores de dados operacionais sejam implantados por região, portanto, quaisquer custos por recurso se tornam um fator.
Compensação: Diminuição do foco nas atividades de entrega. Os membros da equipe de carga de trabalho oferecem maior valor de carga de trabalho executando com eficiência tarefas alinhadas às suas capacidades.
As equipes de carga de trabalho que gastam tempo criando e refinando uma estrutura de suporte saudável e responsável e resposta a incidentes estão fornecendo um serviço valioso aos usuários da carga de trabalho. À medida que o esforço de suporte aumenta (por exemplo, rotações formais de plantão), geralmente devido a uma mudança na criticidade dos negócios, os custos dessas atividades aumentam. Esse aumento de custo pode ser o resultado de um aumento na equipe ou pode ser incorrido indiretamente na forma de atenção que é transferida das atividades de entrega para as funções de suporte.
O treinamento é uma parte crítica do processo de melhoria contínua pessoal de uma equipe de carga de trabalho. Esse treinamento pode ser formal ou autodirigido durante o tempo de enriquecimento pessoal. À medida que a quantidade de tempo de treinamento aumenta, a quantidade de tempo disponível para o desenvolvimento direto da carga de trabalho diminui. O investimento em treinamento é diminuído quando o treinamento não é baseado em funções ou especificamente relevante para a carga de trabalho ou seu futuro.
Tarefas operacionais de rotina padronizadas para proteger a confiabilidade, a segurança e a eficiência de desempenho de uma carga de trabalho levam tempo para serem definidas, refinadas e executadas. Esse tempo não é gasto diretamente na entrega. Alguns exemplos dessas tarefas são análise abrangente do impacto da mudança, processos de controle de mudanças, testes completos e maior gerenciamento de patches. À medida que a frequência, a abrangência ou a carga operacional dessas tarefas aumentam, o tempo investido também aumenta.
Compensação: Aumento das demandas e diversidade de ferramentas. O pilar Otimização de Custos recomenda a redução da expansão de ferramentas, a consolidação de fornecedores e uma abordagem do tamanho certo para todas as compras de ferramentas.
Uma equipe de carga de trabalho compra ferramentas e hardware para dar suporte a atividades executadas durante todo o ciclo de vida de desenvolvimento de software (SDLC), incluindo planejamento e design, desenvolvimento e teste e monitoramento. O mercado de ferramentas neste espaço está crescendo. As ferramentas são oferecidas em várias faixas de preço que geralmente correspondem aos recursos e capacidades das ferramentas. Com exceção das ofertas gratuitas, essas ferramentas incorrem em custos iniciais de licenciamento, que podem ser por usuário, por dispositivo ou em todo o site. Muitas vezes, eles também exigem contratos de manutenção contínuos. Pode ser necessário estabelecer novas relações com fornecedores. Aqui estão alguns exemplos de gastos esperados com ferramentas ou hardware associados aos princípios de excelência operacional:
- Gerenciamento de requisitos e backlog
- Ferramentas de design de arquitetura
- Ferramentas de design de UI/UX
- Hospedagem de código e ativos
- Ambientes de desenvolvimento de código e low-code
- Ferramentas de automação
- Estações de trabalho de desenvolvimento e garantia de qualidade
- Pipelines de desenvolvimento e implantação
- Execução e acompanhamento de testes
- Ferramentas de observabilidade
Compensações de Excelência Operacional com Eficiência de Desempenho
Compensação: Maior utilização de recursos. O pilar Eficiência de Desempenho recomenda a alocação do máximo possível da computação e da rede disponíveis para os requisitos da carga de trabalho.
A estrutura de observabilidade de uma carga de trabalho exige que os componentes na arquitetura aloquem tempo e recursos para criar, coletar e transmitir logs e métricas. Esses pontos de dados ajudam a garantir que alertas e monitoramento eficazes sejam possíveis para confiabilidade, segurança e desempenho. À medida que o nível de instrumentação aumenta, a pressão sobre os recursos do sistema também pode aumentar.
Alguns modelos de implantação, como a implantação azul/verde, que uma carga de trabalho pode usar para implantação segura, podem introduzir implantações lado a lado na plataforma de aplicativo de produção. Essas implantações exigem escalabilidade preventiva para fornecer suprimento suficiente para atender à demanda futura ou deixar uma implantação inativa por um período de tempo para dar suporte à reversão.
Compensação: Maior latência. Para criar cargas de trabalho de alto desempenho, as equipes procuram maneiras de reduzir o tempo e os recursos que as cargas de trabalho consomem para executar suas tarefas.
Muitos modelos de implantação exigem o uso de padrões de acesso de roteamento de gateway, que podem introduzir latência. Essa latência é consumida em relação ao orçamento de meta de desempenho para os fluxos relacionados.
Alguns padrões de design de nuvem que dão suporte a abordagens de "mudança independente ao longo do tempo" para dar suporte aos ideais de melhoria incremental podem introduzir latência devido à travessia de componentes adicionais. Essa latência pode ser introduzida por gateways, agentes de mensagens ou camadas anticorrupção.
Links relacionados
Explore as compensações para os outros pilares: