Upgrade to Pro — share decks privately, control downloads, hide ads and more …

APPUiO - OpenShift Techlab Overview

5c1d7585fc32e4921dcabb6dea740a8e?s=47 APPUiO
June 15, 2016
340

APPUiO - OpenShift Techlab Overview

5c1d7585fc32e4921dcabb6dea740a8e?s=128

APPUiO

June 15, 2016
Tweet

Transcript

  1. OpenShift 3 Techlab

  2. Agenda 1. Ziele 2. Container 3. OpenShift 3 4. Workshop

  3. Techlab 1

  4. Ziele des Techlabs • Gemeinsamer Einstieg in neue, moderne Technologie

    • Grundkonzepte verstehen • Erste Applikation deployen
  5. Was sind Container? 2

  6. LXC, VServer, FreeBSD Jails, Google... Nichts neues!

  7. Klassische Virtualisierung Hypervisor (RHEV, VMware, ...) Guest kernel Application Application

    server Libraries Guest kernel Application Application Server Libraries Guest kernel Application Application Server Libraries Guest 1 Guest 2 Guest n
  8. Container Virtualisierung Hypervisor (RHEV, VMware, ...) Guest kernel Application Application

    Server Libraries Container node Container 1 Application Application Server Libraries Container n Application Application Server Libraries Container 2
  9. Docker Container application.war + config Java 8 image Ubuntu 14.04

    base image Guest kernel Wildfly 9 image } read-only Runtime FS read-write Hierarchische Dockerfiles # buildet das Dockerfile unter ./ $ docker build . # container von image app starten $ docker run -p 8080:8080 app
  10. Container und deren Infrastruktur • Container sind unveränderbar • Aktualisierung

    eines Containers erfolgt durch austauschen • sowohl bei Applikations- als auch System-Updates • Kein lokales Filesystem für Applikationsdaten • Persistent Storage
  11. OpenShift V3 3

  12. Was ist OpenShift 3? “Next generation PaaS” OpenShift Enterprise V3

    von Red Hat Neu-Implementation: V2 wurde verworfen und komplett neu gebaut V2 V3 Namespace/Domain Project Gear Docker Container Cartridge Docker Base Image rhc oc (OpenShift Client)
  13. OpenShift basiert auf etablierten Open Source-Konzepten Docker Kubernetes

  14. OpenShift 3 (1/2) Container Platform as a Service (PaaS) Multinode

    Platform, um Applikationen in Containern zu betreiben One platform runs it all! Fancy CLI und GUI (self-service)
  15. OpenShift 3 (2/2) Base Images für RHEL 6 und 7

    patched analog Standard RHEL Redeployments werden durch Basis Image Update getriggert Standard Deployment Mechanismus und Workflow Autoscaling Container Security
  16. RHEL 7.2 als Basis Virtual Private Cloud Public Cloud Physical

    RHEL 7.2 / ATOMIC
  17. Node 3 Node n Node 2 Node 5 Node 1

    Node 4 Compute Nodes Virtual Private Cloud Public Cloud Physical RHEL 7.2 / ATOMIC
  18. Node 3 Node n Node 2 Node 5 Node 1

    Node 4 Pods Docker Registry Virtual Private Cloud Public Cloud Physical RHEL 7.2 / ATOMIC
  19. Master API Data Store Scheduler Jenkins DEV SCM (git /

    svn) OPS OSE 3 Master Node 3 Node n Node 2 Node 5 Node 1 Node 4 Docker Registry Virtual Private Cloud Public Cloud Physical RHEL 7.2 / ATOMIC
  20. Master API Data Store Scheduler Jenkins DEV SCM (git /

    svn) OPS Replication Controller Node 3 Node n Node 2 Node 5 Node 1 Node 4 Management / Replication Docker Registry Virtual Private Cloud Public Cloud Physical RHEL 7.2 / ATOMIC
  21. Master API Data Store Scheduler Jenkins DEV SCM (git /

    svn) OPS Pod fackelt ab... Node 3 Node n Node 2 Node 5 Node 1 Node 4 Management / Replication Docker Registry Virtual Private Cloud Public Cloud Physical RHEL 7.2 / ATOMIC
  22. Master API Data Store Scheduler Jenkins DEV SCM (git /

    svn) OPS … Kubernetes startet ihn neu Node 3 Node n Node 2 Node 5 Node 1 Node 4 Management / Replication Docker Registry Virtual Private Cloud Public Cloud Physical RHEL 7.2 / ATOMIC
  23. Master API Data Store Scheduler Jenkins DEV SCM (git /

    svn) OPS Persistent Storage Node 3 Node n Node 2 Node 5 Node 1 Node 4 Management / Replication Docker Registry Persistent Storage Virtual Private Cloud Public Cloud Physical RHEL 7.2 / ATOMIC
  24. Master API Data Store Scheduler Jenkins DEV SCM (git /

    svn) OPS Routing Node 3 Node n Node 2 Node 5 Node 1 Node 4 Management / Replication Routing Layer (http / https) HA Proxy Docker Registry Persistent Storage Virtual Private Cloud Public Cloud Physical RHEL 7.2 / ATOMIC
  25. Beispiel Java Projekt • War deployed in Wildfly 10 •

    Maria DB (mit Persistent Volume)
  26. Beispiel OSE 3 Projekte Docker Registry Persistent Storage Via Route

    im Netz verfügbar Loadbalancing auf Pods Verbunden über transparentes Software Defined Network (SDN) https://a2.ose.puzzle.ch 10.0.0.1 10.1.0.5 10.1.0.2 10.1.0.3 10.0.0.4 https://a1.ose.puzzle.ch Virtual Private Cloud Public Cloud Physical RHEL 7.2 / ATOMIC
  27. Virtual Private Cloud Public Cloud RHEL 7.2 / ATOMIC Physical

    Beispiel Java App OSE 3 Projekt (1) Docker Registry Persistent Storage Via Route im Netz verfügbar Loadbalancing auf Pods oc scale dc app --replicas=3 Verbunden über transparentes Software Defined Network (SDN) Projekt-Setup als JSON exportier- / importierbar https://app.ose.puzzle.ch 10.0.0.1 10.0.0.4 10.0.0.2 10.0.0.3
  28. Virtual Private Cloud Public Cloud RHEL 7.2 / ATOMIC Physical

    Beispiel Java App OSE 3 Projekt (2) Docker Registry Persistent Storage Maria DB-Pod failed https://app.ose.puzzle.ch 10.0.0.1 10.0.0.4 10.0.0.2 10.0.0.3
  29. Virtual Private Cloud Public Cloud RHEL 7.2 / ATOMIC Physical

    Beispiel Java App OSE 3 Projekt (3) Docker Registry Persistent Storage Pod wird neu gestartet • Gleiche Adresse • Persistent Volume wandert mit https://app.ose.puzzle.ch 10.0.0.1 10.0.0.4 10.0.0.2 10.0.0.3
  30. Workshop 4

  31. Techlab https://github.com/appuio/techlab

  32. Resources DataSheet: https://www.redhat.com/en/files/resources/cl-openshift-enterprise-3-red-hat-inc0328839mm-201512.pd f Dokumentation: https://docs.openshift.com Resources: https://www.openshift.com/enterprise/resources.html Getting Started:

    https://docs.openshift.com/enterprise/3.1/cli_reference/index.html
  33. Thank you!

  34. None
  35. Anwendungsbeispiele 2

  36. Buildinfrastruktur für Applikationen Java, JavaScript, Ruby on Rails, Node, ...

    Installation von Buildtools in verschiedenen Versionen für unterschiedliche Projekte Exakte Umgebung die explizit für Applikation definiert wird Wiederverwendbar, schnell, isoliert.
  37. Java EE 7 Applikation Wildfly 9 War und Config ins

    Image hinzufügen und Go! FROM jboss/wildfly ADD app-web.war /opt/jboss/wildfly/standalone/deployments/ ADD standalone.xml /opt/jboss/wildfly/standalone/configuration/
  38. Chancen/Herausforderungen

  39. Vorteile von Containern • Leichtgewichtig und schnell • Standardisierung •

    Einfach zu gebrauchen und zu erweitern • Grosse Community DockerHub, Tool Ökosystem • Vielzahl an Docker Images verfügbar • Kann «Works on my Machine» Probleme ausmerzen
  40. Herausforderungen: Sicherheit (1/2) Quelle: http://www.banyanops.com/blog/analyzing-docker-hub/ Mai 2015: Jayanth Gummaraju, Tarun

    Desikan and Yoshio Turner 64 % aller Docker Images auf Docker Hub der offiziellen Repositories haben Sicherheitslücken: ShellShock (bash) Heartbleed (OpenSSL) Poodle (OpenSSL) ... Alle Docker Images 2015 erstellt 0% 10% 20% 30% 40% 50% 60% 70% 80% 36% 40% 64% 74% High Priority High and Medium Priority
  41. Herausforderungen: Sicherheit (2/2) • Prozesse behandeln als würden sie auf

    Host laufen • Prozesse nicht als root laufen lassen • Nur notwendige Ports öffnen • SELinux oder AppArmor im Container einsetzen Quellen: https://opensource.com/business/14/7/docker-security-selinux http://www.pro-linux.de/news/1/22315/docker-erh%C3%B6ht-die-sicherheit.html
  42. Herausforderungen: Betrieb Monitoring Logserver Storage Jenkins Mailserver DB Server Backup

    Network Lifecycle Container u. Infrastruktur