Garmin Develops New Products, Increases Uptime with Cloud Foundry
Electronics Manufacturer: Garmin International
Implementing a PaaS solution to replace underperforming legacy architecture.
Requires a move from release-based mindset to continuous deployment.
Handle a complex system of functions for a major electronics manufacturer.
Pivotal CF, Akamai, F5, VMware, nginx, AppDynamics, SolarWinds, Splunk, Spring, Elasticsearch
It has “load balancers for its load balancers,” ie, operates in a complex environment that currently encompasses a massive legacy system with a forward-thinking Cloud Foundry-based environment.
Manufacturer of all types of electronics products continues to innovate into new areas. Annual revenue of $2.9 billion.
Garmin is the largest manufacturing employer in Olathe, KS, part of the Kansas City metropolitan area.
(Note: This use case is based on a presentation at the Cloud Foundry Summit 2015 in Santa Clara, CA by and others from Garmin.)
Garmin International is a major electronics manufacturer based in the Kansas City metropolitan area, with $2.9 billion in revenues. Aviation remains the core business of the 25-year-old company, even as it moves into marine, outdoor, automotive, mobile, and emerging fitness markets.
A view of Garmin’s past and present as reflected in the devices it creates and sells can be seen in the following two slides.
The company found that its large, complex IT infrastructure was not meeting key needs, so has turned to Cloud Foundry as a way to leave its comfort zone while setting itself up for the future.
Big new demands on the infrastructure
The company’s Alex Curtis led a team presentation at Cloud Foundry Summit 2015. During the talk, he pointed out that, in particular, its new health and fitness apps “are phoning home” so that users can upload their data, monitor it, and share it.
The result is an onslaught of data and demands on Garmin’s IT infrastructure, a challenge that is expected to continue to grow dramatically. “We started with a massive monolithic app and are now in the process of moving toward a more segregated model,” Curtis said, a model that employs Elasticsearch and a NoSQL database. “We’re looking at ways to address the stress on our database ‘back home’,”, he said, “by segregating individual services. The use of Cloud Foundry is a key strategy to breaking up the app.”
IT teams at Garmin identified several areas that needed to be addressed. In the operations area, it identified four key challenges:
- The infrastructure build-out workload was becoming untenable
- Sub-optimal infrastructure utilization (sometimes as low as 2% of capacity)
- Labor-intensive monitoring and security
- Uptime goals were hard to reach. “It’s easy to add to the resources pool,” said Curtis, “but doing it quickly is the problem.”
On the development side, three additional key challenges emerged:
- Roadblocks to developer productivity
- Response time to business needs
- The need to improve project costs
“Cloud Foundry presents us with a great opportunity to modernize and to go with 12-factor app development,” Curtis said. The company is using the Spring framework and stack and employing Splunk as part of its Cloud Foundry-based approach.
This project also employs the Netflix OSS stack. “We are using Eureka for service registration and discovery Hystrix for fault-tolerance and circuit breakers, and Feign as a declarative REST client which allows us to address REST as a native Java interface,” Curtis reported.
The road to Continuous Integration
On the development side, Garmin is working not only toward push-button deployments and continuous deployment, but to take advantage of what Cloud Foundry can do on its own. “The real story here is that sometimes there’s an imperceptible slow down to an app that only Cloud Foundry notices. Before a client even knows there’s an issue Cloud Foundry lets the developer know, for example, you’re now running five instances instead of three. With Cloud Foundry you end up with the number of instances your app needs to have instead of the number the monolith needs.”
In this project, the plan is that instances will grow and shrink as necessary, nestled into containers to avoid security issues, and auto-scaling is efficient and fast. Garmin is using Akamai for load balancing, with additional load balancing from F5 between the legacy architecture and the Cloud Foundry deployment.
The elastic runtime tile resource tab allows easy scale-out among different CF components, including scaling out of highly load-sensitive components like the router.
Curtis said this is handy for troubleshooting at a glance; Garmin then employs go deeper with SolarWinds to monitor overall health with an all-in-one IT infrastructure monitoring suite. The suite can monitor things such as the number of apps requests, how many routes the Cloud Foundry routers have created, “canary in the coal mine” metrics such as registry update lag and network latency, and overall utilization to warn of pending bottlenecks. It will also monitor memory utilization over time, what impact new deployments have on the overall Cloud Foundry environment. as well as application health, versions, the number of instances, while reconciling problems along the way.
The goal of the operations team is 100% uptime, according to the team presentation at the Cloud Foundry Summit, as Garmin International moves from a release-based mindset to flexible continuous integration.
Want details? Watch the videos!
Here is the original video presented at the Cloud Foundry Summit 2015 in Santa Clara, CA.