OpenStack Is Open for Business

OpenStack has emerged as the leading open Infrastructure as a Service (IaaS) platform for private and public clouds. With an OpenStack platform, developers can provision cloud environments on demand, without assistance from IT, thus removing any infrastructure barriers to innovation. Early adopters such as Despegar.com, the largest online travel firm in Latin America, have already deployed OpenStack to speed time to market for new features and services.

As NetApp CTO Jay Kidd predicted in his list of top storage trends for 2014, this is the year that “OpenStack distributions become more product than project.” So, if you’re planning for a private cloud and you haven’t looked at OpenStack yet, now is the perfect time to start thinking about how it might fit within your own organization.

Open and Extensible Cloud Infrastructure
One of the best ways to understand OpenStack is through a comparison to Linux®. It’s often said that OpenStack is to the cloud what Linux is to servers. Where Linux provides an open—and extensible—operating environment for individual servers, OpenStack provides an open and extensible operating environment for cloud infrastructure that offers:

  • Modular design
  • Public roadmap
  • Packaged distributions
  • Compatibility with Amazon Web Services (AWS)

Modular design: OpenStack is a collection of separate modules or services all under the same umbrella. These services can be used to create pools of processing, storage, and networking resources, all managed through a dashboard that gives administrators control while empowering users to provision resources through a Web interface. Although the component modules are designed to work together, you are free to choose only the components you need.

Public roadmap: OpenStack software releases are named alphabetically: Austin was first, followed by Bexar, Cactus and so on, with the Juno release planned for October 2014. The roadmap is aggressive, with a new release every six months. Each release typically includes new features and new modules, and may include projects in “incubation” for future releases.

Packaged distributions: The analogy between OpenStack and Linux extends to include a very similar distribution model. Just as companies such as Red Hat and SUSE created packaged Linux distributions, a dozen or more OpenStack providers, including Red Hat, SUSE, Mirantis, Rackspace, and Metacloud, are creating packaged versions of OpenStack.

AWS compatibility: Many of the various services that OpenStack provides—compute, storage, networking, and so on—are API-compatible with their equivalent AWS capabilities. If you have an application that runs on AWS, you can run the application in any OpenStack environment, including your on-premises data center.

Article Source – http://searchstorage.techtarget.com/NetAppSponsoredNews/OpenStack-Is-Open-for-Business?asrc=SS_stlcm_SN-2240187435

How does OpenStack Quantum work

Quantum consists of three layers of APIs:

  1. The top layer is a RESTful API that sends Quantum API and routing API requests to the correct endpoint within the pluggable infrastructure.

“With this API, you can create virtual ports and networks and attach VMs to the networks — all the basic networking concepts,” Bryce said.

  1. The middle layer contains software that provides authentication and authorization control.
  2. The bottom layer is a set of driver-based plug-ins that let Quantum connect to and orchestrate network infrastructure. Each plug-in is designed to work with a specific vendor’s project or open source project.

“Vendors have created plug-ins to allow you to manage their networking gear using the OpenStack networking framework. This includes traditional networking vendors, like Cisco, and startups like Big Switch and Nicira (acquired by VMware), doing SDN,” Bryce said. “It’s a flexible framework that gives you a standard API to manage that work. You can do a lot of different networking gear underneath and abstract that way.”

Vendors who offer network infrastructure will need to publish their code and provide hooks that everyone can form into a standard API. “It’s one of the most unique things about Quantum, because there’s never been a standard networking API before,” Salisbury said.

How do you go about installing Cloudify

 

Cloudify can be installed by using different methods.

Since it is based on a set of premade packages, it can be deployed using shell scripts, configuration management tools, cloud specific orchestration tools (CloudFormation, Heat, etc..) or Cloudify’s CLI tool which provides a smooth experience for getting a fully working, cli manageable Cloudify Management server.

Prerequisites

Manager Environment

Host Machine

Minimal Requirements

A Cloudify manager must run on a 64-bit machine and requires at the very least 2GB of RAM, 1 CPU and 5GB of free space.

Note

These are the minimal requirements for Cloudify to run. You will have to provision larger machines to actually utilize Cloudify.

Recommended Requirements

The recommended requirements can vary based on the following:

  • Number of deployments you’re going to run.
  • Amount of concurrent logs and events you’re going to send from your hosts.
  • Amount of concurrent metrics you’re going to send from your hosts.

As a general recommendation for the average system, Cloudify would require at least 4GB of RAM and 4 CPU Cores. Disk space requirements varies according to the amount of logs, events and metrics sent as Cloudify doesn’t currently clean them.

Network

The Manager must be available in the following ports:

  • Inbound – port 80 – For CLI and REST access.
  • Inbound – port 22 – If Bootstrapping is done via the CLI.
  • Inbound – port 5672 – Agent to Manager communication.
  • Outbound – port 22 – If running Linux based host machines and remote agent installation is required.
  • Outbound – port 5985 – If running Windows based host machines and remote agent installation is required.

OS Distributions

Management Server

If bootstrapping using packages

Cloudify’s management server currently runs on Ubuntu 12.04 Precise. To install on Centos or other distributions, you must use the Docker implementation.

If bootstrapping using Docker Image

Cloudify’s Docker implementation was tested on Ubuntu 14.04 and Centos 6.5 and is based on the phusion/baseimage Docker Image (Ubuntu 14.04).

Note

If the host machine Docker is running on is based on Ubuntu 14.04, we will attempt to install Docker for you (if it isn’t already installed. Requires an internet connection). For any other distribution (and release), you’ll have to verify that Docker is installed prior to bootstrapping.

Hosts

Please see here for the supported distributions.

Agents are provided for these OS distributions, but using the Cloudify Agent Packager, you can create you own agents for your distribution.

Docker

If you bootstrap using the Docker images, you must have Docker 1.3+ installed.

Cloudify will attempt to install Docker on Ubuntu 14.04 (Trusty) ONLY as other images may require kernel upgrades and additional package installations.

What’s Next

Next, you should install the Cloudify CLI. Once you’ve installed it, you will be able to boostrap a Cloudify manager on the environment of your choice.

Getting started with basics of building your own cloud

My daily routine involves too much of AWS Cloud infrastructure. And let me tell you AWS now has grown to an extent that it has now become the synonym of Cloud. I mean they have grown without leap and bounds in the past few years and believe me many other major players are not even near them in the cloud arena (Yeah of course Google and Microsoft does have their own cloud solutions which are pretty brilliant for all use cases, but nobody has the user/customer base that aws has in their public cloud architecture).

Nothing can match the flexibility, elasticity, and ease of use that cloud provides.  Because I remember when I use to work with physical hardware machines (I had to literally wait for hours to get one ready up and running for an emergency requirement. Then if I need additional storage for that machine again wait some more time.) . And if you are using the cloud, then you can spin up a few cloud servers in seconds (believe me in seconds) and test whatever you want.

What is OpenStack Cloud?

An year ago I happen to read an article from netcraft regarding their findings on AWS. According to them in 2013 itself AWS has crossed the mark of 158K in the total number of public facing computers. Read the original article here: http://news.netcraft.com/archives/2013/05/20/amazon-web-services-growth-unrelenting.html

Now imagine if you get the same features that AWS cloud provides with something open source that you can build in your own data centre. Isn’t that amazing? Well that’s the reason why tech giants like IBM, HP, Intel, Red Hat, CISCO, Juniper, Yahoo, Dell, Netapp, Vmware, Godaddy, Paypal, Canonical(Ubuntu) support and fund such a project. Well I named a few handful of companies, you can find the entire list over here: http://www.openstack.org/foundation/companies/

This open source project is called as Open Stack, and is currently supported by more than 150 tech companies worldwide. It all started as a combined project by NASA and Rackspace in 2009 (well both were independently developing their own individual projects, which at a later point got together and later called as OpenStack). Well NASA was behind a project called as NOVA(which is very analogous to amazon ec2 and provided computing feature), and Rackspace built another tool called as Swift(a highly scalable object storage solution, very similar to AWS S3).

Related: Understanding Object Storage and its use cases

Apart from these, there are other components that help make openstack very much same as aws cloud(we will be discussing each of them shortly, and in upcoming tutorials, we will configure each of them to build our own cloud).

Openstack can be used by anybody who wants their own cloud infrastructure, similar to AWS. Although its origin will trace back to NASA, its not actively developed/supported by NASA any more.

Read: http://gigaom.com/2012/05/24/nasa-backs-off-openstack-development/

And they are currently leveraging aws public cloud infrastructure J

Read: http://aws.amazon.com/blogs/aws/nasa-saves-nearly-1m-per-year-by-using-aws/

If you want to simply use openstack public cloud, then you can use Rackspace Cloud, ENovance, HP cloud etc(these are very much similar to aws cloud.) with their cost associated. Apart from these public openstack cloud offerings, there are plug and play cloud services, where you have dedicated hardware appliance for openstack. Just purchasing it and plugging it would turn it into an openstack cloud service without any further configurations. One such provider is called Nebula One

Let’s now discuss some of the crucial components of OpenStack, which when combined together will make a robust cloud like any other commercial cloud (Like AWS), that too in your datacenter, completely managed and controlled by your team.

  • OpenStack Compute:  So one of the main component of cloud is virtual machines, that can scale without bounds. This need of the cloud in openstack is fulfilled by something called as Nova. Nova is the name of the software component in OpenStack cloud, that offers and manages virtual machines.

Apart from the compute requirements, the second major requirement is storage. There are two different types of storage in the cloud, one is block storage(very similar to the way how you use RAID partition on any of your servers and format it and use it for all kind of local storage needs), or  normal disk storage, where your operating system files are installed etc.

  • OpenStack block storage (Cynder): will work similar to attaching and detaching an external hard drive to your operating system, for its local use. Block storage is useful for database storage, or raw storage for the server(like format it, mount it and use it), or else you can combine several for distributed file system needs (like you can make a large gluster volume, out of several block storage devices attached to a virtual machine launched by Nova).

The second type of storage full fills the scaling needs, without bounds. You need a storage that can scale without worry. Where your storage need is of static objects. This can be used for storing static large data like backups, archives etc. It can be accessed with its own API, and is replicated cross datacenter, to withstand large disasters.

  • OpenStack Object storage(Swift): is suitable for storing multimedia content like videos, images, virtual machine images, backups, email storage, archives etc. This type of data needs to grow without any limitation, and needs to be replicated. This is exactly what OpenStack swift is designed to do.

Last but not the least, comes Networking. Networking in the cloud has become so matured that you can create your own private networks, access control lists, create routes between them, interconnect different networks, connect to remote network using VPN etc. Almost all of these needs of an enterprise cloud is taken care by openstack networking.

  • Openstack Networking(Nova-networking, or Neutron): When I say openstack networking, think of it as something that manages networking for all our virtual hosts(instances), and provide IP address both private and public. You might be thinking that networking in virtualization is quite easy by setting up a bridge adapter and routing all traffic through it, similar to many virtual adapters. But here we are talking about an entire cloud, that should have public ip’s, that can be attached, detached from the instances that we launch inside, there must be one fixed ip for each instance, and then there must never be a single point of failure etc.

According to me openstack networking is the most complex thing that needs to be designed by taking extreme care. We will be discussing openstack networking in very detail, in a dedicated post, because of its complexity, and importance. Also it can be done with two different tools. One is called as nova-networking, and the other is called as neutron. Please note the fact that each and every component of openstack cloud needs special attention on its own, as they are each very distinct and work combined together to form a cloud. Hence i will be doing dedicated post for each of its major components.

Openstack is very highly configurable, due to this very reason, its quite difficult to mention all of its possible configurations in a tutorial. You will come to know about this, at a later point, when we start configuring things in the upcoming series of posts.

Does nova-compute perform virtualization

Well, nova-compute basically is a daemon that does the job of creating and terminating virtual machines. It does this job through virtual machine API calls. There is something called as a libvirt library. Libvirt is nothing but an API for interacting with Linux virtualization technologies(its a free and open source software that needs to be installed with nova as a dependency).

Basically libvirt gives nova-compute, the functionality to send API requests to KVM, Xen, LXC, OpenVZ, Virtualbox, Vmware, Parallels hypervisors.

So when a user in openstack requests to launch a cloud instance, what actually happens is nova-compute sending requests to hypervisors using libvirt. Well other than libvirt, nova-compute can send requests directly to Xen-Api, vSphere API etc. This wide support of different virtualization technologies is the main strength of nova.

An ecosystem of integrated cloud products

In my prior post, I described how OpenStack from Red Hat frees  you to pursue your business with the peace of mind that your cloud is secure and stable. Red Hat has several products that enhance OpenStack to provide cloud management, virtualization, a developer platform, and scalable cloud storage.

Cloud Management with Red Hat CloudForms            

CloudForms contains three main components

  • Insight – Inventory, Reporting, Metrics
  • Control – Eventing, Compliance, and State Management
  • Automate – Provisioning, Reconfiguration, Retirement, and Optimization