Codepipline é um pouco subestimado, porque a maioria das pessoas não tem a necessidade de uma ferramenta de CD tão programável. Cada faceta do pipeline de construção pode ser configurada e pode enviar eventos de notificação via AWS SQS. Quando você já está fazendo muito através da AWS, pode reduzir o incômodo de manter todo o seu código de operações em um só lugar.
Eu não vi outras ferramentas de CD terem tanta programabilidade — e mesmo onde possam ter, ainda hesito em ter muitas coisas em muitos lugares distintos. Além disso, o CodePipeline possui uma interface de linha de comando completa. Análise coletada por e hospedada no G2.com.
Não há realmente nada amigável sobre isso, quando você o compara a ferramentas como CodeShip ou Ansible. CodePipeline é uma 'ferramenta de programadores' — e por isso carece da 'facilidade' de interação que outras ferramentas possuem. Considere que toda funcionalidade do CodePipeline tem um equivalente na linha de comando.
Quando construí coisas para empresas menores, seria demais para passar para engenheiros menos experientes. Isso também é o caso em empresas de médio porte, onde há pessoas inteligentes o suficiente para fazer grandes coisas, mas não o suficiente para 'ajustar o motor regularmente'. Mesmo em uma empresa com cerca de 100 engenheiros, o grupo de operações era pequeno o suficiente para que o CodePipeline fosse um pouco demais para configurar e manter com uma construção complexa que envolvia uma grande árvore de dependências. Nesse caso particular, o GoCD ofereceu mais interface de usuário desde o início. Realmente se resume ao tipo de pessoas que você tem.
Como na maioria dos produtos da AWS, o suporte é caro ou difícil de encontrar (a menos que você esteja em uma cidade que tenha um AWS Loft). Análise coletada por e hospedada no G2.com.
Como parte das ferramentas fornecidas pela AWS para DevOps, o CodePipeline permite uma entrega contínua na nuvem AWS. Ele pode ser usado para conectar ferramentas de integração contínua até a implantação da sua aplicação. Ele lida com todas as etapas relacionadas ao ciclo de vida do aplicativo, ou seja, teste, construção e implantação. Primeiro, ele captura seu código-fonte de um repositório (em commits, por exemplo) conectando-se ao repositório correspondente, potencialmente lançando uma etapa de construção/teste e, em seguida, implantando os artefatos no ambiente de produção. Ele possui um bom nível de segurança, pois uma função IAM pode ser atribuída a todo o processo, o que pode garantir o isolamento de todo o processo. Além disso, possui um assistente intuitivo que pode ajudar a configurar rapidamente um ambiente de CD para sua aplicação. Análise coletada por e hospedada no G2.com.
Está vinculado ao AWS e não pode ser usado localmente ou na infraestrutura de qualquer outro provedor de nuvem. Além disso, ainda carece de muitas integrações, por exemplo, suporta um conjunto limitado de repositórios de código-fonte, por enquanto o código da aplicação só pode ser hospedado no S3 ou no GitHub. Além disso, os alvos de implantação só podem ser uma destas opções: Beanstalk ou CodeDeploy, que ambos são serviços da Amazon. Da mesma forma, os provedores de build são limitados ao Jenkins e outro CI baseado em SaaS. Análise coletada por e hospedada no G2.com.
O que é bom sobre a AWS é que há muitos serviços gerenciados que escondem a complexidade de sua configuração e, mais importante, a escalabilidade. Um desses serviços é o CodePipeline, que é um serviço de Entrega Contínua (CD) hospedado. Ele possui uma interface de usuário baseada na Web que ajuda na modelagem, visualização e automatização das etapas necessárias para liberar qualquer tipo de aplicação (seja uma simples ou uma complexa com muitas partes móveis). Na verdade, com o CodePipeline é muito fácil modelar todo o processo de liberação para construir uma base de código, implantar nos ambientes de teste, testar a aplicação e, finalmente, liberá-la para a plataforma de produção. Então, cada vez que a base de código muda, o CodePipeline executará automaticamente as compilações, testes e implantações conforme modelado. Além disso, o CodePipeline é um serviço aberto que pode ser integrado com ferramentas de terceiros ou sistemas personalizados próprios em qualquer estágio do processo de liberação para criar uma solução de ponta a ponta. Análise coletada por e hospedada no G2.com.
O Code Pipeline ainda é um serviço jovem, infelizmente ainda não está disponível em todas as regiões (disponível apenas nos EUA). Além disso, os repositórios de código de aplicação que são suportados ainda estão limitados ao Github e S3. Além disso, há um limite para o número de Code Pipeline que um determinado usuário da AWS pode estar vinculado (cerca de 20, se isso não foi alterado). O estágio de implantação no Code Pipeline é limitado à infraestrutura da AWS, ou seja, se parte de suas aplicações estiverem hospedadas em outro provedor de nuvem, então não será possível automatizar tudo de um só lugar. Análise coletada por e hospedada no G2.com.
Vindo do Jenkins, alguns recursos sérios eram necessários para nos manter no Codepipeline. Um deles era a implantação hospedada. Por 1$ por pipeline ativo por mês, era um ótimo negócio. O serviço é altamente escalável e as implantações podem ser gerenciadas em grupos de autoescalonamento. Muito fácil espelhar pipelines. Mudanças na aplicação e no pipeline podem ser implantadas em um único commit. O Codepipeline pode ser configurado com IAM, para realizar ações em nosso nome. Ambientes de teste podem ser configurados para permitir tráfego apenas de fontes internas. Foi muito fácil mudar do Jenkins. Análise coletada por e hospedada no G2.com.
Nós rapidamente atingimos o limite de 20 pipelines por conta que é imposto. Encadear pipelines é impossível se esse limite for estabelecido, pois isso nos leva a 20 ainda mais rápido. Capacidade do provedor não é tão boa, pode ser mitigada com Jenkins, mas então qual é o ponto de usá-lo. Funciona muito bem para AWS, para outros serviços, vai entender. Análise coletada por e hospedada no G2.com.
Muitas coisas para gostar no CodePipeline. É diretamente da Amazon, então é muito bem integrado com o serviço S3 deles. Podemos construir, executar testes e implantar em um passo, e isso lhes deu uma vantagem. Para o provedor de origem, podemos conectar diretamente com o GitHub, no entanto, o upload de zip personalizado também é suportado se estiverem hospedados em um bucket S3. Muito bem integrado com o Jenkins, então a etapa de construção e implantação aproveita isso. Pode implantar facilmente na maioria dos servidores, se configurado corretamente. Análise coletada por e hospedada no G2.com.
Para configurá-lo corretamente, precisávamos configurar uma série de coisas. O pipeline do Jenkins no CodePipeline é apenas a ponta do iceberg, tivemos que configurar uma regra do IAM para permitir que ele executasse ações da AWS. Após mais algumas etapas de configuração, finalmente pudemos usar o CodePipeline. Análise coletada por e hospedada no G2.com.
- configurações configuráveis;
- implantação com um clique;
- organize dependências em um aplicativo de múltiplos projetos;
- crie uma maneira repetível de criar artefatos que levem o aplicativo à produção. Análise coletada por e hospedada no G2.com.
- A declaração de dependências pela primeira vez tende a ser complicada. Análise coletada por e hospedada no G2.com.
Apreciei que só pagamos pelo que usamos. E sem compromisso. Análise coletada por e hospedada no G2.com.
Plugins personalizados foram uma ótima adição, mas exigiram muito de tentativa e erro. Análise coletada por e hospedada no G2.com.
AWS CodePipeline é um Software como Serviço, sem preocupações com configuração e instalação. Análise coletada por e hospedada no G2.com.
O AWS Code Pipeline é bom, mas faz você ficar preso à AWS. Análise coletada por e hospedada no G2.com.