Transcrições
1. Apresentação: Bem-vindo à
modernização do mainframe, ao AICD Mastering. Meu nome é Ricardo Nuki Sou seu instrutor neste curso Objetivo geral do curso. O objetivo deste
curso é equipar profissionais de
mainframe
com o conhecimento,
as habilidades e as ferramentas
necessárias para implementar a integração
contínua, o
slash, a entrega contínua ou os pipelines CICD Ao final do
curso, os alunos
serão capazes de
projetar, automatizar e gerenciar fluxos de trabalho do CICD especificamente personalizados
para sistemas de mainframe,
levando a uma maior eficiência, ciclos de implantação
mais rápidos, aprimoramento da qualidade do código e Este curso visa preencher a
lacuna entre as operações
tradicionais de mainframe
e as práticas modernas de Devo, garantindo que os alunos possam integrar
com sucesso processos
automatizados do CICD sem comprometer
a estabilidade, a segurança ou a conformidade de suas infraestruturas de Habilidades, conhecimentos
e habilidades. O objetivo do
curso é focar em
fornecer aos alunos
as habilidades, conhecimentos
e habilidades necessários para
implementar e gerenciar com sucesso a integração
contínua e os pipelines CICD
slash Continuous Delivery Pipe para Ao final deste curso, os alunos terão
dominado o seguinte Um, compreensão
dos princípios do CICD no contexto do mainframe Os alunos terão
uma compreensão clara dos conceitos
modernos do CICD e como isso pode ser aplicado a ambientes de mainframe
legados Eles entenderão todo
o ciclo
de vida de integração,
teste, implantação e
entrega contínuos específicos para Segundo, construir e automatizar tubulações CICD de
mainframe. Estudantes que
aprendem a projetar e
configurar pipelines automatizados de CICD personalizados para ambientes de
mainframe, desde a integração
inicial do código teste,
a
implantação e a entrega automatizados Três, dominar ferramentas
específicas de mainframe para CICD. Eles ganharão proficiência nas ferramentas específicas de mainframe necessárias,
criarão e gerenciarão
pipelines CICD, como IBM,
Urban Co Deploy, Jenkins, Humpueopas Urban Co Deploy, Jenkins, Humpueopas Os alunos saberão
como integrar essas ferramentas em seu ambiente de
mainframe existente Quatro, controle de versão
e gerenciamento de código. Os alunos aprenderão
as melhores práticas para gerenciar código-fonte do
mainframe com sistemas
modernos de controle de versão Por exemplo, forneça e entenda
como lidar com ramificação, mesclagem e controle de versão em
um pipeline CICD de mainframe Cinco, testes automatizados
e garantia de qualidade. Os alunos aprenderão
como implementar processos de teste
automatizados, como teste unitário, teste de
integração e teste de
regressão, ou aplicativos de
mainframe como
parte do pipeline do CICD Eles entenderão
como garantir que a qualidade do código seja mantida durante todo o processo
de implantação. Seis, garantindo segurança e
conformidade nos pipelines do CICD. Os alunos entenderão
como proteger dutos do
CICD e garantir que segurança e a conformidade sejam mantidas mesmo em ambientes altamente regulamentados Isso inclui o gerenciamento de controles de
acesso, auditorias e análises de segurança como parte do pipeline
automatizado Sete, orquestrando o CICD em ambientes de nuvem
híbrida. Eles serão capazes de
integrar mainframes em ambientes
híbridos onde infraestrutura de
nuvem
desempenha um papel, garantindo que os
pipelines do CICD abranjam
perfeitamente mainframe e não
mainframe Oito, solução de problemas e
otimização de tubulações CICD. Os alunos adquirirão habilidades
de solução para identificar gargalos
ou falhas em seus pipelines de CICD
e aprenderão como
otimizá-los para obter Nove, gerenciamento de mudanças
e colaboração em equipe. Eles obterão
estratégias para gerenciar colaboração da
equipe durante a implementação
dos pipelines do CICD, incluindo como promover
uma cultura desenvolvida em
organizações centradas em mainframe e obter a adesão de equipes resistentes a mudanças Dez, aplicações no mundo real
e estudos de caso. Os alunos trabalharão com cenários do mundo
real e estudos de
caso para ver como o CICD é implementado com sucesso
no ambiente de mainframe Eles serão equipados
com modelos, listas de verificação e exemplos
práticos para
implementar o CICD em sua
própria organização Ao final do curso, os alunos estarão confiantes em sua capacidade de
implementar, gerenciar e otimizar pipelines
CICD automatizados para o sistema de mainframe,
garantindo que a
infraestrutura de mainframe de sua
organização esteja pronta para o futuro, mais eficiente e alinhada às
práticas modernas Aqui estão oito etapas
ou estágios específicos que as pessoas
devem seguir ao implementar a
integração contínua slash
Continuous Delivery ou CICD em mainframes Um, estabelecer um sistema de controle de
versão ou VCS para código de mainframe A ação principal é introduzir um sistema moderno de
controle de versão, como código-fonte do mainframe de gerenciamento do
Git Também migre o código legado de
repositórios tradicionais, por exemplo, endeavor ou Change
Man para o VCS, garantindo que toda a equipe
entenda Por que isso é importante? Um VCS é essencial para colaboração, gerenciamento de
código e processamento
automatizado Ele serve como a espinha dorsal dos pipelines do CICD permitindo a integração contínua
e Em segundo lugar, automatizar
o processo de construção. principais ações incluem configurar processos de criação
automatizados para aplicativos de
mainframe
usando ferramentas como Jenkins, Apretopaz ou IBM Configure scripts para
compilar código, vincular objetos e criar componentes de
mainframe implantáveis automaticamente quando as alterações forem
confirmadas no repositório confirmadas no repositório Por que isso é importante?
Automatizar o processo de criação é crucial para reduzir erros
manuais e garantir que todas as alterações sejam compiladas e preparadas para
testar Em terceiro lugar, implementar testes
automatizados. As ações incluem incorporar
testes automatizados ao pipeline, incluindo testes unitários, testes de
integração, teste regressão e,
possivelmente, testes de desempenho Utilize ferramentas como
IBM Rationale, DA endeavor ou scripts personalizados para automatizar testes específicos
para o para Por que isso é importante?
Os testes automatizados garantem que novas alterações no código sejam
validadas adequadamente antes de serem
transferidas para a produção, reduzindo o risco de defeitos
e instabilidade do sistema Quarto,
integração contínua ou configuração de CI. principais ações incluem
integrar ferramentas como Jenkins ou GitLab CI um sistema de controle de versão para acionar automaticamente
o processo de criação e teste sempre que um novo código for enviado ao repositório Garanta que o
sistema de CI
forneça feedback sobre o sucesso ou o
fracasso de compilações e testes, notificando os desenvolvedores
em tempo real Por que isso é importante? A CI permite a detecção rápida
de problemas de código, incentivando um processo de
desenvolvimento mais iterativo e eficiente O objetivo é integrar o código com frequência para evitar problemas de
integração posteriormente. Em quinto lugar, automatizar as implantações de
mainframe. As ações incluem configurar scripts
ou ferramentas de implantação
automatizados, por exemplo, IBM Urban code Deploy
Jenkins ou
scripts de gravação personalizados para lidar com a implantação de
aplicativos de mainframe em ambientes de teste, preparação e produção Estabeleça portas de implantação para conformidade, verificações de segurança e aprovações manuais, quando necessário. Por que isso é importante? implantação automatizada
reduz os erros manuais, acelera os
ciclos de lançamento e garante consistência da
fluidez do código em todos os ambientes. Mas seis, entrega
contínua ou CD
com mecanismos de reversão As ações incluem
implementar pipelines que possam fornecer mudanças
contínuas no ambiente de
produção por meio de intervenção
manual mínima Inclua mecanismos e
estratégias de reversão em caso de falha, garantindo que as implantações
possam ser revertidas sem causar Por que isso é importante?
A entrega contínua melhora o
fluxo geral de atualizações, garantindo que novos
recursos ou correções possam ser entregues à produção de
forma rápida e confiável Os mecanismos de reversão
mitigam os riscos. Sete ciclos de monitoramento, registro
e feedback. As ações incluem configurar ferramentas de
monitoramento para
configurar o desempenho das implantações e identificar
problemas após a implantação Por exemplo, IBM,
Omegamon ou Splum. Implemente alertas automatizados para falhas e integre ciclos de
feedback para melhorar
continuamente
o pipeline do CICD. Por que isso é importante? monitoramento contínuo garante que os
problemas sejam detectados no início da produção e que os ciclos de
feedback forneçam dados para melhorar os ciclos futuros de implantação
e implantação R: gerenciar a colaboração em equipe
e a cultura de DevOps. As ações incluem promover a
colaboração entre as equipes de
desenvolvimento e
operações para garantir que todos estejam alinhados com os processos
do CICD. Treine equipes sobre as
melhores práticas para CICD em
ambientes de mainframe e incentive uma cultura de melhoria
contínua
e automação Por que isso é importante? implementação bem-sucedida do CICD
não depende apenas da tecnologia, mas de um ambiente de
equipe colaborativo em que
tanto a Deb quanto a ups trabalham em estreita colaboração O curso é dividido em
oito módulos da seguinte forma. Módulo um, introdução
ao CICD para mainframes. Este módulo
apresentará os princípios fundamentais do CICD e como eles se aplicam
ao ambiente de mainframe Ele abordará os conceitos básicos
de integração contínua, entrega
contínua
e a importância da modernização
no sistema legado Objetivo de aprendizagem:
ao final do módulo, você será capaz de explicar os princípios fundamentais
do CICD e descrever como eles se aplicam ao ambiente de
mainframe Módulo dois, configurando o controle de
versão para o código do
mainframe Os alunos aprenderão como
implementar e gerenciar sistemas de controle de
versão como o
Git em um contexto de mainframe Este módulo abordará a
importância do controle de origem, estratégias
de ramificação e de como migrar o código de mainframe dos Objetivo de aprendizagem:
ao final do módulo, você poderá configurar um sistema de controle de
versão para código de
mainframe e demonstrar
o processo de atualização,
ramificação e
mesclagem de ramificação e
mesclagem Módulo três, automatizando construções de
mainframe. Este módulo aborda como configurar processos de criação
automatizados
para aplicativos de mainframe Os alunos
aprenderão a configurar ferramentas como Jenkins, IBM, Urban code build ou
scripts personalizados para automatizar a compilação e a vinculação
da base de código
de mainframe Objetivo de aprendizagem. Ao final
do módulo, você poderá configurar
um processo de criação automatizado para um aplicativo de mainframe e verificar se a compilação
e a vinculação do código foram
bem-sucedidas Módulo quatro, implementando testes
automatizados
para mainframes Neste módulo, os alunos
aprenderão como implementar testes
automatizados
para integração
e regressão de unidades para aplicativos de
mainframe Eles explorarão ferramentas
e estratégias para garantir a qualidade e a estabilidade
do código durante todo o ciclo de
desenvolvimento. Objetivo de aprendizagem:
ao final do módulo, você poderá criar e integrar testes automatizados para integração de
unidades
e testes de regressão no pipeline do CICD para
um aplicativo de mainframe Módulo cinco,
integração contínua ou configuração do pipeline de CI. Os alunos aprenderão
como instalar e
configurar uma
integração contínua ou um pipeline de
CI ou mainframes usando ferramentas como
Jenkins ou GitLab Este módulo
se concentrará na automação de
compilações, testes e ciclos de feedback para
desenvolvedores Objetivo de aprendizado:
ao final do módulo, você poderá
configurar um pipeline de CI
usando ferramentas como Jenkins
ou GitLab CI e
acionar a
criação e o teste automatizados após a confirmação do
código do Módulo seis,
automatizando implantações e confirmação do
código do Módulo seis, automatizando implantações Este módulo aborda
a automação da implantação em todo o ambiente,
por exemplo, teste, preparação e produção usando ferramentas como o IBM
Urban code Deploy Ele também ensinará
aos alunos como estabelecer mecanismos de reversão
para Objetivo de aprendizagem:
ao final do módulo, você poderá configurar um processo de implantação automatizado para aplicativos de mainframe e implantar
com êxito as alterações um ambiente de preparação ou
produção
com mecanismos de reversão Módulo sete, garantindo segurança e conformidade nos pipelines do
CICD Os alunos aprenderão
como integrar medidas de
segurança e verificações de
conformidade em seus pipelines do CICD para atender
aos padrões regulatórios e de
segurança específicos para ambientes de mainframe Objetivo de aprendizagem:
ao final do módulo, você poderá
implementar controles de segurança e verificações de conformidade
em um pipeline do CICD, garantindo que os processos de
automação atendam aos requisitos Módulo oito, monitoramento, feedback e
otimização de pipelines No módulo final, os alunos explorarão as melhores práticas de monitoramento e registro. Eles aprenderão a usar
ferramentas para monitorar implantações, solucionar problemas e otimizar
continuamente seus pipelines de CICD
com base em Objetivo
do aprendizado: ao final do módulo, você poderá
configurar ferramentas de monitoramento e registro
para tubulações CICD e usar
ciclos de feedback para identificar
e otimizar ineficiências Vamos começar. Hum,
2. Aula 1: o que é CI/CD?: Bem-vindo ao Módulo
1, Introdução ao CICD para mainframes Neste módulo, você
aprenderá os conceitos básicos de
integração contínua ou CI e entrega
contínua
ou CD e como essas práticas se aplicam a ambientes de
mainframe Ao final do módulo, você
terá uma sólida compreensão dos benefícios que
o CICD traz para desenvolvimento e
implantação de
software em mainframes Primeira lição, o que é CICD? Bem-vindo à primeira lição de modernização de mainframe, o domínio do
CICD Nesta lição, vamos
explorar os conceitos
fundamentais
por trás da integração contínua ou CI e da
entrega contínua ou CD Antes de mergulharmos na implementação do
CICD em mainframes, é fundamental ter
uma compreensão sólida do que esses termos significam, como eles diferem e por que
são tão transformadores em ambientes IP modernos, Vamos
detalhá-lo passo a passo. O que é
integração contínua ou CI? integração contínua ou CI é uma
prática de desenvolvimento de software em que as alterações de
código são
integradas
automaticamente em um repositório compartilhado
várias vezes ao dia Isso garante que pequenas
atualizações sejam continuamente testadas e validadas por meio de compilações e testes
automatizados Veja como a CI funciona em
um ambiente típico. Primeiro, os desenvolvedores escrevem código e fazem confirmações
frequentes em um repositório central Segundo, uma fatura automática é acionada sempre que um
novo código é enviado, compilando o aplicativo e verificando problemas
como erros de sintaxe Em seguida, testes automatizados são executados
para validar o novo código, garantindo que ele não introduza bugs nem interrompa o aplicativo
existente O feedback em tempo real é fornecido aos
desenvolvedores para que eles possam resolver
imediatamente quaisquer problemas. Resumindo, a CI
trata da
integração precoce e frequente do código para detectar problemas mais
cedo ou mais tarde. Isso pode ser um divisor de águas
para o desenvolvimento de mainframe, que tradicionalmente depende de ciclos de lançamento
longos e lentos, nos quais as ciclos de lançamento
longos e lentos alterações são agrupadas em lotes e testadas com pouca frequência Vamos dar um exemplo. Digamos que você esteja trabalhando em um programa COVA que processa transações
financeiras Em um ambiente tradicional, você pode desenvolver suas alterações quatro semanas antes de executar
um teste abrangente. No entanto, com o CI, toda vez
que você realiza uma pequena atualização, talvez uma alteração em um cálculo
específico ou um novo recurso de geração de relatórios, um processo automatizado
imediatamente cria e testa o aplicativo,
detectando erros precocemente Isso reduz o risco de erros
entrarem na produção. O que é
entrega contínua ou CD? entrega contínua ou City se baseia na base da CI Depois que o código é integrado, testado e validado
por meio da CI, City automatiza a próxima etapa, entregando essas alterações aos ambientes produção ou próximos à
produção Em termos mais simples, o City garante que seu código esteja sempre
em um estado implantável Com o City, você pode implantar
automaticamente
o código
validado um ambiente de teste ou
teste Segundo, execute testes adicionais ou verificações de segurança para
garantir a conformidade. Três,
aprove ou configure manualmente um processo automatizado para mover
o código para a produção O objetivo do City
é agilizar todo
o
processo de entrega para que as atualizações possam ser implantadas com
rapidez e confiança, permitindo que as empresas coloquem
recursos ou correções na
produção com frequência, muitas vezes várias vezes ao dia Vamos dar um exemplo. Imagine que
sua equipe acabou de adicionar um patch de segurança essencial a um aplicativo de mainframe que lida com dados confidenciais de clientes Usando o CD, depois que o código passar por
todos os testes na fase de CI, ele pode
ser implantado automaticamente um ambiente de preparação onde você pode executar os testes de
aprovação final Se tudo estiver correto, você poderá colocá-lo ao vivo com o clique de
um botão, minimizando o tempo de inatividade e garantindo que as atualizações de
segurança sejam
aplicadas rapidamente Quais são as diferenças
entre CI e CD? Embora o CI e o CD sejam
frequentemente discutidos juntos, é importante entender
suas funções distintas. CI ou
integração contínua se concentra em automatizar o processo de
integração de código e
garantir que ele CD ou a entrega contínua,
por outro lado, dá um passo
adiante, automatizando o processo de implantação do código testado
no ambiente e
preparando-o para O CD ou a entrega contínua,
por outro lado,
dá um passo
adiante, automatizando
o processo de implantação do código testado
no
ambiente e
preparando-o para produção.
Pense nisso dessa forma. PI trata de integrar
e validar código forma consistente e automatizada, e CD trata entregar e implantar
esse código validado rápido
possível
sem intervenção manual Para sistemas de mainframe, essa combinação de
CI e CD pode levar a implantações
muito mais rápidas e
confiáveis
em comparação com os métodos tradicionais, nos quais as alterações de
código
geralmente são atrasadas por processos lentos de teste e
implantação manuais Principais benefícios da adoção do
CICD em qualquer ambiente. A implementação do CICD pode
transformar radicalmente a forma como você desenvolve
e implanta software Aqui estão os benefícios mais
notáveis. Primeiro, ciclos de feedback mais rápidos. CI permite a
identificação precoce de bugs automatizando os testes
assim que um novo código é enviado Isso permite que os desenvolvedores
corrijam os problemas imediatamente, em vez de esperar até o final de um longo ciclo de
desenvolvimento. Segundo, maior qualidade de código. Os testes automatizados durante os pipelines
do CICD garantem que código atenda aos padrões de qualidade antes de chegar à produção Isso reduz bugs, tempo de inatividade
e falhas no sistema. Crítico em ambientes como bancos, onde os mainframes
geralmente operam Em terceiro lugar, reduza os riscos de implantação. Com o CD, o código é implantado
em pequenos incrementos, facilitando o
isolamento e a correção de problemas Se algo der errado, mecanismos alternativos podem
reverter rapidamente as mudanças,
minimizando o impacto Quarto, aumente a produtividade. automação de compilações, testes
e implantações permite que sua equipe se
concentre em escrever e melhorar o código, em vez Essa eficiência é
vital para manter os aplicativos de
mainframe atualizados em setores competitivos Quinto, lançamentos mais frequentes. Ao permitir implantações mais rápidas
e confiáveis, o ICD permite
lançamentos
mais frequentes de recursos, patches de segurança
e correções de bugs, melhorando a capacidade de resposta do seu
sistema às demandas do Principais conclusões desta lição. A CI ajuda a integrar e testar o código de forma automática
e frequente. O CD automatiza o processo de entrega
e implantação. Garantir que o código esteja sempre
em um estado implantável. Juntos, o CICD reduz
os riscos, acelera o feedback, melhora a qualidade do código
e permite lançamentos de software
mais rápidos e confiáveis Atividade de aprendizagem. Reflita sobre seu processo
de desenvolvimento atual. Você está usando alguma ferramenta
de automação para integração ou
implantação de
código em seu mainframe Quais desafios você enfrenta
com seu processo atual? Considere uma alteração recente que você fez em um aplicativo de
mainframe Imagine como o CI NCD teria
tornado esse processo mais rápido, seguro e eficiente Anote as etapas em que a
automação poderia ter reduzido a
intervenção manual ou os erros. O que vem a seguir? Na próxima lição, vamos nos aprofundar no Y
CICD para mainframes Exploraremos os desafios dos ciclos
tradicionais de desenvolvimento de mainframe e como CICD pode acelerar drasticamente o desenvolvimento e a implantação
de aplicativos de mainframe Também abordaremos
equívocos comuns que podem estar impedindo sua equipe de adotar
3. Aula 2: por que CI/CD para mainframes?: Lição dois, um CD de CI
para muitos quadros. Bem-vindo à
segunda lição do Módulo 1. Na primeira lição,
abordamos os conceitos básicos de integração
contínua ORCI
e CD de entrega contínua Agora é hora de se
aprofundar no motivo pelo qual o CICD é particularmente valioso
no contexto de mainframes Se você trabalha em
ambientes de mainframe por
qualquer período de tempo, sabe que eles geralmente são vistos como
intocáveis da TI,
sólidos, confiáveis, mas
notoriamente Eles explorarão os
desafios impostos pelos ciclos tradicionais de desenvolvimento de
mainframe, como o CICD pode resolver esses
problemas e desmascarar alguns equívocos comuns que
podem estar impedindo sua equipe de adotar totalmente as práticas modernas como o CICD pode resolver esses
problemas e desmascarar
alguns equívocos comuns que
podem estar impedindo
sua equipe de adotar totalmente as práticas modernas desenvolvidas. Os desafios dos ciclos tradicionais de desenvolvimento de
mainframe Vamos começar reconhecendo
o elefante na sala. Historicamente, o desenvolvimento de mainframes tem sido lento,
metódico e, muitas vezes, rígido Isso não é por acaso. Isso decorre da natureza
crítica de muitos sistemas de mainframe, especialmente em
setores como bancos, governo e saúde, mas o tempo de inatividade não é uma opção Aqui estão alguns dos principais
desafios que surgem dos ciclos tradicionais de
desenvolvimento de mainframe Longos ciclos de desenvolvimento
e lançamento. desenvolvimento de mainframe
normalmente segue uma abordagem em
cascata,
na qual as alterações são projetadas, desenvolvidas, testadas e lançadas em grandes lotes pouco
frequentes Uma alteração que leva
alguns dias para ser codificada pode levar semanas ou até meses
para passar para teste, aprovação e implantação.
Vamos dar um exemplo. Imagine que uma
instituição bancária precise atualizar seu sistema de
processamento de transações para lidar com os novos regulamentos de
conformidade. Embora a codificação em si
leve apenas algumas semanas, os extensos testes e
aprovações necessários para garantir a estabilidade e
a
segurança do sistema podem levar o
cronograma de lançamento para seis meses isoladas, equipes de desenvolvimento e operação
geralmente trabalham em Os desenvolvedores criam o
código e, uma vez pronto, ele passa pelas operações
de teste e implantação. Essa falta de
integração pode causar atrasos e mal-entendidos Outro exemplo, se um bug
for encontrado em uma versão, o processo de
identificar o problema, comunicá-lo entre o
desenvolvimento e as operações, corrigi-lo e testá-lo pode resultar em atrasos
desnecessários Isso é especialmente
frustrante em
ambientes em que atualizações
urgentes são essenciais Teste e implantação manuais. desenvolvimento tradicional de mainframe geralmente depende de processos manuais de teste
e implantação, que aumenta o risco de erro
humano e
retarda Cada alteração deve ser validada
manualmente, o que não só é
demorado, mas também pode ser inconsistente.
Vamos dar um exemplo. Imagine uma
agência governamental que precisa implementar um novo recurso em
seu sistema de processamento tributário. Como os processos de teste e
implantação são manuais, até mesmo pequenas mudanças levam um tempo
significativo para serem validadas, aumentando o risco
de prazos não cumpridos ou de investimentos
entrarem na produção Como o CICD pode acelerar o desenvolvimento
e a implantação do
mainframe Agora que
analisamos os desafios, vamos voltar para as
soluções, CICD. implementação do CICD em ambientes de
mainframe aborda muitos dos
pontos problemáticos que acabamos Veja como criar ciclos de
desenvolvimento e lançamento mais curtos. Com o CIC, as mudanças são integradas
e testadas continuamente. Isso significa que os desenvolvedores podem enviar atualizações incrementais
menores com frequência em vez de esperar por
um grande pacote Os testes automatizados garantem que cada atualização seja
validada rapidamente, permitindo feedback e
resolução de problemas muito
mais rápidos .
Vamos dar um exemplo. Suponha que uma empresa de varejo executando seu gerenciamento de inventário em um sistema de mainframe
implemente Agora, em vez de atualizações trimestrais, demoram meses para testar e lançar, equipe pode implantar pequenas melhorias de
recursos ou correções de erros semanalmente, aumentando
consideravelmente a
agilidade da empresa Equipes integradas e colaboração
aprimorada. CICD incentiva as práticas de
DevOps,
que eliminam os silos entre as equipes de
desenvolvimento e desenvolvimento Desenvolvedores e
operações trabalham juntos durante todo o processo,
desde a codificação até a implantação,
garantindo transferências mais fáceis
e resolução mais rápida de problemas Ferramentas como Jenkins e IBM Urban code permitem que ambas as equipes operem a
partir de um único pipeline, facilitando o
acompanhamento do progresso e a correção de
problemas de forma colaborativa Veja um exemplo. A Financial
Services Company integra suas equipes de desenvolvimento e operações por meio do CICD Agora, se surgir um
problema de implantação, as
duas equipes podem colaborar em tempo
real
no mesmo pipeline, reduzindo o tempo
necessário para corrigir o problema de dias para horas Teste
e implantação automatizados. Um dos maiores benefícios
do CICD é a automação. Teste e implantação, duas
das partes mais demoradas do
desenvolvimento
tradicional de mainframe, podem ser automatizados testes automatizados garantem que todas as alterações no código sejam
validadas imediatamente e que a
implantação automatizada mova o código testado para os vários ambientes como preparação e produção com o mínimo de intervenção manual Vamos dar um exemplo. Digamos que um profissional de saúde precise atualizar seu sistema de registro de
pacientes. Com o CICD implementado, todo
o
processo de teste
e implantação pode ser automatizado, garantindo que as mudanças
sejam implementadas
rapidamente sem interromper os serviços aos
pacientes Equívocos comuns
sobre o CICD no mainframe. Apesar do claro benefício, algumas organizações
ainda hesitam em
adotar o CICD para seus mainframes
devido a Vamos abordar alguns
dos mais comuns. Os mainframes são muito
estáveis para o CICD. Alguns acreditam que, como
os mainframes são altamente estáveis, a maneira tradicional
de fazer as coisas
funciona muito bem e
não há necessidade de CICD Segundo, os mainframes não conseguem
lidar com a automação. Há uma percepção de que
os mainframes são muito complexos ou antiquados para lidar com ferramentas de automação
modernas O CICD é muito arriscado para sistemas
críticos. Alguns temem que a adoção do CICD em sistemas
de
mainframe de
missão crítica introduza
muitas mudanças Abordando esses equívocos. Embora a estabilidade seja crucial, essa estabilidade não
precisa custar a agilidade O ICD permite que você
mantenha a estabilidade enquanto reduz o risco de erros e acelera Os mainframes podem ser totalmente integrados a
ferramentas como Jenkins, Git ou código urbano para permitir testes,
construções e implantações
automatizados Na verdade, muitas organizações já
estão fazendo
isso com sucesso. Na verdade, o CICD reduz
o risco ao permitir pequenas atualizações incrementais em
vez de grandes mudanças arriscadas automação também reduz
a possibilidade de erro humano durante o
teste e a implantação. Conclusões desta lição. ciclos tradicionais de
desenvolvimento de mainframe Os ciclos tradicionais de
desenvolvimento de mainframe geralmente são lentos e rígidos, mas o CICD oferece uma maneira de
acelerar o desenvolvimento e a implantação mantendo CICD integra a equipe de desenvolvimento
e operações, quebrando silos e teste e a implantação automatizados
podem reduzir significativamente o tempo e o esforço necessários para lançar alterações nos sistemas de
mainframe Conceitos errôneos sobre o CICD
em mainframes são comuns, mas muitas organizações
estão
adotando com sucesso essas práticas Atividade de aprendizagem.
Pense em uma atualização recente ou bug stick que você estava envolvido na implantação em seu sistema
mainframe Quanto tempo demorou do
desenvolvimento à implantação? Onde estavam os
principais gargalos? Como os testes automatizados, a integração
contínua
ou a entrega contínua
poderiam integração
contínua
ou a entrega contínua reduzir o tempo e o esforço envolvidos nessa implantação? Anote suas respostas
e considere como CICD pode transformar os desafios específicos que
sua equipe enfrenta O que vem a seguir? Na próxima lição, apresentaremos os
principais conceitos de DevOps e agilidade em Você aprenderá como a cultura de
DevOps e as práticas
ágeis aprimoram a
colaboração entre as equipes de
desenvolvimento e operações e como a adoção desses princípios pode
otimizar ainda mais seu
4. Aula 3: conceitos-chave de DevOps e Ágil em Mainframes: Lição três, conceitos-chave de DevOps e agilidade
em mainframes Bem-vindo à lição
três do Módulo 1. Até agora, exploramos o que é o CICD e por que ele é
essencial para Na lição de hoje, abordaremos dois
conceitos cruciais que tornam CICD não apenas possível, mas também um DevOps
bem-sucedido e Se você vem de um ambiente tradicional de
mainframe, esses termos podem parecer mais comuns
no mundo dos aplicativos baseados em
nuvem No entanto, as práticas ágeis do DevOps podem melhorar significativamente os processos de desenvolvimento de
mainframe, especialmente quando
combinadas com Ao final desta lição,
você entenderá como adaptação dessas culturas e
práticas pode melhorar a
colaboração,
agilizar o fluxo de trabalho e , por fim, modernizar a forma como
você trabalha Introdução à
cultura e mainframes de DevOps. Vamos começar com o DevOps. A palavra Devops combina
desenvolvimento e operações, mas representa muito
mais do que apenas a fusão de
dois departamentos DevOps é uma mudança cultural, uma filosofia que
enfatiza a colaboração, automação e a responsabilidade
compartilhada em todo o ciclo de vida da
entrega de software O que é Devos? O DevOps se concentra em quebrar os silos entre desenvolvimento e as equipes de
operações Em vez de os desenvolvedores
escreverem código
e colocá-lo no chão para as
operações de implantação, DevOps promove a colaboração
contínua do início ao fim O objetivo final do DevOps
é fornecer software mais rapidamente, com maior
qualidade e menos riscos Vamos dar um exemplo. Em um ambiente tradicional de
mainframe, os desenvolvedores podem escrever programas de
capa, mas é a equipe de
operações que lida com testes, implantação
e manutenção Isso geralmente leva a gargalos. DevOps faria com que
essas duas equipes trabalhassem juntas desde o início Quando um novo recurso é desenvolvido, a equipe de operações já está
ciente do que ele precisa, como ele será implantado e de quaisquer riscos potenciais Como o DevOp
se aplica ao mainframe? Embora a Devo tenha suas raízes em sistemas
distribuídos e baseados em nuvem, ela é cada vez mais importante
em ambientes de mainframe. Os aplicativos de mainframe
podem ser complexos, essenciais e interligados Isso torna a colaboração promovida pela
Devox ainda
mais valiosa Automatizar fluxos de trabalho, criar um
entendimento compartilhado entre equipes e promover
melhorias contínuas são tão relevantes em mainframes quanto em qualquer outro sistema Vamos dar um exemplo.
Imagine uma companhia aérea que depende de mainframes
para lidar com reservas No DevOps, desenvolvedores e operações podem trabalhar juntos para
implantar atualizações, como um novo
recurso de recompensas para clientes, sem problemas Os testes e a
implantação automatizados garantem que o sistema permaneça estável e que não haja
interrupções no serviço Práticas ágeis em mainframes. Agora vamos falar sobre o Agile. Você já deve ter ouvido falar do Agile
no contexto de equipes pequenas e
flexíveis, criando aplicativos web ou
móveis, mas o Agile também pode ser adaptado
ao mundo do mainframe O que é Agile? O Agile é uma metodologia de gerenciamento e
desenvolvimento de projetos que enfatiza a flexibilidade, progresso
iterativo e
o feedback Em vez de ciclos de
desenvolvimento longos e rígidos, as mudanças são implementadas
em grandes lotes, Agile promove o trabalho em iterativos
curtos Cada impressão fornece uma
pequena parte viável do projeto
que é revisada, testada e aprimorada com
base no feedback Vamos dar um exemplo. Em um ambiente tradicional de
mainframe, as atualizações de um
sistema de cobrança podem ser planejadas ao longo de meses e lançadas
como uma atualização importante Por outro lado, com o Agile, uma equipe de desenvolvimento pode introduzir mudanças incrementais
menores em uma série de impressões de duas semanas Cada alteração é testada e refinada antes do início da
próxima impressão. Ágil no desenvolvimento de mainframe. Agile permite que você lance recursos ou
atualizações
menores com mais frequência, o que é especialmente útil em grandes
ambientes de mainframe, onde grandes mudanças podem ser Ao testar e
refinar continuamente os recursos
em ciclos curtos, Agile ajuda a reduzir bugs, melhorar a qualidade do software e agregar valor mais rapidamente
aos negócios princípios fundamentais do Agile, que
são melhoria contínua, colaboração e
flexibilidade, podem ser aplicados até mesmo em sistemas de
mainframe complexos Por exemplo, um banco que usa práticas
ágeis em seus
ciclos de desenvolvimento de mainframe pode atualizar seu sistema de processamento de empréstimos gradualmente ao longo de vários sprints Cada sprint pode se concentrar na adição de um novo recurso, na
execução de testes e no recebimento de
feedback dos usuários, permitindo que a equipe
detecte e corrija problemas logo antes do lançamento completo Como a Devo aprimora a colaboração entre as equipes de desenvolvimento
e operações Agora que exploramos
o que são Devos e Agile, vamos ver como o Devov
aprimora especificamente aprimora Lembre-se de que a maneira antiga de fazer
as coisas, em que o desenvolvimento
e as operações eram dois grupos distintos e
separados, geralmente leva a falhas de comunicação,
atrasos e frustração Veja como a Devos
transforma isso. Primeiro, responsabilidade compartilhada. Em uma cultura desenvolvida, equipe de
desenvolvimento e operações compartilha
a responsabilidade pelo sucesso de um projeto. Isso significa que ambas as equipes
estão envolvidas em todo
o ciclo
de desenvolvimento , do planejamento à
implantação e muito mais. Por exemplo, em um ambiente de
mainframe, isso pode parecer que os desenvolvedores
trabalham em estreita colaboração com a equipe de
operação para testar novos recursos de cobol em condições
reais, reduzindo o risco de falhas na
implantação Segundo, a automação preenche a lacuna. Ferramentas de automação como
Jenkins, Urban code e outras fornecem
uma plataforma compartilhada na qual ambas as equipes podem trabalhar Automatizar o processo de teste e
desenvolvimento significa menos idas e vindas entre
desenvolvedores e operações, menos erros manuais
e lançamentos mais rápidos Por exemplo, automatizar suítes de
testes para um
sistema de saúde executado em estruturas principais garante que
tanto os desenvolvedores quanto as operações saibam exatamente quando uma mudança está pronta
para produção, eliminando a incerteza decorrente do processamento manual Três,
feedback e melhoria contínuos,
se desenvolve e incentiva ciclos de feedback
contínuos Isso significa que cada equipe obtém informações em tempo
real
sobre o desempenho do sistema e pode responder rapidamente
aos problemas corrigidos. Para mainframes, isso é inestimável para
evitar o tempo de inatividade, resolver bugs com mais rapidez e
garantir a confiabilidade Por exemplo, no sistema de inventário de uma
empresa de varejo, se um bug for introduzido durante o lançamento de
um novo recurso, tanto a equipe de desenvolvimento
quanto a de operações podem ver dados e registros em tempo real, permitindo que
solucionem e resolvam problemas juntos
antes que eles aumentem Principais conclusões desta lição DevOps promove a
colaboração e responsabilidade
compartilhada entre a equipe de desenvolvimento
e operações, resultando em lançamentos mais rápidos e confiáveis Agile permite ciclos
iterativos curtos que reduzem os riscos e melhoram a qualidade do
software por meio de feedback
contínuo Tanto o Devos quanto os
princípios ágeis podem ser
aplicados com sucesso a ambientes de mainframe
para eliminar silos, otimizar o fluxo A automação é um
componente essencial do Devos, ajudando as equipes a trabalharem juntas forma eficiente e
reduzindo os erros manuais Atividade de ganho. Pense em seu processo atual de desenvolvimento
e implantação de
mainframe processo atual de desenvolvimento
e implantação As equipes de desenvolvimento e
operações estão trabalhando juntas durante todo o ciclo de
vida do projeto? Onde estão as maiores lacunas de
comunicação ou processo? Como a adoção de práticas de
DevOps ou métodos
ágeis pode melhorar a
colaboração e acelerar seus Anote suas ideias e considere como implementar a
automação ou trabalhar em ciclos
iterativos menores pode resolver alguns
dos desafios que você está enfrentando
atualmente O que vem a seguir? Na próxima lição, vamos nos
aprofundar na visão geral do pipeline
do CICD
para mainframes Você aprende o detalhamento
passo a passo de um pipeline típico do CICD e como cada estágio se traduz especificamente para o mundo do
mainframe Prepare-se para ver como um pipeline moderno pode transformar
seus processos de mainframe
5. Aula 4: visão geral do pipeline de CI/CD para Mainframes: Lição quatro, visão geral
do pipeline CICD
para mainframes Bem-vindo à lição
quatro do Módulo 1. Nesta lição, vamos
explorar o
pipeline do CICD em detalhes,
detalhando cada
etapa e mostrando como ela se traduz em sistemas de
mainframe É aqui que tudo o que
abordamos até
agora começa a se unir à medida que passamos da compreensão
da teoria por trás CICD para ver como ela
funciona na prática Ao final desta lição, teremos uma compreensão clara
dos vários estágios em
um pipeline típico do CICD
e você poderá ver como essas etapas se aplicam especificamente ao ambiente de
mainframe Se você estiver trabalhando
com CBO, PL one ou outras linguagens de mainframe, o princípio permanece
o mesmo, vamos começar. O que é um pipeline CICD? Vamos começar com uma definição
básica. Um pipeline de CICD é uma série de etapas
automatizadas que levam o código do
desenvolvimento à produção, garantindo a qualidade e reduzindo os erros
manuais ao longo do caminho Pense no pipeline como uma linha de fabricação
para seu software. O código entra em uma
extremidade e, quando sai na outra,
ele é integrado,
testado, criado e entregue em um ambiente de
produção ativo, tudo com o mínimo de intervenção
humana No contexto dos mainframes, o pipeline automatiza muitos dos processos manuais que
podem retardar
o desenvolvimento, teste e a
implantação, ajudando você a entregar mais rápido e com
mais confiança Detalhamento passo a passo
de uma tubulação CICD. Agora, vamos percorrer os estágios típicos
de um pipeline CICD Abordaremos cada etapa em
detalhes para que você possa ver como ela funciona e como se aplica ao seu ambiente de
mainframe Número um, confirmação de código. O que acontece? É
aqui que tudo começa. Os desenvolvedores escrevem código e
confirmam suas alterações em um sistema de
controle de versão ou em um VCS, como Git,
endeavor ou hangen Isso aciona o pipeline. Por exemplo, digamos que você esteja
trabalhando em um novo recurso para seu sistema de mainframe que
processa pedidos de clientes Você escreveu o código, o
testou localmente e agora está pronto para
enviá-lo para o repositório compartilhado Quando você clica em Confirmar,
o pipeline do CICD entra em ação automaticamente Como isso se traduz em
mainframe. Os desenvolvedores de mainframe
podem estar usando sistemas
tradicionais como o
Endeavor para gerenciamento de código, mas o conceito de
controle de versão continua Como abordaremos nas próximas aulas, usar ferramentas modernas como o
Git ou integrar ferramentas VCS
existentes aos pipelines do
CICD é o primeiro passo para a Dois, integração contínua
ou CI. O que acontece? O próximo estágio é a
integração contínua ou CI. Aqui, o pipeline
integra automaticamente o novo código
à base de código existente Isso envolve extrair
o código mais recente do repositório e executar compilações e testes
automatizados para garantir que tudo
continue funcionando Por exemplo, seu novo recurso integra
descontos para
clientes ao sistema de processamento de pedidos O pipeline de CI
testa automaticamente esse recurso com o resto do aplicativo para garantir que nada esteja quebrado, evitando surpresas
no futuro Como isso se traduz em
mainframes. Em mainframes,
testes automatizados são cruciais. Em vez de criar
e testar manualmente as alterações, que podem ser lentas
e propensas a erros, a etapa de CI compila e
executa testes automatizados no código do
seu mainframe, seja ele CBO,
BL one ou JCL Ferramentas como Jenkins ou IBM Urban code build podem automatizar esse
processo Três,
testes automatizados. O que acontece? Depois que a compilação é concluída, o pipeline executa uma série
de testes automatizados. Isso normalmente
inclui testes de unidade, testes integração
e testes de regressão
, dependendo da sua configuração Por exemplo, depois
de confirmar seu código, o pipeline executa testes
automaticamente para garantir que seu
novo recurso de desconto calculado corretamente
em diferentes cenários,
como diferentes categorias de produtos ou tipos de clientes Se algo quebrar,
você saberá imediatamente. Como isso se traduz em
mainframes. Os testes em mainframes
geralmente são mais complexos devido às
dependências de sistemas externos Os testes automatizados ajudam a
reduzir a carga manual. Com ferramentas CICD modernas, você pode automatizar os testes em
todas as etapas, desde
testes unitários que verificam módulos de paralelepípedos
individuais até testes de
integração que garantem que tudo funcione Quatro, construa e
empacote. O que acontece? Depois que o código for testado, o pipeline passa para o estágio de
construção e empacotamento. É aqui que o código é
compilado, se necessário, e empacotado em um
formato implantável pronto para Por exemplo, imagine
que você está lançando um novo sistema de processamento em lote
para transações financeiras O processo de criação compila
todo o código necessário, vincula todas as dependências
e o
empacota em um formato pronto para
implantação no Como isso se traduz em
mainframes. Em mainframes, esse estágio envolve compilar programas cobble
ou PL one, vincular dois pacotes DV e vincular JCL
e outros arquivos O pipeline do CICD
garante que isso aconteça automaticamente, seguindo
sempre
o mesmo processo rigoroso , sem intervenção
manual Cinco, entrega contínua ou CD. O que acontece? A
entrega contínua é a próxima fase. Depois que o código é
criado ou empacotado, ele é entregue automaticamente a um ambiente de teste, onde passa por mais
testes Por exemplo, seu novo recurso de pedido de
cliente
é implantado um ambiente de teste onde pode ser testado com dados do mundo
real Os usuários podem interagir com
ele como se estivesse ativo, mas sem afetar o sistema
de produção. Como isso se traduz em
mainframes. Os mainframes tradicionalmente
envolvem vários ambientes, desenvolvimento, teste,
preparação e produção CD automatiza o processo de
implantação entre esses ambientes, garantindo que o código
se mova perfeitamente de um estágio para o outro
sem etapas manuais Isso reduz o
tempo de implantação e minimiza os riscos. Seis, da implantação à
produção. O que acontece? Depois que tudo for aprovado
no ambiente de teste, o pipeline envia
o código validado testado Em alguns casos, isso pode envolver um processo de
aprovação manual, especialmente em ambientes altamente
regulamentados como bancos ou serviços de saúde. Por exemplo, quando
seu novo recurso é aprovado em fase de testes,
ele é colocado em produção, o que significa que todos os clientes agora
podem usar o novo recurso de desconto
no ambiente ao vivo Como isso se traduz em
mainframes. Para mainframes, a implantação da
produção pode ser a
parte mais arriscada do processo, especialmente se envolver sistemas de
missão crítica Ao automatizar o processo de
implantação, os pipelines do
CICD reduzem
a probabilidade de erros
e garantem que as implantações
ocorram de forma consistente e pipelines do
CICD reduzem
a probabilidade de erros
e garantem que as implantações
ocorram de forma consistente e confiável. Você pode até mesmo implementar mecanismos
de reversão se algo der errado Sete, monitoramento e feedback. O que acontece? Após a implantação, o pipeline não para. Ele monitora o
aplicativo em produção, rastreando o desempenho,
os erros e o feedback do usuário. Por exemplo, você
implantou o novo recurso, mas agora o pipeline
monitora seu desempenho, garantindo que o sistema possa
lidar com a nova lógica de
desconto sob cargas
pesadas de usuários e rastreando quaisquer bugs ou problemas que surjam Como isso se traduz em
mainframe. Os mainframes precisam de ferramentas de
monitoramento robustas para monitorar o desempenho
após o desenvolvimento Ao integrar ferramentas de monitoramento e registro ao pipeline
do CICD, você receberá dados em tempo real sobre o desempenho do seu
aplicativo, permitindo que você
detecte e resolva problemas rapidamente Como cada estágio se traduz em sistemas
de mainframe. Como você pode ver, cada estágio do pipeline
do CICD tem
relevância direta para os mainframes, do controle de versão
aos testes automatizados, da implantação ao monitoramento Cada etapa pode ser adaptada ao
seu ambiente de mainframe. Para integração de confirmação de código com ferramentas VCS tradicionais de
mainframe, Endeavor ou change Man ou ferramentas
modernas Integração contínua. Automatizando compilações e
testes usando Jenkins, código
urbano ou ferramentas similares Teste automatizado,
executando testes cobol ou PLO em todas as etapas para
garantir a qualidade do código Crie e empacote, compile e empacote o
código do mainframe automaticamente, reduzindo o trabalho manual Entrega contínua, movendo
perfeitamente código por diferentes
ambientes do desenvolvimento à produção Implantação, implantações de produção
automatizadas, consistentes e
confiáveis com mecanismo de desvantagem Monitoramento, rastreamento de
desempenho em tempo real para garantir a estabilidade do sistema e a detecção
precoce de problemas. Principais conclusões desta lição. Um pipeline CICD é uma série
de etapas automatizadas que levam o código do desenvolvimento à produção com o mínimo de intervenção
manual Cada estágio do pipeline, confirmação de
código, integração,
teste, empacotamento, entrega e implantação pode ser adaptado aos sistemas de mainframe automação desses estágios reduz
o risco de erro humano, acelera o desenvolvimento e
garante lançamentos mais confiáveis Atividade de aprendizagem. Pense em seu processo atual de desenvolvimento
e implantação para seu ambiente de mainframe. Quais etapas do
pipeline do CICD são atualmente manuais? Onde estão os
maiores gargalos em seu Anote como a automação de
cada estágio pode melhorar sua
velocidade de desenvolvimento e reduzir erros O que vem a seguir? Na próxima lição, exploraremos o
controle de versão para código de mainframe Você aprenderá por que o
controle de versão é essencial, como integrar
ferramentas modernas, como o Gift, e como migrar de sistemas
tradicionais, como o
Endeavor ou Essa é uma
etapa crucial na configuração um pipeline do CICD para
se preparar para mergulhar
6. Aula 1: introdução aos sistemas de controle de versão: Módulo dois. Configurando um
controle de versão para o código do mainframe Neste módulo,
exploraremos como sistemas de controle de
versão para VCS são usados para gerenciar o código do
mainframe Você aprenderá sobre ferramentas
modernas como o Git, as
comparará com sistemas de
mainframe tradicionais ,
como Endeavor e
Change Man, e entenderá por que controle de
versão é Lição 1, introdução aos sistemas de controle de
versão. Bem-vindo à primeira
lição do módulo dois. Neste módulo, estamos dando um
passo crucial para modernizar seu ambiente de mainframe,
focando em sistemas de
controle de versão ou Esta lição é
sobre os fundamentos, o que é controle de versão,
por que é tão importante
e como ferramentas
modernas como o Git se comparam aos
sistemas de mainframe
tradicionais, e como ferramentas
modernas como o Git se comparam aos como Endeavor Ao final desta lição, você entenderá o papel que o controle de
versão desempenha no ambiente moderno
e legado
e estará pronto para dar o próximo passo na configuração do Git para sua base de código de
mainframe Hum, o que é controle de versão
e por que é importante? Vamos começar respondendo a uma pergunta
simples, mas vital. O que é controle de versão? Em essência, um controle de rsão é um sistema que rastreia
as alterações nos arquivos ao longo do tempo Pense nisso como uma
máquina do tempo para seu código. Você pode voltar às versões
anteriores, ver o que mudou e
quem fez essas alterações. Em um ambiente colaborativo, controle de
versão permite que
várias pessoas trabalhem
no mesmo projeto sem
intervir umas nas outras Veja como funciona. Uma rachadura muda. Toda vez que um desenvolvedor faz
uma alteração na base de código, o Controle de
Versão
registra essa alteração como uma nova versão ou quando chega
. Colaboração. Com o Controle de Versão,
os desenvolvedores podem trabalhar em diferentes partes da mesma base de
código simultaneamente. O sistema rastreará
quem está trabalhando em quê e garantirá que as mudanças não entrem em
conflito umas com as outras. Reversão. Se
algo der errado, digamos que um bug seja introduzido. O controle de versão
permite reverter para uma
versão estável anterior do código. Por que isso é tão importante em
um ambiente de mainframe? Mainframe de sistemas
críticos em funcionamento, bancos,
seguros, assistência médica
e outros, onde a estabilidade é fundamental O controle de versão garante que você tenha uma rede de segurança
quando as coisas derem errado. À medida que as equipes de mainframe se modernizam
e se tornam mais ágeis, elas precisam de ferramentas que suportem o desenvolvimento
colaborativo, integração
contínua
e as implantações rápidas,
tudo isso facilitado com o controle de versão elas precisam de ferramentas que suportem o desenvolvimento
colaborativo, a integração
contínua
e as implantações rápidas,
tudo isso facilitado com o controle de versão
.
Vamos
dar um exemplo. Imagine que você está trabalhando em um sistema de cobrança para
uma seguradora O sistema tem
centenas de milhares de linhas
de código CVL. Agora, sua equipe tem a
tarefa de adicionar um novo recurso que calcula descontos para
clientes O controle de versão ajuda a rastrear todas as alterações feitas
nessa grande e complexa base de código. Se um bug for introduzido, você poderá rastrear facilmente quem
fez a alteração e quando e reverter rapidamente para uma versão estável
anterior Ferramentas populares de controle de versão, Git versus sistemas de
mainframe tradicionais Agora que você entende por que controle de
versão é tão importante, vamos comparar dois tipos de sistema de controle de
versão. Ferramentas modernas, como o Git, e sistemas de mainframe
tradicionais, como Endeavor O padrão moderno
para controle de versão. Git é o sistema de controle de
versão mais popular em
ambientes de desenvolvimento modernos É amplamente utilizado em
várias plataformas,
nuvem, dispositivos móveis, desktops
e, sim, até mesmo em mainframes Principais características do Git one, sistema
distribuído, é um sistema de
controle de versão distribuído,
o que significa que cada desenvolvedor tem
uma cópia completa do repositório
em seu sistema o que significa que cada desenvolvedor tem local Isso permite operações rápidas e a capacidade de trabalhar offline. Dois, ramificando. Bit se destaca na criação ramificações para diferentes
recursos ou correções de bugs Você pode isolar o trabalho em uma
ramificação e somente mesclá-lo novamente ao código principal quando estiver
totalmente testado e pronto Em terceiro lugar, a colaboração,
a natureza distribuída do Git, facilita a colaboração de grandes
equipes As alterações são mescladas
perfeitamente em conflitos, como quando duas pessoas editam o mesmo arquivo, são resolvidas
por meio das ferramentas integradas do Git Vamos dar um exemplo. Digamos que sua equipe esteja trabalhando em
vários recursos ao mesmo tempo. Um grupo está atualizando a lógica de paralelepípedos para
calcular o prêmio de seguro, enquanto outro grupo está adicionando um novo módulo para recompensas de
clientes O Get permite que cada equipe
crie sua própria filial, trabalhe isoladamente e mescle
as alterações quando estiver pronta Isso mantém a tabela principal baseada em
código enquanto diferentes recursos
estão sendo desenvolvidos. Empenhe-se e mude o Man, sistemas de mainframe
tradicionais. outro lado, temos sistemas
tradicionais de controle de
versão de mainframe como Endeavor e Essas ferramentas foram projetadas
especificamente para ambientes de
mainframe e têm sido usadas há décadas
para gerenciar as bases de código CBO, DL one e JCL Principais características do esforço e mudança, o homem. Controle centralizado Ao contrário do Git, essas ferramentas geralmente
são centralizadas, o que significa que há um
único repositório qual os desenvolvedores trabalham Isso garante um controle rigoroso
sobre a base de código, o que pode ser importante para setores
altamente regulamentados. Segundo, integração com fluxos de trabalho de
mainframe. Esses sistemas são totalmente integrados a outros processos de
mainframe, tornando-os convenientes para equipes já estão familiarizadas com fluxos de trabalho específicos de
mainframe terceiro lugar, processos de aprovação, esforços e mudanças O Homem geralmente Em terceiro lugar, processos de aprovação,
esforços e mudanças O Homem geralmente
inclui processos de
aprovação integrados, garantindo que o código
seja revisado e aprovado antes de ser
implantado na Vamos dar um exemplo.
Considere uma agência governamental executando um
sistema de folha de pagamento em um mainframe Cada linha de código
deve ser cuidadosamente revisada e aprovada
antes de ser implantada. Com esforço ou mudança, o processo de aprovação é construído para
garantir a conformidade com as
rígidas Git versus sistemas
tradicionais,
principais diferenças Vamos resumir
as principais diferenças entre o Git e sistemas de mainframe
tradicionais para Git, Cada desenvolvedor tem uma
cópia completa do repositório. Modelo moderno de ramificação flexível que oferece suporte vários desenvolvedores trabalhando em recursos
diferentes
ao mesmo tempo Rápido e eficiente para
equipes de qualquer tamanho. Empenhe-se ou mude, homem, controle
centralizado
com governança rígida, geralmente preferido para setores
regulamentados, profundamente integrado aos fluxos de trabalho do
mainframe, o
que pode ser um ponto forte, mas também uma limitação, se você estiver tentando se
modernizar processos de aprovação tradicionais estão incorporados, mas podem ser mais lentos em comparação com
a ramificação
e fusão mais rápidas do Git Os
processos de aprovação tradicionais estão incorporados,
mas podem ser mais lentos em comparação com
a ramificação
e fusão mais rápidas do Git. Vamos
dar um exemplo. Sua equipe está trabalhando em
um sistema antigo que processa milhões de transações
financeiras diariamente. Embora o Git permita desenvolvimentos
e flexibilidade
anteriores, você também pode precisar se esforçar ou mudar alguém para garantir que
o sistema atenda aos rígidos
padrões de conformidade e que todas as alterações sejam devidamente
revisadas antes Por que o Git é crucial para o
CICD em mainframes. À medida que continuamos avançando em direção a uma
abordagem CICD modernizada em mainframes, Git está se tornando o sistema de controle de versão padrão Aqui está o porquê. Um, suporte para
DevOps e CICD. O Git se integra perfeitamente
às ferramentas de DevOps como Jenkins, Essas ferramentas contam com o Git para acionar
compilações e testes automatizados, tornando-o a espinha dorsal de
um pipeline CICD moderno Segundo, espionagem e flexibilidade, sua natureza distribuída permite ciclos
de desenvolvimento mais rápidos Os desenvolvedores podem trabalhar em recursos
isolados, confirmar
alterações com frequência e mesclá-las quando estiverem prontos, tudo sem atrasar o processo
geral de desenvolvimento Três, colaboração, WIT suporta o desenvolvimento
colaborativo melhor do que os sistemas tradicionais Com seus recursos de ramificação e
fusão, Git permite que várias
equipes trabalhem
na mesma base de código
simultaneamente Vamos dar um exemplo.
Imagine que você está criando um aplicativo de mainframe para um banco internacional Sua equipe está
distribuída em vários países, cada um trabalhando em diferentes
partes do código. Ele permite que essas equipes
colaborem sem problemas, garantindo que cada alteração
seja testada e integrada automaticamente sem interromper
o Hum, principais conclusões
desta lição. Os sistemas de controle de versão
rastreiam as alterações em seu código, permitindo colaboração ,
rastreamento e reversões
quando necessário Git é o padrão moderno
para controle de versão, fornecendo
colaboração distribuída, ramificação
flexível
e operações rápidas sistemas de mainframe tradicionais, como Endeavor e o Change Man, oferecem controle
centralizado e estão profundamente integrados Git é essencial para as práticas
modernas de CICD, oferecendo a flexibilidade e a velocidade necessárias para o ambiente
DevOps Atividade de aprendizagem. Reserve um momento para refletir sobre suas práticas atuais de controle de
versão Você está usando um sistema
tradicional como o Endeavor ou o Change Man Quais desafios você enfrenta com seu sistema de controle
Version atual Como o uso do Git pode melhorar sua colaboração,
velocidade e automação Anote suas ideias
e considere como uma transição para o Git pode se encaixar em seus esforços de
modernização O que vem a seguir? Na próxima lição, vamos começar configurar o Git para código de
mainframe Você aprenderá passo a passo como
configurar o Git para repositórios de
mainframe, instalá-lo em seu ambiente e começar a usá-lo para
gerenciar seu código cobol, AL one Prepare-se para dar
o próximo passo na modernização do fluxo de trabalho de seu
mainframe
7. Aula 2: como configurar o Git para código de mainframe: Lição dois, iniciando o
Git para código de mainframe. Bem-vindo à lição
dois do módulo dois. Nesta lição, vamos
conhecer o GIP, um dos
sistemas de controle de versão mais
poderosos e amplamente usados no mundo Ao final desta lição, você saberá como configurar o
Git para sua base de código de
mainframe, instalá-lo e
configurá-lo em seu ambiente
e começar a gerenciar seu código
COBOL, EL one ou JCL Git pode parecer uma ferramenta reservada para desenvolvedores de nuvem
e web, mas é uma
parte essencial da modernização dos mainframes e da
transição para Vamos começar. Guia passo a
passo para configurar o Git
para repositórios de mainframe Antes de nos aprofundarmos nos detalhes, vamos dar uma
olhada de alto nível nas etapas que você seguirá para colocar o Git em funcionamento em
seu ambiente de mainframe Abordaremos um, instalando o
Git em seu sistema, dois, configurando o Git com
seu repositório, três,
inicializando o repositório Git
para seu código de mainframe
e quatro conectando seu repositório de mainframe e quatro configurando o Git com
seu repositório, três,
inicializando o repositório Git
para seu código de mainframe
e quatro conectando seu repositório de mainframe ao servidor remoto. Um, primeiro passo, instalar o Git. Primeiro, precisamos instalar o GIF. Se você estiver trabalhando em um ambiente
híbrido que inclui mainframes
e sistemas distribuídos, você instalará o Git
na máquina que faz interface
com seu No Linux e no Unix, você pode instalar o Git usando
o gerenciador de pacotes Esta é a instrução que você emitirá
para instalar o Git No Windows, baixe e instale o Git para Windows no
site oficial do Git Depois que o Git estiver instalado, verifique a instalação
abrindo um terminal e digitando
esta instrução Isso deve retornar a versão
instalada do GIP. Vamos dar um exemplo. Imagine que você está trabalhando
com um sistema híbrido em que os desenvolvedores codificam
em um servidor Linux, mas o código acaba sendo
implantado em um mainframe ZOS Você instala o Git no servidor
Linux, permitindo que os desenvolvedores acompanhem as mudanças
e colaborem em tempo real Etapa 2: configurar o
Git ou seu repositório. Depois que o Git estiver instalado, a próxima etapa é
configurá-lo para funcionar com seu repositório Isso envolve definir seu
nome de usuário e endereço de e-mail para que o Git possa rastrear quem
está fazendo as alterações Para definir seu nome de usuário e e-mail, você emite esses dois comandos. Por que isso é importante? Cada commit no Git é
associado a um autor Definir essas informações garante que suas alterações sejam atribuídas
corretamente Para grandes sistemas de mainframe, rastrear quem fez as alterações é fundamental para a contabilidade
e a colaboração Etapa três, inicializando um repositório Git
para Agora que o Git está instalado
e configurado, vamos iniciar um repositório Git
para Primeiro, navegue até o diretório em que seu
código de mainframe reside Segundo, inicialize o repositório
Git. Isso cria uma pasta git de
pontos oculta que rastreia todas as alterações
nesse diretório Três, adicione seu código
ao repositório. Esse comando prepara todo o seu código atual
para controle de versão. Quatro confirme suas alterações. Isso salva as
alterações no repositório Git, tornando-a sua
primeira versão Por exemplo, digamos que você esteja trabalhando com uma grande base de
código cobol que gerencia processamento de
transações para uma
grande instituição financeira Ao inicializá-lo, você começa a monitorar todas as alterações
feitas no código, permitindo que você veja um
histórico de atualizações, reverta para versões mais antigas e colabore mais
facilmente com Etapa quatro, conectando-se a
um repositório Git remoto. Para colaborar de forma eficaz
com sua equipe, você deve conectar
seu repositório local
a um repositório remoto, como aquele
hospedado no GitHub, Gitlab Isso permite que todos
compartilhem mudanças, trabalhem em filiais diferentes e colaborem em locais
diferentes Primeiro passo, crie um repositório
em uma plataforma como GitHub ou Gitlab ou no servidor privado
da sua organização Segundo, copie a URL do repositório. No seu terminal, adicione
o repositório remoto. Isso vincula seu
repositório Git local ao remoto. Em seguida, envie suas alterações locais
para o repositório remoto. Vamos dar um exemplo.
Você faz parte de uma
equipe distribuída globalmente que trabalha em uma base de código de mainframe
para uma empresa de logística Ao conectar seu repositório Git
local a um remoto
hospedado no GitLab, os membros da
sua equipe em
diferentes fusos horários podem acessar e colaborar
facilmente
na mesma base de código,
fazendo alterações sem
sobrescrever o fazendo alterações sem
sobrescrever Instalação e configuração do Git
em ambientes de mainframe. Normalmente, o Git é instalado em uma máquina que faz interface
com seu mainframe, como um servidor Linux
ou um sistema ZOS No entanto, em alguns casos, você pode estar hospedando em
um ambiente em que acesso
direto ao Git
no mainframe é
possível por meio do ZOS
ou Vamos abordar o processo
de instalação
de um ambiente de mainframe. Primeiro passo instalando o
Git no ZoSunix. Primeiro, acesse o shell ZOS uniq partir de um terminal de mainframe Use ferramentas de gerenciamento de pacotes
como um para instalar o Git. Etapa 2: configurar o Git
para fluxos de trabalho de mainframe. Depois que o Git é instalado, você o configura da mesma forma que
faria em qualquer outro sistema Isso garante que todas as
alterações feitas
no ambiente
de mainframe sejam rastreadas adequadamente Por exemplo, uma grande empresa
de varejo depende de um mainframe para
lidar com pedidos on-line A equipe de mainframe
integra o Git em um sistema exclusivo do ZOS para agilizar Com o Git instalado
diretamente no mainframe, os desenvolvedores podem acompanhar as mudanças e colaborar em tempo real, mesmo trabalhando
em código Solução de problemas e
melhores práticas. Aqui estão os desafios comuns
que você pode encontrar ao configurar o Git para mainframes
e como resolvê-los Primeiro, problemas de codificação de arquivos. Os arquivos de mainframe abertos
usam codificação ABSDT, enquanto a maioria dos sistemas modernos
usa Você precisará garantir
que qualquer código movido entre sistemas seja convertido
corretamente. A solução é usar ferramentas
como I Convert ou ICON V para converter arquivos conforme necessário ao movê-los entre sistemas Git e mainframe Duas bases de código grandes. As principais bases de código desgastadas podem ser enormes, tornando as operações iniciais do
Git lentas Solução: use recursos do Git, como clonagem superficial,
para reduzir o tamanho
do repositório ou
dividi-lo em partes menores e mais gerenciáveis Três, a integração com seus fluxos de trabalho de
mainframe existentes Se sua equipe ainda usa ferramentas
tradicionais como o Endeavor, talvez seja necessário executar o
git Solução. Inclua lentamente o Git em seu fluxo de trabalho, usando-o
junto com seu BCS tradicional Com o tempo, faça a transição completa para Git quando a equipe estiver
confortável com um novo sistema Principais conclusões desta lição. Git é uma ferramenta poderosa
para controle de versão, mesmo em ambientes de mainframe, suportando
colaboração distribuída e ciclos de desenvolvimento mais rápidos Instalar e configurar o
Git é simples. Depois de instalado, o Git pode rastrear todas as alterações feitas na base de código do
mainframe, facilitando a
colaboração e as Conectar-se a um
repositório remoto permite que sua equipe compartilhe código e colabore
em diferentes ambientes, tornando o Git uma parte essencial qualquer fluxo de trabalho moderno
do Devoves Ambientes de mainframe e
aproveite o presente diretamente por meio do ZOS Unix ou por meio da
interface com um sistema híbrido, garantindo que as equipes de mainframe possam trabalhar
com as mesmas ferramentas das
equipes com as mesmas ferramentas das Atividade de aprendizagem.
Tente instalar o Git em uma máquina que faça
interface com seu mainframe Inicialize um repositório com exemplo de código OBO, PL one ou Envie o repositório para um serviço
remoto, como o GitHub ou Gitlab, e convide um membro da equipe para colaborar fazendo
alterações Reflita sobre como o Git melhora a colaboração e o controle de
versão seu ambiente
de mainframe Anote todos os desafios que você encontra e como
você os supera. O que vem a seguir? Na próxima lição, exploraremos as operações básicas do
Git que são commit,
branch e merge Aprenderemos como
confirmar alterações, criar ramificações e
mesclar código no git, além
das melhores práticas para gerenciar ramificações e resolver conflitos
em
8. Aula 3: operações básicas do Git: commit, filial, mesclagem: Lição três, operações básicas do
Git, commit, branch, merge Bem-vindo à lição
três do módulo dois. Configuração narrativa do Git para
seu código de mainframe, hora de mergulhar
nas principais operações que ajudarão você a gerenciar
sua base de código Nesta lição, abordaremos
três comandos essenciais do Git. Confirmar, ramificar e mesclar. Ao final desta lição, você poderá
confirmar alterações, criar e trabalhar com ramificações
e mesclar código no
Git com confiança Você também aprenderá
as melhores práticas ao gerenciar filiais em um ambiente de equipe
e resolver conflitos, que são cruciais
ao lidar com
grandes projetos complexos de
mainframe Vamos começar.
Confirmando alterações no Git A primeira operação básica do Git que você usará com frequência
é o commit Um commit no Git registra um instantâneo do estado atual do seu projeto, essencialmente salvando as
alterações que você fez Isso permite que você
acompanhe seu progresso e volte para as
versões anteriores, se necessário Como confirmar mudanças. Veja como confirmar
as mudanças passo a passo. Primeiro, prepare os arquivos que
você modificou. Isso informa ao Git quais arquivos você deseja incluir
em seu próximo commit Segundo, confirme as alterações com uma mensagem descritiva que
resume o que você fez Cada confirmação que você
faz é salva com um identificador exclusivo que não seja SHA, junto com seu
nome, a data e hora e a mensagem que você forneceu Isso permite que você e
sua equipe acompanhem exatamente quais mudanças foram
feitas, quando e por quem. Práticas recomendadas para
escrever mensagens de confirmação. Uma boa mensagem de confirmação
facilita a compreensão rápida
do propósito de uma mudança. Aqui estão algumas dicas.
Seja conciso. Procure uma mensagem que descreva
claramente a mudança em uma ou duas
frases. Seja específico. Em vez de escrever um código atualizado, forneça um contexto como um sistema de cobrança
refatorado
para corrigir Use o humor imperativo. Esta é uma convenção em presentes. Por exemplo, bug corrigido no processamento de
transações em vez de bug corrigido. Vamos dar um exemplo. Você está atualizando um módulo CBL que calcula os prêmios
do cliente Você faz várias alterações
e as testa localmente. Antes de prosseguir, você confirma
as alterações com uma mensagem,
adicionando uma lógica para o desconto de várias
políticas no cálculo do prêmio Isso deixa claro para o resto da sua equipe
o que o commit contém. Criando e trabalhando
com ramificações no Git. No Git, as ramificações permitem que você isole seu trabalho
da base de código principal, facilitando a experimentação, desenvolvimento de novos recursos ou a correção bugs sem afetar a versão estável
do seu projeto Por que usar filiais?
As filiais são essenciais para manter a estabilidade e, ao mesmo tempo permitir um
desenvolvimento flexível. Cada desenvolvedor pode trabalhar
em sua própria ramificação, garantindo que a base de
código principal permaneça inalterada até que suas alterações sejam testadas e estejam prontas para serem mescladas Como criar e
trocar filiais. Criar e alternar ramificações, criar e alternar
entre ramificações é simples. Primeiro, crie uma nova ramificação. Em seguida, mude para a nova filial. Agora você está trabalhando
na nova filial. Todas as alterações feitas a partir deste ponto
estarão contidas
nessa ramificação até que você decida
mesclá-la novamente
na base de código principal Práticas recomendadas de ramificação. Use ramificações de recursos, crie uma nova ramificação para cada recurso, correção de bug
ou aprimoramento Isso mantém sua
palavra isolada e facilita o
teste e a revisão. Mantenha os galhos por pouco tempo. Quanto mais tempo uma ramificação for mantida separada da base de código
principal, a probabilidade de você
encontrar conflitos de mesclagem Nomeie as ramificações com clareza, use nomes
descritivos, como sistema de login de
recursos ou cálculo do
BGFixTax Um exemplo, a tarefa de adicionar um
recurso de recompensas a um sistema bancário. Em vez de trabalhar diretamente
na filial principal, você cria uma nova filial chamada Feature Rewards Program
para isolar seu trabalho Dessa forma, outros membros da equipe podem continuar suas tarefas sem se preocupar com o fato de seu desenvolvimento
contínuo afetar a estabilidade
do sistema Mesclando o código no presente. Depois de concluir
seu trabalho em uma filial, a próxima etapa é mesclá-la de
volta à base de código principal mesclagem reúne mudanças
de diferentes ramificações, permitindo que você incorpore novos recursos ou correções de erros
no projeto principal Como mesclar filiais. Primeiro, mude para a ramificação na qual
você deseja mesclar,
normalmente a ramificação principal
ou a ramificação principal Em seguida, mescle a ramificação
contendo as novas alterações. Ele tentará
mesclar as alterações de sua ramificação de recursos com a
ramificação master Se não houver conflitos, a fusão acontecerá
automaticamente Lidando com conflitos de mesclagem. Às vezes, não é possível mesclar
as alterações automaticamente. Isso é chamado de conflito de mesclagem. Os conflitos ocorrem quando
duas ramificações alterações conflitantes
na mesma parte de um arquivo Como resolver conflitos. Quando ocorrer um conflito, ele o notificará e
marcará as
áreas conflitantes nos arquivos Veja como resolvê-los. Abra o arquivo conflitante e resolva
o conflito manualmente Escolha qual versão
manter ou
edite manualmente o código para
combinar as duas versões. Em seguida, prepare o arquivo de resultados. Por fim, confirme a resolução e coloque uma mensagem descritiva Vamos dar um exemplo.
Dois desenvolvedores modificaram o mesmo
programa CVL que processa empréstimos Um adicionou uma lógica ou
uma nova taxa de juros enquanto o outro atualizou a forma como as taxas
atrasadas são calculadas. Ao mesclar essas alterações, isso sinaliza um conflito porque os dois desenvolvedores alteram
a mesma seção do código Você edita manualmente o arquivo
para incorporar as duas alterações, resolver o conflito
e concluir a mesclagem Melhores práticas para
gerenciar filiais e resolver conflitos.
Puxões frequentes. Extraia regularmente as alterações
da ramificação principal para
a ramificação de recursos para minimizar
os conflitos durante a fusão Os ramos do quadril duram pouco. Evite trabalhar em uma ramificação por
muito tempo sem mesclar. Quanto mais tempo existe um galho, a probabilidade de ele se
afastar do galho principal, aumentando a
chance de conflito Comunique-se com sua equipe. Certifique-se de que
os membros da equipe estejam cientes das mudanças nas
quais outras pessoas estão trabalhando, especialmente em arquivos compartilhados. Conclusões desta
lição. Comprometa-se regularmente. Salve seu trabalho com frequência
confirmando alterações com mensagens
claras e concisas. Use ramificações para isolar o trabalho, criar ramificações de recursos para novos desenvolvimentos e manter
a ramificação principal estável Combine com confiança. Reintegre seu trabalho
à ramificação principal depois
de testado e pronto, e esteja preparado para resolver
quaisquer conflitos que possam surgir Atividade de aprendizagem.
Pratique a criação e a fusão de filiais Crie uma nova ramificação
para um recurso em que você está trabalhando, como o
recurso Novo relatório. Faça algumas alterações em seu
código e confirme-as. Volte para a ramificação master e mescle sua nova ramificação de
recursos Tente introduzir um
conflito fazendo com que outro membro da equipe edite o mesmo arquivo em uma ramificação
diferente e resolva o conflito
durante a fusão Reflita sobre como a
ramificação ajuda a isolar seu trabalho e simplifica a
colaboração em complexos de mainframe.
O que vem a seguir? Na próxima lição, abordaremos migração do
código legado
para o Gib Você aprenderá
estratégias para mover seu código de mainframe existente para um sistema de
controle de versão moderno Além das etapas para manter a integridade
do código durante
o processo de migração.
9. Aula 4: como migrar código legado para o Git: Lição quatro, Migrando código
legado para o Git. Bem-vindo à lição
quatro do módulo dois. Se você trabalha com sistemas de
mainframe há algum tempo, provavelmente
terá uma grande
quantidade de código legado Migrar código para o
Git pode parecer assustador, mas é um passo fundamental para modernizar suas práticas de
desenvolvimento, integrar os
princípios do DevOps e permitir
a integração contínua e mas é um passo fundamental para
modernizar suas práticas de
desenvolvimento,
integrar os
princípios do DevOps e permitir
a integração contínua e os pipelines de entrega contínua. Nesta lição,
vamos explorar
estratégias para migrar seu
código de mainframe existente para seu
código de mainframe existente Analisaremos o
processo passo a passo e também fornecerei
dicas para garantir que integridade do
código seja mantida durante toda
a migração. Vamos começar. Por que migrar o
código legado para o Git. Antes de nos aprofundarmos no como, vamos discutir por que migrar o código
legado para o Git
é tão Uma colaboração aprimorada. Com o Git, vários
desenvolvedores podem trabalhar em diferentes partes da base de código ao mesmo tempo
sem conflitos Essa é uma grande melhoria ao sistema de controle de
versão tradicional em mainframes, onde as mudanças geralmente
são lineares e restritas Dois: histórico de versões os poderosos recursos de
controle de versão do GTS permitem que você acompanhe todas as
alterações feitas na base de código Quem fez isso e quando? Esse histórico é inestimável na solução de problemas
ou na auditoria de alterações. Três, integração com ferramentas
modernas de DevOps. Get se integra perfeitamente a ferramentas como Jenkins, GitLab
e outras que ajudam a
automatizar compilações, testes e implantações, que testes e implantações O Get se integra perfeitamente a
ferramentas como Jenkins, GitLab
e outras que ajudam a
automatizar compilações,
testes e implantações, que são os principais componentes do fluxo de trabalho moderno do CICD. Ou facilitando o CICD. Ao mover seu código para o Git, você habilita práticas de
integração contínua, o que significa lançamentos mais
frequentes, bugs mais
rápidas e desenvolvimento mais
eficiente Vamos dar um exemplo. Uma grande instituição
financeira mantém seu sistema de
processamento de transações baseado em paralelepípedos há décadas Ao migrar o código para o Git, a equipe de desenvolvimento é capaz de
introduzir fluxos de trabalho modernos de
DevOps,
permitindo lançamentos mais rápidos, testes
automatizados e colaboração aprimorada distribuídas Estratégias para migrar código
legado para o Git. Migrar o
código antigo do mainframe para o Git não é tão simples quanto copiar arquivos
de um sistema para outro Isso requer planejamento e estratégia para garantir uma transição
suave. Vamos dividi-lo
em etapas específicas. Primeiro passo, avalie e
prepare a base de código. Antes de começar a migração, você precisará avaliar
o estado atual da sua base de código antiga. Anote o seguinte. Identifique o código ativo
e inativo. Alguns códigos podem não estar
mais em uso. É fundamental
identificar qual código está sendo mantido
ativamente
e qual pode ser arquivado migração de código inativo pode complicar
desnecessariamente Entenda a dependência. Os sistemas de mainframe geralmente têm dependências
complexas
entre programas, scripts e mapeamento dessas
dependências
ajudará a evitar a interrupção do
sistema durante a migração Avalie o controle de
versão atual. Se você estiver usando ferramentas como
Endeavor ou Change Man, avalie como o código está sendo rastreado
atualmente A migração para o Gib
proporcionará mais flexibilidade
, essencial para saber quais recursos e processos você está substituindo.
Vamos dar um exemplo. Em uma empresa de logística, o sistema COBOL
responsável pelo gerenciamento de remessas foi expandido ao longo dos anos com vários scripts e A equipe de desenvolvimento começa
identificando quais partes do sistema são
mantidas ativamente e
quais estão desatualizadas, garantindo que somente o
código relevante seja migrado para o GID Segundo passo, organize seu código em estruturas compatíveis com o Git Às vezes, o código do mainframe pode ser estruturado de maneiras que não se alinham à natureza distribuída do
Git Veja como
organizá-lo de forma eficaz. Crie repositórios modulares. Em vez de colocar todo o seu código em um enorme repositório Git, divida-o em módulos menores e
mais gerenciáveis Cada módulo deve representar uma seção lógica do sistema,
por exemplo, faturamento,
gerenciamento de clientes e relatórios Use ramificações para migração de
fase. Comece migrando apenas
uma parte do seu código, especialmente se a base do
código for grande Crie branches e git para gerenciar diferentes fases
da migração, permitindo que você
trabalhe de forma incremental sem interromper
seus Mapeie arquivos e pastas para o Git. Certifique-se de que os arquivos
do mainframe sejam traduzidos
corretamente em
formatos que o Git Por exemplo, converter
Epsidc em
ASCE, se necessário . Vamos
dar um exemplo. sistema de
folha de pagamento de uma agência governamental é dividido em vários módulos, cálculos de
impostos, processamento de
benefícios
e registros de funcionários Em vez de migrar
tudo de uma vez, eles o dividem em
repositórios para cada módulo, começando com cálculos de impostos, que são os mais
ativamente mantidos Etapa três, executou
a migração. Com seu código organizado, é hora de começar
a migração. Veja como fazer
isso passo a passo. Primeiro, inicialize
o repositório Git. No diretório em que seu código de
mainframe reside, inicialize o Em segundo lugar, prepare o código. Adicione todos os
arquivos relevantes ao Git. Em terceiro lugar, confirme o código. Confirme a
versão inicial do código. Ou configure repositórios remotos. Conecte seu repositório local a um servidor Git remoto,
como o GitHub ou o GitLab. Vamos dar um exemplo.
Uma empresa de varejo migra seu sistema CBO
de gerenciamento de inventário para Depois de inicializar
o repositório, eles começam preparando apenas
os principais programas de processamento, adicionando
gradualmente componentes
adicionais, adicionando
gradualmente componentes
adicionais como relatórios Essa abordagem em fases permite que eles testem o
sucesso da migração em cada etapa. Etapa quatro, manutenção da
integridade do código durante a migração. Manter a integridade do seu código durante a
migração é fundamental Veja como garantir que
tudo permaneça intacto. Use casos de teste. Antes e depois da migração,
execute vários casos de teste para garantir que o código
se comporte conforme Suítes de testes automatizados podem
ajudar a detectar qualquer problema mais cedo. Execute migrações incrementais. Em vez de migrar
toda a base de código de uma só vez, migre pequenos
pedaços e valide
cada migração antes de
passar para a Inicie um processo de backup. Sempre faça backup
do código existente e garanta que você possa restaurá-lo se algo der errado durante a migração. Vamos dar um exemplo. Durante a migração
do sistema de
processamento da Previdência Social de uma
agência do setor público , os desenvolvedores usam casos de
teste automatizados para comparar o desempenho e
a saída do código de pré-migração e
pós-migração. Isso garante que nenhuma
funcionalidade seja perdida e que a transição para obter
não introduza novos bugs. Dicas para um processo de
migração tranquilo. Comunique-se com sua equipe. Mantenha todos informados sobre o plano de migração
e seu progresso. Uma comunicação clara
garante que o desenvolvimento não seja interrompido e que
os problemas sejam identificados precocemente Execute sistemas paralelos. Inicialmente, execute seu sistema de
controle de versão antigo, por exemplo, endeavor e o Git em paralelo para garantir que nada
seja perdido Isso também ajuda a equipe a se familiarizar com o Git enquanto o sistema antigo
ainda está disponível Treine a equipe no Git. Forneça sessões de treinamento ou recursos para ajudar sua equipe a fazer a transição
para o Git de forma eficaz Compreender os recursos de
ramificação, fusão
e histórico de confirmações do Git permitirá uma colaboração mais suave Por exemplo, migrar
um grande sistema COBOL. Uma
empresa de serviços financeiros começa a migrar seu sistema de
processamento de transações baseado em CBO para Eles começam com os módulos principais, movendo o código de
forma incremental e usando casos de teste
automatizados para garantir que a funcionalidade permaneça
intacta após Principais conclusões desta lição. migração do código legado para Git permite melhor
colaboração, histórico de
versões e integração
com ferramentas CICD modernas Organize seu código em repositórios
gerenciáveis e use ramificações para migrar de
forma incremental, garantindo o mínimo de interrupção Mantenha a integridade do código
testando minuciosamente antes e depois da migração
e fazendo backup do Atividade de ganho.
Escolha uma pequena seção da sua
base de código de mainframe para migrar para o Organize o código em uma estrutura compatível com o Git
e inicialize um repositório Organize, confirme e envie o
código para um servidor Git remoto,
por exemplo, Git Hub ou GitLab Compare a funcionalidade de pré e
pós-migração usando casos de teste para garantir que nada seja
perdido durante o processo. Reflita sobre como o Git
melhora sua capacidade de
decifrar mudanças e
colaborar entre equipes O que vem a seguir? No próximo módulo, começaremos a automatizar as compilações de
mainframe Você aprenderá o que é automação de
compilação, por que ela é essencial para modernizar o
desenvolvimento de mainframe e como as construções
automatizadas diferem dos processos
manuais em
10. Aula 1: visão geral da automação de construção: Bem-vindo ao Módulo três,
automatizando as construções de mainframe. Neste módulo, exploraremos como a automação de construção pode simplificar seus processos de
desenvolvimento, reduzir erros e acelerar entrega de
software em ambientes de
mainframe Você aprenderá a configurar compilações
automatizadas e
integrá-las aos seus sistemas existentes Lição 1, visão geral
da automação de construção. Bem-vindo à primeira lição
do Módulo três. Nesta lição,
abordaremos os conceitos básicos da automação de
compilação, o que é, por
que ela é
fundamental para modernizar o desenvolvimento de
mainframe e como
ela difere dos processos manuais
de Ao final desta lição, você entenderá
como as construções automatizadas
simplificam os fluxos de trabalho de desenvolvimento, reduzem os erros humanos e aceleram a entrega
de software de alta qualidade Essa é uma parte fundamental
da integração dos princípios de
DevOps em seu ambiente de
mainframe Vamos mergulhar. O que
é automação de construção? Vamos começar com uma definição
simples. automação de compilação é o processo de compilar e
empacotar automaticamente o código do seu aplicativo sem a necessidade de intervenção
manual Em ambientes de mainframe, isso significa
compilar automaticamente OBL, PL one, CL e outros componentes em um pacote completo pronto
para teste Com
compilações automatizadas, quando o código é comprometido com o sistema de
controle de versão, como o Git, o processo de criação é
acionado Ferramentas como Jenkins ou
IBM urban code build podem automatizar tudo,
desde a compilação até o teste e a implantação Componentes de um processo de construção. processo de construção automatizado típico inclui um código-fonte
de compilação Isso é converter o código-fonte
em binários executáveis. Dois, executando testes, executando
automaticamente unidade e testes de integração para garantir que o código
se comporte conforme Três, criar artefatos de construção, empacotar o código do aplicativo
em um formato implantável Quatro, implantação,
que é opcional. Em alguns fluxos de trabalho, as compilações
automatizadas também incluem a implantação do código em
um ambiente de teste ou produção Vamos dar um exemplo. uma grande instituição bancária com um sistema baseado em CBL para
gerenciar contas de clientes Toda vez que um novo
recurso é adicionado, o código deve ser compilado,
testado e empacotado Sem automação, um desenvolvedor teria que fazer isso
manualmente para cada alteração, que pode ser
demorado e propenso a erros. Com um processo de criação automatizado, toda vez que um desenvolvedor
confirma o código, o sistema o compila
, executa um teste e o empacota automaticamente, acelerando
significativamente Por que a
automação de construção é importante? A automação integrada é importante porque traz
vários benefícios importantes, ambientes de
mainframe, que tradicionalmente
dependem de processos manuais Vamos explorar esses
benefícios em detalhes. O primeiro é a consistência
e a confiabilidade. Os processos de construção manual estão sujeitos a erros humanos. Mesmo um pequeno erro
nas etapas de compilação ou empacotamento pode levar a
bugs ou atrasos na implantação Ao automatizar o processo, você garante que cada compilação seja consistente e siga sempre as
mesmas etapas Exemplo de processo manual. Um desenvolvedor
compila manualmente o código, mas se esquece de incluir
a biblioteca necessária A compilação falha e o erro
só é descoberto mais tarde
na fase de teste. Exemplo de processo automatizado. O
processo de criação automatizado inclui todas as bibliotecas e
configurações necessárias para evitar que
esses problemas ocorram Ciclos de desenvolvimento mais rápidos. Em ambientes tradicionais de
mainframe, o processo de compilação e
teste
manual do código pode levar
horas ou até dias Com a automação de construção, você
pode reduzir drasticamente esses cronogramas, permitindo ciclos de desenvolvimento
mais rápidos Isso é especialmente importante
para equipes. Adaptar metodologias
ágeis ou DevOps para iteração
rápida e Exemplo de processo manual, um novo recurso é adicionado
ao sistema mainframe O desenvolvedor leva um dia
inteiro para compilar, empacotar e testar o código Exemplo de processo automatizado. O desenvolvedor confirma um
código e, em minutos, o processo de criação
é concluído e o código está pronto para
teste ou implantação Integração com pipelines CICD. A automação construída é
uma parte fundamental da integração contínua, entrega
contínua
ou dos pipelines do CICD Em um ambiente CICD, todas as alterações feitas no código automaticamente testadas e criadas, garantindo que os bugs sejam
detectados precocemente e implantações ocorram
com mais frequência e confiabilidade Exemplo de processo manual:
cada vez que uma alteração é feita, o desenvolvedor deve
executar testes manualmente, compilar o código e prepará-lo para implantação, que atrasa o pipeline de
entrega Exemplo de processo automatizado:
em um ambiente CICD, a compilação automatizada é acionada imediatamente
após o código confirmado, com testes em execução e implantação acontecendo em
uma fração do tempo Ou maior produtividade. Os desenvolvedores podem se concentrar em
escrever e melhorar código em vez de passar horas em tarefas repetitivas de criação Isso leva a uma
maior produtividade
e a uma melhor satisfação geral no
trabalho. Exemplo de processo manual os desenvolvedores passam uma parte
significativa do tempo compilando
e preparando
compilações em vez de se
concentrarem na
codificação e na solução de Exemplo de processo automatizado, os desenvolvedores passam
mais tempo codificando novos recursos e
corrigindo bugs enquanto o sistema de compilação lida com
as tarefas repetitivas Diferenças entre faturas manuais
e automatizadas em ambientes de mainframe. Vamos examinar
mais de perto como as construções manuais
diferem das faturas automatizadas
em ambientes de mainframe Para construções manuais,
é demorado. As faturas manuais podem levar horas, especialmente em grandes bases de código pois os desenvolvedores precisam compilar,
empacotar e testar
manualmente cada alteração A resposta aos erros. Erros humanos, como
esquecer uma biblioteca ou configurar incorretamente um parâmetro de
compilação são comuns São tarefas repetitivas. Os desenvolvedores devem repetir as
mesmas etapas repetidamente, o que pode se tornar entediante e não
é o melhor
uso de suas habilidades Para construções automatizadas,
é rápido e eficiente. As compilações automatizadas levam minutos ou até segundos, dependendo
do tamanho da base de código Isso leva a ciclos de
desenvolvimento mais rápidos e a lançamentos mais frequentes. É consistente.
A automação garante que cada construção seja feita
exatamente da mesma maneira, reduzindo erros e
melhorando a confiabilidade. É integrado ao Devos. As compilações automatizadas são uma parte fundamental das práticas modernas de Devos, permitindo
integração e entrega contínuas Vamos dar um exemplo.
Uma empresa de varejo usa um sistema baseado em paralelepípedos
para gerenciar o estoque Anteriormente, toda vez que um
novo código era adicionado, eram necessárias várias horas para compilar e testar
tudo manualmente Ao introduzir a
automação de compilação com
o Jenkins, o processo agora acontece
em questão de minutos, permitindo que a empresa implemente atualizações com mais frequência
e eficiência Principais conclusões desta lição. A automação de compilação elimina processos
manuais propensos a erros, fornecendo consistência e confiabilidade no ambiente de
mainframe As faturas automatizadas são mais rápidas
e eficientes, resultando em ciclos de
desenvolvimento mais curtos e maior produtividade. A integração com os pipelines do CICD garante que as mudanças sejam criadas, testadas e implantadas
automaticamente, permitindo As faturas manuais são mais lentas
e propensas a erros, enquanto as faturas automatizadas são essenciais para as equipes que
adotam as práticas de DevOps Atividade de aprendizagem.
Reserve um momento para refletir sobre seu processo de criação
atual em seu ambiente de mainframe. Quanto tempo é necessário para compilar
e testar
manualmente seu código Quais desafios você enfrenta
com seu processo atual? Exemplos, erros, atrasos,
tarefas repetitivas. Identifique uma área em automação de
construção possa reduzir
significativamente o tempo e o esforço e escreva um plano para automatizar
essa parte do processo O que vem a seguir? Na próxima lição, vamos começar configurar o Jenkins
para compilações automatizadas Você aprenderá a instalar
e configurar o Jenkins, criar trabalhos de construção e configurar pipelines
automatizados para seus aplicativos de
mainframe É aqui que você
verá o poder da automação em ação.
11. Aula 2: como configurar o Jenkins para compilações automatizadas: Lição dois, Configurando o
Jenkins para compilações automatizadas. Bem-vindo à lição
dois do módulo três. Nesta lição, adotaremos
uma abordagem prática para
configurar o Jenkins para a automação de construção de seu
mainframe Jenkins é uma das ferramentas mais
usadas em DevOps, conhecida por sua
flexibilidade e capacidade automatizar vários estágios
do pipeline de desenvolvimento Ao final desta lição, você saberá como instalar o
Jenkins e calculá-lo para sua
base de código de mainframe e criar trabalhos de
construção e pipelines
para Vamos começar. O que é
Jenkins e por que usá-lo? Jenkins é um servidor de automação de
código aberto que automatiza tarefas
relacionadas à criação, teste e implantação É um componente da
integração contínua slash
Continuous Delivery para pipelines CICD, pois
aciona automaticamente
testes de construção e implantações Para
ambientes de mainframe, o Jenkins pode ser configurado para lidar com
as necessidades exclusivas de COBOL,
PL one, JCL e Ao automatizar as compilações, Jenkins ajuda a eliminar erros
manuais, acelerar os ciclos de desenvolvimento e garantir a consistência
em toda Vamos dar um exemplo. Uma grande seguradora usa um sistema baseado em Cobble
para gerenciamento de apólices Sempre que um novo recurso é
adicionado ou um bug é corrigido, Jenkins
compila automaticamente o código Pobble, executa testes e empacota o
aplicativo Esse processo costumava levar
horas quando feito manualmente, mas o Jenkins agora
lida com isso em minutos. Primeiro passo, instalando o Jenkins. Vamos começar instalando o
Jenkins em seu sistema. Jenkins pode ser instalado
em um servidor Linux, Windows ou até mesmo diretamente em um ambiente OS Unix,
se houver suporte Neste exemplo, usaremos uma instalação
típica do Linux, mas os sps são semelhantes
para outras plataformas Instalação no Linux. Primeiro, instale o Java. Jenkins requer Java para ser executado, então você precisa instalá-lo primeiro Em seguida, adicione o repositório Jenkins. Adicione o repositório Jenkins
ao seu sistema. A terceira etapa é
instalar o Jenkins. Atualize seu índice de pacotes
e instale o Jenkins. Ou após a instalação,
você inicia o Jenkins. Depois de instalado, inicie o
Jenkins com esse comando. Por fim, acesse Jenkins. Abra um navegador e
navegue até a coluna 80 80 do host local HTTP sslash ou o endereço IP do seu serviço Você será solicitado a
desbloquear o Jenkins usando a senha de administrador
encontrada no arquivo
a seguir, a variável de barra invertida
pseudo-CAP, a barra
Live Jenkins slash SECRET slash Vamos dar um exemplo. Uma
empresa de serviços financeiros configura o Jenkins em um servidor Linux dedicado para gerenciar as contas de seus sistemas
Cobol e JCL Depois de instalado, o Jenkins
é configurado para criar e implantar
automaticamente as alterações em seus sistemas legados Etapa 2: configurar o Jenkins
para bases de código de mainframe. Agora que o Jenkins está instalado, vamos configurá-lo para funcionar com sua base de código de mainframe Isso envolve a instalação dos plug-ins
necessários, configuração de ambientes construídos e a configuração das integrações de
controle de origem Instale plug-ins. Jenkins tem um rico
ecossistema de plug-ins, muitos dos quais são essenciais
para a automação do mainframe Alguns plug-ins importantes que você
precisará incluem o
plug-in Git para integração
com repositórios Git Plugin de pipeline para definir pipelines de construção e implantação Plugin SSH, se você precisar usar SSH em seu ambiente de
mainframe para acionar compilações Para fazer isso, acesse Gerenciar Jenkin e, em
seguida, vá para gerenciar plug-ins Nos plug-ins disponíveis, pesquise e instale o plug-in Git, o plug-in Pipeline
e o plug-in SSH. Configurando o controle da fonte. Jenkins precisa extrair o código de
seus sistemas de controle de versão
, como Git ou Endeavor Primeiro, vá para o novo item para
criar um novo projeto. Segundo, escolha um projeto
ou pipeline de estilo livre ,
dependendo de suas necessidades Três, em Gerenciamento de
código-fonte, selecione Git e insira a URL do
seu repositório Exemplo do mundo real. Uma companhia aérea está trabalhando em um sistema de
reservas baseado em paralelepípedos Eles usam o Git para rastrear
alterações e o Jenkins extrai o código mais recente
do repositório Git sempre que um Isso garante que
cada novo recurso ou correção de bug seja
criado e testado automaticamente Etapa três, configurar trabalhos de construção para aplicativos de
mainframe Agora que o Jenkins está configurado, vamos criar um trabalho de construção para
seu aplicativo de mainframe Um Biljob define como seu código será compilado,
testado e empacotado Para ambientes de mainframe,
isso normalmente envolve invocar
compiladores cobble Criando um trabalho de construção de estilo livre. Primeiro, no painel do Jenkins, clique em Novo item e selecione Projeto
Freestyle Segundo, nomeie o projeto, por exemplo, Cobol Dash
Build e clique em OK Três, em Criar acionadores, você pode optar por
acionar a compilação automaticamente após cada confirmação usando Paul SEM ou de forma
programada Definindo as etapas de construção. Em seguida, você definirá como o Jenkins deve criar
seu código de mainframe Em compilação, clique em Adicionar etapa de
compilação e selecione Executar Shell no Linux ou Executar o
comando Windows Batch no Windows. Adicione os comandos shell
ou batch necessários para invocar seus
compiladores de mainframe ou executar Em terceiro lugar, você também pode definir etapas de teste adicionando outras etapas de construção para executar o teste
automatizado, se disponível. Eric é um exemplo de um comando de compartilhamento para
compilar o programa PBL Armazenamento de artefatos de construção. Depois que a compilação estiver concluída, talvez
você queira armazenar a
saída, os executáveis ou os registros Na ação de pós-criação, selecione arquivar os artefatos e especifique quais
arquivos arquivar Por exemplo, ponto de asterisco Ex, registro de pontos asterisco.
Vamos dar um exemplo. Uma empresa de saúde automatiza a construção do sistema de cobrança de
cobalto. Jenkins, uma vez que o
compilador Cobalt, gera executáveis e armazena Isso reduz o processo
de criação de horas para minutos. Etapa quatro, configurando pipelines
Jenkins para compilações de
mainframe Se seu processo de criação
envolve vários estágios, como compilação, teste
e implantação, você pode usar um pipeline Jenkins para
automatizar todo o fluxo Ao criar um
trabalho de pipeline no Jenkins, clique em novo item e
selecione pipeline, nomeie o projeto, por exemplo, mainframe dash Pipeline
e Definindo o script do pipeline. pipelines Jenkins
são definidos usando um arquivo Jenkins que descreve cada etapa do
seu processo de criação Aqui está um exemplo de um script de pipeline do
Jenkins. Esse script define
três estágios. Compile, teste e implante. Jenkins executará
automaticamente cada estágio em sequência Principais conclusões desta lição. Jenkins é uma ferramenta poderosa
para automatizar compilações,
testes e implantações, especialmente em ambientes Devos. O Jenkins é uma ferramenta poderosa
para automatizar compilações,
testes e implantações, especialmente em ambientes Devos. Instalar e configurar o
Jenkins para trabalhar com bases de código de
mainframe
envolve a configuração de plug-ins, integração do controle de origem
e a definição de trabalhos de construção Os pipelines Jenkins permitem que você automatize processos de
construção em vários estágios, melhorando a eficiência e consistência Atividade de aprendizagem. Configure o Jenkins em um servidor local
ou remoto Configure um trabalho de construção para um de seus
aplicativos de mainframe Defina um pipeline simples
com pelo menos dois estágios, por exemplo, compilação e teste Reflita sobre como a automação
desse processo melhora a velocidade e reduz os erros em comparação com o processo manual atual O que vem a seguir? Na próxima lição, vamos nos aprofundar na automação do processo de compilação
e vinculação Você aprenderá a
criar scripts de compilação para linguagens de
mainframe,
como ba, e automatizar
a compilação e a vinculação de programas de
mainframe usando ferramentas de programas de
mainframe usando compilação
12. Aula 3: automatizando a compilação e o processo de ligação: Lição três, automatizando o processo de compilação e
vinculação Bem-vindo à lição
três do módulo três. Nesta lição, abordaremos a
automatização processo
de compilação e
vinculação do processo
de compilação e
vinculação para programas de mainframe. Se você estiver
compilando e vinculando programas
Kobal ou PLO manualmente, sabe como isso
pode ser repetitivo e
demorado Automatizar esse processo pode
economizar horas de trabalho, reduzir o erro humano e tornar seu pipeline de construção
muito mais eficiente Analisaremos a criação de scripts de
construção para linguagens de
mainframe como o
CoBal. Mostrarei como automatizar essas etapas
usando ferramentas de construção que podem se integrar perfeitamente ao
Jenkins ou ferramentas de CI Por que automatizar um processo de compilação
e vinculação? processo de compilação e vinculação em mainframes
envolve a tradução seu código de linguagem de alto nível, como Cobol ou
PL one, em
código PL one Para sistemas grandes, isso
geralmente requer compilar vários arquivos de origem e vinculá-los a um executável
final Veja por que a automação
é essencial. Primeiro, economia de tempo. Compilar e vincular
centenas ou milhares de arquivos manualmente é
ineficiente e A automação pode
reduzir significativamente os prazos de cobrança. Dois, consistência. processos automatizados garantem que as faturas sejam sempre executadas da
mesma forma, eliminando a variação
entre as faturas causada por erro humano. Terceiro, reduza os erros.
As faturas manuais geralmente podem levar a erros, como
manter arquivos ou configurar
incorretamente as opções de tempo de
compilação Os scripts automatizados garantem
que nada seja esquecido. Vamos dar um exemplo. um banco que gerencia seu sistema de contas de
clientes em Anteriormente, um banco que gerencia seu sistema de contas de
clientes em
Cobo estava executando compilação
manual
de seus programas Isso geralmente causava a perda dependências ou módulos
vinculados incorretamente Ao automatizar o processo
e reduzir os erros faturados em 80%, reduza os prazos de cobrança pela metade Primeiro passo, escrevendo scripts de
construção para CBO. Vamos começar
analisando como criar um script de construção para compilar
e vincular programas CBO As etapas para compilar programas
CBO são simples, mas podem se complexas ao lidar
com Automatizaremos o processo com um script de shell simples que pode ser executado manualmente ou acionado
por uma ferramenta como champins Compilação básica de Coval Man. Para compilar um
programa COBOL no mainframe, você normalmente usa um
comando como Aqui está o que ele faz. X diz ao compilador para
criar um executável O programa principal CBL é
o arquivo fonte do CBL. O principal programa de sublinhado que EXE especifica
o arquivo de saída, que é o executável final Agora, se você tiver
vários arquivos de origem, precisará
compilá-los juntos ou compilá-los separadamente
e vinculá-los Vamos dividir isso em etapas. Escrevendo um script de construção. Para automatizar esse processo, vamos criar um script de shell,
criar um DHS que gerencie a compilação e a vinculação
de Este é um exemplo de
script para compilar e vincular vários programas
CBO Primeiro, definimos o
arquivo de origem e os arquivos de saída. O script examina cada código-fonte, o compila e verifica
se há erros Depois de compilados, os arquivos de
objeto que Os são vinculados
ao executável final Após a vinculação, o script limpa os arquivos
de objetos temporários
para manter o diretor Vamos dar um exemplo.
Uma empresa de logística com um
sistema CBL legado automatiza a compilação de
vários módulos,
como processamento de pedidos, CBL e inventário, esse CBL Usando um script como
o descrito acima, Jenkins
compila e vincula automaticamente o programa COBOL toda vez que um desenvolvedor envia
um novo Etapa 2: automatizar
o processo de vinculação. Em ambientes de mainframe, o processo de vinculação
envolve a combinação várias pilhas de objetos
e arquivos dot O em um único executável que
pode ser executado Essa etapa é fundamental, especialmente ao lidar com sistemas
grandes em que
muitos módulos interagem. Comando básico de vinculação. Para vincular vários programas de CPO, você usa algo semelhante
ao mostrado acima Isso combina
arquivos de objetos compilados em um executável. Automatizando a vinculação
com ferramentas de construção. Se seu aplicativo incluir muitos arquivos de objetos
ou dependências, é melhor automatizar
essa etapa para evitar arquivos
perdidos ou configurações
incorretas Você pode estender o script de construção
anterior para lidar com sistemas maiores, garantindo que cada módulo
esteja vinculado corretamente. Você também pode integrar
seu script de construção ao Jenkins ou a outra ferramenta de CI acionar a compilação
automaticamente após cada alteração na
base de código. Vamos dar um exemplo. Uma empresa de varejo gerencia
seu sistema de cobrança com COBOL e ele é composto por várias dezenas
de módulos O
script de construção automatizado não apenas compila
os programas individuais, mas
os vincula ao executável final do sistema
de cobrança Isso garante que nenhuma etapa seja ignorada e que a construção
esteja sempre concluída Etapa três, integração
com o Jenkins. Agora que temos um script que compila e vincula
nosso código de mainframe, vamos integrá-lo ao Jenkins Jenkins lidará com o
acionamento do script
e o gerenciamento automático do processo de construção Configurando um trabalho no Jenkins. Primeiro, crie um novo projeto de
freestyle. No painel do Jenkins, clique em Novo item e crie
um projeto de estilo livre nome ao projeto. Por exemplo, automação
OBLs Bilas Segundo, configure o gerenciamento
do código-fonte. Em gerenciamento de código-fonte, conecte o Jenkins ao
seu repositório Git ou outro sistema SEM em que
o código CBL esteja armazenado. Três, adicione a etapa de construção. Na seção de compilação,
adicione a etapa de execução, execute a etapa Shell no Linux ou execute o
comando em lote do Windows no Windows. Adicione o caminho ao seu script
build dot SH. Quatro, acione a construção. Em gatilhos de compilação, você pode definir o champin para
acionar a compilação toda
vez que o código for confirmado
usando todo o SEM ou Práticas recomendadas para automatizar a
compilação e a vinculação de mainframes Modularize sua fatura. Divida seu código em módulos
menores que podem ser compilados
e testados separadamente. Isso reduz o risco de falha durante o estágio de
vinculação Execute o teste automaticamente. Adicione uma etapa de teste ao
seu script de construção. Depois de compilar e vincular, o script deve acionar um
conjunto de testes para validar a Tratamento de erros, sempre manipule erros em seus scripts de construção. Se uma compilação falhar, o script deve parar
e relatar a falha, impedindo que compilações quebradas sejam
implantadas Principais conclusões desta lição. Automatizar o processo de compilação e vinculação economiza tempo, reduz erros e garante consistência Scripts de construção podem ser criados para compilar e vincular
vários programas CDL, simplificando o A integração da
automação de compilação com o Jenkins ou outras ferramentas de CI ajuda a acionar
compilações automaticamente, permitindo um processo de desenvolvimento mais
tranquilo tratamento e o teste de erros são componentes
essenciais de qualquer script de construção
automatizado, garantindo que
os problemas sejam detectados precocemente. Atividade de aprendizagem. Crie
um script de construção simples para compilar e vincular um dos
seus programas cobalt ou PL Integre o script
ao Jenkins e configure um trabalho que é acionado
automaticamente após cada Teste o processo fazendo uma pequena alteração na base
do código e observe o processo de criação e
vinculação ser executado do início ao fim O que vem a seguir? Na próxima lição, abordaremos como integrar a automação
de
construção aos pipelines do CICD Você aprenderá como
incorporar suas faturas automatizadas em todo
o pipeline do CICD, como lidar com problemas comuns
durante a automação e as
melhores práticas para gerenciar suas contas em um ambiente
Tavo
13. Aula 4: como integrar a automação de compilação em pipelines de CI/CD: Lição quatro, integrando a automação de construção aos
pipelines do CICD. Bem-vindo à lição
quatro do módulo três. Nesta lição,
vamos explorar como
integrar seus processos de criação automatizados em um pipeline
CICD completo, integração
contínua de integração
contínua e entrega contínua Se você já automatizou o processo de compilação e
vinculação, está no meio do caminho para criar
um pipeline
Devo eficiente para um pipeline
Devo eficiente Mas como você encaixa
essas construções automatizadas em um pipeline de CICD Como você lida com os
desafios que surgem? Ao final desta lição, você entenderá
como as compilações automatizadas se encaixam no
contexto mais amplo de um pipeline CICD, como configurar esse pipeline para ambientes de mainframe e como solucionar problemas
comuns O que é um pipeline CICD? Vamos começar com uma definição
simples. CICD significa integração
contínua e entrega
ou implantação contínuas Um pipeline CICD é um
conjunto de etapas automatizadas, realiza alterações no código, as
cria, executa testes e as implanta No contexto de ambientes de
mainframe, isso significa que seu código cobot, DL one ou JCL
passa por um pipeline contínuo,
do desenvolvimento ao teste e à
produção, sem do desenvolvimento ao teste e à produção Os componentes de
uma tubulação CICD,
uma tubulação CICD típica,
têm os seguintes estágios Primeiro, a integração do
controle de origem. O pipeline começa
quando um desenvolvedor envia o código para um sistema de controle de
versão Por exemplo, dê. Em segundo lugar, construa. O estágio de construção
compila o código, gera executáveis e executa testes
automatizados, como testes unitários
e de integração Em terceiro lugar, testes e testes
automatizados garantem que a compilação seja estável e que nenhum novo
bug seja introduzido. Quarto, implantação. O aplicativo é implantado em um ambiente de preparação ou
produção depois de passar por todos os testes Exemplo do mundo real, uma
seguradora com um sistema de
processamento de sinistros baseado em CBL integra a construção e os testes
automatizados
ao pipeline da Jenkins Cada vez que um desenvolvedor
faz uma alteração no código, Jenkins compila o código COBOL,
executa testes e, se
tudo for aprovado, implanta o sistema atualizado Mas incorporando faturas
automatizadas no pipeline de CI Agora que você automatizou a compilação e a vinculação
do seu código de mainframe, é hora de incorporar
essas etapas ao pipeline
mais amplo de CI Como configurar o gasoduto. Primeiro, descubra o pipeline
com controle de origem. Toda vez que um desenvolvedor
faz uma alteração para obter outro sistema de controle de
versão, isso aciona o pipeline de CI
automaticamente Jenkins ou outra ferramenta de CI buscará as alterações
mais recentes e iniciará o processo de criação
. Estágio de construção. A primeira etapa do
pipeline é a fase de construção. É aqui que o script
de compilação e vinculação que discutimos
na lição anterior
será executado Se a construção for bem-sucedida, o pipeline passa para o próximo estágio, estágio de teste
automatizado Depois de criar o aplicativo, a próxima etapa
do pipeline de CI é executar testes automatizados, integração de
unidades e outros. Para aplicativos de mainframe, isso pode envolver a
execução de trabalhos de teste no mainframe ou
o uso de
simuladores ou testes Ou estágio de implantação. Depois que os testes forem aprovados, o código estará pronto para ser implantado ambiente de teste ou
produção Scripts de implantação automatizados, como enviar os arquivos executáveis para o ambiente
apropriado, por exemplo, teste
ou sistema ativo Vamos dar um exemplo. Um banco integra seu sistema principal de processamento de
transações
em um pipeline do CICD. Cada vez que um desenvolvedor
faz uma alteração, o pipeline compila
os programas COVA, executa uma série de testes e implanta automaticamente o código atualizado em
um ambiente de teste Isso ajuda o banco a detectar problemas cedo e fornecer
atualizações mais rapidamente. Problemas comuns e
solução de problemas durante a automação de compilação. Automatizar
construções de mainframe em um pipeline de CICD pode ser complexo, e há vários problemas comuns
que você Vamos analisar alguns desses problemas e como resolvê-los. Um, falhas de compilação devido
à falta de dependências. Um problema comum
são as falhas de compilação causadas pela falta de
bibliotecas ou dependências Em um ambiente de mainframe, especialmente um com
muitos módulos legados, as dependências entre
programas podem ser complexas Solução: garanta que
todas as dependências estejam claramente definidas em seu script de
construção e controle de
versão Você também pode automatizar a resolução de
dependências criando script para a configuração do seu
ambiente antes da Dois, longos tempos de construção. Os programas de mainframe
geralmente consistem em vários módulos e
contas altas podem levar muito tempo longos tempos de construção diminuem o ciclo de feedback em
um pipeline CIC oito Solução, considere dividir seu processo de construção em construções modulares
menores. Em vez de compilar
tudo de uma vez, compile somente os módulos
que foram alterados Use compilações incrementais
para acelerar o processo. Três, testando gargalos. execução de testes em um ambiente de
mainframe pode consumir
muitos recursos e ser lenta Se os testes não forem otimizados, eles podem se tornar um gargalo
no pipeline. Solução. Paralelize os testes
de compartilhamento sempre que possível. Você pode dividir seu conjunto de testes em partes menores e executá-las em diferentes ambientes
em que os diferentes ambientes
em que simuladores aceleram Ou problemas de implantação. Às vezes, as implantações de mainframe
podem falhar devido a incompatibilidades de
ambiente, problemas de
permissão ou outros Solução: automatize o máximo possível
do
processo de implantação Use ferramentas
de gerenciamento de configuração para garantir que todos os ambientes, desenvolvimento, testes e produção sejam
configurados de forma consistente. Melhores práticas para integrar construções em pipelines do CICD Primeiro, mantenha o pipeline simples. Comece com um simples
pipeline de CICD, integre, crie primeiro a automação e adicione
gradualmente os estágios de teste
e implantação Segundo, use construções modulares. Se você estiver lidando com
grandes sistemas de mainframe, divida seu código
em módulos menores e crie-os separadamente
para melhorar a eficiência Três, testes automatizados. O teste automatizado é
fundamental para resolver problemas no
início do processo. Certifique-se de integrar testes de unidade,
testes de integração
e, possivelmente, testes de regressão
ou monitorar o pipeline Fique de olho no desempenho do
pipeline. Se as contas estiverem
demorando muito ou os testes
falharem com frequência, analise os comprimentos das garrafas
e otimize o processo Principais conclusões desta lição. A integração da
automação de compilação em um pipeline do CICD simplifica o processo desde a
confirmação do código até a implantação, garantindo lançamentos mais rápidos
e atualizações mais confiáveis Dois problemas comuns durante a automação de
compilação incluem dependências
ausentes, longos tempos de compilação, gargalos de
teste e falhas de implantação, que podem
ser resolvidos com cuidadosos Em terceiro lugar, os pipelines CICD para mainframes devem ser projetados
com construções modulares, testes
automatizados e scripts de implantação
eficientes para Atividade de aprendizagem. Pegue seu script de construção
automatizado existente e
integre-o a um pipeline CICD usando Jenkins ou
outra ferramenta de CI Configure o pipeline para ser
acionado em cada confirmação de código e
configure-o para
criar e testar automaticamente o aplicativo. Identifique um
possível gargalo em seu
pipeline atual, por exemplo, tempos de construção
lentos ou testes
demorados e pense em
maneiras O que vem a seguir? No próximo módulo, vamos nos concentrar na implementação testes
automatizados
para mainframes O teste é um componente essencial
de qualquer pipeline do CICD, garantindo que as alterações no código não introduzam novos
bugs ou erros Você aprende sobre a importância
dos testes automatizados, os diferentes tipos de teste, integração de
unidades, regressão e como
implementá-los em um ambiente de
mainframe
14. Aula 1: a importância dos testes automatizados: Bem-vindo ao módulo quatro, Implementação de
testes automatizados para mainframes Neste módulo,
exploraremos o valor dos testes automatizados para aplicativos de
mainframe Você aprenderá como
configurar testes automatizados, integrá-los ao
seu pipeline de DevOp e garantir que seus aplicativos mantenham alta qualidade
e estabilidade Primeira lição: a importância
dos testes automatizados. Bem-vindo à primeira
lição do módulo quatro. Nesta lição,
vamos explorar o papel fundamental dos testes
automatizados na modernização dos ambientes de
mainframe O teste automatizado é fundamental para garantir a qualidade e
a estabilidade de
seus aplicativos de mainframe, especialmente em fluxos de trabalho de DevOps em
ritmo acelerado onde ocorrem alterações frequentes Ao final desta lição, você entenderá os benefícios
dos testes automatizados, tipos de testes mais relevantes
para sistemas de mainframe e por que
implementá-los pode
melhorar muito seus processos de desenvolvimento
e implantação Vamos mergulhar. E o que são testes automatizados e
por que eles são importantes? teste automatizado é o processo de usar ferramentas de software para executar testes predefinidos no código do aplicativo
sem intervenção manual Esses testes podem validar tudo, desde funções
simples até interações
complexas em seu sistema Para ambientes de mainframe em aplicativos geralmente executam processos
essenciais, os testes
automatizados garantem que seus sistemas permaneçam
estáveis e livres de erros, mesmo quando você introduz novos
recursos, atualizações ou patches Os benefícios dos testes
automatizados. Um, maior cobertura de testes. Testes automatizados e um
a mais casos de teste, garantindo que mais partes
do código sejam testadas,
incluindo casos extremos, que
possam passar despercebidos nos testes manuais. Dois, feedback mais rápido. Os testes automatizados fornecem
feedback imediato sobre as alterações no código, reduzindo o tempo necessário
para identificar bugs ou erros. Três, consistente e confiável. Diferentemente dos testes manuais, os testes
automatizados são executados sempre da mesma forma, reduzindo o risco de erro humano e garantindo resultados consistentes. Para melhorar a qualidade do código. Ao
integrar testes automatizados em seu pipeline de CICD, você pode detectar problemas
antes que eles cheguem à produção, resultando em um software mais estável
e confiável Vamos dar um exemplo. Uma grande empresa de varejo usa sistemas baseados em
paralelepípedos para gerenciar seu estoque
e faturamento Ao implementar testes automatizados, eles podem validar toda
a base de código sempre que um novo
recurso é introduzido, garantindo que a
funcionalidade existente permaneça intacta Isso permitiu que eles reduzissem o número de bugs
introduzidos na produção e melhorassem a estabilidade do sistema. Tipos de testes automatizados
em ambientes de mainframe. No contexto de mainframes, existem três
tipos principais de testes que são
particularmente relevantes: testes exclusivos, testes integração
e testes de regressão Cada um desses testes serve uma finalidade específica e fornece valor
exclusivo para
garantir a qualidade do código. Testes únicos. teste unitário se concentra em testar componentes ou
módulos
individuais do seu aplicativo. Essas são as menores unidades de teste projetadas para validar o comportamento de uma
função, método ou classe específica Por que eles são importantes para mainframes? Em sistemas de mainframe, os programas CBL ou PL one geralmente são construídos
em muitos módulos pequenos Os testes unitários garantem que
esses módulos funcionem conforme esperado antes de
serem
integrados ao sistema maior. Por exemplo, você pode escrever um teste unitário para garantir
que a sub-rotina CBL, responsável pelo cálculo
dos descontos
para clientes Teste de integração.
O teste de integração se concentra em testar como
diferentes módulos ou componentes do seu
sistema funcionam juntos. Eles garantem que, uma vez combinados os
módulos individuais, eles interajam adequadamente e
produzam os resultados esperados. Por que eles são importantes para os mainframes. Os sistemas de mainframe geralmente envolvem interações
complexas entre vários programas e bancos teste de integração garante
que os dados fluam corretamente entre os sistemas e que diferentes componentes
possam trabalhar juntos. Um exemplo, um teste de integração para garantir que a
interação entre um módulo CBL e um banco de dados
DB two esteja funcionando conforme o esperado ao processar transações de
clientes Teste de regressão.
Os testes de regressão são projetados para verificar se o código
crescente mudou, não introduziram novos bugs ou quebraram a funcionalidade existente Esses testes são cruciais
para manter a estabilidade à medida que novos recursos são adicionados ou atualizações são feitas
em seu sistema. Por que eles são importantes para os mainframes. Os sistemas de mainframe antigos
geralmente são altamente
sensíveis às mudanças Os testes de regressão garantem
que o novo código não interrompa inadvertidamente Por exemplo, depois de implementar um novo recurso em seu sistema de processamento de
folha de pagamento, testes de
regressão
validariam se os cálculos
principais
da folha de pagamento ainda funcionam corretamente Um exemplo, uma
instituição financeira que administra um sistema de
gerenciamento de empréstimos baseado em dobro implementa testes de integração
e regressão de unidades Esses testes automatizados garantem que os cálculos de juros de empréstimos testes
unitários funcionem conforme o esperado, que se integrem
corretamente ao teste de
integração do sistema contábil
e que
funções anteriores, como processamento de dados de
clientes, não tenham sido afetadas pelos testes de regressão Por que os testes automatizados são
essenciais para o DevOps de mainframe. Nas práticas de DevOps, nas quais código é frequentemente
alterado, testado
e implantado, o teste automatizado é a base para manter a qualidade do Em ambientes tradicionais de
mainframe, o
teste geralmente
é um processo manual, que pode ser lento, inconsistente e propenso a erros humanos Mas com os princípios do DevOps, os testes
automatizados
permitem que as equipes testem
continuamente o código
a cada alteração, criando um pipeline de
desenvolvimento estável e confiável Como os testes automatizados melhoram o
desenvolvimento em mainframes. Uma integração contínua. Teste automatizado executado
assim que o código é confirmado, garantindo que todos os problemas
sejam detectados precocemente. Dois, entrega contínua. Testes automatizados confirmam que o
código está pronto para produção, permitindo que as equipes implementem
mudanças com mais rapidez e confiança Três, redução de risco. Os testes de regressão automatizados ajudam a reduzir o risco de implantação de novos recursos de atualizações,
garantindo que o
código existente permaneça estável Aqui está um exemplo. Um banco que usa um sistema baseado em hobble para processar transações
adota práticas de DevOps. Ao integrar
testes automatizados em seu pipeline de CI, eles podem garantir que
quaisquer novas atualizações seu sistema de
processamento de transações não introduzam bugs que possam
atrapalhar seus negócios. Principais conclusões desta lição. Os testes automatizados são essenciais
para garantir a qualidade e a estabilidade dos aplicativos de
mainframe em um ambiente DevOps dos testes unitários, testes de integração Cada um dos testes unitários, testes de integração
e testes de regressão tem
propósitos exclusivos
e, juntos, fornecem uma cobertura abrangente de testes
para sistemas de mainframe Os testes automatizados permitem
um feedback mais rápido, maior cobertura do teste e maior consistência
em comparação com os testes manuais. Atividade de ganho.
Identifique um pequeno módulo ou sub-rotina em um de seus aplicativos de
mainframe,
por exemplo, COBOL ou PL one, que poderia se beneficiar de Escreva um teste unitário para validar
o comportamento desse módulo. Reflita sobre como os testes automatizados podem melhorar a estabilidade de seus aplicativos de mainframe à medida que você implementa mudanças futuras O que vem a seguir? Na próxima lição, exploraremos a configuração testes unitários
automatizados
para mainframes Abordaremos as
ferramentas e estruturas disponíveis para automatizar testes
unitários em ambientes de
mainframe e explicaremos como escrever
e Você aprenderá como começar a
aplicar
testes unitários automatizados em sua própria base de código de
mainframe
15. Aula 2: como configurar testes de unidade automatizados para Mainframes: Lição dois, configurando testes unitários
automatizados
para mainframes Bem-vindo à
segunda lição do módulo quatro. Nesta lição,
exploraremos como
configurar testes de unidade automatizados para
seus aplicativos de mainframe teste unitário é a base de qualquer estratégia de
teste eficaz, especialmente em ambientes complexos de
mainframe onde pequenas mudanças podem
ter impactos de longo alcance Ao automatizar o teste unitário, você garante que cada componente
do seu sistema funcione conforme o esperado e possa ser testado de
forma rápida e consistente Abordaremos as
ferramentas e estruturas usadas para testes unitários em ambientes de
mainframe, como escrever testes unitários
eficazes para aplicativos de mainframe e como executá-los como parte de seu pipeline de integração contínua Vamos começar. O que é teste
unitário em mainframes teste unitário se concentra em testar componentes ou
módulos
individuais do seu aplicativo, como uma única
sub-rotina de paralelepípedos ou procedimento PLO O objetivo do teste unitário é
garantir que cada parte
do aplicativo
funcione corretamente de forma isolada antes de ser integrada
a outros componentes. Em um ambiente de mainframe, teste
automatizado é fundamental
porque ajuda os desenvolvedores a validar
rapidamente
pequenas alterações e identificar bugs no início
do processo de desenvolvimento Quando integrados a um pipeline de testes
contínuos, os testes
unitários fornecem feedback
rápido e reduzem o risco de
erros chegarem à produção. Principais características
dos testes unitários. Isolated testa unidades individuais de código sem depender de
outras partes do sistema Repetível. Os testes podem ser executados várias vezes
com os mesmos resultados. Passe. Como os testes unitários têm como alvo pequenos trechos de
código, eles são executados rapidamente. Ferramentas e estruturas para automatizar
testes unitários em mainframes Para escrever e executar testes
unitários para aplicativos de
mainframe, você precisará de ferramentas e estruturas
projetadas para funcionar com linguagens de
mainframe como
Cobol, DLO Essas ferramentas
permitem
automatizar o processo de teste e integrá-lo aos
modernos pipelines do CICD. Um,
estrutura de teste unitário IBM Z ou unidade Z. Z Unit é a estrutura da IBM
para escrever e executar testes
unitários em ambientes de
mainframe que suporta Coball, PL one e assembler
e foi projetada para ser
totalmente integrada ao
IBM Developer for ZOS Ele permite que você
crie casos de teste para unidades
individuais do programa e execute esses testes
automaticamente. Características. Ele testa programas individuais em
COBOL ou PL One Ele automatiza a execução de testes como parte de um pipeline desenvolvido e gera
relatórios de teste para monitorar a cobertura
do código e as taxas de sucesso
ou falha Exemplo de caso de uso: um banco usa a unidade
Z para escrever e
executar testes unitários para um programa da CBL que calcula as taxas de juros do
empréstimo Cada vez que um desenvolvedor atualiza o algoritmo de
cálculo do empréstimo, os testes unitários são
executados automaticamente , garantindo que o programa
ainda funcione corretamente. Segundo, a integração do Jenkins
com o teste unitário do mainframe. Embora o Jenkins seja
conhecido principalmente como uma ferramenta de CI, ele pode se integrar a várias estruturas
de
teste de unidade para mainframes Jenkins pode
acionar automaticamente um teste de unidade após cada confirmação de código e exibir os resultados na interface do
Jenkins Características: ele
automatiza o processo de execução de testes unitários
após a confirmação do código. Ele se integra à unidade Z e a outras ferramentas de
teste de mainframe Ele fornece
feedback em tempo real aos desenvolvedores, incluindo resultados de testes e relatórios de cobertura de
código. Exemplo, caso de uso. Uma empresa de logística
tem um pipeline Jenkins configurado para acionar o teste unitário para seus aplicativos de mainframe Sempre que um
módulo de cobertura é atualizado, Jenkins executa um teste unitário e
relata imediatamente qualquer falha, permitindo que
a equipe de desenvolvimento resolva problemas rapidamente Três, corporativo de
microfoco desenvolvedor corporativo Microfocus
Enterprise fornece ferramentas para desenvolvimento de
mainframe, incluindo
recursos de teste de unidade para Essa ferramenta permite que você
execute testes unitários em aplicativos de
mainframe em um ambiente que
não seja de mainframe, como em uma plataforma
distribuída Possui, desenvolve e testa programas CBO em ambientes não
mainframe Ele automatiza os testes
com ferramentas integradas. Ele integra facilmente os
testes unitários em seu pipeline do CICD. Exemplo de caso de uso. Uma empresa de varejo usa o microfocus para desenvolver e testar seu sistema de cobrança baseado em
paralelepípedos Eles executam testes exclusivos em seu ambiente local antes de implantar o
código testado no mainframe, garantindo que todos os módulos estejam
funcionando corretamente Escrevendo e executando testes unitários
para aplicativos de mainframe Agora que abordamos as ferramentas, vamos ver como escrever testes unitários
eficazes para
seus aplicativos de mainframe Começaremos escrevendo um teste unitário
simples no CBO, mas os mesmos princípios se aplicam ao PL em uma ou outras linguagens de
mainframe Primeiro passo, identifique
a unidade a ser testada. A primeira etapa para
escrever um teste unitário é identificar a unidade de
código que você deseja testar. Isso pode ser um parágrafo de cobot, procedimento
PLO ou uma função
individual É importante que
a unidade de código seja pequena o suficiente para ser
testada isoladamente. Por exemplo, em um sistema de
folha de pagamento, talvez
você queira
testar a sub-rotina responsável pelo cálculo Essa sub-rotina usa parâmetros
de entrada, como desempenho e salário do
funcionário e retorna o valor do bônus Etapa 2: escrever casos de teste. Um caso de teste define o comportamento esperado de sua unidade sob
várias condições. Para cada caso de teste, você especificará
um valor de entrada. Os dados que você passa para a unidade,
por exemplo, pontuações de
desempenho dos funcionários. Dois, saída esperada, o que você
espera que a unidade retorne? Por exemplo, valor do bônus. Três, execução, a execução real da
unidade usando os valores de entrada. Nossa afirmação, verificando se a saída
corresponde aos resultados esperados Deixe-me mostrar um exemplo de
caso de teste para a sub-rotina CBL. Aqui está um exemplo de caso de teste para sub-rotina da
Cobal que
calcula Etapa três, execute o
teste automaticamente. Depois de inserir
seus casos de teste, use uma estrutura como a unidade Z ou microfoco para automatizar
sua execução Isso permite que você execute
seu teste como parte de
um pipeline do CICD ou em intervalos
programados Configuração no Jenkins. Se
você estiver usando o Jenkins, poderá
configurá-lo para
acionar automaticamente o teste de unidade após
cada confirmação de código Jenkins compilará
o programa CBA, executará o teste unitário e fornecerá
um relatório dos resultados Configure com a unidade Z. No IBM developer for ZOS, você pode configurar uma unidade Z
para executar seu teste de unidade após cada compilação ou como parte
de um fluxo de trabalho de teste maior Vamos dar um exemplo.
A agência governamental usa testes unitários automatizados para os programas COVA para
lidar com cálculos de impostos Depois de qualquer alteração no código, os testes
unitários são executados
automaticamente para garantir que as alterações não introduzam erros
nos cálculos. Os resultados do teste são
reportados por meio do Jenkins permitindo que
a equipe de desenvolvimento resolva rapidamente qualquer problema Principais conclusões desta lição. Um deles,
os testes unitários automatizados garantem que módulos
ou componentes
individuais de seus aplicativos de mainframe funcionem corretamente de forma isolada Segundo, ferramentas como unidade Z
e microfoco
facilitam a gravação e a execução testes unitários
automatizados para aplicativos Cobol
e PL one Em terceiro lugar, a integração de testes unitários em um pipeline de CICD permite feedback
mais rápido e garante que novas mudanças não
introduzam bugs ou erros Atividade de aprendizagem.
Escolha uma pequena sub-rotina de cobalto
ou PL One de seus aplicativos de mainframe Escreva de dois a três testes unitários para avaliar o comportamento válido
dos dados dessa sub-rotina Execute esse teste usando uma estrutura como Z unit ou Micro focus e reflita sobre como o teste unitário
automatizado melhoraria seu processo de
desenvolvimento. O que vem a seguir? Na próxima lição, vamos nos aprofundar na automação dos testes de integração
e regressão Você aprenderá como automatizar os testes de
integração entre sistemas
mainframe e não mainframe e como configurar o teste de
regressão para garantir que
sua
funcionalidade existente permaneça
estável à medida que sua
funcionalidade existente permaneça novas
16. Aula 3: automatizando testes de integração e regressão: Lição três, automatizando integração e os testes de
agressão Bem-vindo à lição
três do módulo quatro. Nesta lição, vamos nos concentrar em dois
tipos críticos de teste, teste de integração e teste de
regressão À medida que você automatiza mais aspectos
do seu pipeline de testes, os testes se tornam essenciais para garantir que seus aplicativos de
mainframe funcionem perfeitamente com
outros sistemas e que as alterações não interrompam Ao final da lição, você entenderá como automatizar teste de
integração entre sistemas
mainframe e não
mainframe, bem
como como
automatizar o uso do
teste de regressão
automatizado para manter a estabilidade de
seus aplicativos
durante o desenvolvimento entenderá como automatizar o teste de
integração entre sistemas
mainframe e não
mainframe, bem
como como
automatizar o uso do
teste de regressão
automatizado para manter a estabilidade de
seus aplicativos
durante
o desenvolvimento e as atualizações. Vamos mergulhar. O que é teste de
integração e
por que é importante? teste de integração garante que diferentes módulos ou sistemas
funcionem juntos conforme o esperado. Enquanto os testes unitários se concentram em
testar componentes individuais, os testes de
integração validam a interação entre
esses componentes, o que é especialmente importante
em sistemas grandes e complexos Em ambientes de mainframe, muitos aplicativos não
operam isoladamente Eles geralmente interagem
com bancos de dados, APIs
externas, middleware e até mesmo sistemas que
não automação do
teste de integração
permite verificar se todos
esses componentes funcionam
juntos corretamente,
independentemente de esses componentes funcionam
juntos corretamente quantas
alterações de código sejam introduzidas Principais características do teste de
integração, interação entre sistemas. Verifica se vários sistemas ou módulos podem se comunicar
e funcionar conforme o esperado de ponta a ponta, teste fluxos de trabalho do mundo
real em
diferentes componentes Complexidade. A abertura envolve testes em
diferentes ambientes, por exemplo, entre mainframes, sistemas
distribuídos
ou na nuvem Como automatizar os testes de
integração entre sistemas mainframe e
não mainframe Os aplicativos de mainframe
geralmente precisam interagir com sistemas
distribuídos,
APIs e bancos de dados automação dos testes de integração entre esses sistemas garante que as alterações feitas em um sistema não afetem negativamente O objetivo é criar testes
automatizados que imitem as interações
do mundo real,
detectando erros
ou falhas precocemente Etapas para automatizar os testes de
integração. Primeiro, identifique os pontos de
integração. Primeiro, identifique os
pontos-chave em que seu sistema de mainframe
interage com outros Isso pode incluir acesso ao
banco de dados, chamadas de
API ou trocas de arquivos. Por exemplo, um aplicativo
bancário pode se integrar a
um banco de dados DB two, uma API de pagamento e um serviço de
middleware Cada ponto de integração
deve ser testado. Em segundo lugar, defina os cenários de teste. Crie casos de teste que cubram os pontos de
integração mais comuns e críticos. Por exemplo, teste um fluxo
de trabalho de
transação completo , desde a entrada, por exemplo, cliente fazendo um pedido
até a resposta de uma API de pagamento externa e retornando ao seu aplicativo de
mainframe Em terceiro lugar, configure as ferramentas de automação. Use ferramentas como o IBM Rational
Integration Tester ou o CA Service Virtualization para simular e
automatizar os Essas ferramentas podem
simular interações entre os mainframes
e os sistemas externos, facilitando a
criação de testes repetíveis Quarto, execute, valide e automatize a execução
desses testes como parte de seu pipeline de CICD, garantindo que eles sejam executados sempre que um
novo código Os resultados dos testes de integração devem ser registrados e
analisados para
detectar rapidamente falhas ou lentidões na comunicação entre Vamos dar um exemplo. Uma organização
de saúde que executa sistemas baseados em Cobble automatiza os
testes de integração entre seu banco de dados principal de
registros de pacientes e um serviço
analítico baseado em nuvem Cada vez que um desenvolvedor
atualiza o sistema de registro do paciente, o teste automatizado garante
que os dados sejam enviados corretamente para o serviço analítico em nuvem
e sejam processados sem erros O que é teste de regressão
e por que é importante? O teste de regressão como objetivo garantir que mudanças ou
atualizações
recentes em sua base de código não interrompam a
funcionalidade existente Isso é especialmente importante em ambientes de
mainframe em
que muitos sistemas estão totalmente integrados
e pequenas mudanças podem ter efeitos em cascata em todo
o aplicativo automação do teste de regressão ajuda a validar
se a funcionalidade
principal permanece estável e
inalterada mesmo após a introdução de novos recursos ou Principais características do teste de
regressão. Testar novamente os
recursos existentes garante que o código existente
continue funcionando conforme o esperado, detecte efeitos colaterais indesejados e
solucione bugs
introduzidos por novas Contínuo. Os testes de regressão
devem ser executados com frequência, especialmente após cada alteração
significativa Como automatizar testes de regressão em aplicativos de mainframe automação dos testes de regressão em um ambiente de mainframe ajuda a detectar erros no início
do ciclo de desenvolvimento, reduzindo o risco de introduzir O objetivo é criar um conjunto
abrangente de testes que verifique a funcionalidade nova e a
existente. Etapas para automatizar o teste de
regressão. Primeiro, identifique as áreas
funcionais críticas. Determine quais partes de seus aplicativos de mainframe são mais importantes para sua operação Esses podem ser módulos principais,
como sistemas de cobrança, processamento de
transações
ou recuperação de dados Em segundo lugar, crie casos de teste
básicos. Crie casos de teste que reflitam o comportamento esperado do seu aplicativo em
seu estado atual. Esses casos de teste servirão como base para o teste de
regressão. Sempre que uma alteração for feita, o teste de regressão comparará o comportamento
atual com essa linha de base Em terceiro lugar, automatize a execução do teste. Use ferramentas como a bancada de trabalho de testes
racionais da IBM ou o teste baseado em
selênio ou interface do usuário para
automatizar os testes de
regressão Essas ferramentas permitem
automatizar a execução de casos de teste e gerar
relatórios detalhados sobre os resultados dos testes Quarto, execute testes continuamente. Automatize seu teste de regressão para ser executado como parte do pipeline do
CICD Isso garante que toda
vez que um novo código for confirmado, testes de
regressão sejam executados e quaisquer falhas sejam
sinalizadas imediatamente Quinta suíte de testes de manutenção e
atualização. Conforme seu aplicativo evolui, atualize
regularmente seu conjunto de testes de
regressão para cobrir novos recursos ou alterações nas
funcionalidades existentes Certifique-se de que os testes obsoletos sejam removidos e atualizados
conforme necessário. Por exemplo, uma seguradora usa
testes de regressão automatizados para garantir que as atualizações em seu sistema de
processamento de sinistros não
afetem funcionalidades, como a recuperação de dados
do segurado Sempre que uma alteração é feita, os testes de regressão são
executados e todos os problemas são detectados e resolvidos antes o código seja implantado Ferramentas para automatizar os testes de integração
e regressão. Testador de
integração IBM Rationale, uma ferramenta para automatizar teste de
integração entre mainframe Ele simula interações e valida que os sistemas estão trabalhando
juntos conforme Rationale Test
Workbench fornece recursos de teste
automatizados para unitários
e de regressão,
permitindo que as equipes
criem suítes de testes para validar
a para validar Virtualização de serviços da CA,
útil para simular e
testar interações entre mainframe e Selenium, frequentemente usado para automatizar testes de
regressão baseados na interface do usuário, garantindo que as alterações na funcionalidade do
back-end não Melhores práticas para automatizar testes de integração e
regressão Primeiro, comece pequeno e aumente a escala. Comece automatizando os testes para as
partes mais críticas do seu sistema À medida que você ganha confiança, expanda sua
cobertura de automação para incluir mais pontos de integração
e cenários de regressão Segundo, simule dependências externas. Ao executar testes de integração, serviços externos
simulados simulam cenários do mundo
real sem
depender Isso torna os testes mais
confiáveis e repetíveis. Três, mantenha as
suítes de teste atualizadas. À medida que seu
aplicativo de mainframe evolui, atualize
regularmente suas
suítes de
integração e regressão para garantir que elas reflitam o
estado atual do Quatro, integre com os pipelines
do CICD. Automatizar seus testes só é útil se eles forem
executados continuamente Garanta que seus testes de integração e regressão façam parte
do pipeline do CICD, sendo executados automaticamente após
cada confirmação ou atualização do código Principais conclusões desta lição. Primeiro,
os testes de integração garantem que seus
aplicativos de mainframe interajam perfeitamente com outros sistemas, detectando problemas nos fluxos de trabalho entre
sistemas Segundo, os testes de regressão ajudam a manter a estabilidade da funcionalidade
existente, garantindo que novas alterações não
introduzam bugs ou problemas Em terceiro lugar, a automatização testes de
integração e
regressão fornece feedback
mais rápido e
reduz o risco de implantação de código instável Quatro, use ferramentas como o IBM
Rational Integration Tester, virtualização de serviços de
CI e Rational Test Work Bench para
automatizar esse teste Atividade de ganho. Escolha um ponto
crítico de integração em seu sistema de mainframe,
por exemplo, interação com banco de dados ou chamada de API Escreva e automatize o teste de
integração para validar essa interação Em seguida, identifique um recurso principal
em seu sistema e crie um teste de regressão para garantir que ele permaneça estável após a atualização Automatize os dois testes e
integre-os ao
seu pipeline de CICD. O que vem a seguir? Na próxima lição,
exploraremos incorporação da automação de testes
ao pipeline do CICD. Você aprenderá a configurar estágios de teste
automatizados
em seu pipeline e descobrirá
as melhores práticas para criar uma testes
confiável e sustentável
17. Aula 4: incorporando automação de testes ao pipeline de CI/CD: Lição quatro, incorporando a automação
de testes ao pipeline do CICD. Bem-vindo à lição
quatro do módulo quatro. Nesta lição,
exploraremos como integrar seu teste automatizado em
um pipeline CICD completo Você já
aprendeu a escrever testes de integração e
regressão de
unidades para seus aplicativos de mainframe Agora é hora de
automatizar a execução desse teste em
um pipeline
do CICD para garantir que cada alteração de
código seja testada continuamente, melhorando a
velocidade e a Ao final desta lição, você entenderá como configurar estágios de teste
automatizados
em seu pipeline e implementar as melhores práticas para tornar sua automação de testes robusta,
escalável e sustentável Vamos começar. O que
é um pipeline CICD Um pipeline CICD é um fluxo de trabalho automatizado que
gerencia o desenvolvimento, teste e a implantação
de alterações de código Para aplicativos de mainframe,
esse pipeline
reúne sistemas legados
e princípios modernos de DevOps, garantindo que as mudanças sejam
implantadas de forma suave e rápida, sem comprometer a estabilidade
do No centro de um
pipeline do CICD estão os testes automatizados. Esses testes fornecem as
verificações de qualidade necessárias para garantir que qualquer código
implantado tenha sido
completamente validado Mas, ao automatizar
o processo de teste, você reduz o risco
de erro humano e garante que o código esteja
sempre pronto para implantação Etapas típicas do pipeline do CICD. Um, integração do controle de origem. Os desenvolvedores submetem seu código a um
sistema de controle de versão, como dois, build. O sistema compila
os executáveis geradores de código para o mainframe Três, testes automatizados. testes de integração e
regressão de unidades são executados automaticamente Para implantação, o código é implantado
automaticamente um ambiente de teste ou
produção após a aprovação de todos os testes Um exemplo, uma seguradora usa um pipeline CICD para seu sistema de sinistro baseado em
código Sempre que um desenvolvedor
faz uma alteração no código, o pipeline
compila automaticamente o código, executa testes e, se for bem-sucedido, implanta o aplicativo atualizado em um ambiente
de teste Iniciando
estágios de teste automatizados no pipeline do CICD. Agora vamos nos concentrar em
como integrar estágios de teste
automatizados
em seu pipeline de CICD Isso envolve configurar
seu pipeline para executar automaticamente
diferentes tipos de
testes, como integração de unidades e regressão, sempre que um
novo código é Primeiro, defina os estágios do
seu pipeline de testes. Em um pipeline típico do CICD, os testes
automatizados devem ser
executados em diferentes estágios Cada tipo de teste serve a
um propósito específico. Teste unitário. Esse teste
deve ser executado durante os estágios iniciais do pipeline logo após a criação do código. Os testes unitários são aprovados
e garantem que os componentes
individuais funcionem
conforme o esperado, isoladamente. Testes de integração,
esses testes devem ser executados após a aprovação dos testes unitários, garantindo que diferentes partes
do sistema interajam adequadamente. Testes de regressão. Após os testes de integração, os testes de
regressão confirmam que as novas alterações não quebraram a funcionalidade
existente Você pode configurar seu
pipeline no Jenkins, Gitlab CI ou em outra ferramenta de CI para executar esse
teste Dois, execução automatizada de testes. Para garantir que os testes sejam
executados automaticamente, sua ferramenta CICD deve
ser configurada para acionar o teste com
base em ações específicas Acione ao confirmar. Toda vez que um desenvolvedor
envia código para o repositório do
mainframe, pipeline
aciona os testes automatizados Acione na solicitação completa. Antes de mesclar as alterações
na ramificação principal, o pipeline pode executar testes
mediante solicitação completa para garantir que o código esteja estável.
Agende testes. Além de acionar
testes em confirmações, você pode programar testes de
regressão para serem executados Por exemplo, construções noturnas. Por exemplo, em um sistema bancário, cada vez que um desenvolvedor envia um
novo código para o repositório, Jenkin executa testes unitários nos módulos CBL
primeiro Se os testes de unidade forem aprovados, ele continuará executando testes de
integração entre o código Cobal
e o banco de dados DB two Por fim,
testes de regressão são executados para garantir que as funções
de gerenciamento de contas existentes não tenham sido afetadas Três, relatórios e feedback. Depois que os testes forem executados, é importante fornecer feedback
imediato
aos desenvolvedores. Ferramentas de DICD, como o Jenkins,
podem
gerar automaticamente relatórios mostrando
quais testes foram aprovados ou reprovados, fornecendo aos desenvolvedores informações
detalhadas
sobre onde estão os problemas Relatórios de teste. Configure sua ferramenta CICD para gerar relatórios de teste
detalhados Por exemplo, o Jenkins pode
exibir os resultados dos testes na interface do usuário, destacando os
testes que falharam e seus motivos Notificações,
notificações automáticas, por exemplo, por e-mail ou Slack para alertar os desenvolvedores
quando um teste falhar, fornecendo feedback imediato e permitindo que eles
resolvam problemas rapidamente Práticas recomendadas para criar testes
confiável e sustentável Para aproveitar ao máximo a automação de testes em
seu pipeline de CICD, é importante seguir
algumas práticas recomendadas Isso ajudará você a evitar armadilhas
comuns e a garantir que sua automação de testes seja eficiente
e escalável Um, passe no teste e concentre-se. Os testes automatizados devem
fornecer feedback rápido. Os testes unitários devem ser
executados em segundos, enquanto teste de
integração e regressão pode demorar um pouco mais Se os testes forem muito lentos, eles podem retardar todo
o pipeline, causando atrasos no feedback Uma dica: divida testes
grandes em testes menores e
mais focados. Por exemplo, em vez de testar todo o
fluxo de trabalho de
uma transação em um
teste, teste
etapas individuais separadamente. Segundo, garanta que os testes sejam isolados. Para evitar interferência
entre os testes, certifique-se de que cada teste seja
executado isoladamente. Isso significa que os testes não devem
depender de recursos compartilhados como bancos de dados, nem
dos resultados de outros testes. Uma dica: use ferramentas de simulação ou visualização
de serviços para simular sistemas de
pesquisa externos, garantindo que os testes possam ser executados independentemente
de Três, torne os testes repetíveis. Os testes automatizados
devem ser repetíveis, o que
significa que produzem sempre os
mesmos resultados, independentemente do ambiente
em que são executados Isso garante consistência
e confiabilidade. Uma dica: evite codificar valores
rígidos ou confiar em serviços externos Em vez disso, use parâmetros
configuráveis para garantir que seus testes sejam independentes
do ambiente Quatro,
atualize e mantenha regularmente os doces de teste. Conforme seus
aplicativos de mainframe evoluem, seu teste deve ser atualizado para refletir novos recursos
e fluxos de trabalho, manter
e revisar
regularmente a
largura do teste para garantir que
ele permaneça atualizado Uma dica: defina um processo de
revisão regular para atualizar ou remover testes obsoletos e adicionar novos testes para recursos
recém-introduzidos. Vamos dar um exemplo.
Uma empresa de varejo atualiza seu
sistema de gerenciamento de
inventário baseado em paralelepípedos com frequência Seguindo as melhores práticas
para automação de testes, eles garantem que seu pipeline CICD execute testes automatizados de
forma rápida e confiável Eles também atualizam regularmente seu conjunto de testes de regressão
para refletir novas mudanças, evitando testes desatualizados
ou redundantes Principais conclusões desta lição. Primeiro, incorporar a automação de
testes em seu pipeline de CICD garante que cada alteração de código seja validada
automaticamente, reduzindo erros e
melhorando Segundo, o teste de integração
e regressão da unidade deve ser executado em diferentes
estágios do pipeline, fornecendo feedback rápido e
confiável Em terceiro lugar, as melhores práticas,
como manter os testes rápidos, isolados e
repetíveis, ajudam a garantir que sua automação de testes seja confiável e sustentável Quatro suítes de teste
atualizadas regularmente garantem que seus testes reflitam o estado atual de seus aplicativos de
mainframe Atividade de ganho. Escolha um de seus
aplicativos de mainframe e identifique onde você pode adicionar testes
automatizados,
integração de unidades e regressão Configure seu
pipeline CICD, por exemplo, Jenkins ou Gitlab, para executar esse teste após Analise os resultados
do teste automatizado e analise com que rapidez e confiabilidade o feedback
é fornecido Reflita sobre como esse
processo melhora seu
fluxo de trabalho de desenvolvimento. O que vem a seguir? No próximo módulo, começaremos a
explorar a configuração do pipeline de
integração contínua. Você aprende os principais
princípios e metas da integração
contínua e como ela beneficia os
ambientes de mainframe. Também abordaremos como configurar um pipeline robusto de CI para agilizar seu processo de
desenvolvimento
18. Aula 1: o que é integração contínua?: Bem-vindo ao Módulo 5, integração
contínua
ou configuração do pipeline de CI. Neste módulo, você
aprenderá a
configurar um pipeline de CI para ambientes de
mainframe, com foco na
integração contínua ou CI, compilações e testes
automatizados Exploraremos como a CI se
encaixa no cenário de Devops, simplificando o desenvolvimento
e melhorando a qualidade do código Primeira lição: o que é integração
contínua? Bem-vindo à primeira
lição do módulo cinco. Nesta lição, vamos
explorar o conceito de integração contínua ou
CI e seus princípios fundamentais. Você já aprendeu sobre automação de testes em ambientes de
mainframe Agora é hora de
entender como a CI se encaixa nesse processo e
por que ela é tão importante, especialmente em sistemas de
mainframe complexos Ao final desta lição, você entenderá as metas da integração
contínua e como a
implementação da integração
contínua e como CI pode beneficiar seu ambiente de mainframe
ao simplificar o desenvolvimento, reduzir erros
e acelerar
o ciclo você entenderá as metas da integração
contínua e como a
implementação da CI pode beneficiar
seu ambiente de mainframe
ao simplificar o desenvolvimento,
reduzir erros
e acelerar
o ciclo de feedback. Vamos mergulhar. O que é
integração contínua ou CI? integração contínua ou CI é uma prática de desenvolvimento em que os desenvolvedores frequentemente
integram seu código em um repositório compartilhado, geralmente várias vezes ao dia Cada integração é verificada por um processo automatizado de criação
e teste. Essa prática ajuda a detectar e corrigir
problemas de integração precocemente, tornando o processo de desenvolvimento mais eficiente e confiável. Em um ambiente de mainframe, CI desempenha um
papel crucial na modernização sistemas
legados, garantindo que as alterações de
código sejam continuamente
validadas e mescladas, reduzindo a probabilidade de problemas de integração de
última hora última As principais características da CI incluem a integração frequente
de código. Os desenvolvedores enviam
códigos regularmente, reduzindo a complexidade
da mesclagem de alterações Teste automatizado Cada
confirmação de código aciona testes automatizados, garantindo a qualidade do código e as compilações
automatizadas O código é compilado e a fatura é cobrada
automaticamente, fornecendo feedback
imediato sobre
erros de compilação. Feedback imediato. A CI fornece feedback rápido sobre se as
mudanças mais recentes funcionam conforme o esperado. Princípios e metas fundamentais
da integração contínua. Vamos analisar os princípios e
metas
fundamentais para orientar um processo
bem-sucedido de CI. Esses princípios ajudam
as equipes a se manterem alinhadas, reduzir os problemas de integração
e melhorar a qualidade do software Primeiro, confirme o código com frequência. No ambiente de DI, os desenvolvedores confirmam
seu código com frequência, às vezes várias vezes ao dia. Isso garante que a base de
código esteja sempre
atualizada e que quaisquer
problemas de integração sejam identificados com antecedência. Por exemplo, em um sistema bancário
baseado em paralelepípedos, os desenvolvedores que trabalham
em diferentes módulos como contas de clientes e transações, permitem as alterações no repositório compartilhado
ao longo do Isso evita que grandes mudanças
conflitantes se acumulem com o tempo. Para automatizar o processo de criação. Cada confirmação de código deve acionar um processo de
criação automatizado Isso significa compilar o código do aplicativo de
mainframe, seja no Cabal ou no PL One,
e verificar se há erros de
sintaxe ou de Se a compilação falhar, os desenvolvedores recebem feedback
imediato para que possam resolver os problemas. Por exemplo, uma empresa de logística automatiza o processo de criação de
seu sistema de gerenciamento de inventário de mainframe Cada vez que um desenvolvedor
envia um código para obter, Jenkins compila o código cob e relata Três, testes automatizados. O objetivo principal da CI é
garantir que cada
confirmação de código seja testada. Testes automatizados, integração de
unidades e regressão são acionados
como parte do pipeline de CI Esses testes garantem que
as novas alterações não
introduzam bugs nem interrompam a funcionalidade
existente. Por exemplo, depois de compilar o código para um sistema de folha de pagamento
baseado em CBL, testes
automatizados são executados para garantir que os cálculos de
salários, deduções
fiscais e bônus Ou forneça feedback imediato. Um grande benefício da CI é a capacidade de fornecer feedback
imediato
aos desenvolvedores. Se suas alterações fizerem
com que um teste falhe ou uma campainha quebre, eles podem resolver o problema imediatamente antes de
passar para a próxima tarefa. Por exemplo, em um aplicativo de assistência médica que
gerencia registros de pacientes, feedback
imediato é fornecido
após a confirmação de cada código, alertando os desenvolvedores se as alterações interromperem as interações existentes do
banco de dados Cinco, mantenha a construção rápida. O processo de CI deve
ser otimizado para maior velocidade. Os desenvolvedores devem receber
feedback rapidamente, preferência minutos depois
de cometerem o resfriado Isso permite uma
iteração mais rápida e minimiza
os atrasos Por exemplo, para um sistema de processamento de
sinistros de seguros de mainframe, o processo de criação é otimizado para levar no máximo 10 minutos, permitindo que os desenvolvedores
resolvam rapidamente quaisquer problemas antes de
continuarem seu trabalho Benefícios da CI em ambientes de
mainframe. Agora que entendemos
os princípios da CI, vamos falar sobre os benefícios
específicos da
implementação de integrações contínuas em um ambiente de mainframe modernização de mainframes com CI ajuda
as equipes de desenvolvimento a permanecerem ágeis, reduzirem erros e melhorarem a
produtividade geral Um, detecção precoce
de problemas de integração. integração frequente do código significa que os problemas de
integração são detectados no
início do processo de
desenvolvimento. Isso evita o inferno de
integração que geralmente ocorre quando o código não é
mesclado por muito tempo. Por exemplo, em um aplicativo
bancário de mainframe, integração diária de
alterações na conta do cliente ajuda a identificar conflitos entre critérios, como gerenciamento de
contas e processamento de
empréstimos, com antecedência, reduzindo o risco de
problemas futuros Dois, feedback mais rápido. Ao automatizar compilações e testes, TI fornece
feedback quase imediato sobre as alterações no código Isso permite que os desenvolvedores
corrijam os problemas
assim que eles surgirem, resultando em ciclos de
iteração mais rápidos Por exemplo, uma empresa de
varejo de mainframe executa compilações e
testes automatizados sempre que um novo
código é confirmado, permitindo que os desenvolvedores
recebam os resultados dos testes em minutos e evitem
atrasos na correção de bugs Três, melhore a qualidade do código. Com testes automatizados
sendo executados continuamente, a
CI ajuda a garantir que a
qualidade do código seja mantida. Cada confirmação de código deve passar por todos os testes antes de poder
ser mesclada, evitando que códigos instáveis
entrem no ambiente de produção Por exemplo, uma
seguradora usa a CI para garantir que cada nova atualização em seu sistema de processamento de
sinistros passe no teste de integração
e regressão da unidade, mantendo o sistema estável
e livre de grandes volumes Para reduzir o risco de problemas
de produção. integração contínua
reduz o risco de implantar
código quebrado ou com erros na produção Como as alterações no código são testadas
e validadas continuamente, a chance de grandes problemas
passarem despercebidos é minimizada Por exemplo, uma agência governamental usa a CI para reduzir o
risco de erros em seu
sistema de processamento tributário, garantindo que cada alteração de código
seja automaticamente testada e validada
antes da implantação Como a CI se encaixa no
DevOps para mainframes. Em ambientes de mainframe, a CI é um componente essencial da estratégia
mais ampla de DevOp. Ele ajuda a preencher a lacuna entre as práticas
tradicionais de
desenvolvimento de mainframe e as metodologias ágeis
modernas ao automatizar as etapas E Integração com DevOps, a
CI permite uma entrega
mais rápida e confiável de aplicativos de mainframe ao automatizar os testes
e a integração,
facilitando a colaboração de desenvolvedores, investidores e equipes de operações CD de entrega contínua. CI é a base para a entrega
contínua, na qual cada alteração de código não é apenas integrada, mas também preparada para implantação
automática. Vamos dar um exemplo. Uma empresa de serviços
financeiros implementa a CI como parte
da estratégia DevOp, garantindo que as alterações de código em seu sistema de transações de mainframe sejam automaticamente testadas e integradas ao pipeline Isso reduz os tempos do ciclo de
desenvolvimento e garante uma implantação mais suave Principais conclusões desta lição. Uma delas, a integração contínua ou CI envolve integração frequente de
código, compilações
automatizadas
e testes automatizados, garantindo feedback mais rápido
e melhor qualidade do código Segundo, os principais princípios da
CI incluem confirmações frequentes, compilações
automatizadas
e feedback rápido, que ajudam as
equipes de desenvolvimento a se manterem alinhadas e a reduzir terceiro lugar, a CI em
ambientes de mainframe melhora a qualidade
do código, acelera o feedback
e reduz o risco de problemas de produção ao automatizar partes
críticas do processo de desenvolvimento Atividade de aprendizado:
identifique um módulo ou componente em seu aplicativo de
mainframe que possa se beneficiar da integração
frequente Por exemplo, um módulo de
transação financeira ou uma ferramenta de geração de relatórios. Configure um sistema para
confirmar códigos com frequência e executar
faturas automatizadas para esse módulo Reflita sobre como o
feedback mais rápido da CI afeta seu
fluxo de trabalho de desenvolvimento. O que vem a seguir? Na próxima lição,
exploraremos configuração do Jenkins para integração
contínua Você aprenderá como configurar trabalhos do
Jenkins para serem acionados
automaticamente no comitê de
código e
como configurar pipelines do
Jenkins para pipelines do
Jenkins específicos
de
mainframe
19. Aula 2: como configurar Jenkins para integração contínua: Lição dois, configurando o Jenkins para integração contínua Bem-vindo à lição
dois do módulo cinco. Nesta lição, abordaremos o
processo de
configuração do Jenkins para integração
contínua ou CI, especificamente adaptado para ambientes de
mainframe Jenkins é uma ferramenta poderosa
que automatiza a criação, teste e a implantação
do seu código Ao final desta lição, você saberá como configurar trabalhos do
Jenkins que são
acionados automaticamente quando o código é confirmado e como configurar pipelines do
Jenkins para pipelines do
Jenkins específicos
do
mainframe Vamos começar. Por que usar Jenkins para integração contínua Jenkins é uma
das ferramentas de CI mais usadas no mundo
do DevOp porque
é de código aberto, altamente flexível e
se integra bem a uma ampla variedade de ambientes de
desenvolvimento, O Jenkins é uma
das ferramentas de CI mais usadas no mundo
do DevOp porque
é de código aberto,
altamente flexível e
se integra bem a
uma ampla variedade de ambientes de
desenvolvimento,
incluindo mainframes. Jenkins permite que
as equipes automatizem tarefas
repetitivas, como
criar e testar código, liberando os desenvolvedores para se
concentrarem em ambientes de mainframe, Jenkins desempenha um
papel crucial na modernização fluxos de trabalho de
desenvolvimento ao integrar
perfeitamente o código legado Com o Jenkins, as equipes de mainframe podem tirar proveito
de compilações,
testes e implantações automatizados que
se encaixam no Por exemplo, uma empresa de
serviços financeiros usa o Jenkins para automatizar o processo
de criação
e teste seu sistema de processamento de
empréstimos baseado em paralelepípedos Sempre que um desenvolvedor
envia um código, Jenkins automaticamente cria,
executa testes e fornece imediato Configurando trabalhos do Jenkins para
acionar confirmações de código. A primeira etapa na
configuração do Jenkins para CI é criar trabalhos que são acionados automaticamente
sempre que um novo código é permitido no repositório Nesta seção,
examinaremos as etapas para configurar
o
Jenkins para essa tarefa Primeiro passo, instale o Jenkins
e os plug-ins necessários. Antes de podermos
configurar os trabalhos do Jenkins, você precisará garantir que o
Jenkins esteja instalado e configurado com os plug-ins
apropriados para o desenvolvimento do mainframe Para instalar o Jenkins,
baixe e instale o Jenkins em seu servidor.
Instale plug-ins. Você precisará de plug-ins como o plug-in Git para controle de
versão,
o plug-in de pipeline para criar pipelines automatizados
e, possivelmente, o IBM DBBPlugi o plug-in Git para controle de
versão,
o plug-in de pipeline para
criar pipelines automatizados
e, possivelmente, o IBM DBBPlugi
para criar aplicativos de mainframe. Por exemplo, se você
estiver trabalhando com um sistema de mainframe
baseado em CBL, poderá usar o IBM DBBPlugi
para integrar-se ao Jenkins
para criar programas Segundo, configure o gerenciamento de
código-fonte ou SEM. No Jenkins, cada trabalho deve estar vinculado a um repositório de
código-fonte, como o Git, onde
seu código Você configurará o
Jenkins para monitorar esse repositório e acionar
trabalhos com base nas alterações do código Acesse o Jenkins Dashboard e
selecione um novo trabalho. Selecione o projeto freestyle
e dê um nome ao seu trabalho. Em gerenciamento de código-fonte, selecione Git e insira a
URL do seu repositório Git Configure o Jenkins para monitorar o repositório em busca de quaisquer alterações Três, configure web hooks
para acionadores automatizados. Para garantir que o Jenkins acione
automaticamente as compilações,
quando o código for confirmado, você precisará
configurar web hooks ou
pesquisas para pesquisas para Na
configuração do seu repositório Git, por exemplo, GitHub ou GitLab, mas imagine um web hook apontando Isso permitirá que o
Jenkins acione trabalhos sempre que um novo
código for enviado No Jenkins, em
Criar acionadores,
selecione
Gatilho de gancho do GitHub Por exemplo, uma empresa de
varejo
configura um trabalho do Jenkins que cria e
testa
automaticamente o código de mainframe de seus
sistemas de gerenciamento de inventário toda vez que um desenvolvedor
faz alterações Um exemplo de um gatilho de trabalho do
Jenkins. Quando um novo código é
confirmado no repositório do mainframe, Jenkins
detecta automaticamente as alterações
e aciona e aciona Isso mantém o
processo de desenvolvimento rápido e eficiente usando a intervenção
manual. Configurando
pipelines Jenkins para específicos
de
mainframe Agora que configuramos o
gatilho Jenkins na confirmação do código, vamos configurar um
pipeline do Jenkins que automatiza a criação e o teste do código específico do
mainframe No Jenkins, os pipelines
são uma forma poderosa de
definir todo o
processo de CAI em um único script Primeiro, crie o script
Jenkins Pipeline. Um script de pipeline Jenkins é um
pipeline declarativo ou com script que define a etapa, a
criação, o teste e a implantação Para compilações específicas de mainframe, você usará ferramentas como IBM, compilação baseada em
dependência ou
DBB ou desenvolvedor
corporativo de microfoco, compilará Acesse o painel do Jenkins e
selecione um novo trabalho. Escolha o projeto
Pipeline. Na seção de pipeline, escreva um
script de pipeline que
defina os estágios do seu processo de CI. Aqui está um exemplo simples de um pipeline declarativo
para um projeto CBL. Os principais estágios são os
seguintes. Confira. Ele recupera o código mais recente
do repositório Git. Crie o CBO. Ele usa o IBM DVB
para compilar programas COBOL Execute o teste unitário. Ele executa testes de unidade
automatizados para
garantir a qualidade do código Implanta o aplicativo de compilação
em um ambiente de teste. Em segundo lugar, pipelines personalizados
para fluxos de trabalho de mainframe. Cada pipeline deve
ser personalizado com base nos fluxos de trabalho específicos
do mainframe que você está automatizando Por exemplo, crie scripts, use scripts de construção personalizados para
compilar cobble, ELO ou Teste, configure testes unitários
automatizados usando a unidade Z ou estruturas de teste de
mainframe similares Automatize as implantações no ambiente de teste de mainframes Por exemplo, uma agência governamental automatiza seus sistemas de
processamento de impostos, cria e testa um
pipeline com o Jenkins Cada vez que o código é enviado, Jenkins cria os módulos
cobble, executa
testes automatizados e implanta o sistema em um ambiente de
teste para posterior validação o
Jenkins cria os módulos
cobble,
executa
testes automatizados e implanta
o sistema em um ambiente de
teste para posterior validação. principais conclusões desta
lição incluem, em primeiro lugar, Jemkin simplifica a integração
contínua automatizando o
processo de criação,
teste e implantação de código de mainframe As principais conclusões desta
lição incluem, em primeiro lugar, que a
Jemkin simplifica a integração
contínua
automatizando o
processo de criação,
teste e implantação de código de mainframe. Segundo, iniciando trabalhos do Jenkins, o gatilho na permissão de código
garante que as alterações sejam criadas e testadas
automaticamente
assim que forem feitas Em terceiro lugar, os pipelines Jenkins
permitem que você crie fluxos de trabalho de
ponta a ponta que integram ferramentas
específicas do mainframe, automatizando todo o processo de CI Atividade de aprendizagem.
Instale o Jenkins e
configure-o com os plug-ins necessários para seu ambiente de mainframe Por exemplo,
conecte um plug-in IBM DVB. Crie um trabalho do Jenkins
que
acione automaticamente uma compilação quando código é
confirmado Escreva um script simples de
pipeline do Jenkins para criar e testar seu aplicativo de
mainframe, personalizando-o para se adequar ao seu O que vem a seguir? Na próxima lição, exploraremos o acionamento de compilações e testes
automatizados. Você aprenderá como
automatizar o processo de
acionamento de compilações e
testes sempre que um novo código for enviado ao repositório
e como configurar
notificações e ciclos de feedback para notificações e
20. Aula 3: disparando compilações e testes automatizados: Lição três, acionando compilações e
testes automatizados. Bem-vindo à lição
três do módulo cinco. Nesta lição,
exploraremos como
automatizar totalmente o processo de
acionamento de compilações
e testes sempre que um novo código for enviado Esse é um dos aspectos mais
importantes de uma integração contínua
ou pipeline de CI. Ele garante que
todas as alterações feitas seu aplicativo de mainframe
sejam
criadas e testadas automaticamente sem intervenção
manual Ao final desta lição, você saberá como
configurar seu pipeline de CI, criar e
testar
o gatilho com eficiência e como configurar
notificações e ciclos de
feedback para manter
os desenvolvedores Vamos mergulhar. Por que
automatizar compilações e testes A automação está no centro
de qualquer pipeline do CICD. Automatizar o processo
de criação e
teste de seu código
sempre que novas alterações são
feitas garante que os
erros sejam detectados precocemente e que os desenvolvedores recebam feedback
imediato
sobre Isso é especialmente importante em ambientes de
mainframe,
onde os sistemas legados podem ser complexos e os testes
manuais podem ser demorados
e propensos a erros A automação de compilações e testes oferece vários benefícios importantes Detecção precoce de problemas. Quanto mais cedo você detectar bugs
ou problemas de integração, mais fácil será corrigi-los. Feedback mais rápido para desenvolvedores. O feedback imediato
permite que os desenvolvedores saibam se o código
funciona conforme o esperado. Consistência.
Compilações e testes automatizados garantem que todas as alterações de
código sejam
tratadas da mesma forma, reduzindo a variabilidade
e o erro humano Escalabilidade. A automação
permite que seu pipeline de CI lide com
mudanças grandes e frequentes com mais eficiência. Automatizando o processo de
acionamento de faturas e testes. Para automatizar totalmente
as faturas e os testes, precisamos configurar
o pipeline de CI para que, sempre que o código for
enviado ao repositório, o Jenkins ou a
ferramenta de CI de sua escolha acione
automaticamente
as etapas apropriadas de criação e teste apropriadas Um, usando web hooks para
acionar faturas automaticamente. A forma mais comum de
automatizar faturas é usando web hooks Um web hook é um mecanismo que
envia dados em tempo real de um aplicativo para outro sempre que ocorre um
evento específico. No nosso caso, o evento é um commit de código ou pull
request para o repositório Aqui está a
instrução passo a passo de como configurá-lo. Primeiro, limpe seu repositório Git. No seu repositório Git,
por exemplo, GitLab ou Github, configure um web hook que aponte Dois, URL do web hook. O web hook deve
enviar uma notificação ao Jenkins sempre que um
novo código for enviado Três, acionar o trabalho de Jenkins. Jenkins recebe a notificação do
webhook e aciona o trabalho de construção
associado ao repositório .
Vamos dar um exemplo. sistema de
processamento de empréstimos baseado em carvão do Banks usa ganchos para acionar
construções e testes Sempre que o código é confirmado, o webhook do Gitlab
notifica o Jenkins, que inicia
automaticamente o pipeline Os desenvolvedores recebem
feedbacks em minutos, reduzindo o tempo entre a
codificação e Configurando a queda do Jenkins. Se você não puder usar web hooks, outra opção é
configurar o Jenkins para verificar
periodicamente se há alterações no
repositório Isso não é tão eficiente
quanto os web hooks, mas pode ser uma alternativa
útil se seu ambiente não
suportar a integração de web hooks Passo a passo. Um, configuração
decrescente. No Jenkins, navegue até
a página de configuração do trabalho e ative a opção Paul SEM Segundo, defina a frequência de queda, defina com que frequência o Jenkins deve verificar se há alterações no
repositório Por exemplo, a cada 5 minutos. Por exemplo, uma
empresa de logística com um sistema de
gerenciamento de inventário de mainframe usa Jenkins Falling a cada 10 minutos para verificar se há atualizações na
base de código Se o Jenkins detectar novos commits, ele acionará o pipeline para
criar e testar o criar e Executando testes automatizados
após cada compilação. Depois que a compilação é acionada, a próxima etapa é
executar testes automatizados. Os testes automatizados garantem que quaisquer novas alterações não introduzam bugs nem interrompam a funcionalidade
existente. Jenkins pode ser configurado para executar
automaticamente testes unitários, testes de
integração
e testes de regressão como parte do pipeline de CI Um, definindo estágios de teste
no pipeline do Jenkins. Nos pipelines do Jenkins,
você pode definir estágios de
teste que são executados após
a conclusão da compilação Esses estágios são
essenciais para garantir a qualidade
do código antes que qualquer alteração
seja mesclada ou implantada estágios típicos podem incluir testes
unitários que garantem
que os componentes
ou módulos individuais funcionem corretamente. Teste de integração,
que verifica se os diferentes módulos ou sistemas interagem conforme o esperado,
e teste de regressão, que garante que novas mudanças não violem os recursos
existentes Aqui está um exemplo do
Jenkins Pipeline. Configurando ciclos de notificação e feedback para desenvolvedores Após a execução da compilação e do teste, os desenvolvedores precisam saber se suas alterações
foram bem-sucedidas. Jenkins fornece uma variedade de opções de notificação para informar os desenvolvedores sobre o status de suas compilações, testes
e Configurando notificações por e-mail. A forma mais simples e
comum de
notificar os desenvolvedores é
por meio de alertas por e-mail. Jenkins pode
enviar e-mails automaticamente aos desenvolvedores sempre que uma compilação falhar ou quando
os testes forem aprovados. Passo a passo. Primeiro, instale o plug-in de
extensão de e-mail no Jenkins. Na configuração do trabalho, habilite a
notificação por e-mail e especifique os endereços de e-mail dos membros da equipe que
devem receber atualizações. Personalize o conteúdo do e-mail
para incluir registros de compilação, resultados de
testes e detalhes de erros. Usando o Slack ou outras ferramentas
de mensagens. Para equipes que preferem mensagens em tempo
real, Jenkins também pode
ser integrado ferramentas como Slack ou
Microsoft Isso permite que os desenvolvedores recebam
notificações instantâneas quando as compilações ou os testes falham sem
esperar por atualizações por e-mail Passo a passo. Instale o plug-in de
notificação do Slack no Jenkins Configure o plug-in com o espaço de trabalho do Slack e as informações
do canal Adicione uma ação de pós-compilação para enviar uma notificação ao Slack após conclusão de
cada compilação ou teste Por exemplo, uma empresa de varejo usa notificações do Slack
em seu pipeline do Jenkins Sempre que o
código de um desenvolvedor falha na criação, ele recebe uma mensagem
imediata no canal do Slack da equipe, com
detalhes sobre o que deu errado e links para
os blogs de criação Principais conclusões desta lição. Em primeiro lugar, automatizar compilações
e testes garante que cada alteração de código seja validada de forma rápida
e consistente, reduzindo a chance de erros na troca de Segundo, os web hooks são a
maneira mais eficiente de acionar faturas automaticamente quando um
novo código é confirmado enquanto o Jenkins palling pode
servir como uma Três
estágios automatizados, como unidade, integração e regressão,
são cruciais para garantir que o novo código não quebre a
funcionalidade existente Quatro: notificações e ciclos de feedback mantêm
os desenvolvedores informados, garantindo que eles possam resolver os
problemas assim que eles surgirem Atividade de ganho.
Configure um web hook no seu repositório Git
para acionar compilações automaticamente no Jenkins
sempre que Configure seu
pipeline Jenkins para executar testes de regressão e integração de
unidades após cada compilação Configure
notificações por e-mail ou Slack para
alertar os desenvolvedores quando a
compilação ou o teste falharem O que vem a seguir? Na próxima lição, exploraremos as melhores práticas para pipelines de CI em mainframes Você aprenderá como evitar armadilhas
comuns durante a configuração do pipeline de
CI e descobrirá estratégias para
otimizar e escalar pipelines de
CI em
21. Aula 4: melhores práticas para pipelines de IC em Mainframes: Lição quatro, melhores práticas para pipelines de CI em mainframes Bem-vindo à lição
quatro do módulo cinco. Nesta lição, vamos explorar as melhores práticas
que ajudam a garantir que seu pipeline de CI de
integração contínua seja otimizado para o ambiente de
mainframe Identificaremos
armadilhas comuns que você deve evitar ao configurar
seu pipeline de CI e discutiremos estratégias
para otimizar e escalar
seu pipeline para lidar com fluxos de trabalho
complexos Ao final desta lição, você entenderá
como criar um pipeline de CI robusto e
escalável
que pode simplificar seu processo de desenvolvimento e melhorar a qualidade do código
para sistemas de mainframe Vamos começar.
Hum, armadilhas comuns a serem evitadas durante a configuração do
pipeline de CI Configurar um pipeline de CI em um ambiente de mainframe
pode ser um desafio Vamos discutir algumas
das armadilhas mais comuns
e como evitá-las. Complicando demais o
pipeline desde o início. Um dos maiores
erros que as equipes cometem é complicar demais seu pipeline de
CI desde o início Embora esteja tentando incluir todas as automações possíveis, isso pode causar tubulações
inchadas difíceis
de manter Melhor prática Comece de forma simples
e construa gradualmente. Concentre-se no essencial,
automatizando compilações, executando testes básicos e fornecendo feedback imediato
aos É preciso estabelecer um pipeline
estável, adicionar recursos mais avançados, como automação de
implantação
ou sites de teste complexos. Por exemplo, uma
instituição financeira que criou um pipeline de CI para o sistema bancário da Cobal inicialmente tentou
automatizar tudo,
criar testes, revisões de código O pipeline ficou lento
e propenso a erros. Ao reduzir primeiro apenas
as compilações e os testes unitários, eles estabilizam o
pipeline antes de adicionar
gradualmente outros elementos Ignorando o desempenho do pipeline. Em um ambiente de mainframe, as compilações e os testes podem levar mais tempo devido à
complexidade dos sistemas Chamar de armadilha é ignorar o desempenho do
pipeline, o que leva a ciclos de
feedback lentos e melhor prática é
otimizar o pipeline para aumentar a velocidade sempre que possível. Paralelize compilações e
testes para reduzir gargalos e evitar etapas desnecessárias no agregam Por exemplo, uma empresa de logística percebeu que seu pipeline de CI demorou mais de uma hora para ser concluído, atrasando o feedback dos desenvolvedores Ao paralelizar o teste de
unidade e integração, eles reduzem o
tempo total do pipeline para 15 minutos, melhorando
significativamente Não mantendo o gasoduto. Os dutos de CI requerem manutenção
regular. Com o tempo, os testes podem
ficar desatualizados, scripts de
construção podem
precisar ser atualizados e novas ferramentas ou integrações
podem ser necessárias Negligenciar a
manutenção da tubulação pode levar a falhas
ou As melhores práticas revisam
e atualizam regularmente o pipeline. Trate o pipeline
como qualquer outro código, garanta que sua versão seja controlada, testada e
refatorada periodicamente Por exemplo, o pipeline de CI de uma
seguradora começou a falhar depois de introduzir uma nova ferramenta de teste para seu aplicativo baseado em
PL One Eles não haviam atualizado
seu pipeline para se
integrar a uma nova ferramenta
que causava falhas na construção Depois de atualizar a configuração do
pipeline, eles restauraram a estabilidade. Falta de cobertura de teste adequada. Outra armadilha é ter cobertura de teste
insuficiente
no pipeline de CI Sem testes automatizados suficientes, ambas as alterações podem introduzir
bugs que não são detectados, causando problemas na produção Na melhor prática, implemente
uma cobertura abrangente de testes, incluindo teste unitário,
teste de integração e teste de regressão Garanta que seu teste
cubra componentes essenciais de seus aplicativos de mainframe.
Vamos dar um exemplo. Uma empresa de assistência médica
tem vários problemas em seu
ambiente de produção porque seu pipeline de CI
incluía apenas testes unitários. Ao adicionar testes de integração
e regressão, eles detectaram problemas
precocemente e reduziram o número de bugs que
chegavam à produção Estratégias para otimizar pipelines de
CI em mainframes. Agora que abordamos
as armadilhas comuns, vamos explorar estratégias
para otimizar e escalar os pipelines de CI no ambiente de mainframe Primeiro, paralelize
compilações e testes. À medida que seu pipeline de CI
cresce em complexidade, o
tempo necessário para executar compilações
e testes aumentará Uma das melhores maneiras de otimizar
seu pipeline é executar compilações e testes em
paralelo. Como fazer isso? Use o Jenkins ou outras ferramentas de
CI para dividir seu pipeline em vários
estágios e executá-lo simultaneamente Por exemplo, você pode
executar compilações de paralelepípedos e testes de
integração
ao mesmo tempo para
reduzir o tempo geral do pipeline Vamos dar um exemplo.
A agência governamental implementou a paralogização em seu pipeline de CI de mainframe, permitindo que eles construíssem
seu sistema de processamento de impostos
e executassem seu sistema de processamento de impostos e executassem Isso reduziu o tempo de
tubulação pela metade. Em segundo lugar, use cache
e artefatos. cache de compilações pode economizar tempo ao reutilizar partes de compilações
anteriores, especialmente se as
mesmas dependências forem necessárias Da mesma forma, artefatos como código
compilado ou resultados de testes podem ser compartilhados entre os estágios para evitar etapas redundantes
. Como fazer isso. Configure o armazenamento em cache no
Jenkins para armazenar artefatos
criados que não precisam ser reconstruídos Isso é particularmente útil para grandes bases de código ou compilações
com muitas dependências Por exemplo, o sistema de inventário de
mainframe de uma empresa de varejo estava demorando muito para ser construído porque cada estágio baixava
as mesmas dependências Ao usar o cache de compilação, eles reduziram o tempo de construção em 30% Em terceiro lugar, implemente
registros e monitoramento robustos. À medida que seu pipeline
se torna mais complexo, é importante
ter um registro
e um monitoramento robustos . Isso ajudará você a identificar
e resolver problemas rapidamente quando algo
der errado. Como fazer isso. Configure o Jenkins
ou sua ferramenta de CI para gerar registros detalhados para
cada estágio de construção e teste Integre
ferramentas de monitoramento como Prometheus ou Grafana para monitorar o desempenho do seu pipeline ao
longo do tempo Por exemplo, uma empresa de telecomunicações implementou o monitoramento em tempo real
de seu pipeline de CI, permitindo identificar
rapidamente gargalos e problemas em estágios específicos de Isso reduziu o tempo de inatividade e
melhorou a confiabilidade da tubulação. Ou escale com uma construção distribuída. À medida que sua equipe cresce e seus aplicativos de mainframe
se tornam mais complexos, um único servidor de CI pode não
ser capaz de lidar com a carga Escalar seu pipeline com compilações
distribuídas permite
lidar com mais compilações
e testes simultâneos. Como fazer isso. Use agentes Jenkin para
distribuir compilações em
vários servidores Isso garante que seu
pipeline possa lidar com mais tarefas em paralelo sem
sobrecarregar uma única máquina Um exemplo: um grande banco com várias equipes trabalhando
em diferentes partes de
seu sistema de mainframe vende seu pipeline Jenkins CI
usando construções distribuídas Ao aproveitar vários servidores, eles garantem que seu
pipeline possa lidar com confirmações
frequentes de código de
várias equipes sem Principais conclusões desta lição. Primeiro, comece de forma simples com
seu pipeline de CI, concentrando-se nas tarefas essenciais de
automação antes de aumentar a complexidade. Segundo, otimize o desempenho do
pipeline paralelizando compilações e testes usando armazenamento em cache e mantendo os pipelines Três, mantenha seu pipeline
atualizando,
criando scripts ou configurações regularmente criando scripts ou configurações para manter o processo de CI
eficiente e eficaz Quatro, escale seu
pipeline implementando compilações
distribuídas
e monitoramento robusto para lidar com cargas de trabalho mais complexas no ambiente de mainframe Atividade de ganho. Revise a configuração
atual do pipeline de CI. Identifique quaisquer estágios ou etapas que possam ser
otimizados para desempenho. Por exemplo, paralelizando
testes e armazenando artefatos em cache. Implemente pelo menos uma estratégia de
otimização em seu pipeline de CI. Por exemplo, habilite o armazenamento
em cache em estágios de teste paralelos. Em terceiro lugar, monitore o
desempenho do seu pipeline
nas próximas semanas
e avalie se a otimização
melhorou os tempos de construção e teste. O que vem a seguir? No próximo módulo,
exploraremos automação da implantação e da entrega
contínua ou CD Você aprenderá sobre
os principais princípios do CD
contínuo e
como ele difere integração
contínua
e como configurar pipelines de implantação
automatizados para aplicativos de mainframe
22. Aula 1: introdução à entrega contínua (CD): Bem-vindo ao Módulo seis, automatiza a implantação e a entrega
contínua de CD Neste módulo, você
aprenderá como automatizar a implantação de aplicativos de
mainframe
e integrar
o aplicativos de
mainframe
e integrar CD de entrega
contínua
em seus Ao final deste módulo, você entenderá
os principais conceitos do CD e como implementá-lo em ambientes de
mainframe, garantindo lançamentos mais rápidos e
confiáveis Lição 1, introdução à entrega
contínua ou CD. Bem-vindo à primeira lição
do Módulo seis. Nesta lição,
apresentaremos os conceitos de
entrega contínua ou CD, discutiremos suas metas e destacaremos as diferenças entre entrega
contínua e implantação
contínua. Compreender o CD é fundamental para automatizar o processo de
implantação, que permite
às organizações lançar software rápida e confiável,
mantendo a estabilidade
de seus sistemas,
incluindo ambientes complexos
de incluindo ambientes complexos Ao final desta lição, entenderemos que é entrega contínua,
como ela se encaixa no fluxo
de trabalho do
DevOps e por que ela é crucial para a modernização do
mainframe Vamos mergulhar. O que é entrega
contínua ou CD? entrega contínua ou CD é uma
prática de desenvolvimento de software em que as alterações de código são preparadas automaticamente
ou liberadas para produção. Ele se baseia na integração contínua ou CI, garantindo que todas as alterações de código sejam
continuamente testadas, criadas e empacotadas de forma que estejam sempre
prontas para implantação No entanto, a implantação real ainda
é uma etapa manual ou requer um processo de aprovação garanta o controle e a governança
das versões de produção. Em
ambientes de mainframe, o CD permite que equipe modernize os sistemas legados oferecendo
mudanças em incrementos menores e
mais gerenciáveis, incrementos menores e
mais gerenciáveis, reduzindo os riscos Principais objetivos da entrega
contínua. Um, testes
e embalagem automatizados. Cada alteração de código é
testada e empacotada automaticamente, garantindo que esteja pronta para
implantação a qualquer momento Dois, lançados sob demanda. Com cada mudança pronta para
implantação, as equipes podem lançar atualizações
conforme sua conveniência, minimizando o tempo de inatividade e Três, intervenção
manual reduzida. Automatizando a maior parte do pipeline, C reduz a necessidade etapas
manuais no processo de
implantação,
melhorando a consistência e Para melhorar os ciclos de feedback. O City permite um
feedback mais rápido sobre as mudanças, garantindo que os problemas sejam
detectados logo no início. Por exemplo, uma
organização de saúde usa City para automatizar os
testes e empacotar as atualizações de seu sistema de gerenciamento de
pacientes baseado em CBL Sempre que um novo recurso
ou correção de bug estiver pronto, poderá ser implantado em poucas horas, garantindo que o sistema permaneça confiável sem
longos Como o CD se encaixa no fluxo de trabalho do
DevOps. A entrega contínua é um componente essencial da abordagem
de DevOps, que enfatiza a
colaboração entre as equipes de
desenvolvimento e operações para garantir lançamentos de software
mais rápidos e confiáveis Normalmente, o CD é implementado após a
integração contínua ou CI, que automatiza o processo de
integração de alterações de código
e execução Depois que o código passa por todos os testes
e é compilado com êxito, o processo do CD assume o controle, preparando o aplicativo
para implantação No entanto, em CD, a implantação real na produção ainda é
uma etapa controlada. Isso é fundamental em
setores como bancos ou saúde, onde uma
falha na implantação pode ter
consequências significativas. CD em ambientes de mainframe. Para mainframes, CD significa integrar ferramentas modernas
com sistemas legados Ferramentas como IBM, Urban
C Deploy ou AnswerB podem automatizar o empacotamento e implantação de
aplicativos de mainframe, reduzindo a dependência de processos
manuais e
garantindo a consistência em todas garantindo Um exemplo: um banco integra seus
sistemas de mainframe antigos com práticas de CD Sempre que um desenvolvedor
atualiza a base de código Cobol, testes
automatizados são executados e o aplicativo é
empacotado para implantação No entanto, devido aos
rígidos
requisitos de conformidade, a etapa final, a
implantação na
produção, exige aprovação de um gerente sênior, garantindo que
os padrões de governança sejam atendidos. Diferenças entre entrega
contínua e implantação contínua. Embora a entrega contínua, a cidade e a implantação contínua
pareçam semelhantes, elas têm diferenças distintas. Vamos explorar essas diferenças e como elas afetam
o processo de lançamento. Entrega contínua ou CD, o objetivo é garantir que cada alteração de código seja
automaticamente testada, criada e pronta para implantação. Para controle de liberação,
as implantações na produção são manuais
ou exigem aprovação Nesse caso, é adequado para ambientes que exigem
conformidade, governança ou aprovação manual antes da
implantação na produção,
por exemplo, bancos
ou serviços de saúde Implantação contínua, seu objetivo é que, para cada
alteração de código que passe no teste, ela seja automaticamente implantada na produção sem qualquer intervenção
manual Para controle de liberação, a
implantação na produção é automática
após a aprovação no teste. Nesse caso, é adequado
para ambientes com requisitos de
conformidade
menos rigorosos ou a velocidade é a
maior prioridade Por exemplo, plataformas
de comércio eletrônico. A principal diferença na implantação da entrega
contínua é manual, e há um ponto de
decisão de controle antes do lançamento da produção. Na implantação contínua, todo
o processo desde a confirmação do código até a
liberação da produção, é automatizado. Um exemplo de entrega
contínua. Uma
organização de assistência médica automatiza a embalagem e o teste
do sistema de
gerenciamento de pacientes testado Com o CD, as atualizações estão
sempre prontas para implantação, mas as
versões de produção ainda exigem aprovação
gerencial
para garantir a conformidade Vamos dar outro exemplo. Uma empresa de varejo que administra uma
plataforma de comércio eletrônico on-line usa implantação
contínua
porque a velocidade é fundamental para a implantação de novos
recursos e correções de bugs Esse DicdPipeline implanta
automaticamente cada compilação bem-sucedida
diretamente Por outro lado, uma agência tributária
do governo usa a entrega contínua com um processo de aprovação manual
para manter o controle sobre as implantações e garantir a
conformidade com os padrões legais Benefícios da entrega contínua em ambientes de mainframe. A adoção da entrega contínua em ambientes de
mainframe oferece vários benefícios
significativos, especialmente quando se trata de
modernizar Vamos explorar alguns
desses benefícios. Lançamentos únicos, mais rápidos
e mais confiáveis. Com a
entrega contínua, as atualizações são empacotadas e prontas
para lançamento a qualquer momento, permitindo que as equipes implementem mudanças incrementais
menores com mais frequência Isso reduz o risco de grandes
lançamentos disruptivos e permite que as organizações forneçam
recursos com mais rapidez Segundo, reduza o risco e o tempo de inatividade. Ao automatizar os processos de teste
e empacotamento, CD garante que somente atualizações estáveis e de
alta qualidade
sejam implantadas Os testes automatizados ajudam a detectar problemas logo no início, reduzindo o risco
de erros produção e
minimizando o tempo de inatividade Três, melhor colaboração
entre as equipes. CD rompe a lacuna entre as equipes de
desenvolvimento e operações ao automatizar o processo de
empacotamento e preparação do código para implantação Isso reduz erros manuais
e manuais, resultando em uma colaboração mais suave
e lançamentos mais rápidos Quatro, melhoria contínua.
Com o City instalado, as equipes podem coletar
feedback mais rapidamente, aprender com cada lançamento e melhorar
continuamente
seus processos. Isso é particularmente valioso para equipes de mainframe que
estão fazendo a transição desenvolvimento
tradicional em
cascata para equipes de mainframe que
estão fazendo a transição do desenvolvimento
tradicional em
cascata para metodologias ágeis. Por exemplo, uma
seguradora usa a cidade
para gerenciar a implantação de
seu sistema de
processamento de sinistros baseado em paralelepípedos Ao lançar pequenas
atualizações com mais frequência, eles reduzem o risco de
interrupções e garantem que novos recursos sejam
fornecidos sem interromper as operações diárias Principais conclusões desta lição. Uma entrega contínua ou CD automatiza o processo de preparação do código
para implantação, garantindo que todas as atualizações testadas e estejam prontas para lançamento Segundo, o CD difere da implantação
contínua porque
a implantação na produção é uma etapa manual ou controlada, ideal para ambientes com requisitos
rígidos de conformidade ou
governança. terceiro lugar, a adoção do CD em ambientes de
mainframe
pode reduzir riscos, melhorar a colaboração
e acelerar o lançamento de novos
recursos e atualizações Atividade de ganho. Identifique
um aplicativo de mainframe em sua organização que possa se beneficiar da adoção da entrega
contínua Analise como a automação do processo de
empacotamento e teste melhoraria o
ciclo de lançamento desse aplicativo Crie um plano de alto nível
para implementar o CD, descrevendo quais etapas do processo de implantação
podem ser automatizadas O que vem a seguir? nos
aprofundaremos na automação implantações de
mainframe e aprenderemos
sobre ferramentas e estratégias para automatizar implantações em ambientes de
mainframe,
incluindo como criar scripts de
implantação para Cobo, incluindo como criar scripts de
implantação para Cobo Na próxima lição,
nos
aprofundaremos na automação de implantações de
mainframe e aprenderemos
sobre ferramentas e estratégias para
automatizar implantações em ambientes de
mainframe,
incluindo como criar scripts de
implantação para Cobo, AL one e outros aplicativos legados.
23. Aula 2: automatizando implantações de mainframe: Lição dois, automatizando implantações de
mainframe. Bem-vindo à lição
dois do módulo seis. Nesta lição,
exploraremos como automatizar
a implantação
de aplicativos de mainframe Abordaremos as ferramentas essenciais para automatizar implantações,
como IBM, urban co deploy, e também abordaremos processo de criação de scripts de
implantação que simplificam e agilizam suas Ao final desta lição, você terá uma sólida
compreensão das ferramentas e
estratégias necessárias para automatizar as estratégias necessárias para automatizar implantações de aplicativos de
mainframe, tornando seus lançamentos mais consistentes,
confiáveis e rápidos Vamos começar.
A importância de automatizar as implantações de
mainframe Nas práticas modernas de DevOps, automação da
implantação
é um componente essencial do pipeline de CD de
entrega contínua Isso não é diferente em ambientes de mainframe em
que a automação de implantações pode
melhorar significativamente a velocidade, a
confiabilidade e a consistência
do lançamento ambientes de mainframe geralmente
dependem de sistemas legados que tradicionalmente envolviam processos de
implantação manual As implantações manuais estão
sujeitas a erros humanos, demoram mais e são mais difíceis de reproduzir
de automação dessas
implantações garante que aplicativos sejam implantados
sempre da mesma forma,
reduzindo os riscos e melhorando reduzindo os riscos Os benefícios de automatizar as implantações de
mainframe incluem, por um lado, a consistência. automatização das implantações
reduz o risco de erros, garantindo que o mesmo processo de implantação
seja seguido Dois, velocidade. As implantações automatizadas podem ser executadas muito
mais rapidamente do que os processos manuais, reduzindo o tempo de inatividade e
melhorando a produtividade Três, confiabilidade. Com scripts de
implantação automatizados, você pode garantir que todas
as etapas necessárias sejam executadas corretamente
em todos os ambientes, resultando em lançamentos mais
confiáveis. Vamos dar um exemplo. Uma empresa de varejo que gerencia
um sistema de inventário em um
mainframe baseado em paralelepípedos automatizou seu processo de implantação
usando o IBM Urban C Isso reduziu o
tempo de implantação em 50% e eliminou os erros que frequentemente ocorriam durante implantações
manuais Ferramentas para automatizar implantações de
mainframe. Várias ferramentas estão disponíveis para automatizar implantações em
ambientes O objetivo dessas ferramentas é padronizar e automatizar
o processo de implantação,
garantindo que os aplicativos sejam lançados forma consistente e sem Implantação do IBM Urban C. O IBM Urban C Deploy é uma ferramenta
popular
de automação de implantação usada em ambientes de mainframe. Ele permite
automatizar e orquestrar implantações
complexas
em uma variedade de ambientes Urban C Deploy se integra
bem com outras ferramentas da Dabo, tornando-o uma parte essencial da modernização
das implantações de mainframe Ele apresenta implantações orquestradas. Ele permite que você defina,
gerencie e execute processos
de implantação do desenvolvimento à produção. Gerenciamento do ambiente,
ele suporta a
implantação de aplicativos vários ambientes
com o mesmo processo, garantindo a consistência
nos
ambientes de desenvolvimento, teste e produção suporte de reversão integrado ao mecanismo de
reversão ajuda a reverter para as versões anteriores do
aplicativo na Vamos dar um exemplo. Uma instituição bancária modernizou seu processo de implantação para seu sistema bancário principal
baseado em CBO e JCL usando o IBM Urban code deploy Com o código urbano,
o banco conseguiu automatizar implantações
em várias regiões, reduzindo a intervenção manual e melhorando a velocidade
de implantação de atualizações CBL para mainframes. O NCBO é outra ferramenta de
automação poderosa que pode ser usada em ambientes de
mainframe Ele é amplamente usado para automação de
infraestrutura e
também pode gerenciar a
implantação de aplicativos. Embora o NCB seja mais comumente associado à automação de nuvem
e servidor, ele oferece suporte a
ambientes de mainframe com módulos projetados
especificamente para
gerenciar Os principais recursos incluem arquitetura sem
agentes. AnsiBL não requer agentes
adicionais nos sistemas que
gerencia, torna leve
e fácil de usar Manuais para automação. O Ansible usa playbooks,
que são arquivos Yamal, definem a sequência de Integração com o CICD. O Ansibl se integra bem ao
Jenkins e a outras ferramentas CICD, permitindo a automação perfeita
das tarefas de implantação Vamos dar um exemplo. Uma empresa de
logística que gerencia um aplicativo baseado em PLO automatizou suas implantações
usando o AnsibPlayBook Isso permitiu que eles gerenciassem
vários ambientes a partir de uma configuração central,
reduzindo
significativamente o tempo e o esforço
necessários para cada versão. Criação de scripts de implantação
para aplicativos de mainframe. Para automatizar suas implantações de
mainframe, você precisará criar
scripts de Esses scripts definem
as etapas necessárias para implantar um aplicativo,
como compilar código, transferir arquivos,
configurar ambientes e executar Aqui estão as principais
etapas para criar um script de implantação para
um aplicativo de mainframe Primeiro, defina o processo
de implantação. A primeira etapa é definir
o processo de implantação. Por exemplo, a
implantação de um aplicativo cobol ou PL one pode
envolver a compilação do código, a transferência de arquivos para o ambiente de destino,
a tarefas de configuração
e a
execução do e Exemplo de processo. Primeiro passo, compile o código CBL. Etapa 2: transferir os binários compilados para
o ambiente de teste. Etapa três, execute o JCL
para iniciar o aplicativo. Segundo, crie um script
para automação. Depois que o processo estiver definido, você poderá criar o script
real. Se você estiver usando o IBM
Urban C Deploy, definirá esse processo, a ferramenta usando seus recursos de
automação de implantação. Se você estiver usando uma
ferramenta como o answerable, crie
um manual do Yamal que descreva Aqui está um exemplo de
script de implantação usando answervo. Esse script simples
compila o código cobble, transfere os binários para o ambiente de destino
e
executa o JCL para
executar o Três, teste o script
de implantação. Antes de usar seu
script de implantação na produção, é fundamental testá-lo em um
ambiente de preparação ou teste Certifique-se de que todas as etapas sejam
executadas conforme o esperado e que o aplicativo seja implantado corretamente
sem erros Dicas de teste, teste primeiro em um
ambiente de desenvolvimento ou teste Valide se todos os
arquivos foram transferidos corretamente e se o
aplicativo é executado conforme o esperado Verifique se há problemas
específicos do ambiente , como bibliotecas de significados, bibliotecas ausentes ou permissões
incorretas. Principais conclusões desta lição. Primeiro, a
automação da implantação garante que os aplicativos sejam implantados de
forma consistente e confiável, reduzindo o risco
de erro humano Segundo, IBM, Urban C Deploy e ansib são ferramentas poderosas para automatizar implantações de
mainframe, cada uma oferecendo recursos para agilizar ansib são ferramentas poderosas
para automatizar implantações de
mainframe,
cada uma oferecendo recursos para agilizar
o processo de implantação. Em terceiro lugar, criar scripts de
implantação envolve definir o processo de
implantação, escrever o script na
ferramenta apropriada e testá-lo
minuciosamente em um ambiente que
não seja de produção. Atividade de ganho. Escolha um aplicativo de
mainframe em sua organização que atualmente tenha um processo de implantação manual Crie um plano de alto nível para automatizar essa
implantação usando IBM, Urban co Deploy e Cibl
ou Escreva um
script de implantação simples para automatizar as etapas mais básicas
do processo de implantação, por exemplo, transferir arquivos ou
compilar código. O que vem a seguir? Na próxima lição,
exploraremos a configuração de mecanismos de
reversão Você aprenderá a implementar mecanismos de
reversão em ambientes de
mainframe
e automatizar o processo em caso de falhas na Isso garante que seu sistema permaneça estável e operacional, mesmo que a implantação
não ocorra conforme o planejado.
24. Aula 3: como configurar mecanismos de rollback: Lição três,
configurando mecanismos de reversão. Bem-vindo à lição
três do módulo seis. Nesta lição,
vamos explorar um dos aspectos mais importantes
da aspectos mais importantes
da implantação, os mecanismos
de reversão As reversões garantem que, quando algo der errado
durante uma implantação, você possa
reverter o sistema de forma rápida e eficiente ao estado estável
anterior Isso é particularmente
importante em ambientes de
mainframe,
onde o custo do
tempo de inatividade pode ser extremamente alto e os erros podem ter impactos
significativos nos negócios Ao final desta lição, você entenderá
como implementar e automatizar mecanismos de reversão em suas implantações de mainframe,
garantindo que seu
sistema permaneça
estável mesmo quando as implantações garantindo que seu
sistema permaneça estável mesmo quando Vamos mergulhar. Por que os mecanismos
de reversão são cruciais nas implantações de
mainframe Em pipelines modernos
de entrega contínua, implantação de código é um processo
automatizado No entanto, nem toda
implantação ocorre sem problemas. Bugs, problemas de configuração ou falhas de
hardware podem causar problemas que afetam a
estabilidade do sistema. Os mecanismos de reversão permitem que você reverta rapidamente o sistema ao último estado válido conhecido sem afetar Principais benefícios das reversões. Primeiro, minimize o tempo de inatividade. As reversões ajudam a restaurar rapidamente a
funcionalidade do sistema, minimizando as interrupções para
os usuários Segundo, reduza o risco. Com um
mecanismo de reversão automatizado, você reduz o risco de
falhas nas implantações
afetarem Três, melhore a confiança. Desenvolvedores e equipes de operações podem implantar mudanças com
mais frequência, sabendo que existe uma rede de
segurança no caso algo dar errado.
Vamos dar um exemplo. Uma instituição financeira que
implantou atualizações seu sistema bancário
principal baseado em mainframe encontrou problemas durante
uma atualização crítica Devido à complexidade
do sistema, um bug passou despercebido
durante os testes Com um
mecanismo de reversão instalado,
eles rapidamente voltaram para a versão estável
anterior, evitando tempo de inatividade significativo
e Estratégias para implementar mecanismos de
reversão no ambiente de
mainframe implementação de
mecanismos de reversão no ambiente de
mainframe envolve um planejamento
cuidadoso e
as ferramentas certas Vejamos as
estratégias mais eficazes para
configurar reversões Estratégia de um controle de versão
para aplicativos de mainframe. Assim como o controle de versão é crucial em ambientes que não são de
mainframe, ele é igualmente importante
para sistemas de mainframe Ao rastrear todas as alterações seu aplicativo e em
suas configurações, você pode identificar facilmente para
qual versão reverter. Como funciona. Quando uma implantação falha, você pode usar o controle de versão, como Git ou código, ou tentar usar o software de
mainframe para recuperar a última versão da tabela
do seu Melhores práticas. Mantenha um histórico de todas as alterações
e configurações do aplicativo Use tags ou rótulos em seu sistema de controle de versão
para marcar versões estáveis. Por exemplo, uma empresa de
saúde usa o Git para rastrear alterações no código
Kobal. Cada versão estável é marcada
com um número de versão, facilitando a reversão
quando uma implantação falha. Estratégia dois: backups automatizados dos dados
e das configurações do mainframe Além de
controlar a versão do seu código, é essencial ter um backup
automatizado dos dados e das
configurações do ambiente Antes de implantar um novo código, os sistemas
automatizados podem capturar
instantâneos de bancos de dados e configurações que
podem ser restaurados se a implantação falhar.
Como funciona. Ferramentas como a automação
do sistema IBMZ podem fazer backup
automático seus dados e
configurações do sistema antes Em caso de falha, você pode
reverter não apenas o código, mas também restaurar os dados e as
configurações. Práticas recomendadas: agende backups
automáticos antes de cada implantação. Armazene o backup com segurança e garanta que
eles sejam testados regularmente
para garantir que funcionem Por exemplo, uma
empresa de telecomunicações automatiza os backups de seu sistema de cobrança
baseado em PL One antes de cada Quando uma implantação falha devido
a um erro de configuração, o backup permite que
a empresa restaure o sistema rapidamente. Estratégia três, implantações em Cary e
azul esverdeado. Estratégias avançadas de implantação como implantações canárias e implantações azul esverdeado,
permitem que você teste sua implantação em um subconjunto de
usuários antes de implementá-la totalmente Se a implantação causar problemas, você poderá reverter redirecionando tráfego para a
versão antiga do sistema Implantação do Canary,
implante primeiro
a nova versão em uma pequena porcentagem
de usuários Se não houver problemas, continue implantando
no restante do sistema Implantação azul e verde,
mantenha dois ambientes, um ativo, que é azul, e outro pronto para a nova
versão, que é verde. Implante no ambiente verde
e, se a nova
versão for estável, alterne todo o tráfego. Se houver uma falha, você pode voltar
rapidamente para
o ambiente azul. Melhor prática: use a implantação
canária
para implementações graduais,
minimizando Implemente a implantação azul e
verde em ambientes de
alta disponibilidade
para permitir reversões rápidas Por exemplo, uma agência tributária
do governo usa
implantações azul-esverdeadas para lançar atualizações em seu sistema de declaração de
impostos de mainframe Quando uma nova atualização causa problemas, ela simplesmente reverte o
tráfego para o ambiente antigo
sem afetar os usuários Como automatizar reversões em
caso de falhas na implantação. Depois de definir as
estratégias certas,
a próxima etapa é automatizar
o processo de reversão Isso garante que, quando
uma falha for detectada, a reversão ocorra
automaticamente sem esperar pela intervenção
manual Um, gatilhos de
reversão automatizados. automação da reversão
começa com a configuração números que detectam
falhas Esses acionadores podem ser
configurados com base em uma variedade de métricas, incluindo testes
reprovados Se a implantação falhar, um conjunto de testes predefinidos a reversão serão acionados Métricas de desempenho. Se o desempenho do sistema
diminuir após a implantação, mecanismos de
reversão poderão ser Registros de erros, padrões
de erro específicos nos registros podem ser usados
para acionar reversões Exemplo de configuração. Usando o
IBM Urban code Deploy, você pode configurar acionadores automáticos de
reversão com base Se uma implantação falhar, o código
urbano
inicia automaticamente o processo de reversão, restaurando a versão
anterior do aplicativo e
notificando
a equipe de aplicativo e
notificando
a equipe Dois processos de
reversão com script. Além dos acionadores
automáticos, você precisará de
scripts de reversão que automatizem o processo real de
reverter configurações de código ou bancos de dados reverter Aqui está um exemplo de
script de reversão que restaura backups e reinicia serviços em caso de falha na Este exemplo mostra como
restaurar backups, reverter binários
e reiniciar serviços em caso de falha Principais conclusões desta lição. Primeiro, os mecanismos de reversão são
essenciais para garantir que sistemas de
mainframe possam se recuperar
rapidamente de implantações com
falha sem Segundo, estratégias como controle de
versão, backups
automatizados e implantações
verde-azul-canário reduzem o risco de
falhas nas implantações e permitem Em terceiro lugar, automatizar as reversões com gatilhos e scripts garante
que o sistema possa voltar a um estado estável de forma rápida e confiável gatilhos e scripts garante
que o sistema possa voltar a um estado estável de forma rápida e confiável
. Atividade de aprendizagem. Identifique um
aplicativo de mainframe em seu ambiente que possa se beneficiar do mecanismo de
reversão automatizado Crie um plano para configurar backups
automatizados e scripts de
reversão para
esse aplicativo Teste seu mecanismo de reversão
simulando uma
implantação com falha em
um ambiente de teste
e verificando se o processo de reversão restaura
o sistema para um estado processo de reversão restaura
o sistema para estável. O que vem a seguir? Na próxima lição, exploraremos a implantação em ambientes
de preparação e produção Você aprenderá as
melhores práticas para implantar
aplicativos de mainframe em
ambientes de teste,
preparação e produção, ambientes de teste,
preparação e produção garantindo
implantações bem-sucedidas com o mínimo de
tempo implantações
25. Aula 4: implantação de ambientes de encenação e produção: Lição quatro, implantação em ambientes
de preparação e produção Bem-vindo à lição
quatro do módulo seis. Nesta lição, abordaremos as
melhores práticas para implantar aplicativos de
mainframe em as
melhores práticas para implantar ambientes
de teste, preparação e produção Um processo de implantação bem-sucedido garante que os aplicativos sejam exaustivamente testados em ambientes
inferiores antes de chegarem à produção, minimizando o tempo de inatividade e
garantindo a estabilidade do sistema Ao final desta lição, você poderá
implantar aplicativos com confiança e com risco
mínimo, seguindo estratégias
comprovadas para transições suaves
entre ambientes Vamos começar. Por que implantar a
preparação antes da produção Antes que um aplicativo
chegue à produção, é fundamental
testá-lo em ambientes que se
assemelham muito à produção,
mas sem o risco ambientes de preparação
fornecem um espaço em que o aplicativo pode ser
validado quanto ao desempenho, segurança e estabilidade
antes da implantação final Os principais benefícios do uso de um
ambiente de teste incluem validação em um ambiente
semelhante ao de produção ambientes de preparação
refletem de perto a produção, permitindo que você teste problemas
reais de desempenho, vulnerabilidades
de segurança
e funcionalidade Segundo, detecção precoce de problemas. Bugs,
problemas de configuração e gargalos de
desempenho
podem ser detectados e corrigidos antes que o
aplicativo chegue à produção Três, minimizando o tempo de inatividade. Aplicativos
exaustivamente testados têm menos probabilidade de causar aplicações ou
exigir reversões emergenciais, reduzindo as chances de
tempo de inatividade Por exemplo, uma
instituição financeira que implementa
um sistema de
processamento de transações baseado valida cada lançamento em um ambiente de teste onde simula Ao identificar
problemas na preparação, eles reduzem o
tempo de inatividade da produção em
40% durante os principais lançamentos Melhores práticas para implantação em ambientes de
teste e preparação A implantação em um ambiente de teste
e preparação deve ser uma parte fundamental do
seu pipeline de entrega contínua Vamos explorar as
melhores práticas que
garantem que suas implantações
sejam fáceis e confiáveis Primeira prática:
espelhe
ambientes de produção em preparação Quanto mais próximo seu
ambiente de preparação estiver da produção, mais precisamente você poderá
validar
a prontidão do seu
aplicativo Isso significa usar as
mesmas configurações, estruturas de
dados e arquiteturas de
sistema melhor prática é garantir que seu ambiente de preparação espelhe produção o mais
próximo possível,
incluindo
configurações de rede, incluindo
configurações de rede conexões de
banco de dados
e Por exemplo, uma
empresa de logística criou uma réplica exata de
seu
ambiente de mainframe de produção Ao executar
testes de ponta a ponta nesse ambiente, eles poderiam detectar problemas de
configuração que seriam impossíveis de
detectar apenas nos testes. Prática recomendada para testes
automatizados antes de preparar a implantação Antes da implantação para teste, seu aplicativo já deve ter passado por um
conjunto abrangente de testes automatizados Isso inclui testes unitários, testes de
integração, testes de
regressão
e testes de desempenho Melhor prática:
automatize o máximo
possível
do processo de teste antes de mover o
código para a preparação Configure ferramentas de CI de
integração contínua, como Jenkins, para acionar
testes automatizados após cada confirmação Por exemplo, uma empresa de telecomunicações automatizou mais
de 80% de seus testes, reduzindo os
esforços de validação manual na preparação Ao detectar a maioria dos
problemas antes da preparação, eles poderiam se
concentrar no desempenho e testes de
estresse em seu
ambiente terceira melhor prática é usar implantações em
canário ou azul esverdeado para preparação. Conforme discutido na lição
anterior, as canary e as implantações azul-esverdeadas
permitem que você libere
gradualmente
seus aplicativos uma
forma que Na preparação, isso significa implantar
primeiro o novo código em
parte do sistema e monitorar
seu comportamento antes de liberá-lo em todo
o ambiente melhor prática é usar implantações
canárias na preparação para introduzir
mudanças gradualmente e minimizar
o risco Dessa forma, você pode identificar qualquer problema antes de
uma implantação completa. Por exemplo, uma
empresa de comércio eletrônico que implementa um sistema de
gerenciamento de inventário baseado em mainframe usa uma
estratégia de implantação canária em estágio, que 10% do sistema gerencia a nova versão, enquanto
o restante permanece na versão o restante permanece Isso permitiu que eles detectassem e
corrigissem
rapidamente quaisquer problemas com a nova
versão antes do lançamento completo Melhor prática quatro: monitore
e registre tudo. monitoramento e o
registro detalhados são cruciais implantação no ambiente de preparação
e produção Isso permite que você
detecte e resolva problemas rapidamente, especialmente quando eles não aparecem imediatamente
após a implantação. Na melhor prática, configure sistemas de monitoramento
abrangentes, por exemplo, Grafana ou Prometheus, e mecanismos de
registro para
rastrear erros e anomalias de desempenho durante e após Na preparação, analise esses
registros e métricas de desempenho para garantir que tudo esteja funcionando conforme o esperado antes de
passar para a produção Por exemplo, um
profissional de saúde monitora o desempenho de seu sistema de gerenciamento de
pacientes baseado em mainframe
durante as implantações intermediárias Ao analisar
os registros de desempenho na preparação, eles evitaram falhas
críticas na produção que poderiam ter
afetado o atendimento ao paciente Implantação em
ambientes de produção. Quando chega a hora de
implantar na produção, seguir as melhores
práticas garante que a transição seja tranquila com risco mínimo de
falha ou tempo de inatividade Veja como obter implantações de
produção bem-sucedidas. Primeiro, planeje
janelas de inatividade ou evite-as. Embora o objetivo seja sempre
minimizar o tempo de inatividade, alguns
aplicativos de mainframe podem exigir breves períodos de inatividade durante Programar
e planejar adequadamente essas janelas é
essencial. Melhor prática. Se o tempo de inatividade for inevitável, programe-o
fora do horário de pico, garanta que todas as partes interessadas sejam informadas com antecedência e que haja um plano de
contingência para lidar com possíveis problemas Idealmente, busque implantações com
tempo de inatividade zero usando estratégias como implantação
azul Por exemplo, uma grande
seguradora usa implantações azul-esverdeadas para
evitar tempo de inatividade ao implementar
novos recursos para o sistema de processamento de sinistros
baseado em paralelepípedos sinistros
baseado em paralelepípedos Ao manter dois ambientes
ativos e alternar entre eles,
eles mantêm a
disponibilidade 24 horas por dia, sete dias por semana durante a implantação. Dois, execute o teste final
na produção. Mesmo após
testes rigorosos de preparação, é uma boa prática executar testes
básicos na produção para garantir que o
aplicativo esteja funcionando corretamente
com dados ativos Isso pode incluir testes de fumaça, testes aceitação
do usuário
ou verificações de desempenho. Melhores práticas: testes
automatizados de fumaça na produção imediatamente após a implantação para confirmar que a funcionalidade principal
do aplicativo está intacta Esse teste deve ser rápido
, mas completo o suficiente para detectar problemas
críticos. Vamos
dar um exemplo. Uma agência governamental que implanta
um sistema de declaração de impostos na
produção executa uma série de testes
automatizados nas principais
funcionalidades, como login, envio de
dados e Ao fazer isso, eles
garantem que o sistema funcione corretamente antes de
abri-lo para os usuários. Três, monitore em tempo real. Quando o aplicativo
está ativo na produção, monitoramento se torna
ainda mais crítico. monitoramento em tempo real
permite que você
detecte e responda rapidamente a qualquer degradação do
desempenho, erros ou comportamentos inesperados Na melhor prática, use
ferramentas como Dynatrace, Splunk ou Grafana para monitorar
sistemas de produção Configure alertas para
métricas importantes, como uso da CPU, consumo de
memória e tempos de resposta das
transações. Por exemplo, uma
empresa de varejo monitora seu sistema de
processamento de pedidos baseado em mainframe usando o Dynatrace alertas em tempo real notificam a equipe se houver
algum problema de desempenho, permitindo que ela resolva os problemas antes que
afetem os clientes. principais conclusões
desta primeira lição são que os ambientes de preparação
refletem a produção, fornecendo espaço para
validar o aplicativo em condições
reais Segundo, o teste automatizado garante que a maioria dos problemas seja
detectada antes da preparação, reduzindo o risco de
falhas na produção Três implantações, canary ou blue
green, minimizam o risco de interrupções,
permitindo que você teste novas Quatro: o monitoramento em tempo real e os testes
finais de produção
são essenciais para garantir implantações bem-sucedidas
com o mínimo de tempo de inatividade Atividade de aprendizado:
identifique um aplicativo em seu
ambiente de mainframe que possa se beneficiar de um processo de
implantação mais estruturado Crie um
plano de implantação que
inclua um ambiente de teste e uma estratégia canária ou azul verde Configure ferramentas de monitoramento para monitorar o desempenho durante as implantações de preparação e
produção
e implemente testes
automatizados em
ambos os O que vem a seguir? No próximo módulo, exploraremos a garantia de segurança e conformidade nos pipelines do
CICD Você aprenderá sobre os principais desafios de
segurança
na automação de implantações de mainframe
e descobrirá melhores práticas para proteger
seu pipeline de CICD e
proteger os dados e sistemas confidenciais de sua organização
26. Aula 1: considerações de segurança em CI/CD: Bem-vindo ao Módulo sete, garantindo segurança e
conformidade nos pipelines do CICD Neste módulo, você
aprenderá como proteger seus pipelines CICD e garantir a conformidade com as estruturas
regulatórias Ao final do
módulo, você estará equipado para proteger
seus sistemas de mainframe contra vulnerabilidades e, ao mesmo tempo, atender aos padrões de
segurança e conformidade
do setor Lição 1,
considerações de segurança no CICD. Bem-vindo à primeira lição
do Módulo sete. Nesta lição,
discutiremos os desafios de
segurança
que surgem ao automatizar implantações de
mainframe
em Embora os pipelines do CICD
tragam velocidade e eficiência aos processos de desenvolvimento
e implantação, eles também introduzem novos riscos É essencial integrar a segurança em todas as
etapas do seu pipeline, garantindo que seu código e seus sistemas permaneçam seguros. Ao final da aula,
você entenderá
os principais riscos de segurança em ambientes de mainframe
automatizados e como implementar
as melhores práticas para proteger seus pipelines contra
vulnerabilidades. Vamos mergulhar. Principais desafios de segurança na automação de implantações de mainframe À medida que as organizações adotam práticas de
DevOps e integram seus sistemas de
mainframe aos pipelines modernos do CICD, elas enfrentam mainframes lidam com
dados e transações essenciais, geralmente processando registros financeiros, de saúde ou
governamentais, o que torna as
violações de segurança especialmente caras Um, expandindo a superfície de
ataque. Você automatiza a implantação Ao automatizar o processo de desenvolvimento
e implantação, você conecta vários
sistemas, ferramentas e usuários Cada uma dessas conexões pode
introduzir vulnerabilidades. À medida que os pipelines do CICD
aumentam em complexidade, o número de pontos de acesso para possíveis atacantes Desafio. Um pipeline automatizado pode conectar o repositório de
código-fonte, criar servidores, ambientes
de teste e sistemas de produção Cada um desses estágios cria possíveis vetores de ataque
para acesso não autorizado, injeções de código
malicioso
ou Por exemplo, uma instituição
financeira implementou pipelines CICD para seu sistema de
transações baseado em paralelepípedos enfrentou uma violação de segurança quando uma API não segura usada em seu Os atacantes obtêm acesso
a dados de teste confidenciais, o que poderia ter sido desastroso se não tivesse sido detectado Segundo, gerenciar segredos
e credenciais. automação da implantação
geralmente requer acesso a vários sistemas,
bancos de dados e servidores Credenciais como
chaves de API, senhas e certificados são necessárias para que o pipeline funcione Mas se não forem
gerenciados com segurança, eles se tornam um risco significativo O desafio de codificar
segredos como senhas ou tokens de
acesso no script
do pipeline do CICD
é um erro comum Isso expõe
credenciais críticas a qualquer pessoa com acesso à base de código,
levando a um possível acesso
não Por exemplo, uma empresa de saúde expõe
inadvertidamente as chaves de API em seu script de pipeline do CICD, dando aos
usuários autorizados acesso ao ambiente
de desenvolvimento que contém dados do paciente A implementação de um melhor gerenciamento
secreto teria evitado
essa exposição. Três, garantindo a integridade do código e evitando ataques à
cadeia de suprimentos. Em um pipeline do CICD, código passa por
vários estágios, ferramentas e ambientes. Garantir a integridade
do código em cada
estágio é essencial. Ataques na cadeia de suprimentos em códigos
maliciosos são
introduzidos por meio bibliotecas ou
dependências de
terceiros podem comprometer todo
o aplicativo O desafio: os
pipelines do CICD que dependem dependências de código
aberto ou componentes de
terceiros correm o
risco de ataques à cadeia de suprimentos Se bibliotecas comprometidas forem
integradas ao seu código, elas poderão introduzir
vulnerabilidades em seu sistema de mainframe Por exemplo, uma plataforma de
comércio eletrônico usando pipelines CICD
para implantar atualizações seu
sistema de inventário de mainframe foi vítima de um ataque à cadeia de suprimentos quando
uma biblioteca de
código aberto comprometida foi Isso introduziu um malware que interrompeu o rastreamento de
inventário Ou protegendo o próprio gasoduto. A própria
infraestrutura do pipeline do CICD, ferramentas como Jenkins, Gitlab ou Urban Co Deploy,
precisam ser protegidas Os invasores atacam
suas ferramentas de pipeline e introduzem códigos maliciosos, modificam compilações ou até mesmo assumem o controle O desafio de não
proteger a infraestrutura de seu pipeline CICD o deixa vulnerável
a ataques Isso inclui garantir o
acesso aos servidores de compilação, controle de
origem e a própria configuração do
pipeline Por exemplo, o servidor Jenkins de uma
empresa de telecomunicações usado para automatizar
a implantação de atualizações de mainframe Os hackers obtiveram acesso
ao servidor e injetaram código
malicioso em um de seus aplicativos
críticos,
causando tempos de
inatividade significativos Melhores práticas para
proteger os dutos do CICD. Agora que exploramos os
principais desafios de segurança, vamos analisar as melhores práticas
que podem ajudar você a proteger seus pipelines de CICD e
proteger seus sistemas de mainframe Primeiro, implemente a segurança por volta de
turnos. O conceito de
segurança por volta de turnos significa integrar as verificações
de segurança logo no início do processo de desenvolvimento, em
vez de esperar até que o
código chegue à produção Ao incorporar a segurança ao pipeline
do CICD
desde o início, você pode detectar vulnerabilidades antes que elas se
tornem Como usar ferramentas de análise de
código estático para verificar vulnerabilidades de segurança assim que os desenvolvedores
confirmam o código Testes de segurança automatizados, como verificação de
vulnerabilidades
e verificação de dependências em cada estágio do pipeline Por exemplo, um banco
usando DevOps para seus sistemas de mainframe integrou ferramentas de análise de
código estático em seu pipeline de CI, detectando
vulnerabilidades de código precocemente e impedindo que códigos inseguros Dois, segredos
e credenciais seguros. Certifique-se de que todos os
segredos, senhas e chaves de API usados no
pipeline sejam armazenados com segurança Evite credenciais de codificação física em scripts ou arquivos de
configuração Como implementar o uso de ferramentas
de gerenciamento de segredos, como HashiFRPVOL ou AWS
Secrets Manager,
para armazenar e acessar segredos com segurança Implemente o controle de
acesso baseado em funções ou RBAC para limitar quem pode acessar
credenciais e segredos específicos Alterne as chaves e as credenciais regularmente para minimizar o
risco de acesso não Um exemplo, uma
organização de saúde que implantou aplicativos em seu
mainframe implementou o HashiCorp Ao fazer isso, eles garantem
que nenhuma credencial exposta no pipeline
e que o acesso seja
rigorosamente controlado Três, imponha a integridade do código com confirmações assinadas
e compilações verificadas Para evitar adulterações e
garantir a integridade do código,
imponha o uso de sign-commits
em seu sistema de em seu Além disso, use
compilações verificadas para garantir que nenhum código malicioso tenha
sido introduzido
no pipeline. Como implementar. Exija que os desenvolvedores
assinem commits usando GPG ou novas chaves de proteção de privacidade para provar a autenticidade
do código. Configure a verificação de compilação
em seu pipeline do CICD para garantir que o código que está sendo implantado corresponda
ao que foi confirmado no repositório Por exemplo, uma
empresa de comércio eletrônico apresentou confirmações assinadas para
seu pipeline CICD de
aplicativos de mainframe aplicativos Isso garantiu que cada confirmação
fosse rastreada até um desenvolvedor verificado, reduzindo o risco de
alterações não autorizadas no código Ou proteja a infraestrutura do
gasoduto CICD. Bloqueie o acesso às
suas ferramentas
e infraestrutura de tubulação para
evitar o acesso não autorizado Isso inclui proteger servidores de
compilação, repositórios de
código-fonte
e ferramentas de automação de implantação Como implementar e usar autenticação
multifatorial ou MFA para todos os usuários que acessam ferramentas de pipeline do
CICD,
como Jenkins, GitLab Mantenha suas ferramentas
e dependências do CICD atualizadas para
se proteger
contra Audite e analise regularmente as configurações do pipeline em
busca de falhas de segurança Por exemplo, uma agência governamental protegeu seus
servidores Jenkins e Gitlab aplicando a MFA,
limitando o acesso do usuário com base nas
funções e atualizando funções Isso reduziu o risco de acesso
não autorizado
a sistemas críticos Principais conclusões desta lição. Primeiro, integrar o laboratório de segurança
antecipado ou por turnos em seu pipeline de CICD reduz as vulnerabilidades antes que
elas Segundo, proteja segredos
e credenciais usando ferramentas de gerenciamento adequadas para evitar a exposição
no pipeline Três, garanta a integridade do código
usando confirmações de assinatura, compilações
verificadas e verificações de segurança
regulares Quatro,
infraestrutura de tubulação de bloqueio com
autenticação multifatorial, controle de
acesso e atualizações
regulares para proteger a
tubulação contra ataques Atividade de aprendizagem,
identifique um risco potencial em seu pipeline atual de CICD Desenvolva um plano para
mitigar o risco usando uma das melhores práticas
mencionadas nesta lição Por exemplo, implementar o gerenciamento de
segredos ou adicionar testes
de segurança automatizados. Três, teste em um
ambiente de teste e analise o resultado. O que vem a seguir? Na próxima lição, abordaremos requisitos
regulatórios e de conformidade. Você aprenderá como navegar pelas principais estruturas regulatórias para ambientes de
mainframe
e como implementar
verificações de conformidade em pipeline de CICD para garantir
que
suas implantações
atendam aos que
suas implantações
27. Aula 2: requisitos de conformidade e regulamentação: Lição dois, requisitos
regulatórios e de conformidade. Bem-vindo à lição
dois do módulo sete. Nesta lição,
discutiremos as estruturas
regulatórias e de conformidade que se aplicam aos ambientes de mainframe, especialmente em setores altamente
regulamentados como finanças, saúde
e governo Também exploraremos
como integrar verificações de
conformidade em seus pipelines
automatizados de CICD, garantindo que suas
implantações atendam aos padrões necessários sem
retardar
o processo de desenvolvimento Ao final desta lição, você entenderá como lidar com os
requisitos regulatórios em um mundo de DeVox e automatizar a conformidade em
seus pipelines de CICD Vamos mergulhar. Entendendo as estruturas
regulatórias para ambientes de mainframe ambientes de mainframe
geralmente operam em setores que exigem estrita conformidade
com os padrões regulatórios Essas regulamentações
foram criadas para proteger os dados, garantir a privacidade e
manter a integridade do sistema. O não cumprimento pode levar
a multas significativas, ações
legais e danos à
reputação Estruturas regulatórias. Aqui estão algumas das estruturas regulatórias mais
importantes que afetam os ambientes de mainframe GDPR ou regulamento geral de
proteção de dados. Ela se aplica a qualquer empresa
que lida com dados pessoais de cidadãos da UE que exijam
controles rigorosos de privacidade e proteção de dados HIPAA ou Lei de
Portabilidade e
Responsabilidade de Seguros de Saúde Portabilidade e
Responsabilidade Isso afeta principalmente
as organizações de saúde nos EUA, exigindo que elas protejam as informações dos
pacientes e garantam manuseio
seguro dos dados de saúde. Lei SOX ou Sarbanes Oxley. É uma instituição
financeira sediada nos EUA deve seguir a SOX para garantir a integridade
financeira
e a transparência, especialmente na forma como os sistemas
lidam com dados financeiros PCI DSS ou padrão de segurança de
dados do setor de cartões de pagamento. É necessário para
qualquer organização que processe pagamentos com
cartão de crédito, garantindo a segurança dos dados
e a prevenção de fraudes. Por exemplo, um banco
multinacional precisava conformidade com os regulamentos do SOC e,
ao mesmo tempo, modernizar seus automatização das
verificações de conformidade em seu pipeline de CICD permitiu que o banco validasse
cada alteração de código em
relação aos padrões do SOC, impedindo que códigos
não compatíveis A automatização das
verificações de conformidade em seu pipeline de CICD
permitiu que o banco validasse
cada alteração de código em
relação aos padrões do SOC,
impedindo que códigos
não compatíveis fossem implantados na produção. Desafios da conformidade
em pipelines automatizados. Ao implementar pipelines de
CICD, automatizar a conformidade
se torna mais
complexo, mas também mais crítico À medida que você acelera as implantações, garantir que as
verificações de conformidade não atrasem essencial
garantir que as
verificações de conformidade não atrasem
o processo nem introduzam erros
humanos Conformidade contínua. processos tradicionais de conformidade
geralmente eram manuais, envolvendo
extensas revisões, auditorias e aprovações Em um ambiente
CICD automatizado, conformidade
contínua é necessária, garantindo que todas as alterações
feitas no sistema atendam aos requisitos
regulatórios sem
depender O desafio de integrar as verificações de
conformidade aos pipelines do
CICD
sem retardar o
desenvolvimento ou exigir
revisões desenvolvimento ou exigir A solução, a
conformidade automatizada, verifica todas as etapas do pipeline desde a confirmação do código até a implantação, garantindo que o
código não compatível seja sinalizado Um exemplo, uma empresa de saúde usa mainframes para
gerenciar registros de pacientes implementou verificações automatizadas de
conformidade para os requisitos da HIPA Ao integrar varreduras
automatizadas de segurança e privacidade
em seu pipeline, eles garantem que nenhuma alteração no
código exponha os dados do paciente ou
viole Gerenciando a conformidade
de sistemas legados. Os sistemas de mainframe geralmente
contêm código legado que foi escrito antes da existência das
estruturas
modernas de conformidade Garantir que os sistemas mais antigos conformidade com as novas regulamentações
pode ser um desafio, especialmente ao
integrá-los aos fluxos de trabalho modernos de DevOps O desafio é colocar os sistemas de
mainframe em conformidade com as estruturas
regulatórias atuais, especialmente ao automatizar a
implantação A solução implementa camadas
adicionais de validação do
código legado para garantir a conformidade, incluindo auditoria automatizada,
registro e verificações do sistema Por exemplo, uma
instituição financeira que gerencia um antigo sistema de
transações baseado em casais foi obrigada a
cumprir as novas regulamentações do GDPR Ao adicionar verificações de conformidade em seu pipeline automatizado de CICD, eles conseguiram auditar todas as
transações e garantir que nenhum dado pessoal fosse armazenado ou
exposto indevidamente Como implementar
verificações de conformidade nos pipelines do CICD. Para garantir que os dutos C CICD atendam aos requisitos regulamentares, você pode integrar verificações de
conformidade automatizadas em todo o Essas verificações ajudam a reforçar a
segurança, a privacidade e a integridade do sistema em todas as etapas do processo de desenvolvimento
e implantação Digitalização de código para conformidade com segurança
e privacidade. Uma das primeiras
etapas para automatizar a
conformidade é escanear o código em para automatizar a
conformidade é escanear o código vulnerabilidades de
segurança
e riscos de privacidade assim que ele for enviado
ao repositório Essa abordagem de mudança para a esquerda garante que a conformidade seja
incorporada ao pipeline
desde o início. Escaneamento de código automatizado,
use ferramentas como sonar cube ou marcas de verificação para automatizar o escaneamento do código em busca de
vulnerabilidades de segurança, problemas de
privacidade Com as melhores práticas, garanta
que o código que lida com
dados confidenciais seja seguro, criptografado
adequadamente e siga todas as diretrizes
regulatórias relevantes, por exemplo, GDPR ou HIPAA Verificação automatizada
de violações de privacidade, por exemplo, o manuseio
adequado de dados
pessoais
durante a revisão do código. Por exemplo, uma
empresa de varejo implementou verificações de segurança
automatizadas para seus aplicativos cobal para
garantir a conformidade com Ao verificar
vulnerabilidades no gerenciamento de
códigos de
transações de pagamento, eles reduzem o risco de
fraudes e violações de dados Auditoria e registro automatizados. Regulamentos como o SOC
e o GDPR exigem que as organizações mantenham registros
detalhados das alterações feitas nos
sistemas e nos auditoria automatizada
garante que todas as alterações em seu pipeline de CICD sejam
registradas e rastreáveis, criando uma trilha de auditoria clara Auditoria automatizada, ferramentas
CICD como Jenkins ou Gitlab podem registrar
automaticamente todas as alterações
feitas em sua base de código,
rastreando quem fez a alteração, o que foi Melhores práticas. registro automatizado de todas as atividades em o
registro automatizado de todas as atividades em andamento, desde as
confirmações até a implantação, garantindo a rastreabilidade das auditorias
de conformidade mantenha registros imutáveis que Implemente
o
registro automatizado de todas as atividades em andamento, desde as
confirmações até a implantação,
garantindo a rastreabilidade das auditorias
de conformidade e
mantenha registros imutáveis que
não podem ser alterados após a gravação. Por exemplo, uma agência governamental
usa o registro automatizado em seu pipeline de CICD para rastrear todas as alterações de código feitas em
seu sistema de mainframe,
garantindo a conformidade com padrões
internos de segurança e
estruturas regulatórias Teste de conformidade
antes da implantação. Antes que qualquer código seja
implantado na produção, execute um teste de conformidade para garantir que o aplicativo cumpra
todos os padrões regulatórios Isso garante que códigos
não compatíveis
nunca cheguem à produção, protegendo seu sistema e organização contra
multas ou ações legais Teste de conformidade, use os estágios do pipeline do
CICD para executar testes de conformidade, validando o código
e as configurações atender a todos os
requisitos regulatórios melhores práticas incluem testes de
conformidade como parte do processo de
implantação, sinalizando
automaticamente
e impedindo que códigos
não compatíveis sejam
implantados Implemente
testes de conformidade em ambientes de preparação e produção para
garantir a conformidade no mundo real Por exemplo, um
profissional de saúde que gerencia um sistema de dados de
pacientes baseado em mainframe implementou
testes de conformidade em seu pipeline Antes de cada lançamento, testes
automatizados verificam se todas
as alterações no
código com as regras de privacidade do paciente,
impedindo que as violações
cheguem à produção. Principais conclusões desta lição. Uma
conformidade contínua garante que seu pipeline de CICD mantenha os padrões
regulatórios em todas as etapas, desde a confirmação do código
até a implantação da produção Segundo, a auditoria e o
registro automatizados fornecem rastreabilidade
para auditorias de conformidade, garantindo que todas as atividades
sejam Em terceiro lugar, os testes de conformidade antes implantação evitam que
códigos
não compatíveis da
implantação evitam que
códigos
não compatíveis cheguem à produção, reduzindo o risco de penalidades legais
e financeiras Atividade de aprendizagem. Identifique uma estrutura regulatória que se aplique ao seu ambiente de
mainframe. Por exemplo, GDPR, HPA ou NSOC. Desenvolva um plano para integrar as verificações de
conformidade em seu pipeline de CICD usando ferramentas
automatizadas
para digitalização de código, auditoria e testes de conformidade Teste suas verificações de conformidade
em um ambiente de preparação e garanta que elas
detectem códigos não compatíveis antes que eles cheguem à produção O que vem a seguir? Na próxima lição, exploraremos o controle de acesso e auditoria nos pipelines do CICD. Você aprenderá como
configurar controles de
acesso baseados em funções para seus pipelines e implementar ferramentas de
auditoria para monitorar
e rastrear a atividade do pipeline, garantindo que seus sistemas
permaneçam seguros e
28. Aula 3: controle de acesso e auditoria em pipelines de CI/CD: Lição três, controle de acesso e auditoria em tubulações CICD. Bem-vindo à lição
três do módulo sete. Nesta lição,
exploraremos como implementar o controle de
acesso baseado em funções ou RBAC e
integrar ferramentas de auditoria e monitoramento em seu pipeline de CICD para garantir
a segurança e a rastreabilidade O controle de acesso garante que somente
usuários não autorizados possam modificar, implantar ou gerenciar
as atividades do pipeline, enquanto a auditoria garante que você possa acompanhar todas as alterações
feitas no sistema Ao final desta lição, você entenderá como proteger sua
infraestrutura de tubulação e manter um registro abrangente de todas as atividades para atender aos padrões de conformidade
e segurança. Vamos mergulhar. A importância do controle de acesso
nos dutos do CICD À medida que a automação aumenta e mais equipes interagem
com o pipeline, controlar quem tem acesso a determinada função
se torna fundamental. acesso não autorizado ou o uso indevido
do pipeline podem introduzir vulnerabilidades de
segurança, comprometer a integridade do código Por que o
controle de acesso baseado em funções ou RBAC é fundamental. O RBAC restringe o acesso a funções
específicas do pipeline com
base na função do usuário na organização Esse princípio de
privilégio de lista garante que os usuários tenham acesso apenas
aos recursos necessários
para realizar suas tarefas, minimizando o risco de não autorizadas ou Principais benefícios do RBAC. Primeiro, minimiza o risco. Ele limita o número
de usuários que têm acesso a sistemas confidenciais
ou controles de implantação. Segundo, aumenta a responsabilidade. Ele garante que as alterações sejam feitas somente por pessoal
autorizado, reduzindo o risco de
ameaças internas ou erros humanos Três, apoia a conformidade. Muitas estruturas regulatórias exigem que as organizações apliquem controles de acesso
rígidos e o RBAC fornece uma maneira simples de cumprir.
Vamos dar um exemplo. instituição financeira
implementou o RBAC em seu pipeline de CICD para seu sistema de mainframe baseado em bolhas Os desenvolvedores tiveram acesso aos ambientes de
desenvolvimento e
teste, mas somente os gerentes de
lançamento autorizados tiveram acesso para implantar o
código na produção. Isso garantiu a conformidade
com os regulamentos do SOC, que exigem um controle rigoroso sobre quem pode implantar sistemas
financeiros Configurando o RBAC nos pipelines do
CICD. O RBAC deve ser cuidadosamente
implementado para equilibrar a segurança com a facilidade de
acesso para diferentes equipes Vejamos as etapas
para
configurar efetivamente o RBAC em seu pipeline de CICD Identifique funções e permissões. A primeira etapa é
identificar as funções em sua organização que interagem
com o pipeline do CICD Isso pode incluir desenvolvedores, testadores, gerentes de lançamento
e administradores Depois que as funções forem definidas, determine quais permissões
cada função exige. Melhores práticas para atribuição de
funções. Os desenvolvedores
acessam os repositórios de código-fonte
e o ambiente de teste. Testadores, acesso a
ferramentas e ambientes de teste, mas sem privilégios de implantação Permissão dos gerentes de lançamento para aprovar e implantar
código na produção Acesso total dos administradores para
gerenciar as ferramentas
e configurações do pipeline Por exemplo, uma
empresa de telecomunicações que usa Jenkins e Gitlab define funções claras
em seus Os desenvolvedores podiam fazer
alterações e executar testes, enquanto somente os gerentes de lançamento podiam aprovar as implantações de produção Isso minimiza o risco de implantações
não autorizadas e
mantém um pipeline seguro Implementando o RBAC
com ferramentas CICD. Muitas ferramentas CICD,
como Jenkins, GitLab
ou IBM Urban Code, oferecem suporte
integrado Essas ferramentas permitem
configurar funções, atribuir permissões e controlar quem pode acessar recursos
específicos. Melhores práticas: garanta que todas as
ferramentas em seu pipeline, por exemplo,
controle de versão, servidores de cobrança
e sistemas de implantação, suportem o controle de acesso baseado em
funções. Analise e
atualize regularmente as atribuições de funções para garantir que as permissões
estejam alinhadas com as responsabilidades atuais
do usuário Implemente a
autenticação multifatorial para todos os usuários com acesso privilegiado para aumentar ainda mais a segurança Por exemplo, uma agência
governamental usou laboratórios
Git integrados aos recursos do
RBAC para restringir o
acesso ao pipeline Os desenvolvedores só podiam acessar ambientes
de teste enquanto os administradores gerenciavam
as configurações e A MFA também foi habilitada para que
todos os usuários acessassem o ambiente de produção para
evitar o acesso não autorizado Auditoria e monitoramento
em tubulações do CICD. Além de
controlar o acesso, é essencial
ter registros detalhados de todas as atividades
em seu pipeline. É aqui que a auditoria e o
monitoramento entram em ação. auditoria garante
que cada ação, seja uma confirmação de código, processo de
criação ou implantação,
seja registrada, criando uma
trilha clara de responsabilidade O monitoramento permite rastrear métricas em tempo
real e alertar sobre possíveis incidentes
de segurança Por que a auditoria é essencial
para conformidade e segurança? A auditoria fornece
um registro detalhado de todas as ações tomadas em
seu pipeline de CICD. Para organizações em setores
regulamentados, manter uma trilha de auditoria
é um requisito para garantir a conformidade com estruturas
como SOC, HIPAA Os principais benefícios incluem, por
um lado, a rastreabilidade. Todas as ações, desde as confirmações de
código até a implantação em
produção, são
registradas com um carimbo de data/hora, o usuário que executou a ação e a
natureza da alteração Dois, responsabilidade. A auditoria
responsabiliza os usuários pelas mudanças, reduzindo a probabilidade de não autorizadas ou Três, conformidade. Muitas
estruturas regulatórias exigem registros
auditáveis das alterações
feitas nos sistemas e nos Um exemplo, uma
empresa de saúde que gerencia dados de pacientes implementou a
auditoria automatizada no pipeline do
CICD para Todas as alterações e implantações de código
foram registradas e rastreáveis, garantindo que
os dados do paciente permanecessem seguros e qualquer alteração nos sistemas que lidam com informações
confidenciais
fosse totalmente auditável Implementação de ferramentas de auditoria
e monitoramento. auditoria e o monitoramento
podem ser integrados ao seu pipeline do CICD
usando ferramentas que registram atividades
automaticamente
e rastreiam métricas em tempo real Ferramentas para auditoria, plug-in de trilha de
auditoria Jenkins. Ele fornece um registro detalhado de todas as ações do usuário,
incluindo compilações, implantações e alterações no sistema Eventos de auditoria do Gitlab. Ele rastreia todas as atividades
no sistema Gitlab, desde tentativas de login até envios e mesclagens
de código Ferramentas para monitoramento,
Grafana ou Prometheus. Eles permitem o monitoramento em tempo real
do desempenho do pipeline, rastreando os tempos de construção, o
uso de recursos e as taxas de erro. Splunk. Ele fornece recursos de registro,
monitoramento e
alerta, garantindo que qualquer
atividade incomum seja sinalizada para análise Práticas recomendadas: configure login para todas as atividades críticas do
pipeline, incluindo confirmações de código, alterações de
configuração
e implantações Implemente monitoramento em tempo real
para detectar e alertar sobre uma
atividade normal do pipeline, como picos
inesperados
em falhas de construção
ou tentativas de acesso não autorizado Armazene registros de auditoria em um sistema imutável à prova de adulteração para garantir que eles não possam
ser alterados ou excluídos Por exemplo, uma empresa de varejo
implantou o Grafana e o Prometheus para monitorar o desempenho do pipeline do
CICD,
garantindo que qualquer atividade
incomum, como tentativa de acesso
não autorizado ou falhas Eles também implementaram o plug-in de trilha de auditoria
Jenkins para rastrear todas as
ações do usuário no pipeline,
garantindo a conformidade
com o PCI Principais conclusões desta lição. Primeiro, nosso BC ajuda a
proteger seu pipeline
restringindo o acesso
somente a usuários autorizados Reduzindo o risco de alterações
não autorizadas. Segundo, a auditoria garante que todas as ações dentro do
pipeline sejam registradas, criando uma trilha
de responsabilidade e Em terceiro lugar, o monitoramento fornece informações em tempo
real desempenho
e a segurança do
pipeline permitindo a detecção rápida
de anomalias ou ameaças. Ou combinar RBAC, auditoria e monitoramento garante que seu pipeline de CICD
permaneça seguro, rastreável Atividade de aprendizagem.
Analise as funções em sua organização e identifique as permissões
necessárias para cada função ao interagir
com seu pipeline de CICD. Implemente controle de
acesso baseado em função ou RBAC em seu pipeline
usando ferramentas como Jenkins, GitLab Configure ferramentas de auditoria e
monitoramento para registrar ações
do usuário e monitorar o desempenho do
pipeline, garantindo conformidade
e segurança O que vem a seguir? Na próxima lição, vamos nos concentrar nos
testes de segurança no pipeline do CICD Você aprenderá a
automatizar os testes de segurança. Por exemplo,
verifique a vulnerabilidade em seu pipeline e garanta a conformidade com as políticas
de segurança por meio do processamento
automatizado.
29. Aula 4: testes de segurança no pipeline de CI/CD: Lição quatro, testes de segurança
no pipeline do CICD. Bem-vindo à lição
quatro do Módulo sete. Nesta lição,
vamos nos concentrar em como
automatizar os testes de segurança
em seu pipeline de CICD, garantindo que as vulnerabilidades
sejam identificadas
e tratadas antes que seu
código Discutiremos as principais ferramentas e estratégias de
teste de segurança, como integrar essas ferramentas
ao seu pipeline e como garantir
a conformidade com as políticas de
segurança da
sua organização. Ao final desta lição, você entenderá como criar segurança em cada estágio
do pipeline do CICD,
garantindo que seu
ambiente de mainframe permaneça seguro e, garantindo que seu
ambiente de mainframe permaneça seguro ao mesmo tempo, mantenha a velocidade
e a eficiência das implantações
automatizadas Vamos começar.
Por que os testes de segurança nos pipelines do CICD são essenciais À medida que seu pipeline de CICD se torna a espinha dorsal de seus processos de desenvolvimento e implantação, garantir a segurança em
todas as etapas é fundamental Os mainframes geralmente lidam com dados
confidenciais e aplicativos de missão
crítica, os
torna um
alvo de alta prioridade para os invasores Os testes de segurança ajudam a identificar o surgimento de
vulnerabilidades, permitindo que sua equipe as
resolva
antes que elas se tornem riscos
exploráveis Mudando a segurança
deixada na tubulação. Nos fluxos de trabalho de
desenvolvimento tradicionais, os testes de
segurança geralmente
ocorrem no final
do processo, pouco antes
ou depois da implantação No entanto, em um pipeline de CICD, essa abordagem é tarde demais. Vulnerabilidades
que não são detectadas até a implantação podem
comprometer o sistema Ao mudar para a esquerda, os testes
de segurança são integrados mais cedo ao processo de desenvolvimento,
garantindo que
os problemas sejam
detectados e resolvidos Benefícios P. Primeiro, detecte
as vulnerabilidades mais cedo Identifique e corrija vulnerabilidades durante o desenvolvimento, em
vez de após a implantação Segundo, reduza o custo. Corrigir vulnerabilidades
precocemente é muito mais barato e demorado do que
resolvê-las após a implantação Três, melhore a qualidade do código. Ao incorporar as verificações de
segurança com antecedência, sua equipe pode criar códigos mais seguros e de
maior qualidade
desde o início Por exemplo, uma
instituição financeira implementou escaneamentos de
vulnerabilidade em estágio
inicial em seu pipeline de CICD para aplicativos de
mainframe Ao detectar problemas como protocolos de
transferência de dados
não seguros, no
início do desenvolvimento,
eles evitaram violações
potencialmente caras e
melhoraram a segurança melhoraram Um teste de segurança automatizado em pipelines CICD automação dos
testes de segurança em um pipeline do CICD permite que você verifique
continuamente as vulnerabilidades sem retardar o processo de As verificações de segurança podem ser
incorporadas em vários estágios
do pipeline quando o código é enviado
para a implantação final Tipos de
testes de segurança para automatizar. Há vários tipos
de testes de segurança que devem ser
incorporados ao seu pipeline, cada um visando diferentes
aspectos da segurança do sistema Aqui estão as mais comuns. Teste estático
de segurança de aplicativos ou SAST. Escaneie o código-fonte vulnerabilidades durante
a fase de desenvolvimento identifica problemas como práticas de codificação
inseguras, estouros de buffer teste dinâmico
de segurança de aplicativos, ou DAST, simula ataques a
um aplicativo em execução para encontrar vulnerabilidades
em tempo real, como injeção de SQL, scripts
entre sites ou XSS varredura de dependências garante
que bibliotecas
e dependências de terceiros em seu ambiente
principal estejam seguras e atualizadas Isso ajuda a evitar ataques à cadeia
de suprimentos em que vulnerabilidades
são introduzidas para comprometer
componentes externos. Segurança de contêineres. Se você usa
ambientes em contêineres, por exemplo,
Docker ou seu pipeline CICD, Docker ou seu pipeline CICD verificações de segurança de contêineres garantem que os
contêineres sejam reforçados e livres de vulnerabilidades Um exemplo, um
profissional de saúde que lida com dados confidenciais de
pacientes integrou o SAST e o DASD em seu
pipeline de CICD para Ao automatizar esse teste nos estágios de confirmação
e implantação do código,
eles identificaram e
mitigaram os riscos, eles identificaram e
mitigaram os riscos garantindo que os dados do paciente estivessem seguros em todas as Integrando ferramentas de segurança
em seu pipeline de CICD. As ferramentas de segurança podem ser
integradas ao seu pipeline do CICD por meio de vários estágios, desde o gerenciamento do código-fonte
até a implantação Veja como você pode
incorporar essas ferramentas. Gerenciamento de código-fonte, integração
SEM. Ferramentas como sonar
cube ou checkmarks
podem ser integradas aos seus repositórios de
código-fonte,
por exemplo, Git
ou bit bucket, para executar verificações SAST Isso garante que qualquer código enviado
ao repositório represente vulnerabilidades antes de
avançar
no pipeline . Estágio de construção. Use ferramentas como o OAS Zap ou Bird Suite para executar escaneamentos do DAST
durante o processo de criação. Essas ferramentas simulam ataques ao
seu aplicativo para
identificar falhas de segurança Gerenciamento de dependências. Ferramentas como SNIC ou código
branco podem ser integradas para verificar
suas dependências em busca de
vulnerabilidades conhecidas Eles fornecem alertas quando
uma biblioteca vulnerável é usada e sugerem alternativas
seguras. Segurança de contêineres, se
você estiver usando contêineres, integre ferramentas
como AQASecurity ou Twistlock para escanear
imagens de contêineres em busca de vulnerabilidades, garantindo que seu integre ferramentas
como AQASecurity ou
Twistlock para escanear
imagens de contêineres em busca de vulnerabilidades,
garantindo que seu pipeline não propague ambientes inseguros. Práticas recomendadas,
automatize as verificações regulares. Programe escaneamentos automáticos para serem executados em vários estágios
do pipeline Por exemplo, após
cada confirmação ou construção
noturna e
quatro Configure portas de segurança para interromper o pipeline se uma
vulnerabilidade crítica for detectada. Execute testes paralelos. execução de testes de segurança em paralelo com outros processos do
CICD, por exemplo, testes funcionais ajuda a manter a velocidade do pipeline Vamos dar um exemplo. Uma empresa de telecomunicações
integrou o Sonar cube e entrou sorrateiramente no pipeline do
Jenkins para
automatizar os escaneamentos de SAST e dependências automatizar Toda vez que o código foi confirmado, o sistema verificou e sinalizou quaisquer problemas de segurança antes passar para o teste
e o desenvolvimento, evitando que
vulnerabilidades críticas chegassem à produção Automatizando a segurança
para fins de conformidade. automação dos testes de segurança garante que seu código esteja em conformidade com as políticas de organizacionais e regulatórias Por exemplo, GDPR,
HIPAA e SOC. Ao aplicar verificações automatizadas, você garante a conformidade contínua em todas as etapas do pipeline Garantir a conformidade com as políticas
de segurança por meio de processos
automatizados. Muitas organizações têm políticas de segurança
rígidas que precisam ser aplicadas de forma
consistente em todas as bases de código automação dos testes de segurança
garante a conformidade com essas políticas e
estruturas regulatórias, como GDPR,
HIPAA e SOC, sem intervenção Teste de segurança baseado em políticas. As organizações geralmente implementam políticas de segurança
específicas para proteger dados confidenciais
ou cumprir os regulamentos. Essas políticas podem incluir requisitos de
criptografia, padrões de
registro e auditoria ou protocolos de controle de acesso Os testes de segurança baseados em políticas garantem que seu
código esteja em conformidade com esses padrões internos e
externos antes de chegar à produção.
Como implementar. Primeiro, defina
as políticas de segurança com base nas necessidades
e nos requisitos regulamentares da sua organização. Em seguida, use ferramentas automatizadas de teste de
segurança para validar esse código Esse código adere a
essas políticas durante o desenvolvimento, o teste
e a implantação Por exemplo, uma agência governamental que lida com dados confidenciais de
cidadãos automatizou verificações de
segurança baseadas em políticas em seu pipeline de CICD para
garantir a conformidade com o GDPR Cada implantação teve que
passar por verificações de criptografia e atender aos padrões
de controle de acesso antes de ser lançada. Monitoramento contínuo da conformidade com o CICD, as mudanças estão constantemente
fluindo pelo pipeline monitoramento contínuo da conformidade
garante que cada alteração cumpra as políticas de segurança durante todo o
ciclo de vida do aplicativo Práticas recomendadas: automatizar as verificações de
conformidade nos principais
estágios do pipeline,
por exemplo, após a reimplantação da
compilação Essas ferramentas de monitoramento alertam
a equipe de segurança quando o
código viola as políticas, permitindo a
remediação imediata Principais conclusões desta lição. Primeiro, mude a segurança
para a esquerda integrando testes de segurança
automatizados
logo no início do processo para
detectar vulnerabilidades antes que
elas cheguem Segundo, automatize vários tipos
de testes de segurança, como SASP,
DAST, verificação de dependências e segurança de
contêineres, para garantir cobertura
abrangente Três, use
testes baseados em políticas para garantir que seu código esteja em conformidade com as políticas de
segurança e os requisitos
regulatórios, automatizando a
fiscalização da segurança em todos Quatro, garanta a conformidade
contínua monitorando seu pipeline em busca quaisquer violações dos padrões de
segurança e resolvendo-as
antes da implantação. Atividade de aprendizagem. Escolha uma
ferramenta de teste de segurança, por exemplo, SonarQube, OAS Zap ou SNAP e integre-a Configure escaneamentos automatizados para execução em confirmações
e implantações de código Analise os resultados do teste e garanta que as
portas de segurança estejam
configuradas adequadamente para transportar o pipeline se forem encontradas vulnerabilidades
críticas O que vem a seguir? No próximo módulo, vamos nos concentrar em monitorar feedback e
otimizar os pipelines Você aprenderá por que o monitoramento é essencial para os dutos do CICD, as principais métricas a serem rastreadas e como otimizar
seu pipeline para obter eficiência e confiabilidade
30. Aula 1: introdução ao monitoramento de pipeline: Bem-vindo ao Módulo oito, monitorando o feedback e
otimizando os pipelines Neste módulo, você
aprenderá como monitorar com eficácia
os pipelines IDD, fornecer feedback para
melhorar os processos e otimizar seus pipelines em termos de
desempenho e confiabilidade Ao final deste módulo de laboratório, você poderá
usar ferramentas de monitoramento
para rastrear as principais métricas, configurar alertas e melhorar
continuamente a eficiência do seu
pipeline. Lição 1, introdução
ao monitoramento de tubulações. Bem-vindo à primeira
lição do módulo oito. Nesta lição,
exploraremos o papel fundamental que o monitoramento desempenha
na manutenção e otimização de seus pipelines CICD, especialmente em O monitoramento contínuo permite que você acompanhe o desempenho do pipeline, detecte problemas precocemente e garanta a integridade geral
de suas implantações. Ao final desta lição, você entenderá por que o
monitoramento é essencial, as principais métricas
que você
precisa monitorar e como usar esses dados para melhorar
a eficiência e a
confiabilidade do seu pipeline. Vamos ver
por que o monitoramento é uma parte vital do processo
do CICD Uh, por que o monitoramento é
essencial para tubulações CICD. pipelines do CICD são a espinha dorsal
do desenvolvimento moderno, automatizando o fluxo desde
a criação do código até a implantação No entanto, esses
pipelines podem se tornar complexos e propensos a
problemas como falhas de compilação, desempenho
lento ou erros de
implantação Sem o
monitoramento adequado, identificar esses problemas pode ser um desafio, levando
a lançamentos atrasados, vulnerabilidades,
vulnerabilidades de segurança e ineficiências operacionais Identificar problemas com antecedência. O monitoramento ajuda você a
detectar possíveis problemas com antecedência, muitas vezes antes que eles
afetem a produção. Problemas como
testes fracassados, longos prazos de cobrança ou falhas nas implantações podem ser sinalizados e resolvidos
em tempo real,
reduzindo o tempo de inatividade e
minimizando Por exemplo, uma empresa de
serviços financeiros cobalto em
seu mainframe notou uma desaceleração em
seu pipeline de CICD
durante seu mainframe notou uma desaceleração em
seu pipeline de CICD Ao monitorar as principais métricas do
pipeline, eles descobriram
que o problema estava relacionado a processos de
teste ineficientes, permitindo que otimizassem sua abordagem de teste e
reduzissem os tempos de implantação Garantindo a confiabilidade da tubulação. A confiabilidade é um
objetivo central dos dutos CICD. monitoramento garante que cada
estágio do seu pipeline, seja confirmação de código, criação, teste ou implantação, esteja
funcionando conforme o esperado. Ele fornece
visibilidade de onde erros ou gargalos podem estar ocorrendo e permite que você os resolva de forma
proativa Por exemplo, uma
empresa de telecomunicações que gerencia aplicativos de mainframe em
grande escala usa o monitoramento para identificar
gargalos no pipeline durante aplicativos de mainframe em
grande escala usa o monitoramento para
identificar
gargalos no pipeline durante
o período de testes de alto volume. Ao lidar com esses gargalos, eles melhoram a confiabilidade
geral e a velocidade de seu pipeline,
garantindo Otimização do desempenho. Com o tempo, os dados de
monitoramento
fornecem insights que permitem otimizar o desempenho do
pipeline. Você pode identificar áreas
que precisam ser aprimoradas, como etapas de construção
que demoram muito ou testes que
frequentemente falham. Essa
abordagem baseada em dados leva a um pipeline
mais rápido e a implantações mais
eficientes Por exemplo, uma
plataforma de comércio eletrônico que executa processamento
em lote em um sistema de mainframe usa o monitoramento de pipeline
para rastrear as durações de construção Ao analisar os dados, eles conseguiram refatorar
certos estágios de construção, reduzindo o tempo necessário
para construções pela Garantindo a segurança
e a conformidade. monitoramento também desempenha
um papel fundamental garantir a segurança e a
conformidade do seu pipeline. Ao configurar alertas
para atividades incomuns e acesso autorizado ou testes de segurança
malsucedidos, você pode responder a possíveis ameaças antes
que elas se tornem problemas graves. Os registros de monitoramento também podem ser
usados para auditorias de conformidade, garantindo que cada estágio do pipeline
atenda
aos padrões exigidos Métricas comuns para monitorar em pipelines CICD de
mainframe. Em um ambiente de mainframe, certas métricas são
cruciais para manter um pipeline de CICD eficiente e
seguro Aqui estão as principais métricas
que você deve monitorar. Tempo de construção. Essa métrica rastreia quanto tempo leva
para a construção ser concluída. monitoramento dos tempos de construção ajuda a identificar gargalos
nos estágios de compilação e
vinculação e se faturas
específicas estão Por que isso importa. Um aumento
repentino no prazo da fatura pode indicar ineficiências ou problemas
no processo de cobrança que
precisam ser Taxa de sucesso do teste. monitoramento da taxa de
sucesso do teste garante que seu pipeline esteja entregando código de
alta qualidade. Ele monitora a porcentagem de casos de teste
bem-sucedidos em cada compilação. Uma taxa de sucesso de
teste menor do que a esperada pode indicar problemas de qualidade do código
ou testes mal projetados. Por que isso importa. Falhas
de teste consistentes podem indicar problemas
mais profundos no código ou a necessidade de melhorar
sua estrutura de testes. Frequência de implantação
e taxa de sucesso. Essas métricas monitoram a
frequência com que as implantações
estão sendo enviadas para produção e quantas
dessas implantações são
bem-sucedidas sem problemas Falhas frequentes na implantação podem indicar problemas
no pipeline ou configurações
ambientais incorretas.
Por que isso importa. monitoramento do sucesso da implantação
garante que seu pipeline seja confiável e que as implantações estejam
progredindo conforme Duração do gasoduto.
A duração do pipeline se refere ao tempo total necessário para
o código passar da confirmação
para a produção. Essa métrica inclui tempos de
construção, estágios
de teste e implantação. Monitorar isso ajuda
você a entender quanto tempo é necessário para fornecer
novos recursos ou atualizações. Por que isso importa. O rastreamento da duração do
pipeline ajuda
a otimizar a velocidade do pipeline CICD e a identificar os estágios que
podem estar causando atrasos Registros e alertas de erros. Os registros e
alertas de erros são essenciais para o monitoramento em tempo real
do seu pipeline. Qualquer falha durante compilações, testes ou implantações deve ser registrada Um alerta deve ser
configurado para notificar imediatamente as equipes
relevantes.
Por que isso importa. alertas em tempo real reduzem o tempo para identificar e resolver problemas de
tubulação, garantindo que eles sejam resolvidos antes que afetem a produção. Melhores práticas para
monitorar os pipelines do CICD. Para garantir que seus
esforços de monitoramento sejam eficazes, siga estas melhores práticas. Primeiro, automatize o
monitoramento e os alertas. Use ferramentas de monitoramento que
permitam automatizar o processo de coleta
e análise de dados Configure alertas para
problemas críticos, como falhas de compilação, processos de
longa execução
ou testes com falha. Isso ajuda a garantir
que você esteja sempre ciente dos problemas sem supervisão
manual Segundo, revise as métricas regularmente. Estabeleça um ritmo regular para analisar as
métricas de desempenho do seu As revisões semanais ou mensais podem
ajudá-lo a identificar padrões, avaliar o progresso e otimizar seu pipeline para melhorar o
desempenho e a confiabilidade. Em terceiro lugar, use painéis
para ter visibilidade. Configure painéis visuais para descobrir as principais métricas
em tempo real. Ferramentas como Rafana
ou Kibana permitem que você crie visualizações
personalizadas da integridade
e do desempenho do
seu funil, fornecendo
acesso fácil aos insights Ou colabore entre equipes. Certifique-se de que todas as operações de
desenvolvimento e equipes de segurança tenham acesso aos dados de
monitoramento do pipeline. A colaboração entre equipes
ajuda a garantir que todos os problemas sejam resolvidos de
forma rápida e eficaz. Principais conclusões desta lição. Primeiro, monitorar
seu pipeline de CICD é essencial para
identificar problemas precocemente, garantir confiabilidade e
otimizar Duas métricas principais a serem monitoradas
incluem tempo de construção, taxa de sucesso do
teste, frequência de
implantação, duração do
pipeline
e registros de erros. Automatize seus
processos de monitoramento e configure alertas em tempo
real para
identificar e resolver problemas rapidamente identificar e resolver problemas Analise regularmente
os dados de monitoramento e use-os para otimizar
continuamente
a eficiência e a confiabilidade
do seu pipeline. Ganhando atividade, escolha uma ferramenta de
monitoramento, por exemplo,
Grafana, Splunk ou IBM Omegamon e configure-a
em Identifique pelo menos duas métricas
principais, como tempo de
construção ou
taxa de sucesso do teste, para monitorar em tempo real. Configure alertas automatizados para qualquer falha crítica na tubulação
ou tempos de construção normalmente, tempos construção
incomumente longos O que vem a seguir? Na próxima lição, abordaremos como
configurar ferramentas de monitoramento e registro para
seu pipeline CICD Exploraremos ferramentas específicas para monitorar
ambientes de mainframe, como IBM, Omega moon e
Splunk, e mostraremos
como configurar registros e alertas para estágios críticos
31. Aula 2: como configurar ferramentas de monitoramento e registro: Lição dois, configurando ferramentas de
monitoramento e registro. Bem-vindo à lição
dois do módulo oito. Nesta lição, vamos
explorar como implementar ferramentas de
monitoramento e registro em
seu pipeline CICD de mainframe Analisaremos as
ferramentas que você pode usar para
monitorar a integridade de suas
implantações, que são alertas em tempo
real para
problemas críticos e garantiremos que registros
detalhados sejam gerados em cada estágio do pipeline Ao final desta lição,
você poderá
configurar soluções eficazes de monitoramento
e registro, garantindo que seu pipeline
funcione sem problemas e com segurança Vamos começar.
Por que o monitoramento e o registro são essenciais. Como você aprenderá na lição anterior,
o monitoramento é fundamental para garantir a confiabilidade
e a eficiência da
tubulação. Mas o monitoramento por si só não
é suficiente. Você precisa de registros detalhados
que registrem cada evento, erro e ação
no pipeline. Juntos, o monitoramento
e o registro fornecem uma visão abrangente
da integridade
e do desempenho do pipeline, permitindo que você detecte e
resolva problemas rapidamente. Monitoramento em tempo real para uma resposta
mais rápida a incidentes. As ferramentas de monitoramento fornecem
visibilidade em tempo
real do desempenho
do seu pipeline CICD Essas ferramentas permitem que você acompanhe as
principais métricas, como tempo de construção, taxas de
erro e uso de recursos. Se surgir um problema, como uma falha na compilação
ou uma implantação lenta, você poderá ser alertado imediatamente E responda antes que o
problema se agrave. Por exemplo, uma instituição
financeira usa o IBM Omega moon para monitorar seu pipeline
CICD de mainframe Ao configurar alertas para alto uso de recursos
durante as implantações, a instituição conseguiu
resolver gargalos em tempo
real e garantir Registro detalhado para
solução de problemas e conformidade. Os registros são essenciais
para a solução de problemas, fornecendo um histórico completo dos eventos em seu pipeline. Se você está depurando
uma implantação com falha ou investigando violações de
segurança, os registros servem como fonte de
prova para entender o prova Eles também desempenham um
papel fundamental na garantia conformidade com as
regulamentações do setor, como HIPAA ou SOC Que geralmente exigem
trilhas de auditoria ou atividades do sistema. Por exemplo, um
profissional de saúde precisava estar em conformidade com as hiperregulamentações mantendo registros
detalhados de todas as atualizações de
aplicativos de mainframe Usando o Splunk para gerenciamento de registros, eles criaram uma
trilha de auditoria de cada implantação, garantindo que atendessem aos requisitos
legais e, ao mesmo tempo resolvessem rapidamente quaisquer problemas identificados durante as
atualizações Alertas. Garanta que você seja
notificado sobre falhas críticas, permitindo uma correção rápida Ferramentas para monitorar e
registrar implantações de mainframe. Há uma variedade de ferramentas disponíveis para
monitoramento e registro, cada uma adequada a diferentes
ambientes e necessidades. Aqui estão algumas das principais ferramentas comumente usadas em ambientes de
mainframe. IBM Omegamon. O IBM Omegamon é uma ferramenta
abrangente projetada
especificamente para
monitorar sistemas de mainframe Ele fornece informações em
tempo real desempenho
do sistema, o uso de
recursos e a
integridade do aplicativo, tornando-o ideal para gerenciar cargas de trabalho críticas de
mainframe principais recursos incluem
monitorar o uso da CPU, memória, disco e rede, tempos de
resposta
das transações e o desempenho dos aplicativos. Fornece alertas para condições
anormais permitindo uma intervenção rápida Por exemplo, uma
empresa de telecomunicações que gerencia sistemas de
cobrança em
um mainframe usa o
IBM Omegamon para A empresa configurou alertas
para o alto uso da CPU, que ajudam a identificar
ineficiências no aplicativo de cobrança e
otimizar a alocação de recursos durante períodos de faturamento de
alto volume alto Splunk. O Splunk é uma plataforma de registro
e monitoramento amplamente usada que se destaca na coleta, indexação e
visualização de dados de log de uma variedade
de sistemas Splunk pode ser configurado
para agregar registros de várias ferramentas CICD, fornecendo uma visão centralizada principais recursos incluem
coleta de registros de várias fontes, como aplicativos,
servidores e outros, fornece pesquisa e
visualização em tempo real de dados de log, suporte a painéis e
relatórios personalizados para Por exemplo, uma grande empresa de serviços
financeiros usa o Plank para monitorar seu pipeline CICD de
mainframe Ao agregar registros
para vários estágios como compilações, testes
e implantações, eles são capazes de
detectar anomalias
no
processo de implantação e usar os poderosos recursos
de
pesquisa do
Plank para no
processo de implantação e usar os poderosos recursos
de
pesquisa do
Plank ,
como compilações, testes
e implantações,
eles são capazes de
detectar anomalias
no
processo de implantação e usar os poderosos recursos
de
pesquisa do
Plank para investigar rapidamente falhas nas implantações. Três Grafana e Prometeu. Essas
ferramentas de código aberto são frequentemente usadas conjunto para monitorar os pipelines do
CICD O Prometheus coleta e armazena
dados de séries temporais, por exemplo, tempos de
faturamento ou taxas de erro, enquanto o Grafana cria painéis
visuais para monitorar a integridade do pipeline principais recursos incluem monitoramento em tempo
real das principais métricas de desempenho, sistema
de alerta para
anomalias Painéis personalizáveis para
exibir métricas de funil. Por exemplo, uma empresa de
comércio eletrônico usa Prometheus e o Grafana para monitorar seu principal O sistema fornece gráficos em tempo
real duração
da construção, dos resultados dos
testes
e das taxas de sucesso da implantação, permitindo que a equipe
identifique e resolva problemas rapidamente Configurando registros e alertas
para estágios críticos do pipeline. Agora que
abordamos as ferramentas, vamos ver como
configurar registros e alertas para os estágios críticos do seu pipeline
de CICD Esses são os principais estágios em que é mais provável que surjam
problemas. Por isso, é importante ter registros e
alertas
adequados. Crie um registro de estado.
Durante o estágio de construção, você deve registrar todas as ações, incluindo os horários de início e
término das compilações, saídas do
compilador ou
qualquer erro Isso fornece uma visão
clara do que deu errado no caso
de uma compilação com falha. Práticas recomendadas. Registre os horários de
início e conclusão da construção. Capture
avisos e erros do compilador. Configure alertas para falhas de compilação permitindo que você aja rapidamente. Por exemplo, uma empresa de varejo usa prancha para registrar os processos de
construção Cada compilação com falha aciona um alerta automático para a equipe de desenvolvimento,
reduzindo
o tempo de inatividade e garantindo que os
problemas sejam resolvidos imediatamente Registro do estágio de teste. O estágio de teste é onde você detecta a maioria dos erros em seu código. Os
resultados do teste de registro são cruciais. Quer se trate de testes unitários, testes de
integração
ou testes de segurança, registrar o resultado
de cada teste executado garante transparência
e responsabilidade Melhores práticas,
registre os resultados dos testes, incluindo testes anteriores e reprovados. Registre qualquer tempo limite ou
erro na execução do teste. Configure alertas para testes com
falha para evitar que o código avance
para o próximo estágio Por exemplo, um
provedor de serviços de saúde registra todos os resultados
dos testes de seu mainframe, o pipeline ICD
no IBM Omega moon Quando um teste de segurança falha, um alerta é acionado para
a equipe de segurança para remediação
imediata, garantindo que
os dados do paciente permaneçam seguros Registro do estágio de implantação. O estágio de implantação
é fundamental porque qualquer problema aqui pode levar
ao tempo de inatividade da produção É essencial amar
cada ação de implantação, incluindo configurações de servidor, variáveis de
ambiente
e tentativas de reversão Práticas recomendadas, adoro todas as atividades de
implantação, incluindo configurações
e parâmetros, sucesso e falhas de implantações com Configure alertas para
falhas na implantação, incluindo acionadores de reversão se uma implantação precisar ser Por exemplo, uma empresa de
telecomunicações registra todas as atividades de implantação
no Prometheus e no Grafana, Os alertas são configurados para
qualquer falha na implantação, solicitando procedimentos de reversão, se necessário Principais conclusões desta lição. Um monitoramento em tempo real ajuda a detectar problemas de tubulação
antes que eles aumentem, permitindo uma resposta mais rápida a
incidentes Segundo, o registro detalhado é essencial para solucionar problemas
e manter a conformidade, fornecendo um
histórico completo dos eventos. Três, ferramentas como IBM
Omegamon, Splunk e Prometheus fornecem recursos
poderosos de monitoramento e registro Ou configure plugues e alertas para estágios críticos do
pipeline, como construção, teste e implantação, para garantir que cada problema seja capturado
e resolvido com eficiência Atividade de aprendizagem. Apenas uma ferramenta de
monitoramento, por exemplo, IBM Omega moon, Splunk
ou Prometheus, e configure-a para monitorar seu pipeline CICD principal Configure registros para
os estágios de construção, teste e implantação, garantindo que todos os erros e
atividades importantes sejam registrados. Configure alertas para falhas
críticas, como falhas de
compilação ou erros de implantação, para que
você possa responder rapidamente. O que vem a seguir? Na próxima lição, vamos nos concentrar na solução de problemas
e na depuração Você aprende a identificar problemas
comuns do pipeline,
solucionar erros e implementar as melhores práticas para depurar e
32. Aula 3: solução de problemas e depuração de pipelines de CI/CD: Lição três, solução de problemas e depuração de pipelines CICD. Bem-vindo à lição
três do Módulo oito. Nesta lição, vamos
explorar os
problemas comuns que podem ocorrer em seu pipeline de CICD e como
solucioná-los e resolvê-los de Todo pipeline do CICD, especialmente em
ambientes de mainframe, enfrentará desafios
em algum momento, seja uma compilação com falha, um teste interrompido ou uma implantação
que não saiu conforme o planejado Aprender a solucionar
e depurar esses problemas rapidamente é essencial para
manter a confiabilidade
do seu pipeline Ao final desta lição, você estará equipado
com o conhecimento e as
melhores práticas para solucionar problemas
e depurar seu
pipeline com eficiência, minimizando o tempo de inatividade e Vamos mergulhar. Problemas comuns do pipeline
do CICD. pipelines do CICD são
compostos por vários processos
interconectados Então, quando as coisas dão errado, identificar a causa exata às vezes
pode ser complicado Vamos analisar alguns dos problemas mais comuns que você
pode encontrar em um pipeline CICD de mainframe e como solucioná-los Compilações com falha. Uma falha na compilação é um dos
problemas mais comuns em qualquer pipeline do CICD As falhas de compilação podem ser causadas por qualquer coisa, desde
erros de sintaxe no código, dependências
ausentes ou scripts de compilação
mal configurados Etapas de solução de problemas Verifique os registros de compilação. Os registros de compilação geralmente fornecem uma indicação clara
do que deu errado, seja um erro do compilador, uma dependência ausente
ou uma falha no script Teste localmente. Se você não conseguir identificar
imediatamente o problema, tente replicar o processo de
criação em seu ambiente local para
ver se o problema persiste Verifique o ambiente construído. Certifique-se de que o ambiente construído
esteja configurado corretamente. Às vezes, uma
falha de compilação é causada por diferenças entre
o ambiente local e o ambiente de CI. Por exemplo, uma empresa de
serviços financeiros encontrou repetidas falhas de compilação devido a variáveis de
ambiente
não serem
definidas corretamente na configuração de
compilação do Jenkins Ao analisar os registros criados e comparar os ambientes locais e de
CI, eles identificaram as variáveis
ausentes e atualizaram a configuração criada
para resolver o problema Testes reprovados. Falhas nos testes são outro problema comum do
pipeline, especialmente à medida que seus testes
aumentam em complexidade. falha nos testes pode ser
causada por qualquer coisa, desde casos de teste
incorretos até alterações na base de código
que interrompem a funcionalidade Etapas de solução de problemas Analise os registros de teste. Comece analisando
os registros de teste para entender quais
casos de teste falharam e por quê Execute testes localmente. Executamos os testes de falha em seu ambiente local para confirmar se eles são
aprovados ou reprovados Isso ajuda a determinar se é um problema de código ou de
ambiente de CI. Verifique se há alterações recentes no código. Às vezes, as
falhas de teste são causadas por mudanças
recentes no código
que não foram devidamente contabilizadas
nos casos de teste Se for esse o caso, atualize
os casos de teste adequadamente. Por exemplo, uma
empresa de telecomunicações enfrentou repetidas falhas de teste em um pipeline de CICD para seus aplicativos de
mainframe Ao analisar os registros de teste, eles percebem que o
problema resultou de mudanças
recentes em um serviço que não foram refletidas
na Atualizando os casos de teste para
considerar essas mudanças, resolvemos o problema.
Falhas na implantação. Falhas na implantação podem
ter um impacto significativo, especialmente em
ambientes de produção. Essas falhas podem ser causadas por problemas como
ambientes mal configurados, falhas de
rede ou problemas
com os scripts de implantação Etapas de solução de problemas Verifique os registros de implantação. Os registros de implantação fornecerão informações
detalhadas
sobre o que deu errado. Verifique se há variáveis de
ambiente configuradas incorretamente, erros de
script ou conectividade
de rede Reversão. Se uma implantação
falhar na produção, inicie uma reversão para a versão
estável anterior para minimizar o tempo Teste primeiro na fase. Sempre teste as implantações em um ambiente de teste antes de começar
a produção. Isso ajuda a detectar quaisquer
problemas precocemente e reduz o risco de falhas
no ambiente ao vivo. Por exemplo, uma empresa de saúde encontra
falhas de implantação durante as atualizações de seus
aplicativos de mainframe devido a variáveis de ambiente
incorretas no ambiente de produção Ao analisar os registros de
implantação, eles identificam o erro, corrigem a configuração e implantam
o aplicativo com êxito Longos tempos de construção.
Longos tempos de construção podem desacelerar todo o
pipeline do CICD e atrasar a entrega Esse problema geralmente é
causado por ineficiências no processo de criação,
como tarefas redundantes, grandes bases de código ou dependências desatualizadas Etapas de solução de problemas,
revise os estágios de construção. Divida os estágios de construção e identifique onde a maior parte
do tempo está sendo gasta. Procure tarefas
que sejam redundantes ou desnecessárias. Código otimizado. Refatore partes da base de código que estão causando compilações lentas, como grandes
tarefas de compilação ou Dependências de cache. Use mecanismos de armazenamento em cache para evitar o download das mesmas
dependências em cada compilação Por exemplo, uma plataforma de
comércio eletrônico percebeu que suas faturas de aplicativos de
mainframe estavam demorando muito
mais do que Ao analisar os estágios de compilação, eles perceberam que
estavam baixando novamente as dependências
de cada compilação Ao implementar o armazenamento em cache, eles reduziram o tempo de
construção em 40% Práticas recomendadas para depuração
e resolução de falhas de tubulação e resolução de falhas de tubulação A depuração de falhas de tubulação requer uma Aqui estão algumas das melhores
práticas a serem seguidas. Sempre verifique o registro primeiro. Os registros são sua primeira
linha de defesa ao depurar uma Seja uma falha na compilação, melhor falha ou na
implantação, os registros fornecerão
informações detalhadas sobre o que deu errado e onde.
Dica prática Certifique-se de que sua
ferramenta CICD esteja configurada para gerar registros abrangentes em cada estágio do pipeline Reproduza o problema localmente. Se você não tiver certeza do que
causou a falha, tente reproduzir o problema em seu ambiente de
desenvolvimento local Isso ajudará você a
determinar se o problema está
relacionado ao seu código, ao ambiente de CI ou um fator externo.
Dica prática Use
localmente as mesmas ferramentas
e configurações que usei
no pipeline do CICD para garantir a consistência.
Isole o problema. Depois de identificar
o ponto de falha, isole o problema concentrando-se na parte
da tubulação em
que a falha ocorreu Evite mudar
muitas coisas ao mesmo tempo. Em vez disso, faça
alterações incrementais e execute novamente o pipeline para ver se o problema o pipeline para ver se o problema
foi resolvido. Dica prática Use o controle de versão
para rastrear as alterações e revertê-las
facilmente se o problema
persistir após os efeitos. Implemente verificações
de integridade do pipeline. Configure verificações
de saúde em seu pipeline para monitorar métricas importantes,
como tempo de construção, taxas de
erro e taxas de sucesso de
testes. Se alguma dessas métricas
começar a se degradar, pode
ser um sinal de um problema
subjacente que
precisa de atenção Dica prática. Use ferramentas de
monitoramento como Prometheus ou IBM Omega moon para acompanhar o
desempenho do pipeline em principais conclusões
desta primeira lição são: falhas em compilações, falhas em testes
e problemas de implantação são
comuns nos pipelines do CICD, e problemas de implantação são
comuns nos pipelines do CICD, mas podem ser resolvidos de forma eficiente com As principais conclusões
desta primeira lição são: falhas em compilações,
falhas em testes
e problemas de implantação são
comuns nos pipelines do CICD,
mas podem ser resolvidos de forma eficiente com
a solução de problemas sistemática. Segundo, sempre verifique os registros primeiro
ao depurar problemas. Os registros fornecem
informações detalhadas sobre o que deu errado e ajudam a orientar
seus esforços de solução de problemas. terceiro lugar, produzimos o problema
em seu ambiente local para determinar se
o problema está relacionado
à base de código ou ao ambiente do
pipeline. Quatro, siga as melhores práticas,
como isolar o problema, fazer
alterações incrementais e monitorar a integridade do
pipeline para garantir operações
tranquilas e integridade do
pipeline para garantir minimizar Atividade de ganho.
Identifique uma falha recente em seu pipeline de CICD, seja um teste de construção ou uma falha de
implantação, e analise os registros para
entender o que a causou Produzimos o problema em
seu ambiente local e trabalhamos nas
etapas de solução de problemas para resolvê-lo. Documente as etapas
que você tomou para resolver o problema e implemente
uma solução de monitoramento para detectar problemas semelhantes
no início do futuro. O que vem a seguir? Na próxima lição,
exploraremos como usar ciclos de feedback
para otimizar os pipelines Você aprende a analisar os dados de desempenho do
pipeline,
identificar gargalos e implementar estratégias de
melhoria contínua para
refinar seu pipeline do
CICD ao refinar seu pipeline do
CICD
33. Aula 4: usando loops de feedback para otimizar pipelines: Lição quatro, usando
ciclos de feedback para otimizar os pipelines. Bem-vindo à lição
quatro do módulo oito. Nesta lição final,
vamos nos concentrar em como usar ciclos de
feedback para otimizar
seu pipeline de CICD ao longo Ao
analisar continuamente os dados produzidos pelo seu pipeline
e coletar feedback, você pode refinar processos,
remover ineficiências e garantir que seu
pipeline forneça resultados mais
rápidos e confiáveis Ao final desta lição, você saberá como aproveitar
os dados para identificar gargalos, implementar estratégias de
melhoria contínua e estabelecer um ciclo de feedback que mantenha seu Vamos começar. O que são ciclos de
feedback nos pipelines do
CICD Um ciclo de feedback é um processo que as informações coletadas no desempenho do
pipeline são usadas para fazer ajustes e
melhorias ao longo do tempo. Isso significa analisar continuamente os dados do
pipeline e agir com base neles
para otimizar o desempenho, eliminar gargalos e garantir que o Por que os ciclos de feedback são importantes? ciclos de feedback ajudam a garantir que seu pipeline de CICD esteja sempre melhorando à medida que surgem novos
desafios, como tempos de construção mais longos, falhas de
teste ou atrasos na
implantação ciclos de
feedback permitem que você faça melhorias
incrementais para que seu pipeline se torne Por exemplo, uma empresa de
serviços financeiros percebeu que sua suíte de testes estava
demorando muito para ser concluída
durante os períodos de pico. Ao analisar os dados do pipeline e coletar
feedback das equipes de implantação, eles identificaram testes que
poderiam ser executados em paralelo, reduzindo os tempos de teste pela metade
e acelerando a entrega Monitoramento contínuo
como base. Os ciclos de feedback eficazes são construídos com base no monitoramento contínuo Você precisa monitorar regularmente
métricas, como tempos de construção, taxas
de sucesso de testes e frequências
de implantação. Sem esses dados,
você não saberá quais áreas do
pipeline precisam de atenção. Por exemplo, uma plataforma de
comércio eletrônico acompanhou o
tempo de construção do pipeline ao longo de vários meses Ao monitorar esses dados, eles notaram um
aumento gradual na duração da construção e identificaram várias tarefas
redundantes que estavam
retardando o Ao remover essas tarefas, eles reduzem o tempo de construção em 20%. Uh, hum, analisando dados de
desempenho do pipeline para identificar Depois de instalar suas ferramentas
de
monitoramento e monitorar as métricas corretas, a próxima etapa é analisar os dados e identificar
gargalos no pipeline Um gargalo é qualquer estágio
do pipeline que
demore mais do que o esperado
ou cause Principais métricas a serem monitoradas. Para identificar gargalos,
concentre-se nas principais métricas. Tempo de compilação, quanto tempo é necessário para compilar
e criar o código Taxa de sucesso
do teste, a porcentagem de testes
aprovados na primeira tentativa. Duração do gasoduto. O tempo
total necessário para o
código passe da confirmação à
implantação. Frequência de erro. Com que frequência ocorrem erros em
compilações, testes e implantações? Analisando gargalos. Depois de coletar esses dados, você pode começar a
procurar padrões. Certas contas são sempre mais baixas? Os testes geralmente falham
em um estágio específico. As implantações estão atrasadas
devido aos processos manuais? Por exemplo, uma
empresa de telecomunicações que gerencia aplicativos de mainframe de
grande escala percebeu que seus testes de integração estavam demorando mais
do que Ao analisar
os registros de teste e os dados de temporização, eles identificaram um problema de configuração do
ambiente de teste que estava causando atrasos Depois de corrigirem a configuração, tempos de
teste caíram 30%. Ferramentas para ajudar na análise. Há várias ferramentas
que podem ajudar você a analisar os dados de desempenho do
pipeline
e identificar gargalos Grafana para visualizar as métricas do
pipeline em tempo real. Splunk para analisar
registros e métricas. IBM Omega moon para monitorar o desempenho do sistema
mainframe e identificar Estratégias de melhoria contínua
para refinar oleodutos. Depois de identificar os
gargalos, a próxima etapa é implementar melhoria contínua Essas estratégias ajudam você a refinar seu pipeline de CICD ao longo do tempo, garantindo que ele permaneça otimizado
à medida que surgem novos desafios Otimize os estágios de construção e teste. Se as compilações ou
os testes demorarem muito, considere o seguinte.
Paralelização Execute várias compilações ou teste em paralelo para
reduzir o tempo geral. as dependências em cache para que elas não precisem ser
baixadas novamente todas as vezes Teste a segmentação, divida os testes em segmentos menores e
execute-os de forma incremental. Por exemplo, um
profissional de saúde divide seu grande conjunto de
testes de integração em seções menores e
mais gerenciáveis
e as paraleliza Isso reduz o tempo geral
do teste em 40%. Automatize os processos manuais.
Processos manuais, especialmente em implantações, podem introduzir atrasos e erros A automação desses processos
ajudará a agilizar Por exemplo, uma instituição
bancária implementou scripts de
implantação automatizados para seus
aplicativos de mainframe Isso eliminou erros
de implantação manual e reduziu o
tempo de implantação em 50%. Revise e repita regularmente. Otimizar um pipeline
não é uma tarefa única. Estabeleça um ritmo regular para analisar o desempenho do
pipeline, coletar feedback e
iterar melhorias Crie um feedback em que os dados
sejam continuamente coletados, revisados e usados para
melhorar o pipeline. Principais conclusões desta lição. Primeiro, os ciclos de feedback são essenciais para
melhorar continuamente seu pipeline de CICD. Use dados de desempenho para refinar e otimizar cada
estágio do pipeline Segundo, acompanhe regularmente
métricas como tempo de construção, taxa de sucesso do
teste e duração do
pipeline para identificar gargalos e áreas Três, implemente estratégias
como paralelização, segmentação
de testes e automação para Quatro:
coletar continuamente feedback de um pipeline e de equipes para
garantir melhorias contínuas. Atividade de aprendizagem. Analise
as métricas de desempenho do seu pipeline CICD atual usando uma ferramenta de monitoramento como o
Krafana ou o IBM Identifique um gargalo
em seu pipeline,
por exemplo, tempo de construção lento
ou falhas frequentes em testes Implemente uma das
estratégias de
melhoria contínua discutidas. Experimente o teste de paralelização ou automatize o
teste de implantação
manual e documente implantação
manual e documente Parabéns. Você
concluiu o curso. Você chegou ao fim da modernização do
mainframe, CICD Parabéns por
concluir o curso. Nas últimas aulas, você aprendeu como
implementar e otimizar um
pipeline de CICD para mainframes desde o básico do CICD até a
automação de testes, implantação e monitoramento Agora que você adquiriu
essas habilidades essenciais, é hora de
colocá-las em prática. Comece revisando seu pipeline
atual do CICD, identificando áreas
de melhoria e implementando as estratégias que
você aprendeu
ao longo deste Se você está trabalhando
em desenvolvimento, operações ou DiVobs,
os conceitos e as ferramentas que você domina o ajudarão a fornecer
software mais rápido, mais confiável e
mais Próxima etapa. Continue sua jornada na modernização do mainframe O aprendizado não para por aqui. Para continuar desenvolvendo sua experiência em modernização de
mainframe, considere se matricular em um
de nossos Por exemplo, migrar cargas de trabalho de
mainframe para a nuvem, melhores práticas Aqui, você aprenderá
estratégias para mover
com segurança cargas de trabalho de missão
crítica de mainframes para ambientes
em nuvem, garantindo segurança, desempenho e conformidade durante a Outra são as APIs e microsserviços, que modernizam Aqui, você descobrirá
como aproveitar APIs e
microsserviços para modernizar e microsserviços para modernizar e ampliar a funcionalidade do aplicativo de mainframe
legado, ajudando você a se integrar com modernas Ao continuar seus estudos, você permanecerá na
vanguarda da
modernização do sistema de mainframe e ajudará sua organização a prosperar em um cenário de TI
cada vez mais híbrido e baseado em nuvem Obrigado por participar
dessa jornada e esperamos
vê-lo em cursos futuros.