bring n-tier apps to containers 2015 containercon
TRANSCRIPT
Last Updated: June. 2015
Bringing N-Tier Apps To Containers
Vice President, Platform Evangelism, WSO2
@cobiacomm
Chris Haddad
Moving from Lab to Production
Moving from Old to New
Legacy 3-Tier Applications
Legacy Enterprise Topologies – Complex Interactions
6
N-Tier Perspectives
Solution Template
Infrastructure
PolicyArchitecture
7
N-Tier Solution Attributes o Architecture
o Application Oriented, Service-Oriented, Resource-Orientedo Composition / Orchestration
o Policyo Quality of Service
o Resiliency, High Availability, Scalability o Security o Isolation
o Infrastructureo Topologyo Connectivity - Networking o Resource Management - Scheduling, Reservation o Storage
8
Architecture:Application, Resource, Service-Oriented
Constraint Platform Requirement KubernetesMesos
MarathonDocker
ComposeApache Stratos
higher level, aggregate view
application as first-class citizen, labels N Y Y Y
Resource viewresource as first-class citizen, labels, URLS Y N N N
Business capability viewservice as first-class citizen, labels Y Y N Y
9
Composition
Constraint Platform Requirement KubernetesMesos
MarathonDocker
ComposeApache Stratos
cluster (session and state management)
network addressable, coordination service N N N * N
container group (web app database )
network overlays, orchestration N N N Y
container links (web app , database )
network overlays, orchestration
N (flat, plug-in?) N ? Y Y
server farm register worker nodes Y Y N Y
10
Isolation
Constraint KubernetesMesos
MarathonDocker
ComposeApache Stratos
CPU, PID, Memory Y Y Y Y
Network N N (?) Y Y
Tenant Management N N N Y
11
Networking
Constraint Platform Requirement KubernetesMesos
MarathonDocker
ComposeApache Stratos
Load balancer (HW, SW)known routes, hostname addressing Y (plug-in) N ? Y
Public IPpublic IP, hostname assignment, route Y (plug-in) N Y Y
12
Resource Management
Constraint Platform Requirement KubernetesMesos
MarathonDocker
ComposeApache Stratos
CPU loadresource reservation, scheduling * Y Y S
memory footprintresource reservation, scheduling * Y Y S
13
More Constraints
Category Constraint Platform RequirementSecurity identity management
Securitynetwork segment security (web app, database) access control policies
Storageshared access to database service
Storage shared access to files shared volumesStorage shared access to files networked drivesTopology Cross-Data Center cross-zone monitor and controlTopology Cross-IaaS cross-zone monitor and controlTopology pre-built, hardwired complex declarations
Moving N-Tier Apps to Containers
Containerization Adoption BarriersNetworking and Load Balancing
Monitoring and QoS
ClusteringBacking Stores / Persistence Strategies
Discovery and Composition
Workflow
16
Common Level Zero Container Challenges
o Networkingo Discoveryo Load balancing between Tierso Persistence – Tight Coupling with File System o Monitoring and Log files
Operate at the Speed of BusinessAccelerate DevOps
Flow
Operate at the Speed of Business
o Deploymento Discoveryo Linkingo Monitoringo Resiliency
DevOps Vectors
o Continuous deliveryo Continuous buildo Continuous integrationo Continuous deployment
DevOps Vectors
o Reliabilityo Availabilityo Scalabilityo Performance
o Iterative releaseso Incremental testingo Co-evolution
Compass and GearingPlatform Compass
• Operations Perspective• Manage Container Quality of Service• Ensure Security
• Development perspective• Micro-service architecture patterns• Application packaging strategies • Container lifecycle decisions
Composite Application Model and Policy Model
*
What are the smart policies?๏ Auto scaling๏ Deployment
Auto scaling policy๏ Define thresholds values pertaining scale up/down
decision ๏ Auto Scaler refer this policy๏ Defined by DevOps
Deployment policy๏ Defined how and where to spawn cartridge instances๏ Defined min and max instances in a selected service
cluster๏ Defined by DevOps based on deployment patterns
Smart Policies
*
Groups Compose Container Instances
*
Scaling algorithm can use multiple factors. such as- Load average of the instance- Memory consumption of the instance- In-flight request count in LB
How do you specify elastic scale?
*
Group Scaling Scenario
*
Dependent Scaling Scenario
Internet as a Data Center
© Mathias Rosenthal - Fotolia.com
*
Burst based on policy and load
Ever try to Cloud Burst Containers?
*
Rapidly Evolve with Micro-service Applications
33
Infrastructure Alternatives
o Docker Composeo Apache Mesos / Mesos Marathono Google Kuberneteso Apache Stratos
*
Manage clusters and containers● Schedule● ControlConcepts● Pods● Labels● Nodes
Why add Kubernetes?
*
Kubernetes – Opportunity Zone
Source: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/DESIGN.md
“we want Kubernetes to be built as a collection of pluggable components and layers, with the ability to use alternative schedulers, storage systems, and distribution mechanisms, and we're evolving its current code in that
direction.”
“A single Kubernetes cluster is not intended to span multiple availability zones. Instead, we recommend building a higher-level layer to replicate complete
deployments of highly available applications across multiple zones.”
*
The Role of Apache Stratos
● Package Manager● Define Security and Network Policies● Manage Micro-service Definition● Define Composite Application● Container Auto-Scaler Logic● Manage Service Subscriptions
*
Containerize Applications and Services
*
Apache Stratos L1 Deployment Architecture for Docker based Cartridges
Stratos Architecture
Test Drive the Cloud in a Box Distro
Install Kubernetes Distro:https://github.com/imesh/kubernetes-vagrant-
setup.git
Download Stratos distribution, load balancer & samples:
http://stratos.apache.org
Follow Getting Started Guide