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.
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. |
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
- Verifique se é possível acessar um cluster do Kubernetes ativo no AWS.
- Verifique se há um ambiente de implantação Azul-Verde configurado e se há instâncias azul e verde configuradas de forma idêntica.
- Crie um endpoint do Kubernetes no Code Stream que implanta a imagem do aplicativo no cluster do Kubernetes no AWS.
- Familiarize-se usando o modelo de pipeline inteligente de CICD. Consulte Como planejar uma compilação nativa de CICD no Code Stream antes de usar o modelo de pipeline inteligente.
Procedimento
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.