Azul-Verde é um modelo de implantação que usa dois hosts do Docker, implantados e configurados de forma idêntica em um cluster do Kubernetes. Com o modelo de implantação Blue-Green, reduz-se o tempo de inatividade que pode ocorrer no ambiente quando os pipelines no Code Stream implantam os aplicativos.

As instâncias azul e verde no modelo de implantação têm finalidades diferentes. Somente uma instância por vez aceita o tráfego dinâmico que implanta seu aplicativo, e cada instância aceita esse tráfego em momentos específicos. A instância azul recebe a primeira versão do aplicativo, e a instância verde recebe a segunda.

O balanceador de carga no ambiente Azul-Verde determina qual rota o tráfego dinâmico assumirá ao implantar o aplicativo. Ao usar o modelo Azul-Verde, seu ambiente permanece em operação, os usuários não percebem nenhum tempo de inatividade, o pipeline faz a integração de forma contínua e implanta o aplicativo no ambiente de produção.

O pipeline criado no Code Stream representa o modelo de implantação Azul-Verde em dois estágios. Um estágio é para desenvolvimento, e o outro estágio é para produção.

O espaço de trabalho do pipeline do Code Stream é compatível com o Docker e o Kubernetes para tarefas de integração contínua e personalizadas.

Para obter informações sobre a configuração do espaço de trabalho, consulte Como configurar o espaço de trabalho do pipeline.

Tabela 1. Tarefas do estágio de desenvolvimento para implantação Azul-Verde
Tipo de tarefa Tarefa
Kubernetes Cria um namespace para sua implantação Azul-Verde.
Kubernetes Cria uma chave secreta para o Hub do Docker.
Kubernetes Cria o serviço usado para implantar o aplicativo.
Kubernetes Cria a implantação azul.
Pesquisa Verifica a implantação azul.
Kubernetes Remove o namespace.
Tabela 2. Tarefas do estágio de produção para implantação Azul-Verde
Tipo de tarefa Tarefa
Kubernetes O verde obtém os detalhes de serviço do azul.
Kubernetes Obtém os detalhes para o conjunto de réplicas verde.
Kubernetes Cria a implantação verde e use a chave secreta para receber a imagem do contêiner.
Kubernetes Atualiza o serviço.
Pesquisa Verifica se a implantação foi bem-sucedida no URL de produção.
Kubernetes Conclui a implantação azul.
Kubernetes Remove a implantação azul.

Para implantar o aplicativo no seu próprio modelo de implantação Azul-Verde, crie um pipeline no Code Stream com dois estágios. O primeiro estágio inclui as tarefas azuis que implantam o aplicativo na instância azul, e o segundo estágio inclui tarefas verdes que implantam o aplicativo na instância verde.

É possível criar seu pipeline usando o modelo de pipeline inteligente de CICD. O modelo cria os estágios e as tarefas do pipeline, além de incluir as seleções de implantação.

Se você criar o pipeline manualmente, deverá planejar os estágios do pipeline. Para obter um exemplo, consulte Planejando uma compilação nativa de CICD no Code Stream antes de adicionar tarefas manualmente.

Neste exemplo, você usa o modelo de pipeline inteligente de CICD para criar o pipeline Azul-Verde.

Pré-requisitos

Procedimento

  1. Clique em Pipelines > Novo Pipeline > Modelos Inteligentes > Modelo de CICD.
  2. Digite as informações para a parte de CI do modelo de pipeline inteligente de CICD e clique em Seguinte.
  3. Conclua a parte sobre CD do modelo de pipeline inteligente
    1. Selecione os ambientes para a implantação do aplicativo. Por exemplo, Des. e Prod..
    2. Selecione o serviço que o pipeline usará para a implantação.
    3. Na área Implantação, selecione o endpoint de cluster para o ambiente Dev e o ambiente Prod.
    4. Para o modelo de implantação de produção, selecioneAzul-Verde e clique em Criar.

    No modelo de pipeline inteligente, selecione o serviço, as implantações e clique em Azul-verde para o modelo de implantação de produção.

Resultados

Parabéns! O modelo de pipeline inteligente foi usado para criar um pipeline que implanta o aplicativo em suas instâncias Azul-Verde no cluster de produção do Kubernetes na AWS.

Exemplo: Exemplo de código de YAML para algumas tarefas de implantação Azul-Verde

O código YAML que aparece nas tarefas de pipeline do Kubernetes para sua implantação Azul-Verde pode ser semelhante aos exemplos a seguir, que criam Namespace, Serviço e Implantação. Se você precisar baixar uma imagem de um repositório de propriedade privada, o arquivo YAML deverá incluir uma seção com o Segredo de configuração do Docker. Consulte a parte sobre CD de Como planejar uma compilação nativa de CICD no Code Stream antes de usar o modelo de pipeline inteligente.

Depois que o modelo de pipeline inteligente cria o pipeline, é possível modificar as tarefas conforme necessário para sua própria implantação.

Código do YAML para criar um exemplo de namespace:

apiVersion: v1
kind: Namespace
metadata:
  name: codestream-82855
  namespace: codestream-82855

Código YAML para criar um exemplo de serviço:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: codestream-demo
  name: codestream-demo
  namespace: bluegreen-799584
spec:
  minReadySeconds: 0
  ports:
  - port: 80
  selector:
    app: codestream-demo
    tier: frontend
  type: LoadBalancer

Código YAML para criar um exemplo de implantação:

apiVersion: extensions/v1
kind: Deployment
metadata:
  labels:
    app: codestream-demo
  name: codestream-demo
  namespace: bluegreen-799584
spec:
  minReadySeconds: 0
  replicas: 1
  selector:
    matchLabels:
      app: codestream-demo
      tier: frontend
  template:
    metadata:
      labels:
        app: codestream-demo
        tier: frontend
    spec:
      containers:
      - image: ${input.image}:${input.tag}
        name: codestream-demo
        ports:
        - containerPort: 80
          name: codestream-demo
      imagePullSecrets:
      - name: jfrog-2
      minReadySeconds: 0

O que Fazer Depois

Para saber mais sobre como usar o Code Stream, consulte Tutoriais para usar o Code Stream.

Para reverter uma implantação, consulte Como faço para reverter minha implantação no Code Stream.

Para obter referências adicionais, consulte Mais recursos para administradores e desenvolvedores do Code Stream.