Entrega contínua com PaaS (Plataform as a Service) - Continuação
Autor: Gabriel Prestes | Publicado: 2016-06-24T08:16:00-03:00




Relacionadas a publicação anterior ainda precisamos responder duas questões relevantes: 

 &nbsp;&nbsp;

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 é 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 &nbsp;mostraremos &nbsp;as soluções em um cenário de exemplo.



Premissas e pré-requisitos para o ambiente proposto:


Pré-requisitos




Ao menos duas máquinas virtuais para simular o ambiente; 






Recursos físicos disponíveis para que o fluxo publicado no post inicial seja efetivado: 







Premissas




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. 






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






Licenciamento não serão abordados;






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.




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 &nbsp;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. &nbsp;



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 &nbsp;


IDE: Integrated development environment]]

Publicação também disponível em: http://ilegra.com/beyonddata/