Como aplicar DevOps visando a integração de dados

Conquistar agilidade no processo de desenvolvimento é o foco que as empresas devem perseguir para ter promoções de funcionalidades, otimizando os ciclos de validações até possuírem um pacote de qualidade apto a estar em produção. Otimizar tempo, dinheiro e estar atualizado são o cerne da T.I. Digital.

A metodologia ágil trouxe para as empresas (em especial empresas de tecnologia) uma quebra de paradigma, na qual os impedimentos de projetos são tratados de forma mais eficaz, prezando pela transparência e pela forma de resolverem os impedimentos com maior agilidade, afim de ter um projeto com entregas segmentadas, contínuas, mais ágeis e próximas do Key User.

O objetivo é claro: reduzir o retrabalho e a rotina; fazer com qualidade e evitar as tão temidas alterações de escopo no processo de validação.  Após a metodologia ágil, foi necessário dar mais um passo com foco na qualidade e eficiência das entregas.

Nasceu a cultura DevOps. Não se trata de um processo nem uma metodologia. É uma cultura em que as pessoas devem estar aculturadas, compartilhando vantagens que essa postura proporciona.

Desenvolvimento e operação, este é o lema. Ao invés de pensarmos em extinguir os times de Operação ou Desenvolvimento, a proposta é simples: apostar na sinergia entre times e áreas, em uma cultura. Um time sinérgico ao outro, em busca de um único objetivo – a qualidade e eficiência.

Como facilitar a integração de dados?

Muitas empresas utilizam de um middleware, seja Oracle Middleware ou outro, para criar seus processos de integração de dados. Com o middleware é possível criar processos ágeis com a cultura DevOps? Sim, porém algumas fases devem ser aplicadas para uma melhor integração de dados.

  • Ambiente de desenvolvimento 
    Seu ambiente de desenvolvimento é local ou remoto (compartilhado)? Se o ambiente de criação for compartilhado, mude rapidamente para um ambiente local, a menos que a utilização seja através de um ambiente PaaS, onde a plataforma está integrada, caso contrário crie imagens Docker ou máquinas virtuais e as disponibilize, mas deixe seu desenvolvedor com certa autonomia.
  • Gerenciamento de código fonte
    Os códigos devem ser versionados e armazenados em um repositório de fontes. O GIT é uma excelente plataforma. Lembre-se: código é código e documentação é documentação.
  • Documentação Técnica
    Faça uso de ferramentas como wikis, “doc” do GIT para documentar pontos importantes e relevantes relacionados aos códigos fontes e à infraestrutura que os cercam.
  • Documentação Funcional
    Utilize ferramentas com princípios de armazenamento de documentação e versionamento, onde é possível facilmente procurar textos específicos dentro dos documentos armazenados, analisar e aprovar alterações entre revisões e trabalhos colaborativos.
  • Testes
    No caso do Oracle SOA Suite, utilize o Test Suite, configurado pela própria IDE JDeveloper. Com esta funcionalidade é possível simular dados de entrada e saída, e facilitar o processo de testes unitários e validações, aproveitando a integração de dados.
  • Publicações
    Utilize das ferramentas como Jenkins, Nexus, Maven e outras para validação estrutural dos fontes (PMD, Checkstyle e outros), geração de pacotes, versionamento (tags, branches, etc), disponibilização de pacotes e implantações.
    Também é possível  efetuar configurações para notificar responsáveis e times a qualquer problema encontrado. Desta forma, o desenvolvedor não precisa se preocupar com algumas tarefas rotineiras, pois as rotinas são automatizadas e ocorrem de forma transparente para o desenvolvedor. Assim é possível diminuir consideravelmente overloads de acesso aos ambientes para implantações, testes e outros.
  • Ferramentas de automatização
    É possível utilizar o Jenkins para orquestrar os processos do ciclo DevOps focado nas particularidades do Oracle Middleware. Utilizando os repositórios de fontes como gatilho, o Jenkis pode disparar as fases do processo DevOps. É possível montar um processo baseado em builds, testes, validações, versionamentos, releases e implantações em qualquer ambiente.
    Todas podem ser configuradas a partir de execução manual ou automática. Muitas vezes, algumas empresas necessitam de um processo de Gestão de Mudanças (GMUD), o qual também é possível ser configurado na ferramenta Jenkins, como por exemplo, através de um processo manual para a criação de um documento de GMUD.
    Uma boa politica a se implantar na empresa com a cultura DevOps é colocar de forma visível painéis com os monitores de pipelines do Jenkins para informar a saúde dos ciclos. Assim, pode-se criar dinâmicas interativas entre os times de criação, visando a assertividade e qualidade dos pacotes gerados, sempre contando com a integração de dados.
  • Provisionamento de ambiente
    Muito se pergunta sobre auto dimensionamento do ambiente. É possível com middleware? Sim, mas acontece de forma mais fácil utilizando o Oracle Cloud. O Oracle Middleware tem uma restrição para auto dimensionamento em instalações OnPremisse, mas não é impossível, através de script WLST e muita configuração, alcançar o resultado de escalonamento em servidores OnPremisse.

DevOps faz parte do conceito da engenharia ágil, tendo como forte objetivo a qualidade e o aculturamento das equipes com base na integração de dados. Como consequência, teremos um processo maduro com maior eficiência, eliminando atividades repetitivas e suscetíveis a falhas.