Przyspiesz tworzenie aplikacji przy pomocy Openshift Container Platform Jarosław Stakuń Senior Solution Architect/Red Hat CEE jstakun@redhat.com
Monetize innovation http://www.forbes.com/innovative-companies/list/ Morgan Stanley included Red Hat in secular growth stocks list which consists of 30 stocks that its analysts believe would thrive even if the global economy grows slower than they forecast
Agenda Containers, Microservices and DevOps Openshift v3 overview DevOps Management Cloud infrastructure Commercial offering
Containers, Microservices and DevOps
Why should you care? http://www.techrepublic.com/article/gartners-10-big-trends-that-will-change-how-it-operates/
3 Common Conversations Why enterprise IT is looking at containers Increase agility and enable DevOps Move to microservices & hybrid cloud architectures Containerize traditional applications
What are Linux Containers? Software packaging concept that typically includes an application and all of its runtime dependencies Easy to deploy and portable across host systems Isolates applications on a host operating system CONTAINER APP LIBS In RHEL, this is done through: Control Groups (cgroups) Kernel namespaces SELinux, svirt, iptables Docker HOST OS SERVER
Consistent Packaging Format Docker provides a language agnostic packaging format and runtime API. Packaged dependencies ensure consistency and portability* #include<stdio.h> main() { printf("hello World"); } public class HelloWorld { } public static void main(string[] args) { System.out.println ("Hello, World"); } 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); $_ = "hello world"; $_ =~ s/^(\b\w)(\b\w+)\s(\d)(\d+)$/ \U$1\E$2 \U$3\E$4\!\n/; print $_; <?php Print "Hello, World!";?> bash glibc jre nodejs perl php... libssl libv8... bash glibc... bash glibc bash glibc * The one thing not packaged is the Linux Kernel! PHYSICAL VIRTUAL PRIVATE CLOUD PUBLIC CLOUD
Images are layered Images are based on a parent The layers stack on top Filesystems are merged Each commit creates a layer Base image has no parent Images are stored in the Registry
Application deployment options Packaged dependencies = faster boot times + greater portability Traditional Virtual Container APP A APP B APP A APP B APP C Container Container Container LIBS A LIBS B LIBS.. LIBS A Guest OS LIBS B Guest OS LIBS C Guest OS APP A LIBS A APP B LIBS B APP C LIBS C Host OS Hypervisor Host Minimal OS Hardware Hardware Hardware
Security is definied within containers What's inside the container and where it comes from matters #include<stdio.h> main() { printf("hello World"); } public class HelloWorld { } public static void main(string[] args) { System.out.println ("Hello, World"); } 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); $_ = "hello world"; $_ =~ s/^(\b\w)(\b\w+)\s(\d)(\d+)$/ \U$1\E$2 \U$3\E$4\!\n/; print $_; <?php Print "Hello, World!";?> bash 4 glibc 6 bash 66 jre... 4 6 glibc libssl bash 5 29 nodejs perl php 29... 4 libv8 glibc 5... 4 6 6 bash glibc PHYSICAL VIRTUAL PRIVATE CLOUD PUBLIC CLOUD? # of critical, important and moderate vulnerabilities identified and fixed by Red Hat in RHEL 7 since GA
Red Hat Container Certification UNTRUSTED Will what s inside the containers compromise your infrastructure? How and when will apps and libraries be updated? Will it work from host to host? RED HAT CERTIFIED Trusted source for the host and the containers Trusted content inside the container with security fixes available as part of an enterprise lifecycle Portability across hosts
Standalone Docker is not enough
Enterprise needs container runtime and delivery platform
Modern Application Design with DevOps, Microservices and Linux Containers
Monolithic to Microservices MONOLITHIC/LAYERED MICROSERVICES
MicroProfile
Microservices and Containers Modular microservices architecture based on JBoss Middleware and OpenShift Micro Service Micro Service Micro Service Micro Service Micro Service Micro Service Micro Service Micro Service Micro Service RHEL ATOMIC HOST RHEL ATOMIC HOST RHEL ATOMIC HOST KUBERNETES Container Orchestration
Application/Microservice Lifecycle Management
Openshift Container Platform overview
OpenShift is Red Hat s Container Application Platform Built for both traditional and cloud-native applications. An integrated hybrid cloud application platform for application development and deployment Develop, build, and manage container based applications Easily turn source code into running applications with source-to-image capabilities
Open Community Powered Innovation
Proven operational experience 2.8M APPS 15K+ NEW USERS EVERY MONTH OVER 50 STARTUPS 4B+ REQUESTS / DAY 12+ INDUSTRY AWARDS 1,000 s NEW APPS EVERY DAY
OpenShift Container Platform Read more at: openshift.com/customers
Awards and Product Reviews 2 years running!
OpenShift Commons An interactive community for all OpenShift PaaS Users, Customers, Contributors, Partners, Service Providers and Developers to share ideas, code, best practices, and experiences. More at http://commons.openshift.org/
Architecture
Openshift Container Platform DevOps
OpenShift Application Services From Red Hat JBoss Middleware Software Collections From ISV Partners From the Community
JBoss Middleware Services for OpenShift (xpaas) Application Container Services Business Process Services Integration Services Mobile Services JBoss Enterprise Application Platform JBoss Web Server / Tomcat Red Hat SSO Business Process Management Business Rules Management System Fuse Data Grid A-MQ 3scale API Management Data Virtualization Red Hat Mobile Application Platform
OpenShift and native.net OpenShift provides.net runtime distributed and supported by Red Hat and Microsoft Starting with version 5 of the core framework * https://blog.openshift.com/open-source-power-microsoft-dotnet-openshift
Source 2 Image Walk Through Code Can configure triggers for automated deployments, builds, and more. Build Deploy Can configure different deployment strategies like A/B, Rolling upgrade, Automated base updates, and more.
CI/CD Flow
DevOps pipelines
Openshift Container Platform Management
OpenShift Web Console and CLI
Infrastructure Management with CloudForms & OpenShift Cloud Forms functionality now included with OpenShift Container Platform to improve control over apps and infrastructure Monitor and manage resource consumption of containers running in OpenShift Container Platform Docker and Kubernetes aware (containers, pods, services ) Docker image Smart State Analysis and security policies
EFK Stack for Log Aggregation Elastic Search Elastic Search Elastic Search Elastic Search Kibana Kibana Kibana Kibana Ops Ops Admin Elastic Search Elastic Search Elastic Search Elastic Search Kibana Kibana Kibana Kibana User User User...
Container Metrics Aggregation 3 rd Party Hawkular cadvisor (/stats) Heapster Node Web-UI User cadvisor (/stats) Node Admin
SDN: Network Isolation Case #1 Project A Default Namespace Project B Node Node Node Node Case #2 Project C merge Project D Default Namespace
Advanced cloud patterns Auto scaling Self-Healing Load balancing Rolling upgrades & rollback Service discovery A/B, blue/green deployments Circuit Breaker Bulkhead
Openshift Container Platform cloud infrastructure
From virtualization to PaaS FULLY OPEN SOURCE SOLUTION FROM BARE METAL TO APPLICATIONS Containers Virtual Machines Cloud Enabled Virtual Machines Infrastructure-as-a-Service Platform-as-a-Service Hybrid Management Virtualization 8RED HAT CLOUD SUITE FOR APPLICATIONS
Cloud Infrastructures Choose your IaaS OpenShift will run anywhere RHEL can run giving you the ultimate portability for your mission critical workloads.
OpenShift On OpenStack A True Open Hybrid Cloud Deploy OpenShift on OpenStack via Heat Integrate Apps with OpenStack services Manage it all with CloudForms Get it all at once with Red Hat Cloud Suite
Openshift Container Platform commercial offering
Red Hat Container Solutions Seamlessly manage from infrastructure to applications based on OpenStack Develop, build, and manage container-based applications Run and orchestrate multi-container based applications at scale
RED HAT CLOUD SUITE FOR APPLICATIONS
Red Hat University Training Containerizing Software Applications DO276 OpenShift Enterprise Administration DO280 OpenShift Enterprise Development DO290
RED HAT BRINGS IT ALL TOGETHER Confluence of cloud-based platforms, containers, microservices technology and DevOps methodologies delivers significant value.