Você já ouviu falar do CloudBees?

Essa plataforma fundada em 2010, proporciona ao desenvolvedor maior facilidade nos procedimentos de construção, desenvolvimento e implantação de aplicativos na nuvem, sendo o CloudBees classificado como Plataforma como serviço (PaaS). Seu principal objetivo é o de facilitar a construção, implantação e execução de forma gratuita de soluções Java, na nuvem, e isso pode se integrar perfeitamente ao Kubernetes, mas, antes de apresentar como implantar um Core CloudBees em um Kubernetes VMware, vamos às características da plataforma.

A arquitetura da CloudBees é baseada em três tipos de serviços: Build, Run e Manage. Na construção, são disponibilizadas ferramentas como o plugin para IDE Eclipse e suporte à Jenkins, para a execução, a hospedagem das aplicações na nuvem é garantida por meio de servidores de aplicação como JBoss e Tomcat, implantação pelo WAR ou IDE Eclipse e o serviços de armazenamento de dados pelo MySQL e PostgreSQL. Para o gerenciamento, recursos de identificação de problemas, facilidade de visualização dos relatórios de logs e ferramentas de controle de versões e consumo de memória são os principais. Os produtos da CloudBees se dividem nas categorias Core, CodeShip, DevOptics e StarterKit.

CloudBees Core

Ao utilizar uma estratégia de autorização sofisticada para reduzir riscos à entrega de software, garante-se que as credenciais e os recursos não sejam mal utilizados, criando conformidade sem prejudicar a agilidade. Além disso, independentemente do tipo de aplicativo que você está fornecendo – Java, mainframe, .NET – o CloudBees Core é a solução de CI / CD que serve para todos os ambientes de aplicativos, atuando com uma flexibilidade irrestrita.

Pode-se ir além do dimensionamento físico e impulsionar a colaboração entre as equipes, propagando facilmente as práticas recomendadas. Oferecer um CD central como serviço em toda a sua organização, reduzindo a carga administrativa, é uma das propostas do CloudBees. Outras características incluem:

Gerenciamento de tarefas administrativas: experiência de usuário limpa, elegante e intuitiva e gerenciamento centralizado de mestres. Integrações diretas com todos os principais provedores de serviços em nuvem.

Redução de risco com segurança e conformidade: o Controle de Acesso baseado em função do CloudBees, além de recursos de segurança adicionais, permite que as permissões sejam definidas pelo usuário, equipe, agentes, pastas e trabalhos.

Trabalhe tanto com aplicativos modernos como com legados: execute aplicativos modernos em uma arquitetura nativa em nuvem para escalabilidade e elasticidade. Aplicativos herdados também podem se beneficiar utilizando o poder do Kubernetes para cargas de trabalho de CI / CD.

Construído para Kubernetes e Docker: escale automaticamente para cima e para baixo, sob demanda, com elasticidade no nível do cluster. Utilize as verificações de integridade para identificar pods com falha e gerar substituições conforme necessário.

CloudBees CodeShip

Não é necessário esperar que as construções sejam iniciadas quando a velocidade e a confiabilidade são críticas, os desenvolvedores assumem o controle sobre os pipelines de entrega de ponta a ponta e equipes que não querem perder tempo construindo, gerenciando e mantendo sua infraestrutura não precisam se preocupar com isso.

O ambiente de IC da CloudBees é simples e pronto para uso, os builds podem ser executados rapidamente com dependências em cache, locação única, chave SSH e criptografia de cache são as medidas para segurança dos projetos, não há filas ou tempo de espera devido às pipelines paralelas e tudo que se executa em um contêiner pode ser executado na CloudBees. Suporte híbrido para conexão de repositório local ou em nuvem, escalonamento previsível, autonomia personalizável e testes automatizados são outras características desse modelo de produto.

CloudBees DevOptics

Visibilidade imediata dos gargalos e tempos de espera, insights garantidos para otimização do projeto, aplicação de práticas recomendadas de DevOps e colaboração entre equipes para melhoria da entrega contínua e acesso à informações acionáveis para mensuração do desempenho do DevOps em todo o ciclo de vida de entrega do projeto.

O CloudObtics DevOptics integra-se perfeitamente ao Cloudbees Core, oferecendo visibilidade e insights sobre o ciclo de vida de entrega de software, com escalabilidade, ferramentas e governança de classe empresarial, necessários para fornecer soluções valiosas.

Indicadores atualizados de desempenho do DevOps nos fluxos de valor de software, dados agregados de todo o portfólio nos processos e na infraestrutura de entrega de aplicativos de sua organização, visibilidade do desempenho e disponibilidade de sua plataforma de entrega contínua subjacente e comparação do desempenho em todas as suas equipes e fluxos de valor de software são as métricas fornecidas.

Esses fluxos de valor vão da ideia ao tempo real, permitindo a identificação de onde os trabalhos estão enfileirando ou falhando e o impacto disso nos componentes dependentes, a análise da causa raiz também é possibilitada pelo drill down nos pipelines, problemas e confirmações de código para determinação de porque o fluxo de valor é bloqueado. A conexão com as equipes, ferramentas e fluxos de valor fornece uma única fonte de verdade para os canais de entrega dos projetos.

Há também o CloudBees Starter Kit, que une as funcionalidades do Core ao DevOptics.

Implantar o CloudBees Core em um ambiente Kubernetes VMware

O VMware Kubernetes Engine (VKE) é uma oferta Kubernetes-as-a-Service de nível empresarial dentro do portfólio VMware Cloud Services. Ele fornece clusters Kubernetes fáceis de usar, seguros, econômicos e totalmente gerenciados. O VKE permite que os usuários executem aplicativos em contêiner sem o custo e a complexidade de implementar e operar o Kubernetes.

O processo apresentado abaixo criará um novo cluster Kubernetes na VKE e instalará os componentes necessários para o CloudBees Core nesse ambiente.

O primeiro passo é ter acesso ao VMware Cloud PKS, para tal, acesse aqui.

Então, após o login e com as linhas de comando disponíveis as ferramentas a serem instaladas são:

  • kubectl;
  • leme;
  • Pacote de linha de comando VKE.

Kubectl e o pacote de linha de comando VKE podem ser obtidos dentro da interface web VKE. Para acessar esses utilitários, faça o login na VKE UI e selecione o link ‘Developer center’ na barra de navegação vertical na borda esquerda da tela. Clique na guia ‘Downloads’ no painel do Centro de desenvolvedores e baixe os pacotes VKE CLI e kubectl para o sistema operacional necessário.

CloudBees

Após a instalação, vamos à configuração do cluster do Kubernetes, que sob VKE, pode ser feita pela interface do usuário web ou pacote de linha de comando VKE. No caso web, clique em “Novo Cluster Inteligente”, e selecione as seguintes opções:

Parte 1

  • Tipo de implantação: escolha ‘Development Cluster’ para minimizar gastos;
  • Região: selecione um da lista disponível;
  • Modo privilegiado: Marque esta caixa, pois será necessário executar construções de imagens de contêiner dentro do cluster;
  • Nome: atribua ao cluster um nome descritivo para sua referência.

Se preferir utilizar a linha de comando VKE:

  • Faça login com o comando ‘vke account login -t <código-de-organização> -r <token de atualização>’;
    Os colchetes são marcadores de posição, ao efetuar login na interface web do VKE selecione ‘Centro de Desenvolvedores’ na barra vertical à esquerda para encontrar esses valores. O ID da organização agora deve estar visível no exemplo do comando de login da conta vke na guia Visão geral. Na imagem abaixo, o valor do org-id é redigido por uma barra retangular.
    CloudBees
  • Para recuperar o valor de token de atualização necessário, siga o link “Obter seu token de atualização” logo acima do comando de exemplo, no lado direito da tela. Um exemplo da tela que exibe os tokens API ou Refresh é mostrado na figura abaixo. Agora você pode usar o comando totalmente preenchido para efetuar login no VKE por meio da linha de comando.
    CloudBees
  • Selecione um nome e uma região de acordo com a preferência e ative o “modo privilegiado”;
  • Obtenha acesso ao cluster por meio do utilitário kubectl com o comando ‘vke cluster auth setup <nome do cluster>‘;

    Parte 2
  • Instale o Helm, ‘The Package Manager for Kubernetes’, com atenção principalmente à pós-instalação;
  • Instale o Tiller através do comando ‘helm init‘;
  • Monitore o progresso do pod do lema pelo através do comando ‘kubectl get pods -n kube-system -w‘;
  • Clone o repositório criado por Jeff Fry disponível neste link;
  • Vá até o diretório base da cópia local do repositório e execute o comando ‘helm package ./CloudBeesCore‘;
  • Após a criação do gráfico Helm, criaremos dois namespaces (nginx e cloudbees) do Kubernetes e um objeto clusterbrinding (permissões para nginx), para isso, execute os próximos comandos;
  • kubectl create namespace cloudbees‘;
  • kubectl create namespace ingress-nginx‘;
  • kubectl create clusterrolebinding nginx-ingress-cluster-rule –clusterrole=cluster-admin –serviceaccount=ingress-nginx:nginx-ingress‘;
  • O próximo passo é instalar o controlador de ingresso de seu próprio leme estável gráfico, use o comando ‘helm install –namespace ingress-nginx –name nginx-ingress stable/nginx-ingress –version 0.23.0 –set rbac.create=true –set controller.service.externalTrafficPolicy=Local –set controller.scope.enabled=true –set controller.scope.namespace=cloudbees‘;
  • Verifique o status do valor Inferência do Load Balancer na saída através do comando ‘kubectl describe service nginx-ingress-controller -n ingress-nginx‘;
  • Agora é hora de implantar o gráfico de leme contendo os componentes do CloudBees Core, os valores específicos para os quais há espaço no comando devem ser plugados, ‘helm install cloudbeescore –set cjocHost=< lb-ingress-hostname > –namespace cloudbees‘;
  • Nesse caso, o namespace para a implementação do CloudBees Core foi definido de acordo com o namespace que criamos originalmente com o cluster do kubernetes para essa finalidade. É também o mesmo namespace referenciado como o ‘controller.scope.namespace’, conforme configurado durante a instalação do gráfico de leme do controlador de entrada nginx.O valor que precisará ser substituído, dependendo da instalação específica, é o <lb-ingress-hostname>. Altere este espaço reservado com o valor do nome de host ‘Carregador do Load Balancer’ da saída do comando anterior. Uma vez que este comando tenha sido executado, o progresso do rollout pode ser monitorado através do comando ‘kubectl rollout status sts cjoc –namespace cloudbees
    Wait for output of this type (ID after ‘cjoc-‘ will change):
    statefulset rolling update complete 1 pods at revision
    cjoc-59cc694b8b…’
  • Quando a mensagem ‘rolling update complete’ for exibida, execute este comando para recuperar a senha admin gerada inicialmente para a instância do CloudBees Core ‘kubectl exec cjoc-0 cat /var/jenkins_home/secrets/initialAdminPassword –namespace cloudbees‘;
  • Salve o valor dessa saída e navegue até a URL pública do CloudBees Jenkins Operations Center (CJOC): http: // <lb-ingress-hostname> / cjoc. O espaço reservado <lb-ingress-hostname> precisará ser substituído pelo valor do comando kubectl describe service utilizado anteriormente. Faça o login como ‘admin’ com a senha revelada pelo comando anterior para iniciar o assistente de configuração do CJOC.

Leia também...