Red Hat OpenShift: Platforma do uruchamiania aplikacji działających w kontenerach Docker Jarosław Stakuń Senior Solution Architect, Red Hat CEE
Agenda Kontenery i mikroserwisy Główne cechy Openshift v3 Openshift v3 w chmurze DevOps Zarządzanie w Openshift v3 Subskrypcje
Trendy w rozwoju środowisk aplikacyjnych
Główne obszary zastosowań Dlaczego przedsiębiorstwa interesują się kontenerami? Szybsze dostarczanie aplikacji i DevOps Migracja aplikacji do architektury mikroserwisów i chmury Konteneryzacja tradycyjnych aplikacji
Kontenery i Mikroserwisy
Czym są kontenery w RHEL? Mechanizm izolacji aplikacji, który umożliwia uruchamianie aplikacji z obrazów Przenośność i łatwość wdrożenia Izolacja aplikacji w systemie operacyjnym gospodarza Używane technologie: Control Groups (cgroups) Kernel namespaces SELinux, svirt, iptables Docker CONTAINER APP LIBS HOST OS SERVER
Budowanie obrazów Docker zapewnia uniwersalny mechanizm budowania obrazów i uruchamiania kontenerów niezależny od technologii aplikacji #include<stdio.h> main() { printf("hello World"); } public class HelloWorld { } PHYSICAL public static void main(string[] args) { System.out.println ("Hello, World"); } VIRTUAL var http = require('http'); var server = http.createserver( function (request, response) { response.writehead(200, {"Content-Type": "text/plain"}); response.end("hello World\n"); }); server.listen(8000); PRIVATE CLOUD $_ = "hello world"; $_ =~ s/^(\b\w)(\b\w+)\s(\d)(\d+)$/ \U$1\E$2 \U$3\E$4\!\n/; print $_; <?php Print "Hello, World!";?> PUBLIC CLOUD
Zarządzanie zależnościami aplikacji Dołączone zależności zapewniają spójność i przenośność* public class HelloWorld { #include<stdio.h> main() { printf("hello World"); } bash } public static void main(string[] args) { System.out.println ("Hello, World"); } glibc var http = require('http'); var server = http.createserver( function (request, response) { response.writehead(200, {"Content-Type": "text/plain"}); response.end("hello World\n"); }); server.listen(8000); <?php nodejs jre... bash $_ = "hello world"; $_ =~ s/^(\b\w)(\b\w+)\s(\d)(\d+)$/ \U$1\E$2 \U$3\E$4\!\n/; print $_; libssl glibc Print "Hello, World!";?> perl bash... bash php... libv8 glibc glibc * Jedynie jądro Linux nie jest PHYSICAL VIRTUAL PRIVATE CLOUD PUBLIC CLOUD dołączane
Tradycyjny OS vs. Kontenery Dołączone zależności = krótszy czas uruchomienia + większa przenośność Tradycyjny OS APP A Kontenery APP B LIBS A LIBS B LIBS HOST OS HARDWARE LIBS CONTAINER CONTAINER APP A LIBS A APP B LIBS B MINIMAL HOST OS HARDWARE
Wirtualizacja i kontenery Kontenery BINS/ LIBS BINS/ LIBS BINS/ LIBS GUEST OS GUEST OS GUEST OS HYPERVISOR HOST OS HARDWARE APP C APP C APP B APP B APP A APP A KONTENERY VM Wirtualizacja BINS/ LIBS BINS/ LIBS BINS/ LIBS MINIMAL HOST OS HARDWARE
Bezpieczeństwo kontenerów Co jest w środku i skąd pochodzi obraz ma znaczenie! public class HelloWorld { #include<stdio.h> main() { printf("hello World"); } bash 4 glibc } public static void main(string[] args) { System.out.println ("Hello, World"); } 6 66 jre... bash 4 var http = require('http'); var server = http.createserver( function (request, response) { response.writehead(200, {"Content-Type": "text/plain"}); response.end("hello World\n"); }); server.listen(8000); glibc 6 nodejs libssl 29 libv8 $_ = "hello world"; $_ =~ s/^(\b\w)(\b\w+)\s(\d)(\d+)$/ \U$1\E$2 \U$3\E$4\!\n/; print $_; <?php 5 perl 5 4 VIRTUAL PRIVATE CLOUD 4 glibc 29 6 glibc 6? PHYSICAL php... bash... bash Print "Hello, World!";?> # ilość krytycznych podatności wykrytych przez Red Hat w RHEL 7 od GA PUBLIC CLOUD
Certyfikacja kontenerów przez Red Hat NIEZAUFANE System operacyjny hosta Obraz bazowy systemu operacyjnego Aplikacja i dołączone zależności CERTYFIKOWANE PRZEZ RED HAT RHEL Obraz bazowy RHEL Software Collections, JBoss Middleware i certyfikowane obrazy partnerów oraz społeczności
Projektowanie nowoczesnych aplikacji z DevOps, Microserwisami i Kontenerami
Od monolitu do mikroserwisów MONOLIT / WARSTWY MIKROSERWISY
Główne cechy
OpenShift: Red Hat Container Application Platform Aplikacje tradycyjne i chmurowe Platforma do rozwoju i testowania aplikacji Platforma od uruchamiania produkcyjnego aplikacji kontenerowych Automatyczny proces budowania obrazów z kodu źródłowego
Innowacje oparte na otwartych projektach
OpenShift Online i Dedicated
OpenShift Enterprise Read more at: /customers
Oceny i nagrody 2 years running!
OpenShift Commons Społeczność użytkowników, klientów, partnerów, dostawców usług i twórców OpenShift PaaS, której celem jest dzielenie się doświadczeniami, najlepszymi praktykami i innymi zasobami. http://commons.openshift.org/
Architektura
Chmura
Od wirtualizacji do PaaS i kontenerów FULLY OPEN SOURCE SOLUTION FROM BARE METAL TO APPLICATIONS Containers Cloud Enabled Virtual Machines Virtual Machines Platform-as-a-Service Infrastructure-as-a-Service Hybrid Management Virtualization 8 RED HAT CLOUD SUITE FOR APPLICATIONS
Infrastruktura chmurowa Wybór IaaS * OpenShift jest certyfikowany wszędzie tam gdzie RHEL zapewniając przenośność pomiędzy różnymi platformami. * = Wkrótce
OpenShift i OpenStack Open Hybrid Cloud Instalacja OpenShift na OpenStack przy użyciu szablonów Heat Integracja aplikacji z usługami OpenStack (sieci, storage, zarządzanie tożsamością) Scentralizowane zarządzanie w CloudForms
DevOps
OpenShift Application Services Red Hat JBoss Middleware, Software Collections Partnerzy Społeczność
OpenShift i.net OpenShift będzie wspierał.net w oparciu o wspólną dystrybucję Red Hat i Microsoft Od wersji 5 core framework * https://blog./open-source-power-microsoft-dotnet-openshift * = Wkrótce
Procedura Source 2 Image Can configure triggers for automated deployments, builds, and more. Code Build Deploy Can configure different deployment strategies like A/B, Rolling upgrade, Automated base updates, and more.
Proces CI/CD QA MANAGER APP Project: DEV OSE NPE #OSRoadshow JENKINS APP Project: UAT PULL IMAGE BUILD IMAGE L PUL IMAGE REGISTRY PULL IMAGE Artifact Repository AR PULL TIF AC T IMAGE REGISTRY PULL IMAGE OPS SH CT PU IFA T AR PU S IMA H GE SCM LL PU PROMOTE SH PU CFG PROMOTE SH PU DEVELOPER TRIGGER AND BUILD BUILD SRC RELEASE MANAGER APP Project: PROD OSE PROD
Wizualizacja CI/CD
Zarządzanie
Zarządzanie infrastrukturą z CloudForms OpenShift Enterprise zawiera Cloud Forms w celu scentralizowanego zarządzania aplikacjami i infrastrukturą Monitorowanie i zarządzanie zasobami konsumowanymi przez kontenery w OpenShift Enterprise Świadomość obiektów Docker i Kubernetes (kontenery, pods, services...)
Agregacja logów kontenerów przy użyciu EFK Fluentd Fluentd Fluentd Fluentd Node Node Node Elastic Elastic Search Elastic Search Elastic Search Search... Ops Elastic Elastic Search Elastic Search Elastic Search Search... Node... User Kibana Kibana Kibana Kibana... Admin Ops Kibana Kibana Kibana Kibana... User User
Agregacja metryk kontenerów cadvisor (/stats) Node Hawkular Heapster OSE UI User Cassandra Cassandra Cassandra cadvisor (/stats) Node
Konfiguracja sieci Default Namespace Case #1 Project A Node Case #2 Project B Node Project C merge Node Node Project D Default Namespace
Oferta produktowa
Subskrypcje Red Hat Openshift Seamlessly manage from infrastructure to applications based on OpenStack Generally Available Develop, build, and manage container-based applications OpenShift 3.1 Run and orchestrate multi-container based applications at scale
Dziękuję jarek@redhat.com