Welcome to Apis TechTips, a series of episodes consisting of excerpts from our telecom courses. 

This episode comes from the course Cloud, NFV and SDN in an Hour and gives you a quick, logical and functional introduction to OpenStack. 

Do you want to know more about OpenStack and other cloud connected environments? Explore Apis Training’s full course Cloud, NFV and SDN in an Hour.  

The course gives you a deeper understanding of: 

  • OpenStack 
  • Network Functions Virtualization (NFV)  
  • Software-Defined Networking (SDN) 
  • Cloud Introduction  
  • Virtualization  
  • Containers  

Are you curious? Read more about the course now: https://apistraining.com/portfolio/cloud-nfv-and-sdn-in-an-hour/ 

This TechTip is also part of a whole eBook of tips, all focusing on Cloud technology. We call it an eBook+ since all chapters are both text and video. If you want to read the text, you can do that, and if you want to watch a teacher tell the story, you can choose that.

All the video chapters are excerpts taken directly from our recorded lessons, so if one of them piques your interest, you can easily go to the course and dive deeper into that particular subject.

This particular eBook+ is called “Cloud Chronicles: A Journey into a Virtualized and Software-Defined World“, and you only need to CLICK HERE to request it for immediate download.

Below you can find the transcribed text for this particular TechTip.

What Does OpenStack Do?

Let’s take a look at OpenStack. In the lower part of the first image, we have two data centers or at least server groups, server groups one and two. They’re connected by some physical network. We have cables, switches, and routers in the IP transport layer, and we have connected storage, hard drives, and storage clusters.

Our aim here is to start virtual machines on the servers and connect them, but we need to control that from somewhere, maybe from the laptop at the top of the picture. That is us sitting connected to the Internet at the top, and we want something to happen down there at the bottom. We need some kind of intermediary here. Something in between.

We need something that allows us to start and stop virtual machines in the data centers, connect those virtual machines using networks, and mount storage, meaning make the virtual machines believe they have hard drives. While there are other solutions, OpenStack is a popular choice to play this role of intermediary. OpenStack is arguably the biggest open-source option, but private vendors like VMware are also big players.

In the second image, we can see what OpenStack consists of, a number of modules. Firstly, it has a Horizon module, which is the one that gives me the graphical user interface. This is essentially just a web service that I log into that allows me to see what’s going on. It allows me to click to start and stop virtual machines.
Each one of these modules, the rectangles in this picture, is just a piece of code. It’s written in Python if you’re interested, but it’s just computer code. Computer programs.

There’s the computing, or NOVA, module. It’s the one that sends the commands to start or stop virtual machines. Then we have three that have to do with storage. One of these is the one that fakes hard drives toward virtual machines (Cinder). It allows you to write blocks of data, e.g. “write these ones and zeros on this location on the hard drive”; that’s how hard drives work. We have one module (Glance) that keeps track of image files, the blueprints that are used to start virtual machines, and a third one (Swift) that actually stores those image files.

Swift is object storage, as opposed to block storage (Cinder) which writes blocks of ones and zeros. Swift handles whole files the way you’re used to in a normal file explorer in Windows or in Dropbox. You’ll notice if you try that it’s very difficult in File Explorer to move half a file, but you can do that in Cinder while Swift handles whole files. Swift is essentially OpenStack’s own little internal Dropbox.

We have a module for networking, which is called Neutron, that can behave as a router or as a switch, as a load balancer, as a firewall, and all kinds of things. It can be a NAT for virtual machines to reach the outside world.

And then there’s a module that handles security, Keystone. It handles security when you log in, but more importantly, it handles security between all these modules because everything these days is moving towards restful APIs with HTTP/TCP-based communication between functions. 5G is all about that, so is NFV, and OpenStack as well. So all the coloured lines are the modules talking HTTP to each other.

They are essentially acting as web services to each other, and those APIs are, by default, open. You can reach them from everywhere. And that’s what the arrows directly between Access and Function denote. There is no OpenStack police that tells you you have to go through Horizon to reach e.g. Cinder. If you are able to reach Cinder on a network level and you can speak the language that it speaks, then that’s perfectly fine, and you can communicate directly with Cinder from the outside.

If you don’t want to use OpenStack, and you just want to use Swift as your own little local Dropbox at home, you can do that as well.