

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á.

# Desenvolvimento
<a name="build"></a>

O uso de um banco de dados Db2 compartilhado permite a execução simultânea de aplicativos idênticos ou consistentes em ambientes de mainframe e nuvem. Essa abordagem oferece várias vantagens quando você mantém a mesma versão do aplicativo em ambas as plataformas e fornece maior flexibilidade e confiabilidade em suas operações.

Uma das principais vantagens dessa estratégia é a capacidade de implementar um plano de reversão eficaz. Se surgirem problemas durante a migração ou a implantação, ter a mesma versão do aplicativo permite uma reversão perfeita ao estado anterior e minimiza o tempo de inatividade e possíveis inconsistências de dados.

## Consistência do aplicativo
<a name="mirroring"></a>

Espelhar componentes do aplicativo de um gerenciador de controle de origem distribuído para o mainframe é uma abordagem estratégica durante o processo de replataforma. Esse método suporta o uso de ferramentas modernas de gerenciamento de código-fonte, mantendo a sincronização com o ambiente de mainframe. Esse processo de espelhamento é temporário e dura somente até que a carga de trabalho esteja totalmente funcional na produção na plataforma distribuída.

Ao migrar o código-fonte do seu aplicativo reformulado para uma ferramenta distribuída de gerenciamento de alterações, você pode aproveitar vários benefícios oferecidos pelos gerenciadores de código-fonte modernos. Isso inclui:
+ **Colaboração aprimorada**: as ferramentas distribuídas geralmente oferecem melhor suporte à colaboração em equipe, incluindo recursos como pull requests, análises de código e estratégias de ramificação.
+ **Controle de versão aprimorado**: os sistemas modernos oferecem um controle de versão mais granular e facilitam o rastreamento de alterações e o gerenciamento de diferentes versões do código.
+ **Integração com CI/CD pipelines**: muitas ferramentas distribuídas se integram perfeitamente aos pipelines de integração contínua e implantação contínua (CI/CD), o que simplifica o processo de desenvolvimento.
+ **Melhor visibilidade e rastreabilidade**: essas ferramentas geralmente fornecem painéis e recursos de geração de relatórios superiores e oferecem maior visão do processo de desenvolvimento.
+ **Support para práticas modernas de desenvolvimento**: os sistemas distribuídos geralmente são mais adequados para metodologias e DevOps práticas ágeis.

O processo de espelhamento envolve a sincronização do código do gerenciador de controle de origem distribuído de volta ao mainframe. Isso garante que os dois ambientes permaneçam consistentes durante o período de transição. No entanto, você deve implementar o espelhamento como uma sincronização unidirecional, na qual as atualizações fluem do sistema distribuído para o mainframe, em vez de bidirecionalmente. Essa abordagem mantém a consistência e evita possíveis conflitos que possam surgir de atualizações simultâneas em ambos os ambientes.

Ao adotar essa estratégia de espelhamento, você pode gradualmente transferir seus esforços de desenvolvimento para a plataforma distribuída e, ao mesmo tempo, garantir que o ambiente de mainframe permaneça. up-to-date Isso proporciona uma transição mais suave e uma rede de segurança durante o processo de replataforma. Quando a carga de trabalho estiver totalmente funcional e estável no ambiente de produção distribuído, você poderá eliminar gradualmente o processo de espelhamento e concluir a migração para o sistema moderno de gerenciamento de código-fonte.

## Arquitetura
<a name="planning-architecture"></a>

O diagrama a seguir mostra como um sistema distribuído de gerenciamento de código-fonte pode espelhar os componentes do aplicativo e manter a sincronização entre os ambientes Nuvem AWS e o mainframe. O Nuvem AWS ambiente usa CI/CD serviços como [AWS CodeBuild[AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html), e [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)para criar e implantar o aplicativo.

![Arquitetura para migração gradual do mainframe com espelhamento de aplicativos.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/replatform-mainframe-apps-shared-db2/images/mirroring-app-components.png)


Nesse fluxo de trabalho:

1. Os proprietários do aplicativo entregam uma nova versão do aplicativo na ramificação de desenvolvimento do repositório de código-fonte.

1. A nova versão é AWS CodePipeline acionada.

1. AWS CodeBuild recupera as credenciais do Db2 de. [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)

1. CodeBuild compila o aplicativo.

1. CodeBuild usa o Db2 z/OS para vincular o aplicativo.

1. O fluxo de entrega do mainframe também cria e implanta o aplicativo.