Post on 25-Jul-2015
Leaving Our Comfort Zone
Alex Curtis (Production Management)Brandon Henry (Operations)Bobby Hubbard (Architect)
Jonathan Regehr (Developer)
Who we are
• Based in Olathe, Kansas• Founded in 1989• Revenue of $2.9 billion (2014)• Markets include Marine, Outdoor, Fitness, Aviation & Automotive/Mobile
Why Change?
• Infrastructure Build-out Workload
• Suboptimal Infrastructure Utilization
• Labor-intensive Monitoring & Security
• Hard-to-reach Uptime Goals
Why Change?
• Roadblocks to Developer Productivity
• Response Time to Business Needs
• Improve Project Costs
Why Change?
“Sample” Application OutageCould happen at any time
Impact• Customer-facing App running slow• Some Users Unable to Log in
Cause: Heavy load brought down a critical supporting app
Solution:Double app server pool size
Why Change?
Monolith App Server Farm“We take the whole football team to kicking practice”
Current State• Large App Server Pool• Multiple WARs per server
Need: higher capacity for One App
Solution: Scale the entire app suite as a unit
Why Change
• Infrastructure Build-out Workload• Automated infrastructure deployment
• Suboptimal Infrastructure Utilization• High application to Infrastructure ratio
• Labor-intensive Monitoring & Security• Automated monitoring & Updates• Centralized security updates
• Hard-to-reach Uptime Goals• Self-healing platform• Automated load-based scaling
PaaS: Problem Resolution
• Roadblocks to Developer Productivity• Push-button deployments• Developers focused on business requirements, not
environment build-out• Response Time to Business Needs• Agility Through Continuous Deployment
• Improve Project Costs• Push-button project infrastructure build-out• CI/CD yields faster feedback cycle
Why Change? Outage Prevention.
Auto-ScalingSometime in the near future
Impact: Imperceptible App Slowdowns
Cause: Heavier-than-normal service traffic
Solution: Scale up
Why Change? Scalability.
CloudFoundry-Managed Apps“Kickers get their own practice field”
Future State• Instances grow and shrink as necessary• Apps securely nestled in their containers
Need: higher capacity for One App
Solution: Let CloudFoundryscale the app as needed
Architecture Overview
APP.GARMIN.COM
app.kcg-cloud.garmin.com
app.ola-cloud.garmin.com
app.garmin.com
Architecture Overview
APP.GARMIN.COM
app.kcg-cloud.garmin.com
app.ola-cloud.garmin.com
app.garmin.com
Architecture Overview
APP.GARMIN.COM
app.kcg-cloud.garmin.com
app.ola-cloud.garmin.com
app.garmin.com
Architecture Overview
APP.GARMIN.COM
app.kcg-cloud.garmin.com
app.ola-cloud.garmin.com
app.garmin.com
Architecture Overview
APP.GARMIN.COM
app.kcg-cloud.garmin.com
app.ola-cloud.garmin.com
app.garmin.com
NGINX
Legacy, context-based URLs and addresses
Example:sso.garmin.com/auth
Cloud Foundry-friendly application URLs and
addresses
Example:sso.cf.garmin.com/auth
Architecture Overview
APP.GARMIN.COM
app.kcg-cloud.garmin.com
app.ola-cloud.garmin.com
app.garmin.com
Architecture Overview
APP.GARMIN.COM
app.kcg-cloud.garmin.com
app.ola-cloud.garmin.com
app.garmin.com
Architecture Overview
Routers
Droplet Execution Agents
Routers
Droplet Execution Agents
Routers
Droplet Execution Agents
Availability Zone 1 Availability Zone 2
Architecture Overview
APP.GARMIN.COM
app.kcg-cloud.garmin.com
app.ola-cloud.garmin.com
app.garmin.com
Monitoring – vRealize Operations Manager
http://blog.pivotal.io/cloud-foundry-pivotal/products/monitoring-pivotal-cloud-foundry-health-and-status-hybrid-models-kpis-and-more
Application Monitoring – AppDynamics
Environment(Application)
Cluster(Tier name)
Server
Layout (pre-CF)
Summary
• Infrastructure Build-out Workload• Suboptimal Infrastructure Utilization• Roadblocks to Developer Productivity• Labor-intensive Monitoring & Security• Hard-to-reach Uptime Goals• Response Time to Business Needs• Improve Project Costs