Tuesday, November 20, 2018

Why you should learn OpenStack before you binge on AWS, Azure or GCP

Even if you haven't heard of it or never needed it, learning OpenStack will definitely set you up for success in the cloud ecosystem.
To become a true cloud expert, you need to get into the absolute details of a cloud platform. And as much as you'd wish, AWS, Azure or GCP won't reveal such details for obvious reasons. OpenStack is the perfect solution to explore and understand just this.
Disclaimer: This is not a technical article :)

The Big Questions

When I started learning cloud back in 2011, I loved the ease with which one could consume S3 or EC2 services from AWS. So I started surveying the entire landscape of cloud computing to understand what exactly was happening in academia as well as industry. While academic research was quick and apt to point out security concerns with the cloud model of computing, companies like AWS, Microsoft were busy rolling out their cloud services - typically storage and compute to start with. Although as a research graduate student I was in love with the idea of cloud computing and knew what was happening from a user's perspective, in my mind I was longing for answers to the following questions (of the many I had);
  1. What all do you need to set up a cloud platform?
  2. How did AWS, Azure and Google build such a thing in the first place?
My search for these answers took me to OpenStack which is an open source cloud operating system and was rapidly evolving in the open source community.

Why OpenStack is important to understanding cloud?

OpenStack is a comprehensive cloud operating system from the open source community that companies can use to build their own private or public cloud platforms from scratch. It has all the core functionalities that you'll need to set up a cloud and its services. But more than all this, whats most exciting to me is, you can dive deep into each of the aspects of OpenStack (download source code, review internals, decide what part to use and so on..).
OpenStack is a collection of self contained and independent projects (think cloud components) that can be used either individually for serving a very specific need or all together as a comprehensive cloud operating system. When you spend time on learning OpenStack (essentially its overall architecture and then about each of its projects), you learn about;
  1. How is a compute or a storage service created?
  2. How are physical resources pooled into abstracted virtual resources?
  3. How hypervisors play a crucial role in enabling cloud computing?
  4. How SDN is used for cloud networking and why it has become possible for you as a user to configure an entire network by just passing parameters to a UI within a browser?
  5. What all components are absolutely necessary to create a basic cloud platform?
and much much more...

Use OpenStack to set up your own "Proof of Concept Cloud"

So what are you waiting for? Go ahead and create your own mini cloud. There are a ton of online tutorials that will help you install OpenStack on your local laptop using a packaged installation method such as PackStack and DevStack. Even if you do not understand everything about OpenStack, I'd recommend that you simply deploy a single node OpenStack and play around with what you see.
Assuming that you will be able to install OpenStack, what you will see at the end of the OpenStack installation journey is quite fascinating.
As intimidating an OpenStack installation can be, the end result is equally rewarding - the Horizon Dashboard, window to your own cloud infrastructure!
Once you've deployed a basic OpenStack cloud, you can see the following components on your admin dashboard;
This is similar to what any cloud admin would see on their dashboards.

How learning OpenStack helps

If you've worked with OpenStack - created your own networks, instances, storage volumes, route tables, security groups, assigned floating IPs etc. working with AWS, Azure or GCP becomes a cakewalk. Since you'd already know all of these concepts, it becomes extremely easy to learn the basics of public cloud platforms.
Also since you've set up your own cloud using OpenStack and have looked at each of the cloud components - identity, compute, storage, network, image manager, orchestrator, metering & billing, containers etc. you can comfortably think about AWS, Azure or GCP internals. You might not know everything about their internal architectures, but you can guarantee yourself a better conceptual position in terms of understanding cloud than folks who haven't worked with OpenStack.

Go a step further and explore individual OpenStack Components

For me, in the context of working with OpenStack, the holy grail is to deploy an OpenStack cloud one component at a time. It will be difficult and complicated. But when you build a cloud using a step by step install and one component at a time, you achieve a truly special understanding of cloud computing. It's a higher plane of understanding that all cloud professionals should aspire to reach!
So go ahead and install the individual compute, identity, image, compute and networking services (for a basic set up). Disclaimer: This approach is complicated and difficult, but again, all great things come with some efforts.
While you do this, the individual parameters and configuration settings that you have to do for each OpenStack service will give you a world of insights.

Compare your favourite public Cloud with OpenStack

This you can do even without getting your hands dirty. Simply read about OpenStack and its components and you'll be able to compare various category of cloud services offered by your favourite public cloud platform and OpenStack. What you'll learn is all the cloud platforms offer more or less the same set of services and hence need the same set of components that OpenStack offers.
It is because of all these subtle reasons and benefits of learning OpenStack that we offer OpenStack course as part of our widely successful PGP in Cloud Computing program offered by Great Learning. Finally, all of the insights and recommendations shared by me here have come from using OpenStack personally. I hope learning OpenStack proves to be equally rewarding for you!
Look forward to seeing you explore the great OpenStack!

4 comments:

AI & M L Lab - 18CSL76

  Lab programmes: View