Relacionadas a publicacao anterior ainda precisamos responder duas questoes relevantes: Quais solucoes utilizar?Quais as vantagens obtidas? Caso nao tenha lido a publicacao inicial, que gerou a necessidade de responder tais questionamentos, confira o post anterior - Entrega continua com PaaS (Plataform as a Service)O ponto e que dependera das solucoes utilizadas, bem como do tipo de demanda da organizacao em que voce aplicara tal solucao. Veja que os fatores para que ocorra tal variacao serao o tamanho da organizacao, o orcamento disponivel para a implantacao, a estrutura a ser orquestrada, a cultura e a maturidade do ciclo de desenvolvimento.Aqui utilizaremos algumas solucoes que sao bem aceitas pelo mercado, onde voce podera substituir de acordo com seu cenario. Nao estamos tratando de configuracao e uso de solucao, mas sim propondo um modelo de ciclo e exemplificando com ferramentas disponiveis e de facil acesso, ou seja, sem nos preocuparmos com licenciamento e custos de sustentacao. Considerando que na primeira publicacao implantamos a ideia de entrega continua e uso do PaaS, agora mostraremos as solucoes em um cenario de exemplo.Premissas e pre-requisitos para o ambiente proposto:Pre-requisitosAo menos duas maquinas virtuais para simular o ambiente; Recursos fisicos disponiveis para que o fluxo publicado no post inicial seja efetivado: PremissasUso dos seguintes componentes: IDE (Integrated development environment): Sera utilizada para o desenvolvimento do codigo.Repositorio de versoes: Controlador de versoes, gerenciar alteracoes e mesclagens.Ferramenta de integracao continua (CI - Continuous Integration): Fara a integracao entre o ambiente do desenvolvimento e os ambientes disponiveis de evolucao da aplicacao, originalmente publicando alteracoes no ambiente de desenvolvimento, testes, homologacao e producao. PaaS (Plataform as a Service): Plataforma que em nosso cenario ficticio sera o hospedeiro da aplicacao nos ambientes mencionados acima. Como falamos acima, as solucoes utilizadas foram definidas por padrao de mercado ou melhor adaptacao e conhecimento, o leitor pode adaptar as solucoes desde que saiba trabalhar com as mesmas;Licenciamento nao serao abordados;Desconsideraremos que nao e interessante termos os ambientes (desenvolvimento, etc...) em um mesmo servidor fisico, sem isolamento de rede, geografico, e demais recomendacoes que a ISO 27001 julga relevante.Quais solucoes utilizar? Na camada de PaaS como solucao para uma infraestrutura (datacenter) local ou hibrida, o projeto mais maduro e o OpenShift. Para realizar a integracao uma boa indicacao e o Jenkins , devido ao numero relevante de plugins disponiveis. Com estes plugins o ciclo e facilitado, pois podemos integrar com repositorios GIT/GITHUB, projetos Maven para geracao do artefato e nao esquecendo da camada de dados plugins para o FlywayDB ou Liquibase. Quanto a qualidade de codigo, testes de performance e etc, o Jenkins tem plugins de uso simplificado para utilizacao do Sonar, jMeter e demais solucoes. Por ser um integrador, nao poderia faltar um plugin para realizar a publicacao da aplicacao no PaaS, o que justifica ainda mais as escolhas mencionadas acima. Quais as vantagens obtidas? Poderia citar inumeras vantagens adquiridas pelo uso do CD, CI, mas focaremos em uma em especifico, que e gerada pela composicao de solucoes mostradas na publicacao, independente do valor investido ou do tamanho da organizacao, e de extrema importancia para o desenvolvedor: