A SAP BTP oferece uma plataforma única para reunir aplicações empresariais, sejam serviços pré-construídos, extensão de aplicações padrão, ou novos desenvolvimentos para ambientes híbridos e em nuvem, facilitando a integração com sistemas SAP e não-SAP.
Devido à natureza dos transportes clássicos SAP e à adoção de novos modelos de desenvolvimento, uma das primeiras perguntas que surgem é se será possível adaptar o ciclo de vida das aplicações aos processos DevOps implementados na empresa.
Neste artigo, lançamos luz sobre este ponto com base na experiência que temos na adoção do modelo DevOps na SAP.
Como comentamos no artigo "Lançando as bases da metodologia DevOps", os pontos a rever para adaptar os desenvolvimentos no SAP BTP ao nosso modelo DevOps são:
- Gerenciamento do código fonte;
- Implantação;
- Testes;
- Automação;
Vamos nos concentrar nos pontos "Gerenciamento do código fonte", "Implantação" e "Automação", pois eles contêm as chaves para a adoção bem-sucedida dos DevOps.
Gerenciamento do código fonte
Como sempre, a recomendação é utilizar uma ferramenta que facilite a gestão, para que você não encontre nenhum problema na integração das ferramentas de desenvolvimento com a plataforma baseada em Git que sua empresa utiliza.
Implantação:
Este é o primeiro ponto onde teremos que tomar decisões importantes, pois terá um impacto direto na forma como vamos gerenciar a implantação das mudanças incluídas no repositório nos diferentes ambientes paisagísticos (DES/QAS/PRD).
O SAP BTP oferece um serviço que permite que os transportes sejam gerenciados de forma muito semelhante à forma como as mudanças são propagadas em ambientes ECC on-premise. Isso abre o caminho para as seguintes opções:
1. Integrar processos de mesclagem de alterações de repositório para invocar processos no SAP CTM que facilitem a propagação entre ambientes
Neste caso, para um desenvolvedor acostumado a utilizar os processos DevOps, a maneira como eles funcionam não é alterada, pois a única mudança que é implementada é a gestão do ramo. Neste caso, as mudanças introduzidas no ramo de integração são as que acionam a execução da cadeia de construção e da cadeia de implantação. Além disso, há uma alteração na forma como as mudanças são propagadas entre os ambientes. É utilizada a camada de transporte implementada na nuvem para mover o artefato do ambiente de desenvolvimento para a produção.
Isto pode, no entanto, causar problemas ao implantar um hotfixe, pois o artefato que é implantado é o do ambiente de desenvolvimento e o gerenciamento não é feito a partir do repositório.
2. Gerenciar as implantações a partir da estratégia de ramificação, deixando as operações no repositório e lançar as implantações para diferentes ambientes
A eliminação da camada de transporte dá mais controle sobre o código que está sendo verificado, gerando uma entrega muito mais confiável. Neste caso, o produto é implantado diretamente no ambiente, levando em conta que para executar uma mistura no ramo mestre foi necessário fazer misturas com os ramos de controle, implementando automaticamente em diferentes ambientes.
Com isto temos mais flexibilidade quando se trata de incluir mudanças em ambientes produtivos, tais como hotfixe ou reparos.
Estes modelos são o primeiro passo na adoção dos processos DevOps no SAP BTP. Na Techedge, facilitamos a tomada de decisões e adaptamos os diferentes modelos à infraestrutura da sua empresa:
- Sincronização dos transportes em sistemas BTP e on-premise;
- Integração com o SAP Solution Manager;
- DevOps para ABAP.
Automação
O conceito de um pipeline DevOps é que o fluxo está formado por um conjunto de automações e ferramentas, que facilitam aos desenvolvedores e equipes de operações a construção de produtos de software e sua implantação na produção. Tradicionalmente, no mundo SAP, estivemos presos ao processo de gestão de transporte que, embora robusto, era rígido demais para automatizar processos.
Na evolução do fabricante isto está mudando e nos permite utilizar qualquer ferramenta do mercado graças a seu toolkit.
Um exemplo disso é a biblioteca SAP Piper. Ele encapsula a funcionalidade de implementação mais comum em produtos SAP:
- Implementação BTP de aplicações SAPUI5 (Fiori);
- Implantação de extensões/addons em BTP;
- Implantação de aplicações híbridas, por exemplo, SAPUI5 + ABAP CDS integrando-se com SAP SOLMAN.
NOTA: Para mais integrações, consulte a documentação da biblioteca.
Há duas opções na biblioteca:
- Imagem Docker: contém todas as aplicações necessárias para construir o pipeline baseado no Jenkins como um motor de integração contínua. Deve-se notar que para utilizar a biblioteca desta forma é aconselhável implantá-la em uma plataforma de gerenciamento de contêineres como a Kubernetes.
- Piper Cli: Oferece um conjunto de comandos que nos permite adaptar a infraestrutura existente e gerar os pipelines necessários para atender às exigências da empresa.
Além de facilitar os processos de implantação, também é necessário levar em conta a necessidade de garantir a qualidade do produto de software a ser entregue. É por isso que oferecemos a possibilidade de automatizar processos como, por exemplo:
- Análise da qualidade do código;
- Execução de casos automáticos;
- Integração com ferramentas de testes funcionais de terceiros.
Na Techedge podemos ajudar sua empresa a automatizar estes processos independentemente do motor que os executa, desde pipelines montados em plataformas em nuvem como Azure, DevOps, até instalações mais tradicionais em produtos como Jenkins ou Bamboo.
Conclusão
Com a adoção dos benefícios do mundo open source, a SAP facilitou a modernização do desenvolvimento de produtos de software usando sua plataforma SAP BTP, mas também abriu o caminho para que a gestão do ciclo de vida do software adotasse os processos DevOps de uma maneira muito simples.
Na Techedge, podemos ajudá-lo no processo de definição e implementação como parceiro de referência de sua empresa. Quer saber mais? Entre em contato e fale com um de nossos especialistas.