CENTER Development Model Application Architecture Deployment & Application Infrastructur Storage Waterfall Agile Monolithic N-tier Bare Metal Virtual Servers Data Center Hosted Scale Up Scale Out DevOps MicroServices Containers Hybrid Cloud Storage as a Service
application behaves different in production than it did in test Environments are all manually configured (“pets vs. cattle”) Production deployments have a very low success rate I get paged in the middle of the night because of production failures I don’t have an environment to develop/test against Production deployments require outage windows THE CHALLENGES
• Are the runtime and OS layers up to date? • How frequently will the container be updated and how will I know when it’s updated? CONTENT: EACH LAYER MATTERS CONTAINER OS RUNTIME APPLICATION CONTAINERS AYER MATTERS CONTAINER OS RUNTIME APPLICATION JAR CONTAINER
a piece of network storage ◦ Provisioned by an administrator (static or dynamically) ◦ Allows admins to describe storage and users to request storage PERSISTENT STORAGE NFS GlusterFS OpenStack Cinder Ceph RBD AWS Elastic Block Store (EBS) GCE Persistent Disk iSCSI Fibre Channel
10 years” - John M. Olin School of Business at Washington University “In short, software is eating the world.” - Marc Andreessen, Wall Street Journal, August 2011 “Only the paranoid survive” - Andy Grove, Intel MARKET INFLECTION POINT
San Francisco’s largest cab company, Yellow Cab Co-Op, which filed for bankruptcy in 2016, was sold for $810,000 — less than it costs to buy a house in the City by the Bay.
A DYNAMIC PRICING STRATEGY Taxi Medallion Taxi Uber $0 $2.50/mile, $0.50/idle Fare Static Dynamic vs. vs. Ack: William Benton Uber fare based on real-time and historical data: supply/demand distance, time route, traffic etc.
EXTERNAL TRAFFIC WITH EXTERNALIP SERVICE EXT: IP-10:8080 INT: INT-IP:8080 EDGE ROUTERS IP-10, IP-11, IP-12 POD Port: 8080 POD Port: 8080 POD Port: 8080 IP FAILOVER POD IP FAILOVER POD connect IP-10:8080 CLIENT ! Route external traffic to a service on any TCP/UDP port ! Available on non-cloud clusters ! External IP automatically assigned from a pre-defined pool of external IPs ! IP failover pods provide high availability for the pool of external IPs
all the nodes in the cluster ! Ports in 30K-60K range which usually differs from the service ! Traffic received on any node redirects to a node with the running service ! Firewall rules must allow traffic to all nodes on the specific port NODE IP-3 NODE IP-2 NODE IP-1 59 EXTERNAL TRAFFIC WITH NODEPORT SERVICE INTERNAL-IP:8080 NODEPORT: 32010 POD Port: 8080 POD Port: 8080 POD Port: 8080 connect IP-1:3201 0 CLIENT
services by name ! Split DNS is supported via SkyDNS ◦ Master answers DNS queries for internal services ◦ Other nameservers serve the rest of the queries ! Software Defined Networking (SDN) for a unified cluster network to enable pod-to-pod communication ! OpenShift follows Kubernetes network plug-in model ! Supported plug-ins ◦ OpenShift SDN (Open vSwitch or Flannel) ◦ Nuage SDN (Virtualized Services Platform) OPENSHIFT NETWORKING
communicate with each other across projects MULTI-TENANT NETWORK ! Project-level network isolation ! Granular policies for network traffic ! Multicast support ! Egress network policies OPENSHIFT SDN NODE POD POD POD POD NODE POD POD POD POD PROJECT A PROJECT B DEFAULT NAMESPACE ✓ PROJECT C
- OVS PACKET FLOW POD 1 veth0 10.1.15.2/24 br0 10.1.15.1/24 vxlan0 POD 2 veth0 10.1.20.2/24 br0 10.1.20.1/24 vxlan0 192.168.0.100 eth0 192.168.0.200 eth0 Container to Container on the Different Hosts
for hosts and applications ◦ Elasticsearch: an object store to store all logs ◦ Fluentd: gathers logs and sends to Elasticsearch. ◦ Kibana: A web UI for Elasticsearch. ! Access control ◦ Cluster administrators can view all logs ◦ Developers can only view logs for their projects ! Ability to send logs elsewhere ◦ External elasticsearch, Splunk, etc CENTRAL LOG MANAGEMENT WITH EFK
OPERATION LOGS ELASTIC ELASTIC 70 RHEL NODE POD POD POD POD FLUENTD RHEL NODE POD POD POD POD FLUENTD ELASTICSEARCH RHEL NODE POD POD POD POD FLUENTD USER ELASTIC ELASTIC KIBANA ELASTIC ELASTIC ELASTICSEARCH ELASTIC ELASTIC KIBANA ADMIN
POD POD FLUENTD CONTAINER METRICS RHEL NODE POD POD POD POD FLUENTD HEAPSTER RHEL NODE POD POD POD POD CADVISOR HAWKULAR OPENSHIFT WEB CONSOLE ELASTIC ELASTIC CASSANDRA RED HAT CLOUDFORMS CUSTOM DASHBOARDS API USER
sensitive data e.g. ◦ Passwords and credentials ◦ SSH Keys ◦ Certificates ! Secrets are made available as ◦ Environment variables ◦ Volume mounts ◦ Interaction with external systems ! Encrypted in transit ! Never rest on the nodes 75 SECRET MANAGEMENT Container Distributed Store Container
a piece of network storage ◦ Provisioned by an administrator (static or dynamically) ◦ Allows admins to describe storage and users to request storage PERSISTENT STORAGE NFS GlusterFS OpenStack Cinder Ceph RBD AWS Elastic Block Store (EBS) GCE Persistent Disk iSCSI Fibre Channel
! Native integration with OpenShift ! Unified Orchestration using Kubernetes for applications and storage ! Greater control & ease of use for developers ! Lower TCO through convergence ! Single vendor Support DISTRIBUTED, SECURE, SCALE-OUT STORAGE CLUSTER APPLICATION CONTAINER APPLICATION CONTAINER APPLICATION CONTAINER STORAGE CONTAINER STORAGE CONTAINER STORAGE CONTAINER CONTAINER-NATIVE STORAGE
near real time. ! CloudForms discovers and visualizes relationships between infra components ! CloudForms cross references inventory across technologies. ! CloudForms offers custom automation via control policy or UI extensions 85 OPERATIONAL EFFICIENCY
trends ! CloudForms alerts on performance thresholds or other events ! CloudForms offers right-sizing recommendations ! CloudForms enforces configuration and tracks it over time. 87 SERVICE HEALTH
understand your cost. ! Rate schedules per platform and per tenant with multi-tiered and multi-currency support ! CloudForms shows top users for CPU, memory, as well as cost. ! Chargeback/showback to projects based on container utilization. 91 FINANCIAL MANAGEMENT