This post walks through the models for building resilient applications on OpenStack infrastructure with Cisco Metacloud, OpenStack Orchestration, and configuration management tools like Ansible.
Agile Infrastructure, Some Background
In 2001, when a group of software developers discussed a growing trend of lightweight methods for producing software, they decided to group those together and write a new Agile Software Development Manifesto. By providing a shared set of values and trust, along with methods for disciplined practice, these technologists gave us all ways to think about software development, and we can simply lift those over to the infrastructure on which the software runs. Agile infrastructure embodies the characteristics of cloud: on-demand, flexible, elastic growth, with workloads and resources set up and torn down with costs based on use. Just as agile software development is responsive, collaborative, and interactive, you can create agile infrastructure as well.
What Models for Cloud Architecture Offer Agility?
For applications, you can group workloads by need for infrastructure capacity over time.
On and off: Some applications are on and off, such as an event-based web application. During the event time period, you'd better be sure you have enough capacity for the on time period.
Fast growth: Other apps require fast growth, and rather than rack and stack physical servers, ensure you can flexibly grow the infrastructure over time. Think of a retail store that starts selling a trendy product. Their app had better be ready for traffic.
Variable: Then there's the variable workload, where you might have peak needs that would be unmet with traditional infrastructure. Think of a mobile run tracker app. When the sun is shining in a particular region and lots of runners decide to track their run, can additional servers be deployed at a moment's notice?
Consistent: Finally there's the consistent workloads, such as a payroll tracking system. Of course we know that the payroll calculation timeframe has the highest usage, so why pay for infrastructure while the payroll calculation doesn't need to run?
Those examples are all for the workload itself; how do you create application architecture that offers agility? You monitor the infrastructure and automatically build new resources as your monitoring indicates a need.
Also consider that you want to be able to release new code regardless of the traffic patterns. Agile infrastructure enables code releases without taking down the entire application.
Let's walk through the principles that Metacloud delivers:
How does Cisco Metacloud deliver resilient applications?
Many customers have found that when Cisco provides the cloud infrastructure, they are freed to add speed and agility to their teams. Our customers are examples of "born in the cloud" companies that understand the value to their business model when they can provide IT services automatically. When they're on the front lines, delivering business-critical IT, they appreciate that Metacloud backs them up with an operational, expandable private cloud based on OpenStack. Plus, with integrations from solid providers like Pivotal and Apprenda, the infrastructure becomes invisible and the platform provides everything their teams need to go fast, be strong, and maintain uptime.
We have a couple of Learning Labs on Cisco DevNet that walk through how to orchestrate applications. Check these out: