No Blue/Green deployment temos duas aplicações independentes que recebem toda a carga hora em um, hora em outra. Este método é muito utilizado em atualizações entre versões que necessitam chavear atomicamente entre ambas.
Dizem que uma imagem fala mais que mil palavras! Então vamos nessa:
Na prática este deploy consiste em redirecionar a rota de uma aplicação para outra, assim, nele é necessário alterar apenas o service de destino de uma aplicação para outra.
Então neste exemplo estou utilizando duas aplicações: APP1 e APP2 , para indicar as duas versões, e vamos direcionar da primeira para a segunda.
Exitem 2 formas de alterar este componente:
Forma 1: Patch direto no componente
$ oc patch route/app1 -p '{"spec":{"to":{"name":"app2"}}}'
Forma 2: Editar o arquivo do componente
No arquivo abaixo, marquei a linha onde é apontado a aplicação que recebe as requisições desta rota, assim, basta altera-lo para a aplicação desejada.
$ oc edit route/app1
apiVersion: v1
kind: Route
metadata:
annotations:
openshift.io/generated-by: GetupCloudWebConsole
openshift.io/host.generated: "true"
creationTimestamp: 2017-01-27T19:25:39Z
labels:
app: app1
template: app1
name: app1
namespace: example
resourceVersion: "117296293"
selfLink: /oapi/v1/namespaces/example/routes/app1
uid: 62b6851e-e4c6-11e6-94eb-000d3ac03393
spec:
host: app1-example.getup.io
port:
targetPort: 8080-tcp
tls:
insecureEdgeTerminationPolicy: Allow
termination: edge
to:
kind: Service
name: app2
weight: 100
status:
ingress:
- conditions:
- lastTransitionTime: 2017-01-27T19:25:39Z
status: "True"
type: Admitted
host: app1-example.getup.io
routerName: router
Quer saber um pouco mais sobre Blue / Green Deploy ? Leia este artigo -> martinfowler
Comentários
0 comentário
Por favor, entre para comentar.