Desenvolvimento baseado em testes (TDD) de zonas de destinoTest-driven development (TDD) for landing zones

O desenvolvimento orientado por testes é um processo comum de desenvolvimento de software e de devOps que melhora a qualidade de novas funcionalidades e melhorias em qualquer solução baseada em código.Test-driven development is a common software development and DevOps process that improves the quality of new features and improvements in any code-based solution. A infraestrutura baseada em nuvem, e o código fonte subjacente pode usar este processo para garantir que as zonas de aterragem cumprem os requisitos fundamentais e são de alta qualidade.Cloud-based infrastructure, and the underlying source code can use this process to ensure landing zones meet core requirements and are of high quality. Este processo é especialmente útil quando as zonas de desembarque estão a ser desenvolvidas e refacadas num esforço de desenvolvimento paralelo.This process is especially useful when landing zones are being developed and refactored in a parallel development effort.

Processo de desenvolvimento orientado por testes para zonas de aterragem em nuvem

Na nuvem, a infraestrutura é a saída da execução de código.In the cloud, infrastructure is the output of code execution. Código bem estruturado, testado e verificado produz uma zona de aterragem viável.Well-structured, tested, and verified code produces a viable landing zone. Uma zona de aterragem é um ambiente para hospedar as suas cargas de trabalho, pré-visionadas através do código.A landing zone is an environment for hosting your workloads, preprovisioned through code. Inclui capacidades fundamentais usando um conjunto definido de serviços na nuvem e boas práticas que o configuram para o sucesso.It includes foundational capabilities using a defined set of cloud services and best practices that set you up for success. Esta orientação descreve uma abordagem que utiliza o desenvolvimento orientado para o teste para cumprir a última parte dessa definição, ao mesmo tempo que satisfaz os requisitos de qualidade, segurança, operações e governação.This guidance describes an approach that uses test-driven development to fulfill the last part of that definition, while meeting quality, security, operations, and governance requirements.

Esta abordagem pode ser usada para atender a pedidos de funcionalidades simples durante o desenvolvimento precoce.This approach can be used to meet simple feature requests during early development. Mais tarde, no ciclo de vida de adoção em nuvem, este processo pode ser usado para atender aos requisitos de segurança, operações, governação ou conformidade.Later in the cloud adoption lifecycle, this process can be used to meet security, operations, governance, or compliance requirements.

Definição de concluídoDefinition of done

"Preparar para o sucesso" é uma declaração subjetiva."Set up for success" is a subjective statement. Esta declaração fornece à equipa da plataforma cloud pouca informação acccível durante o desenvolvimento da zona de aterragem ou esforços de refactorização.This statement provides the cloud platform team with little actionable information during landing zone development or refactoring efforts. Esta falta de clareza pode levar a expectativas e vulnerabilidades perdidas num ambiente em nuvem.This lack of clarity can lead to missed expectations and vulnerabilities in a cloud environment. Antes de refactorar ou expandir qualquer zona de aterragem, a equipa da plataforma cloud deve procurar clareza quanto à "definição de feito" para cada zona de aterragem.Before refactoring or expanding any landing zone, the cloud platform team should seek clarity regarding the "definition of done" for each landing zone.

A definição de feito é um simples acordo entre a equipa da plataforma cloud e outras equipas afetadas.Definition of done is a simple agreement between the cloud platform team and other affected teams. Este acordo descreve as características de valor acrescentado esperadas, que devem ser incluídas em qualquer esforço de desenvolvimento da zona de desembarque.This agreement outlines the expected value added features, which should be included in any landing zone development effort. A definição de feito é muitas vezes uma lista de verificação que está alinhada com o plano de adoção de nuvem de curto prazo.The definition of done is often a checklist that's aligned with the short-term cloud adoption plan. Em processos maduros, as características esperadas na lista de verificação terão cada um os seus próprios critérios de aceitação para criar ainda mais clareza.In mature processes, those expected features in the checklist will each have their own acceptance criteria to create even more clarity. Quando as características de valor acrescentado satisfazem cada um os critérios de aceitação, a zona de aterragem está suficientemente configurada para permitir o sucesso da onda atual ou a libertação do esforço de adoção.When the value-added features each meet the acceptance criteria, the landing zone is sufficiently configured to enable the success of the current wave or release of adoption effort.

À medida que as equipas adotam cargas de trabalho adicionais e funcionalidades em nuvem, a definição de critérios de feito e de aceitação tornar-se-á cada vez mais complexa.As teams adopt additional workloads and cloud features, the definition of done and acceptance criteria will become increasingly more complex.

Ciclo de desenvolvimento orientado para testesTest-driven development cycle

O ciclo que torna o desenvolvimento orientado para o teste eficaz é muitas vezes referido como um teste vermelho/verde.The cycle that makes test-driven development effective is often referred to as a red/green test. Nesta abordagem, a equipa da plataforma cloud começa com um teste falhado (teste vermelho) baseado na definição de critérios de aceitação realizados e definidos.In this approach, the cloud platform team starts with a failed test (red test) based on the definition of done and defined acceptance criteria. Para cada recurso ou critérios de aceitação, a equipa da plataforma cloud completaria tarefas de desenvolvimento até que o teste passasse (teste verde).For each feature or acceptance criteria, the cloud platform team would complete development tasks until the test passes (green test). Um ciclo de desenvolvimento orientado para o ensaio (ou ensaio vermelho/verde) repetiria os passos básicos na imagem e lista a seguir até que a definição completa de feito possa ser satisfeita.A test-driven development cycle (or red/green test) would repeat the basic steps in the following image and list below until the full definition of done can be met.

Processo de desenvolvimento orientado por testes para zonas de aterragem em nuvem

  • Criar um teste: Defina um teste para validar que os critérios de aceitação para uma característica específica de valor acrescentado foram cumpridos.Create a test: Define a test to validate that acceptance criteria for a specific value-add feature has been met. Automatize o teste sempre que possível.Automate the test whenever possible.
  • Teste a zona de aterragem: Executar o novo teste e quaisquer testes existentes.Test the landing zone: Run the new test and any existing tests. Se a funcionalidade requerida ainda não tiver sido satisfeita por esforços de desenvolvimento prévios e não for inclusiva à oferta do fornecedor de nuvem, o teste deverá falhar.If the required feature hasn't already been met by prior development efforts and isn't inclusive to the cloud provider's offering, the test should fail. A execução dos testes existentes ajudará a validar que o seu novo teste não reduz a fiabilidade das funcionalidades da zona de aterragem entregues pelo código existente.Running existing tests will help validate that your new test doesn't reduce reliability of landing zone features delivered by existing code.
  • Expandir e refactor a zona de aterragem: Adicione ou modifique o código fonte para cumprir a função de valor acrescentado solicitado e melhorar a qualidade geral da base de código.Expand and refactor the landing zone: Add or modify the source code to fulfill the requested value-add feature and improve the general quality of the code base. Para satisfazer o espírito mais completo de desenvolvimento orientado para o teste, a equipa da plataforma cloud apenas adicionaria código para atender a funcionalidade solicitada e nada mais.To meet the fullest spirit of test-driven development, the cloud platform team would only add code to meet the requested feature and nothing more. Ao mesmo tempo, a qualidade do código e a manutenção são um esforço partilhado.At the same time, code quality and maintenance is a shared effort. Ao cumprir novos pedidos de funcionalidades, a equipa da plataforma cloud deverá procurar melhorar o código, removendo a duplicação e clarificando o código.When fulfilling new feature requests, the cloud platform team should seek to improve the code by removing duplication and clarifying the code. A realização de testes entre a criação de novos códigos e a refacagem do código fonte é altamente sugerida.Running tests between new code creation and refactoring of source code is highly suggested.
  • Desdobre a zona de aterragem: Uma vez que o código fonte seja capaz de cumprir o pedido de recurso, implemente a zona de aterragem modificada para o fornecedor de nuvem num ambiente de testes ou caixas de areia controlados.Deploy the landing zone: Once the source code is capable of fulfilling the feature request, deploy the modified landing zone to the cloud provider in a controlled testing or sandbox environment.
  • Teste a zona de aterragem: Retestar a zona de aterragem deve validar que o novo código satisfaz os critérios de aceitação da função solicitada.Test the landing zone: Retesting the landing zone should validate that the new code meets the acceptance criteria for the requested feature. Uma vez que todos os testes passam, a funcionalidade é considerada completa e os critérios de aceitação são considerados preenchidos.Once all tests pass, the feature is considered complete and the acceptance criteria are considered to be met.

Quando todas as funcionalidades de valor acrescentado e critérios de aceitação passam nos seus testes associados, a zona de aterragem está pronta para suportar a próxima onda do plano de adoção em nuvem.When all value-added features and acceptance criteria pass their associated tests, the landing zone is ready to support the next wave of the cloud adoption plan.

Exemplo simples de uma definição de feitoSimple example of a definition of done

Para um esforço de migração inicial, a definição de feito pode ser excessivamente simples.For an initial migration effort, definition of done may be overly simple. Segue-se um exemplo de um destes exemplos excessivamente simples.The following is an example of one of these overly simple examples.

  • A zona de aterragem inicial será utilizada para acolher 10 cargas de trabalho para fins de aprendizagem inicial.The initial landing zone will be used to host 10 workloads for initial learning purposes. Estas cargas de trabalho não são cruciais para o negócio e não têm acesso a dados sensíveis.These workloads are not critical to the business and have no access to sensitive data. No futuro, é provável que estas cargas de trabalho sejam libertadas para a produção, mas não se espera que a criticidade e a sensibilidade mudem.In the future, it's likely these workloads will be released to production but criticality and sensitive is not expected to change. Para apoiar estas cargas de trabalho, a equipa de adoção em nuvem necessitará dos seguintes critérios cumpridos:To support these workloads, the cloud adoption team will need the following criteria met:

  • Segmentação de rede para alinhar com o design de rede proposto.Network segmentation to align with proposed network design.

  • Acesso a computação, armazenamento e recursos de networking para acolher as cargas de trabalho alinhadas com a descoberta de propriedade digital.Access to compute, storage, and networking resources to host the workloads aligned to the digital estate discovery.

  • O esquema de nomeação e marcação para facilitar a utilização.Naming and tagging schema for ease of use.

  • Este ambiente deve ser tratado como uma rede de perímetro com acesso à internet pública.This environment should be treated as a perimeter network with access to the public internet.

  • Durante os esforços de adoção, a equipa de adoção em nuvem gostaria de ter acesso temporário ao ambiente para alterar as configurações do serviço.During adoption efforts, the cloud adoption team would like temporary access to the environment to change service configurations.

  • Apenas para sensibilização: antes da libertação da produção, estas cargas de trabalho exigirão a integração com o fornecedor de identidade corporativa para governar a identidade e o acesso em curso para fins de gestão de operações.For awareness only: prior to production release, these workloads will require integration with the corporate identity provider to govern ongoing identity and access for operations management purposes. Nessa altura, o acesso da equipa de adoção em nuvem deve ser revogado.At which time the cloud adoption team's access should be revoked.

O último ponto acima não é um recurso ou critérios de aceitação.The last point above is not a feature or acceptance criteria. Mas é um indicador de que serão necessárias expansões adicionais e deve ser explorada com outras equipas mais cedo.But it is an indicator that additional expansions will be required and should be explored with other teams early.

Exemplos adicionais de uma definição de feitoAdditional examples of a definition of done

A metodologia Governar dentro do Quadro de Adoção em Nuvem proporciona uma jornada narrativa através da maturidade natural de uma equipa de governação.The Govern methodology within the Cloud Adoption Framework provides a narrative journey through the natural maturity of a governance team. Incorporados nessa viagem estão vários exemplos de "definição de feito" e "critérios de aceitação", sob a forma de declarações políticas.Embedded in that journey are several examples of "definition of done" and "acceptance criteria", in the form of policy statements.

  • Declarações políticas iniciais: Exemplo das políticas corporativas que regem e definição inicial de feito com base nos requisitos de adoção em fase inicial.Initial policy statements: Example of corporate policies governing and initial definition of done based on early stage adoption requirements.
  • Expansão da identidade: Exemplo das políticas corporativas que regem ("definição de feito") para satisfazer os requisitos para expandir a gestão de identidade para uma zona de desembarque.Identity expansion: Example of corporate policies governing ("definition of done") to meet requirements to expand identity management for a landing zone.
  • Expansão da segurança: Exemplo das políticas corporativas que regem ("definição de feito") para satisfazer os requisitos de segurança alinhados com o plano de adoção da nuvem de referência.Security expansion: Example of corporate policies governing ("definition of done") to meet security requirements aligned to the reference cloud adoption plan.
  • Expansão das operações: Exemplo das políticas corporativas que regem ("definição de feito") para satisfazer os requisitos básicos de gestão de operações.Operations expansion: Example of corporate policies governing ("definition of done") to meet basic operations management requirements.
  • Expansãode custos : Exemplo das políticas corporativas que regem ("definição de feito") para satisfazer os requisitos de gestão de custos.Cost expansion: Example of corporate policies governing ("definition of done") to meet cost management requirements.

Os exemplos acima são amostras básicas para ajudar a desenvolver uma "definição de feito" para as suas zonas de aterragem.The above examples are basic samples to help develop a "definition of done" for your landing zones. Estão disponíveis políticas adicionais de amostra para cada uma das Cinco Disciplinas de Governação da Nuvem.Additional sample policies are available for each of the Five Disciplines of Cloud Governance.

Passos seguintesNext steps

Para acelerar o desenvolvimento orientado para os testes em Azure, reveja as características de desenvolvimento orientadas para os testes da Azure.To accelerate test-driven development in Azure, review test-driven development features of Azure.