/ Pratik Mallya

Cloud Orchestration at Rackspace

Almost a year ago, I joined Rackspace. During the interview process, I met some very smart people, and was excited to start working for a company I had heard only good things about. There was one problem: I didn’t know exactly what I was supposed to do.

My background is in Scientific Computing. I had worked for Enthought, and before that my research and interests were mostly in using computing to solve scientific problems. So there was definitely a lot of anxiety from my side about working in a company that had invented OpenStack and operated one of the largest OpenStack based public clouds. All I knew at that time was: OpenStack uses Python, and I liked Python. In hindsight, I guess Rackspace really did take a chance with me as I had no experience working in cloud computing at all. I was told that I would be working in the cloud orchestration team.

Cloud orchestration is a service provided by cloud vendors (like Rackspace, AWS, Azure etc.) which allows one to automate the deployment and management of other cloud resources. These cloud resources might be cloud servers, cloud storage, cloud loadbalancers etc. I use the prefix cloud for each of these services to emphasize that these are services provided via an API: there is an API to spin up (and tear down) servers, storage and loadbalancers in the Rackspace cloud. Because these services are accessible and manageable via their API’s, the next logical step in automation seems to be a service that does that for you, instead of having to access all the different API’s individually. Cloud orchestration encapsulates these services and makes them available via its own API.

If you’re like me, you might be thinking, well can I use cloud orchestration for cloud orchestration? Interestingly, that is most certainly possible, but it offers little benefit (that I can think of) since what we’re ultimately interested in is the orchestrated resources, and not the orchestration itself. Incidentally, it is possible to use orchestration to spin up a devstack server running all OpenStack services. Or, if you’re interested in setting up your very own instance of an orchestration service. At Rackspace, we use that template all the time to spin up new environments to test new features and for debugging issues. That one template probably saves us days of development time trying to set up cloud servers with orchestration service. For those who are familiar with the terminology, it allows us to treat the development environments as cattle and not pets.

As an engineer new to cloud computing, cloud orchestration was probably the best team to start working in. Since it relies on other cloud API’s, it was literally my job to learn how all the other cloud API’s worked and what kind of services and resources they provided (and what they did not). It allowed me to understand in a very short time exactly what cloud computing was all about and what could and could not be done using it. It also helped a lot that the cloud orchestration team at Rackspace has some rather smart engineers working in it, including 2 core contributors to the OpenStack project, Heat.

Its been a really good year. I think I have personally learned a lot and become a much better software engineer. This makes me rather pleased with myself. The future looks very promising.