Skip to content

Instantly share code, notes, and snippets.

@hodrigohamalho
Last active July 11, 2017 05:45
Show Gist options
  • Save hodrigohamalho/c237109880a376a9705f to your computer and use it in GitHub Desktop.
Save hodrigohamalho/c237109880a376a9705f to your computer and use it in GitHub Desktop.
ose-demo.adoc

Demo Openshift

  1. Introdução ao docker

  2. dockerhub & images

  3. Demo

Executa o fedora docker run -it fedora cat /etc/fedora-release

Executa uma segunda versão do fedora e mostra persistencia

docker run -it fedora:22
cat /etc/fedora-release
cd /home && mkdir cliente
[fecha o container]
docker commit <id container> <nome da imagem>
docker run --rm -it <imagem cliente> /bin/bash

Executa uma imagem do jboss wildfly

docker run -it -p 8080:8080 jboss/wildfly
curl http://localhost:8080

Cria uma app

mkdir cliente
echo "<h1> Hello :) </h1>" > index.html
mkdir WEB-INF
jar cvf cliente.war .
rm -rf WEB-INF index.html

Cria uma nova imagem com a app criada

vim Dockerfile
FROM jboss/wildfly
ADD cliente.war $JBOSS_HOME/standalone/deployments
curl http://localhost:8080/cliente
  1. Criação do projeto no gogs e no JBDS

    1. Abrir gogs http://gogs-devops.cloudapps.example.com/

    2. Criar um projeto com nome do cliente

    3. Marcar como publico

    4. Criar um README e trocar o nome por index.php. Conteudo:

      <?php
      echo "<h1>Olá Mundo v1.0 on</h1>";
      echo $_SERVER['SERVER_ADDR']
      ?>
    5. Abrir JBDS 9

    6. Importar um projeto do git

    7. Criar um novo projeto do openshift pelo JBDS

  2. Criar a aplicação

    1. Entrar no projeto criado anteriormente

    2. Add to project

      php 5.6
      Name: cliente
      git repo: http://gogs-devops.cloudapps.example.com/root/cliente.git
    3. Mostrar build log

    4. Mostrar metricas, logs, terminal do pod

  3. Scaling

    1. Escalar para 10

    2. Mostrar o balancamento (apagando o cookie pelo browser)

  4. Pod isolation

    1. Ir no projeto do cliente

    2. Escalar para 2 copias

    3. Editar o DC e alterar o campo deploymentconfig na parte de labels

  5. Port Forwarding

  6. Liveness e Readiness

    1. Abri projeto liveness e readiness — readiness

      touch /tmp/readiness

 — liveness

touch /tmp/liveness
  1. Rolling update com possibilidade de falha

    1. Alterar a versão da app para 2.0 no JBDS

    2. Commitar e dar push

    3. Fazer build manual

    4. JBDS → build-config → start-build

    5. Mostrar o build-log pelo JBDS — Rodar o comando curl

      while [ true ]; do curl http://rolling-update-rolling-update.cloudapps.example.com; echo; done
    6. Abrir projeto rolling-update

    7. Criar uma app

    8. Altera o webhook no gitlab

      https://ose-master.example.com:8443/oapi/v1/namespaces/rolling-update/buildconfigs/rolling-update/webhooks/Ap2bRuAa2LcyShvRwJnG3VlGSMhnp1pFwM6VxSF3/github
    9. Alterar versão e fazer um novo commit

    10. Rodar o comando curl

      while [ true ]; do
      curl rolling-update-rolling-update.cloudapps.example.com; echo
      done

 — Escalar para 10 pela linha de comando

  1. Rolling update

    1. Subir uma instancia da aplicação

    2. executar

  1. Aumentar o numero de instancias

    1. Host evacuation

  2. oadm manage-node <node1> --schedulable=false

  3. oadm manage-node <node1> --evacuate

10) REST API

curl -k https://ose-master.example.com:8443/oapi/v1/projects -H "Authorization: Bearer eyQUq8Npk1ZuZguuQ1oX9fGhqrLjVMuUsrpiyJ2U0aY"
  1. Auto scaling

    1. Abrir projeto autoscaling e subir uma instancia

    2. Rodar o ab ab -n 100000 -c 50 http://autoscaler-auto-scaling.cloudapps.example.com/

  2. Blue green deployment

    1. Cria uma aplicação v1.0

    2. Cria uma segunda aplicação v2.0 mas sem route

    3. Edita a rota da primeira app para apontar para a segunda aplicação

    4. Adiciona a annotation

      haproxy.router.openshift.io/balance: roundrobin
  3. Job — oc create -f job.json

  4. Quota

    1. Mostrar partes de quota na web console

    2. Criar um pod sem limites de recursos

      oc create -f quota/pod-without-resources.yaml
    3. Cria o limits

      oc create -f quota/limits.yaml
    4. executa novamente a criação do pod-without-resources.yaml

    5. Template com quota

    6. Estouro de memoria e cpu

      while :; do _+=( $((++__)) ); done
    7. Logar no node onde está o pod e executar

    8. docker stats <id do pod>

  5. Build Pipeline

    oc new-project pipelineproject
    oc new-app -f https://raw.githubusercontent.com/openshift/origin/master/examples/jenkins/pipeline/samplepipeline.yaml
    Use 'oc start-build sample-pipeline' to start a build.
    Use 'oc start-build nodejs-mongodb-example' to start a build.
    Run 'oc status' to view your app.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment