MOaaS

Na primeira publicação sobre entrega contínua com PaaS ficaram algumas questões relevantes que ainda precisam ser respondidas:

  • Quais soluções utilizar?
  • Quais as vantagens obtidas?

Caso não tenha lido a publicação inicial, que gerou a necessidade de responder tais questionamentos, confira o post anterior – Entrega contínua com PaaS (Plataform as a Service).

O ponto principal é que dependerá das soluções utilizadas, bem como do tipo de demanda da organização em que você aplicará tal solução. Veja que os fatores para que ocorra tal variação serão o tamanho da organização, o orçamento disponível para a implantação, a estrutura a ser orquestrada, a cultura e a maturidade do ciclo de desenvolvimento.

Aqui utilizaremos algumas soluções que são bem aceitas pelo mercado, onde você poderá substituir de acordo com seu cenário. Não estamos tratando de configuração e uso de solução, mas sim propondo um modelo de ciclo e exemplificando com ferramentas disponíveis e de fácil acesso, ou seja, sem nos preocuparmos com licenciamento e custos de sustentação.

Considerando que na primeira publicação implantamos a ideia de entrega contínua e uso do PaaS, agora  mostraremos  as soluções em um cenário de exemplo.

 

Premissas e pré-requisitos para o ambiente proposto:

 Pré-requisitos 

  1. Ao menos duas máquinas virtuais para simular o ambiente;
  2. Recursos físicos disponíveis para que o fluxo publicado no post inicial seja efetivado:

paas

 

Premissas

Como falamos acima, as soluções utilizadas foram definidas por padrão de mercado ou melhor adaptação e conhecimento, logo, você pode adaptar as soluções desde que saiba trabalhar com as mesmas.

  1. Licenciamento não serão abordados.
  2. Desconsideraremos que não é interessante termos os ambientes (desenvolvimento, etc…) em um mesmo servidor físico, sem isolamento de rede, geográfico, e demais recomendações que a ISO 27001 julga relevante.
  3. Uso dos seguintes componentes:
  • IDE (Integrated development environment): Será utilizada para o desenvolvimento do código.
  • Repositório de versões: Controlador de versões, gerenciar alterações e mesclagens.
  • Ferramenta de integração contínua (CI – Continuous Integration): Fará a integração entre o ambiente do desenvolvimento e os ambientes disponíveis de evolução da aplicação, originalmente publicando alterações no ambiente de desenvolvimento, testes, homologação e produção.
  • PaaS (Plataform as a Service): Plataforma que em nosso cenário fictício será o hospedeiro da aplicação nos ambientes mencionados acima.

Quais soluções utilizar?

Na camada de PaaS como solução para uma infraestrutura (datacenter) local ou híbrida, o projeto mais maduro é o OpenShift. Para realizar a integração uma boa indicação é o Jenkins, devido ao número relevante de plugins disponíveis. Com estes plugins o ciclo é facilitado, pois podemos integrar com repositórios GIT/GITHUB, projetos Maven para geração do artefato e não esquecendo da camada de dados plugins para o FlywayDB ou Liquibase.

Quanto a qualidade de código, testes de performance e etc, o Jenkins tem plugins de uso simplificado para utilização do Sonar, jMeter e demais soluções.

Por ser um integrador, não poderia faltar um plugin para realizar a publicação da aplicação no PaaS, o que justifica ainda mais as escolhas mencionadas acima.

 

Quais as vantagens obtidas?

Poderia citar inúmeras vantagens adquiridas pelo uso do CD, CI, mas focaremos em uma em específico, que é gerada pela composição de soluções mostradas na publicação, independente do valor investido ou do tamanho da organização, e de extrema importância para o desenvolvedor: o ganho de agilidade e preocupar-se com o que importa – a qualidade do desenvolvimento, reduzindo a complexidade de infraestrutura para publicação de aplicações.

Legendas

PaaS: Plataform as a Service

CD: continuous delivery

CI: Continuous Integration

IDE: Integrated development environment

Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code