May 24, 2013 | Written by: Tiago Rodrigues de Mello
Share this post:
Sometimes I use a website during a shopping day like Black Friday, yet when I need to fill out a form I am not the only one doing so. The result is obvious; the system gets unstable, slow and it may go down for temporary period of time. It turns out to be very frustrating because I couldn’t successfully finish a specific task.
Imagine if you could ask for more supermarket clerks when it suddenly gets crowded. In the same way, we can develop applications to perform better in some critical and extreme situations like Black Friday.
The National Institute of Standards and Technology (NIST) defines one important characteristic of cloud computing as the ability to rapidly scale up and scale down by easily provisioning resources and releasing them on demand.
In order to accomplish this performance improvement, the application certainly needs to know all the details of where it is hosted. It should have the ability to communicate with the infrastructure that is providing the low-level resources. Thus, the IT infrastructure must provide a good API to expose all services and resources available for the application.
OpenStack as the open source cloud computing platform for public and private clouds totally exposes the internals through public APIs. In small words, with the API it is possible to request more virtual machines to attend any specific need; it is possible to increase resource capabilities such as memory, CPU, disk space and so on.
The infrastructure no longer needs to be designed for the application but instead, the application gets designed to understand where it’s being hosted and it starts seeing the infrastructure as a resource pool where the resources can be allocated or released at any convenience.
Going deep in more details, OpenStack uses Representational State Transfer (REST) for communication between server and client and it has a good documentation (http://api.openstack.org/) that describes all the API possibilities. To learn a bit more about the architecture and technologies behind the scene, consider reading the blog post ‘Openstack Nova API.
The simplest way to get familiar with the Openstack API is to install Devstack, which is a very well documented shell script to build a complete OpenStack development environment. With only a few steps, you will have a workable and functional development and test environment.
There are a lot of possibilities and a new era begins where applications belong to either cloud-enabled or cloud-centric paradigm.
I am interested in your thoughts on this topic! Can you think of any good ways to implement your application or can you give other examples of how to take advantage of the infrastructure as a service (IaaS) provider and deliver higher quality services?