sexta-feira, 24 de junho de 2016

Entrega contínua com PaaS (Plataform as a Service) - Continuação


Relacionadas a publicação anterior ainda precisamos responder duas questões relevantes:
  
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  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;


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


Premissas


  1. 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.


  1. 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;


  1. Licenciamento não serão abordados;


  1. 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  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]]

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

Nenhum comentário:

Postar um comentário