Tópico 3.6 — DevOps e excelência em engenharia

Em uma frase: Nos sistemas clínicos, a engenharia disciplinada — esteiras automatizadas, versões pequenas e reversíveis, infraestrutura como código e observabilidade — é o que torna a mudança mais segura, e não mais arriscada, e tratar o "como construímos e operamos software" como uma questão de segurança, equidade e confiança pública é a marca de uma organização de saúde digital madura.

Por que isso importa na saúde e nos cuidados#

O modo como você projeta e opera software é, por si só, um controle de segurança clínica. Quando uma enfermeira distrital não consegue ver uma mudança de medicação, quando um encaminhamento eletrônico falha em silêncio ou quando uma indisponibilidade tranca os clínicos fora de um prontuário de cuidados compartilhado, o dano não é um incômodo abstrato — é tratamento atrasado, uma alergia perdida, uma lacuna de proteção. As práticas de engenharia deste tópico determinam se uma correção necessária chega à produção em dez minutos ou em dez semanas e se uma mudança ruim pode ser revertida de forma limpa ou deixa os clínicos contornando um sistema quebrado por dias.

Há um mito persistente e perigoso nos domínios regulados de que a mudança é risco, de modo que o sistema mais seguro é aquele em que se mexe menos. A evidência aponta no sentido oposto. Os sistemas raramente alterados acumulam vulnerabilidades sem correção, etapas manuais frágeis de implantação e conhecimento tribal não documentado; quando a mudança finalmente se torna inevitável — uma correção de segurança, um prazo regulatório, a saída de um fornecedor —, ela chega como um "big-bang" grande, arriscado e mal compreendido. As organizações que implantam mudanças pequenas com frequência, com automação e reversão rápida, vivenciam menos falhas e se recuperam delas mais depressa. Na saúde e nos cuidados, essa diferença se mede em segurança do paciente.

A excelência em engenharia também é uma questão de equidade e de confiança pública. O software que não é observável esconde o fato de que um serviço tem desempenho pior para usuários em dispositivos mais antigos ou em áreas de conectividade precária. Uma cadeia de suprimentos de software insegura põe em risco informações confidenciais de pacientes (ver Tópico 1.7 — Governança da informação, proteção de dados e cibersegurança). E, como se trata de dinheiro público e dados públicos, o setor espera cada vez mais que o código seja construído conforme padrões abertos e inspecionáveis — às vezes literalmente às claras. O modo como você trabalha não é, portanto, uma questão privada de engenharia; presta contas a pacientes, clínicos e ao público.

Conceitos centrais#

DevOps. O DevOps é uma cultura e um conjunto de práticas que derrubam o tradicional muro entre os desenvolvedores que constroem o software e a equipe de operações que o opera. Em vez de "jogar o código por cima do muro" para uma equipe separada, as mesmas pessoas compartilham a responsabilidade por um serviço do projeto até a operação em produção, apoiadas por automação e retroalimentação rápida. É sobretudo uma forma de trabalhar — responsabilidade compartilhada, aprendizado sem culpa, lotes pequenos — viabilizada por ferramentas, e não uma ferramenta que se compra.

Integração contínua e entrega contínua (CI/CD). A integração contínua (CI) significa que cada desenvolvedor integra pequenas mudanças ao ramo principal compartilhado com frequência, cada uma acionando uma construção e uma execução de testes automatizadas, de modo que os problemas apareçam em minutos. A entrega contínua (CD) estende isso para que o software esteja sempre num estado liberável e possa ser implantado em produção por uma esteira automatizada e repetível. A implantação contínua vai um passo além, liberando automaticamente toda mudança que passa pela esteira. O teste é a substância das barreiras da esteira — tratado em profundidade no Tópico 3.7 — Testes e garantia da qualidade.

Desenvolvimento baseado em tronco e versões pequenas e reversíveis. O desenvolvimento baseado em tronco (trunk-based) mantém todos trabalhando perto de uma única linha principal no controle de versões, integrando várias vezes ao dia em vez de cultivar ramos de longa duração que se afastam e se fundem dolorosamente. A disciplina que o acompanha é entregar mudanças pequenas, frequentes e reversíveis de forma independente. Uma mudança pequena é fácil de revisar, fácil de testar e — de modo crucial num sistema clínico — fácil de reverter de forma limpa se algo der errado.

Infraestrutura como código (IaC). Em vez de configurar servidores à mão, você define a infraestrutura em arquivos legíveis por máquina, mantidos sob controle de versões. O ambiente se torna reprodutível, revisável e auditável: você pode reconstruí-lo de forma idêntica, ver quem mudou o quê e por quê e provar que teste e produção são iguais. Esta é a base de ambientes confiáveis (ver Tópico 4.0 — Arquitetura técnica, nuvem e sistemas legados).

Engenharia de plataforma e experiência do desenvolvedor. A engenharia de plataforma trata as ferramentas, esteiras e ambientes internos de que as equipes de entrega dependem como um produto, tendo as equipes como seus usuários. Uma plataforma interna bem construída dá às equipes uma "estrada pavimentada" — padrões seguros, modelos pré-aprovados, implantação com um clique — para que possam andar depressa e com segurança sem que cada uma reinvente a conformidade. Uma boa experiência do desenvolvedor não é indulgência; é como se faz do caminho seguro o caminho fácil.

As métricas DORA. O DevOps Research and Assessment (DORA) identificou quatro medidas que distinguem as equipes de alto desempenho: frequência de implantação (com que frequência você libera), tempo de espera para mudanças (quanto tempo do commit à produção), taxa de falha de mudanças (que proporção das mudanças causa um problema) e tempo para restaurar o serviço (com que rapidez você se recupera). Juntas, revelam que velocidade e estabilidade sobem juntas — as equipes que implantam com mais frequência também falham menos e se recuperam mais depressa.

"Você constrói, você opera", SRE e observabilidade. Popularizado na Amazon, "você constrói, você opera" significa que a equipe que escreve um serviço também o opera, carrega o pager e sente as suas falhas — fechando o ciclo de retroalimentação entre as escolhas de engenharia e a realidade operacional (ver Tópico 3.8 — Gestão de serviços e operação em produção). A engenharia de confiabilidade de sites (SRE) é uma implementação específica que aplica a engenharia às operações, com metas explícitas de confiabilidade e orçamentos de erro. A observabilidade — a capacidade de entender o estado interno de um sistema a partir de suas saídas (métricas, registros, rastros) — é o que permite detectar e diagnosticar problemas antes dos pacientes e dos clínicos.

Cadeia de suprimentos de software segura. O software moderno é montado a partir de muitos componentes e dependências de terceiros. Um ataque à cadeia de suprimentos explora um componente confiável para comprometer tudo o que depende dele. Gerenciar dependências, varrer vulnerabilidades conhecidas e manter uma lista de materiais de software é higiene central de engenharia, e não um extra opcional de segurança.

Programar às claras e software de código aberto. A política do governo do Reino Unido — expressa no GDS Service Standard e no NHS Service Standard — pede às equipes que tornem abertos por padrão os novos códigos-fonte e usem padrões abertos. Para o software de saúde financiado com recursos públicos, isso melhora o escrutínio, a reutilização e a confiança, desde que os dados de pacientes e os segredos genuínos sejam rigorosamente mantidos fora dos repositórios públicos.

Boas práticas#

  1. Construa uma esteira de CI/CD antes de construir o serviço. Estabeleça construção, teste e implantação automatizados desde a primeira semana, para que toda mudança flua pelo mesmo caminho repetível e auditável até a produção. A esteira é onde moram, como verificações automatizadas, as suas barreiras de segurança clínica, segurança e acessibilidade, dando um registro documentado e à prova de adulteração de exatamente o que foi implantado e quando. Num sistema regulado, essa trilha de auditoria não é custo indireto — é evidência para o seu caso de segurança clínica (ver Tópico 1.6 — Segurança clínica e gestão de riscos).

  2. Implante mudanças pequenas, frequentes e reversíveis. Prefira muitas versões pequenas a poucas grandes e projete cada mudança para que possa ser revertida ou desativada com rapidez. Uma mudança minúscula que falha é fácil de entender e reverter; uma megaversão trimestral que falha é um incidente clínico com cem suspeitos. Técnicas como sinalizadores de funcionalidade (feature flags), liberações canário e implantação azul-verde permitem expor a mudança gradualmente e retirá-la instantaneamente — transformando a implantação de um evento temido em um ato rotineiro e sem drama.

  3. Faça da reversão rápida e limpa um controle de segurança de primeira ordem. Ensaie a reversão como se ensaia um simulado de incêndio e meça quanto tempo ela de fato leva. Num sistema clínico, a capacidade operacional mais valiosa é poder voltar a um estado sabidamente bom em minutos quando uma mudança causa dano. Uma reversão que nunca foi testada é uma esperança, não um controle; prove que funciona e continue provando.

  4. Trate a infraestrutura e a configuração como código. Defina ambientes, redes e configuração de forma declarativa, sob controle de versões, e provisione-os automaticamente. Isso dá ambientes reprodutíveis, mudanças revisadas por pares e a capacidade de reconstruir após uma falha ou desastre (ver Tópico 3.9 — Continuidade de negócios e recuperação de desastres). Servidores manuais e ajustados à mão, os "flocos de neve", são irrepetíveis, não documentados e a causa habitual de "funcionou no teste, mas não na produção".

  5. Use as métricas DORA para conversas honestas, e não para classificar pessoas. Acompanhe a frequência de implantação, o tempo de espera, a taxa de falha de mudanças e o tempo de restauração como um sinal de saúde em nível de sistema e observe-os moverem-se juntos rumo ao mais rápido e mais seguro. Resista a transformá-las em tabelas de classificação individuais ou de equipes — os próprios autores do DORA advertem contra isso, porque estimula a manipulação e o risco oculto. O uso correto é diagnóstico: uma taxa de falha de mudanças crescente está dizendo algo sobre cobertura de testes ou tamanho de lote que um conselho deveria querer ouvir.

  6. Adote "você constrói, você opera", amparado pela observabilidade. Dê às equipes de entrega a propriedade genuína dos seus serviços em produção, incluindo a responsabilidade de plantão, para que as pessoas que fazem as escolhas de projeto convivam com as consequências operacionais. Sustente isso com observabilidade — métricas, registros estruturados e rastros, mais alertas significativos ligados ao impacto no usuário — para que as equipes encontrem os problemas antes de os clínicos os relatarem. Isso fecha o ciclo de retroalimentação que melhora as escolhas de engenharia ao longo do tempo e se conecta diretamente à gestão de serviços (Tópico 3.8).

  7. Proteja continuamente a cadeia de suprimentos de software. Mantenha um inventário das dependências, varra automaticamente em busca de vulnerabilidades conhecidas, fixe e verifique versões e mantenha uma lista de materiais de software para responder "somos afetados?" em horas após a próxima falha amplamente divulgada. Restrinja quem e o que pode publicar em produção e proteja rigorosamente segredos e credenciais (ver Tópico 4.2 — Gestão de identidade e acesso). Na saúde e nos cuidados, uma dependência comprometida é uma via de acesso a dados confidenciais de pacientes; assim, a higiene da cadeia de suprimentos é trabalho de segurança do paciente e de governança da informação.

  8. Defina e imponha padrões de engenharia e gerencie a dívida técnica deliberadamente. Acorde padrões de codificação, análise estática automatizada, revisão de código e uma clara "definição de pronto", para que a qualidade seja construída e não inspecionada depois. Acompanhe a dívida técnica explicitamente e quite-a como trabalho planejado, porque a dívida não gerida num sistema clínico eleva silenciosamente o custo e o risco de toda mudança futura. Os padrões tornam o código legível para o próximo engenheiro — e para os auditores, responsáveis pela segurança e revisores de código aberto que talvez precisem lê-lo.

  9. Programe às claras sempre que puder com segurança. Siga a expectativa do GDS e do NHS de tornar abertos por padrão os novos códigos-fonte e reutilizar padrões abertos, mantendo dados de pacientes e segredos estritamente fora dos repositórios públicos por meio de uma gestão disciplinada de segredos. O código aberto convida a um escrutínio que melhora a qualidade e a segurança, permite a reutilização num sistema de caixa apertado e gera confiança pública de que o software pago com dinheiro público está fazendo o que alega. Onde o código genuinamente não pode ser aberto (por exemplo, alguns componentes sensíveis do ponto de vista da segurança), documente a razão em vez de adotar o fechado por hábito.

Perguntas para discutir com a sua equipe#

  1. Nós realmente acreditamos que mudar os nossos sistemas clínicos com mais frequência os torna mais seguros — e o nosso comportamento corresponde a essa crença? Esta pergunta obriga a equipe a confrontar a distância entre a evidência e o instinto. A pesquisa do DORA é clara: as equipes que implantam pequenas mudanças com frequência têm taxas de falha menores e se recuperam mais depressa; no entanto, muitas organizações de saúde ainda agrupam as mudanças em versões raras e fortemente controladas em nome da segurança, tornando sem querer cada uma maior e mais arriscada. Debatam onde os seus processos de conselho consultivo de mudanças realmente reduzem o risco e onde apenas acrescentam atraso, que empurra as equipes rumo a versões em big-bang. Olhem com honestidade seus últimos incidentes: foram causados por mudanças pequenas e frequentes, ou por mudanças grandes e raras e pela negligência de correções? Considerem se a sua capacidade de reversão é real e ensaiada, porque o argumento a favor da mudança frequente repousa inteiramente na capacidade de revertê-la depressa. Uma boa resposta não é ideológica; nomeia os controles específicos — testes automatizados, liberações canário, reversão testada — que lhes permitiriam aumentar a frequência de mudanças e satisfazer, ao mesmo tempo, suas obrigações de segurança clínica e de garantia.

  2. Quem opera os nossos serviços em produção às 2 da manhã, e o que isso nos diz sobre as nossas escolhas de engenharia? "Você constrói, você opera" é fácil de endossar e difícil de viver. Esta pergunta traz à tona se as pessoas que tomam as decisões de arquitetura e de entrega realmente sentem as consequências operacionais ou se a dor é descarregada numa equipe separada de operações ou de central de serviços, que não consegue corrigir as causas-raiz. Explorem o estado da sua observabilidade: quando um prontuário de cuidados compartilhado fica lento, vocês descobrem isso por painéis e alertas, ou por um clínico irritado? Discutam também o custo humano — o plantão deve ser humano, financiado e compartilhado, ou vira um problema de esgotamento e de retenção, o que, num NHS com restrição de força de trabalho, é um risco sério (ver Tópico 7.2 — Planejamento da força de trabalho). Há uma concessão real entre a plena propriedade da equipe e a realidade de que algumas organizações e fornecedores menores genuinamente precisam de uma plataforma compartilhada ou de um serviço gerenciado para operar com confiabilidade. Uma resposta forte reconecta a responsabilidade operacional ao projeto: identifica onde o ciclo de retroalimentação entre construir e operar está quebrado e o que vocês mudariam para que as escolhas de engenharia fossem informadas pela realidade da operação em produção.

  3. Quanto do nosso código, e da nossa prática de engenharia, resistiria a ser tornado público — e o que a resposta revela? A política do governo e do NHS pede às equipes que programem às claras por padrão, e esta pergunta usa essa lente como diagnóstico mesmo onde a abertura plena ainda não é possível. Se a perspectiva de publicar seus repositórios provoca ansiedade, perguntem com precisão por quê: são segredos fixados no código, dados de pacientes embutidos, ausência de testes, decisões não documentadas ou simples falta de familiaridade? Cada um deles é um problema real de qualidade de engenharia ou de governança da informação que estar fechado apenas esconde, e não resolve. Debatam as restrições genuínas — algum código sensível do ponto de vista da segurança deve permanecer fechado e acertar a gestão de segredos é pré-requisito — frente aos benefícios do escrutínio, da reutilização num sistema de caixa apertado e da confiança pública na forma como se gasta com software de saúde. Considerem o valor reputacional e de segurança de olhos externos encontrarem uma falha antes de um atacante. Uma boa resposta, honesta, distingue o código fechado por uma razão defensável e documentada do código fechado por hábito ou constrangimento e se compromete a corrigir os problemas subjacentes de qualidade e higiene em qualquer dos casos.

  4. Se uma vulnerabilidade amplamente divulgada numa dependência comum fosse anunciada amanhã de manhã, quanto tempo levaríamos para responder "somos afetados, e onde?" Esta pergunta testa se a higiene da cadeia de suprimentos é uma capacidade real ou uma aspiração, usando o tipo de evento setorial — uma falha ao estilo Log4j — que transforma um risco abstrato numa emergência no mesmo dia. A resposta honesta depende de vocês manterem um inventário preciso das dependências e uma lista de materiais de software ou gastarem dias vasculhando repositórios e perguntando a fornecedores que talvez nem eles saibam. Explorem quanto do seu software é montado a partir de componentes de terceiros e de código aberto e quanto dessa superfície vocês de fato monitoram com varredura automatizada, em comparação com verificações manuais ocasionais. Discutam também a dimensão dos terceiros e fornecedores, porque na saúde e nos cuidados grande parte do parque é comprada, e não construída, e uma dependência comprometida no produto de um fornecedor é uma via de acesso a dados confidenciais de pacientes que vocês não controlam diretamente (ver Tópico 1.7 — Governança da informação, proteção de dados e cibersegurança). Considerem se suas esteiras e permissões de publicação em produção são rígidas o bastante para que um componente envenenado não pudesse ser entregue em silêncio. Uma resposta forte nomeia um tempo de resposta realista medido em horas, aponta as ferramentas e os inventários específicos que o tornam possível e é franca sobre as partes do parque — especialmente as fornecidas por terceiros — em que a visibilidade hoje é fraca.

  5. As nossas métricas de engenharia nos dizem a verdade, ou silenciosamente viraram uma meta de desempenho que as pessoas administram para cima? As métricas DORA só são úteis como um sinal honesto em nível de sistema, e esta pergunta sonda se as suas sobreviveram ao contato com os incentivos organizacionais. A lei de Goodhart é implacável: no momento em que a frequência de implantação ou a taxa de falha de mudanças vira um número pelo qual uma equipe é julgada, as pessoas otimizam o número em vez da realidade subjacente — dividindo implantações para inflar a frequência ou reclassificando silenciosamente incidentes para que não contem como falhas. Debatam quem vê essas métricas e por quê, e se elas são usadas de forma diagnóstica, para impulsionar o investimento em cobertura de testes ou tamanho de lote, ou como uma tabela de classificação que estimula a manipulação e o risco oculto. Considerem também o outro lado: equipes que não medem nada e se apoiam em anedotas, de modo que uma taxa de falha crescente é invisível até virar um incidente clínico. Há uma tensão real entre a necessidade legítima de garantia do conselho e o fato de que as métricas mais úteis são as que as equipes se sentem seguras para relatar com honestidade. Uma boa resposta descreve como a medição é enquadrada e governada para trazer à tona verdades incômodas cedo, em vez de premiar as pessoas por escondê-las.

  6. Quando foi a última vez que quitamos deliberadamente dívida técnica, e como decidimos o que significa engenharia "boa o bastante" num sistema clínico? A dívida técnica num sistema clínico não é uma questão de arrumação; eleva silenciosamente o custo e o risco de toda mudança futura, de modo que a correção que deveria levar um dia leva quinze e toca código que ninguém ousa refatorar. Esta pergunta obriga a equipe a confrontar se a dívida é gerida como trabalho visível e planejado ou meramente acumulada até algo quebrar, e se os padrões de engenharia — revisão de código, análise estática, uma clara definição de pronto — são genuinamente impostos ou dispensados sob pressão de entrega. Explorem a concessão real entre entregar a funcionalidade de que um serviço precisa agora e manter a qualidade interna que torna o sistema seguro para mudar depois, porque na saúde e nos cuidados ambas são legítimas e o equilíbrio é um julgamento, e não um slogan. Discutam como os padrões tornam o código legível não só para o próximo engenheiro, mas para os auditores, os responsáveis pela segurança clínica e os revisores de código aberto que talvez precisem lê-lo. Considerem se vocês sequer conseguem ver a sua dívida: ela é nomeada e acompanhada, ou é conhecimento tribal sobre quais módulos são assustadores? Uma resposta honesta aponta uma remediação específica e financiada que de fato aconteceu e uma definição compartilhada e defensável do nível de qualidade que um sistema regulado exige.

Na prática: um exemplo de saúde e cuidados#

Um sistema de cuidados integrados (ICS) opera um serviço compartilhado de "ponto único de acesso" que encaminha os encaminhamentos urgentes de cuidados comunitários à equipe certa. Nos dois primeiros anos, o serviço era implantado à mão aproximadamente uma vez por trimestre: um desenvolvedor seguia uma página de wiki de etapas manuais no fim de uma sexta-feira, e cada versão era um evento tenso, com todos de prontidão. Quando surgiu um erro de roteamento de encaminhamentos — ocasionalmente enviando encaminhamentos de necessidades complexas à equipe errada —, a correção ficou numa fila por seis semanas, esperando a próxima janela de versão, e os clínicos administraram o risco com gambiarras manuais.

O novo líder de engenharia reenquadra isso como um problema de segurança clínica, e não apenas de eficiência. A equipe introduz uma esteira de CI/CD: toda mudança é pequena, revisada por pares e construída e testada automaticamente, com verificações de acessibilidade e segurança e uma etapa de aprovação de segurança clínica codificadas como barreiras da esteira, que produzem um registro auditável para o registro de perigos. A infraestrutura passa a ser código, de modo que os ambientes de teste e produção finalmente coincidem. As implantações passam de trimestrais para várias vezes por semana, liberadas primeiro a uma única localidade como canário, com uma reversão testada que retorna ao último estado sabidamente bom em menos de cinco minutos.

Seis meses depois, as métricas DORA contam a história ao conselho em termos claros: o tempo de espera de uma correção caiu de seis semanas para menos de um dia, a frequência de implantação aumentou dez vezes e a taxa de falha de mudanças caiu porque as mudanças agora são pequenas e observáveis. Quando um erro sutil de roteamento reaparece, os painéis de observabilidade sinalizam a anomalia em minutos, a equipe reverte antes que algum encaminhamento seja roteado errado, entrega uma correção na manhã seguinte e registra uma revisão pós-incidente sem culpa. A equipe também publica, como código aberto, o mecanismo de regras de roteamento não sensível, nos termos do NHS Service Standard, e um ICS vizinho o reutiliza. Mudar o sistema com mais frequência o tornou demonstravelmente mais seguro.

Perspectivas setoriais#

Startup#

Uma startup de saúde digital pode adotar a engenharia moderna desde o primeiro dia, sem equipe de operações legada com quem negociar — desenvolvimento baseado em tronco, CI/CD e infraestrutura como código são, essencialmente, padrões gratuitos numa equipe pequena e sem legado, e isso é uma vantagem genuína. O risco é que o "andar depressa" abandone silenciosamente as disciplinas que a saúde exige: testes automatizados, reversão testada, gestão de segredos e varredura de dependências parecem atrito quando nenhum regulador ainda observa. Os fundadores precisam reconhecer que as obrigações de segurança clínica e de cadeia de suprimentos se aplicam independentemente do porte da empresa e que um único conjunto de dados de pacientes vazado ou uma dependência não gerida pode acabar com a empresa. O caminho pragmático é apoiar-se em plataformas de nuvem gerenciadas e numa pequena "estrada pavimentada", opinativa, para que uma equipe minúscula obtenha segurança por padrão sem construir um grupo de plataforma que ainda não pode pagar.

Pequena empresa#

Um pequeno prestador ou fornecedor estabelecido — um consultório de clínica geral, uma farmácia comunitária, uma casa de repouso, uma clínica de unidade única ou um pequeno fornecedor de tecnologia em saúde que já passou da fase pré-receita — geralmente tem pacientes reais e operações reais, mas nenhuma função dedicada de engenharia ou de TI para operar esteiras, observabilidade ou plantão. Para a maioria dessas organizações, a forma prática de excelência em engenharia é comprá-la bem, e não construí-la: escolher fornecedores e plataformas gerenciadas cuja própria disciplina de DevOps vocês possam inspecionar e fazer das atualizações automáticas, dos backups testados e da aplicação de correções às dependências expectativas contratuais, e não esperanças. Quando um pequeno fornecedor de fato escreve software, uma única esteira de CI/CD bem configurada numa plataforma de nuvem gerenciada, com varredura automatizada de dependências e segredos mantidos fora do repositório, entrega a maior parte do benefício de segurança a um custo que uma equipe enxuta consegue sustentar. A armadilha é supor que o porte pequeno reduz a barra de segurança clínica, de segurança e de governança da informação — não reduz, e uma dependência sem correção ou uma mudança implantada à mão que dá errado prejudicam os pacientes tanto num consultório de dois clínicos quanto num órgão nacional. O objetivo realista é a segurança por padrão herdada de boas plataformas e de bons fornecedores, com a atenção limitada do consultório gasta em verificar se esses padrões estão de fato ligados.

Grande organização#

Um grande hospital do NHS ou um importante fornecedor de tecnologia em saúde tem os recursos para fazer bem a engenharia de plataforma, a observabilidade e o "você constrói, você opera", mas é retido por sistemas legados, equipes de desenvolvimento e operações em silos e processos de conselho consultivo de mudanças construídos para uma era mais lenta. A falha característica é um conselho de mudanças pesado que, ao tentar controlar o risco, força grandes versões agrupadas que são mais perigosas do que as pequenas e frequentes que ele teme. A oportunidade é investir numa plataforma interna de desenvolvedores que incorpore barreiras de conformidade, segurança e segurança clínica a uma estrada pavimentada, para que dezenas de equipes herdem a boa prática em vez de negociá-la cada uma. A escala aqui é uma faca de dois gumes: o raio de impacto de uma implantação ruim é enorme, e é exatamente por isso que a automação, as liberações canário e a reversão testada são essenciais, e não opcionais.

Governo#

Um órgão nacional como o NHS England ou um departamento de saúde descentralizado define os padrões que os outros seguem — os Service Standards do NHS e do GDS, os controles de gastos, a expectativa de programar às claras — e responde perante o Parlamento e o público pelo modo como o software é construído e operado. Suas escolhas de engenharia se propagam pelo sistema: uma plataforma nacional bem operada, componentes de código aberto publicados e orientações claras sobre a cadeia de suprimentos elevam o piso para todo hospital e fornecedor. As restrições são reais — financiamento plurianual, regras de aquisição e a escala e a sensibilidade dos dados nacionais fazem com que a cadência de implantação seja mais comedida do que numa startup. A lente governamental deve equilibrar transparência e reutilização exemplares com a segurança de sistemas criticamente nacionais, decidindo deliberadamente o que é aberto e o que é protegido e documentando o raciocínio em qualquer caso.

Modos de falha comuns#

  • Paralisia do "mudança é risco". Implantar raramente para se sentir seguro, o que produz versões grandes, perigosas e mal compreendidas e a negligência de correções. Antídoto: mudanças pequenas, frequentes e reversíveis, com reversão testada.
  • O muro entre desenvolvimento e operações. Os desenvolvedores "jogam o código por cima do muro" para uma equipe de operações que não consegue corrigir as causas-raiz; ninguém é dono de todo o ciclo. Antídoto: propriedade compartilhada e "você constrói, você opera", apoiada de forma humana.
  • Implantações manuais, tipo floco de neve. As versões dependem de uma pessoa e de uma página de wiki; os ambientes derivam e o "funciona no teste, quebra na produção" é rotina. Antídoto: CI/CD mais infraestrutura como código.
  • Métricas como porrete. Os números do DORA usados para classificar equipes, estimulando a manipulação e o risco oculto. Antídoto: usá-los como diagnóstico em nível de sistema, conforme a orientação do próprio DORA.
  • Operações cegas a alertas. Sem observabilidade, os pacientes e clínicos descobrem as falhas primeiro. Antídoto: métricas, registros, rastros e alertas de impacto no usuário.
  • Cadeia de suprimentos negligenciada. Dependências sem correção e componentes não varridos se tornam a violação. Antídoto: varredura contínua, uma lista de materiais de software e esteiras protegidas.
  • Exposição acidental. Programar às claras de modo descuidado, vazando segredos ou dados de pacientes. Antídoto: gestão rigorosa de segredos e varredura antes da publicação, e não um recuo para o fechado por padrão.

Modelo de maturidade#

Dimensão Iniciar Desenvolver Padronizar Gerir Orquestrar
Construção e liberação Implantações manuais, raras, de uma só pessoa Automação parcial; versões ainda agrupadas e temidas Esteira de CI/CD com testes e barreiras automatizados Frequência de implantação e tempo de espera acompanhados com base em metas; barreiras da esteira asseguradas e auditadas Entrega contínua de pequenas mudanças; a implantação é rotina
Mudança e reversão Sem plano de reversão; falhas persistem Reversão existe no papel, raramente testada Reversão testada; liberações canário/com sinalizadores Tempo de reversão medido e reportado; taxa de falha de mudanças governada com base em limiares Reversão rápida como controle de segurança clínica comprovado e ensaiado
Infraestrutura Servidores flocos de neve configurados à mão Algum uso de scripts; ambientes derivam Infraestrutura como código, sob controle de versões Detecção de deriva e conformidade como código impostas; paridade de ambientes monitorada ativamente Totalmente reprodutível, autosserviço, recuperável de desastres
Operar e observar Equipe de operações separada; falhas encontradas pelos usuários Monitoramento básico; apagar incêndios reativo A equipe opera o seu serviço; métricas, registros, rastros, alertas SLOs e orçamentos de erro acompanhados; alertas ajustados ao impacto no usuário e revistos com base em metas "Você constrói, você opera" com SLOs e aprendizado sem culpa
Cadeia de suprimentos e abertura Dependências não geridas; todo o código fechado Varredura manual ocasional; abertura ad hoc Varredura automatizada, SBOM; aberto onde seguro Exposição a vulnerabilidades medida e remediada conforme SLA; controles da cadeia de suprimentos assegurados Garantia contínua da cadeia de suprimentos; aberto por padrão, com reutilização

Lista de verificação#

  • Uma esteira de CI/CD constrói, testa e implanta toda mudança por um único caminho auditável, com barreiras de segurança/proteção/acessibilidade codificadas.
  • As mudanças são pequenas, frequentes e reversíveis de forma independente (sinalizadores de funcionalidade, liberações canário ou azul-verde).
  • A reversão a um estado sabidamente bom é testada regularmente e conclui em um tempo curto e documentado.
  • A infraestrutura e a configuração são definidas como código sob controle de versões; os ambientes de teste e produção coincidem.
  • As quatro métricas DORA são acompanhadas como sinal em nível de sistema, e não usadas para classificar indivíduos ou equipes.
  • As equipes de entrega são donas dos seus serviços em produção, com plantão humano e financiado e observabilidade significativa (métricas, registros, rastros, alertas).
  • As dependências são inventariadas e varridas automaticamente; existe uma lista de materiais de software e os segredos são protegidos.
  • Padrões de engenharia, revisão de código e uma definição de pronto estão acordados; a dívida técnica é acompanhada e quitada como trabalho planejado.
  • Os novos códigos-fonte são abertos por padrão onde seguro, com verificações rigorosas de que nenhum dado de paciente nem segredo é exposto.
  • A prática de engenharia é documentada para que um novo engenheiro, auditor ou responsável pela segurança entenda o que roda e por quê (ver Tópico 10.3).

Fontes-chave#

  • Nicole Forsgren, Jez Humble e Gene Kim, Accelerate: The Science of Lean Software and Development and DevOps — a pesquisa do DORA e as quatro métricas-chave.
  • DORA (DevOps Research and Assessment) — relatórios anuais State of DevOps e catálogo de capacidades — dora.dev.
  • Jez Humble e David Farley, Continuous Delivery — a esteira de implantação e a automação de versões.
  • Betsy Beyer et al. (orgs.), Site Reliability Engineering — o livro de SRE do Google sobre a operação de sistemas em produção.
  • NHS England — NHS Service Standard e NHS Digital Service Manual (incluindo programar às claras e padrões abertos).
  • GOV.UK Service Manual / Government Service Standard (GDS) — "make new source code open", entrega contínua e operação de um serviço.
  • National Cyber Security Centre (NCSC) — orientações sobre desenvolvimento seguro de software e segurança da cadeia de suprimentos.
  • NHS England — normas de gestão de riscos clínicos DCB0129 e DCB0160 (a mudança de engenharia como parte do caso de segurança clínica).

Referências#

  1. DevOps — Wikipedia — https://en.wikipedia.org/wiki/DevOps
  2. CI/CD — Wikipedia — https://en.wikipedia.org/wiki/CI/CD
  3. Continuous integration — Wikipedia — https://en.wikipedia.org/wiki/Continuous_integration
  4. Continuous delivery — Wikipedia — https://en.wikipedia.org/wiki/Continuous_delivery
  5. Version control — Wikipedia — https://en.wikipedia.org/wiki/Version_control
  6. Infrastructure as code — Wikipedia — https://en.wikipedia.org/wiki/Infrastructure_as_code
  7. Platform engineering — Wikipedia — https://en.wikipedia.org/wiki/Platform_engineering
  8. DevOps Research and Assessment (DORA) — Wikipedia — https://en.wikipedia.org/wiki/DevOps_Research_and_Assessment
  9. Site reliability engineering — Wikipedia — https://en.wikipedia.org/wiki/Site_reliability_engineering
  10. Observability (software) — Wikipedia — https://en.wikipedia.org/wiki/Observability_(software)
  11. Supply chain attack — Wikipedia — https://en.wikipedia.org/wiki/Supply_chain_attack
  12. Open-source software — Wikipedia — https://en.wikipedia.org/wiki/Open-source_software
  13. Accelerate: The Science of Lean Software and DevOps — Nicole Forsgren, Jez Humble & Gene Kim (IT Revolution) — https://itrevolution.com/product/accelerate/
  14. DORA — DevOps Research and Assessment — Google Cloud / DORA — https://dora.dev/
  15. Continuous Delivery — Jez Humble & David Farley — https://continuousdelivery.com/
  16. Site Reliability Engineering — Google (O'Reilly) — https://sre.google/books/
  17. NHS Service Standard — NHS England — https://service-manual.nhs.uk/standards-and-technology/service-standard-points
  18. Making source code open and reusable — Government Digital Service, GOV.UK Service Manual — https://www.gov.uk/service-manual/technology/making-source-code-open-and-reusable
  19. Secure software development and supply chain security — National Cyber Security Centre (NCSC) — https://www.ncsc.gov.uk/collection/developers-collection
  20. Clinical risk management standards DCB0129 and DCB0160 — NHS England — https://digital.nhs.uk/services/clinical-safety

Editar esta página no GitHub — o livro é a fonte da verdade; este site apenas o exibe.