Public clouds have grown tremendously over the last few years and there are very few companies who do not use public cloud at this point. Even traditional enterprises with in-house data centers have some presence in the public cloud. I was looking at Amazon’s re:Invent conference details and I was amazed by the number of new services and enhancements that were announced this year. It is very difficult for private clouds to keep up in pace with the new features of public cloud. There is no doubt that public clouds will overtake private clouds in the long term. Private clouds still have a wide deployment and there will be enough use cases for quite some time to deploy private cloud. The use cases includes regulated industries, compute needed in remote locations not having access to public cloud and some specialized requirements that public clouds cannot meet. For some enterprises, private cloud would make more sense from a costing perspective. Having hybrid cloud option is a safe bet for most companies as it provides the best of both worlds. I saw 2 recent announcements in hybrid cloud that captured my attention. One is Azure stack that allows running Azure stack in private cloud. Another is VMWare cloud on AWS that allows running entire VMware stack in AWS public cloud. I see these two services as 2 ends of the hybrid cloud spectrum. In 1 case, public cloud infrastructure software is made to run on private cloud(Azure stack) and in another case, private cloud infrastructure software is made to run on public cloud(Vmware cloud on AWS). In this blog, I have tried to capture more details on these 2 services.
There are predominantly 2 options currently to run Private cloud. 1 option is to use vendor based cloud management software along with hardware from same vendor.
Continue reading Hybrid cloud recent solutions from Microsoft and VMWare – 2 different ends of the hybrid cloud spectrum
I recently saw the Openstack self-healing demo from CoreOS team using Tectonic(Stackanetes project) and I kind of felt that the boundary between Containers and VMs are blurring. In this blog, I discuss the usecase of deploying Openstack using Containers.
We typically think of Openstack as a VM Orchestration tool. Openstack is composed of numerous services and deploying Openstack as one monolithic blob is pretty complex and difficult to maintain. The demo described showed how Containers simplify Openstack deployment. This is a great example of using Microservices architecture to simplify infrastructure deployment.
Following diagram shows the Openstack deployment model using Containers. The diagram below shows how Openstack service containers deploys user VM. The user VMs deployed using Openstack can run Containers as well..
Following are some notes on the architecture:
- Openstack services like Nova, Heat, Horizon are containerized using Openstack Kolla project as Docker Containers. Some Openstack services like Nova is composed of multiple Containers.
- Infrastructure components like Ceph, Openvswitch, Mongodb are also deployed as Containers.
- For Container deployment, Openstack natively uses Ansible. Kubernetes can also be used for Orchestration.
- Using Containers for Openstack service containers gives all the build, ship and deploy advantages of Containers.
- Using orchestration solution like Kubernetes gives all the resiliency and deployment advantages for Openstack services.
This work also shows how Containers and VMs can work closely with each other for lot of use-cases. There are other Openstack projects like Magnum and Kuryr where there is an intersection between Containers and VMs. Magnum project deals with Container orchestration using Openstack and Kuryr project deals with doing Container networking using Openstack Neutron.
Openstack is a Cloud Orchestration software. Devstack script provides a development environment for Openstack. Devstack provides a great way to get hands-on with Openstack. I had written 2 earlier blogs on installing Devstack for Openstack Icehouse and Openstack Juno. I received multiple queries on installation related issues. To make this simple, I created Vagrant images for different Openstack releases. With this, VM creation and Devstack installation can all be done with a single script. In this blog, I will walk-thru the steps for the installation.
Vagrant makes it easier to create and share VMs and this makes Vagrant Devops friendly. For getting started on Vagrant, you can refer to my earlier blog on Vagrant.
My Development environment:
Windows 7 machine with Virtualbox 4.3.28 and Vagrant 1.7.2.
Following are typical issues I have seen folks facing when running Devstack:
- There are some pre-requisite software that needs to be installed before running Devstack like setting up Python environment etc.
- It is needed to setup VM with atleast 4G RAM and 8G hard disk. Otherwise, either Stacking will fail or instance creation will fail.
Continue reading Vagrant and Devstack
This is a continuation of my previous blog on Openstack and Docker. In this blog, I will cover Openstack Docker heat plugin and Magnum.
Following are some of the items that Nova Docker driver cannot do currently:
- Passing environment variables
- Linking containers
- Specifying volumes
- Orchestrating and scheduling the containers
Heat docker plugin solves problems 1-3 and partially solves problem 4. Following is the architecture diagram I found in Openstack Docker wiki for heat.
- Nova is not involved here. Openstack heat uses Docker plugin to talk to Docker agent on the host.
- The host here is the VM spawned. The VM can either be spawned by Nova or Heat can spawn this using Nova driver.
- Glance is not involved here as the container images are stored in Docker registry.
- The Heat approach allows us to specify environment variables, link containers, specify volumes as well as orchestrate the host on which the Docker runs.
Using Heat plugin:
Continue reading Openstack and Docker – Part 2
In this blog, I will cover the different ways in which Openstack can create and manage Docker Containers. The 3 predominant approaches are using Nova Docker driver, Heat Docker plugin and Magnum. Magnum is pretty new and is under development. Openstack is opensource cloud orchestration software and Docker is opensource container management software. For this blog, I am assuming users are already familiar with Openstack and Docker. There are lot of resources for learning Openstack and Docker available in the web, my blogs related to these topics can be found here and here.
Nova Docker Driver:
Nova typically manages VMs. In this approach, Nova driver is extended to spawn Docker Containers. Following is the architecture diagram mentioned in the Nova Docker wiki.
- To spawn containers Nova compute driver is pointed to Docker driver.
- Nova Docker Virt driver talks to Docker agent using http api calls.
- Docker images are stored in the Docker registry and images are exported to glance from Docker registry which Nova uses to create Containers.
Nova Docker driver with Devstack:
Continue reading Openstack and Docker – Part 1
CML(Cisco Modeling lab) and VIRL(Virtual Internet and Routing lab) are Network modeling platforms from Cisco. I have been trying this out for the last 2 weeks and I am very impressed by what it can do. I feel that the potential for this platform is so huge that it will create a fundamental impact in the Networking industry. Currently, the simulation is limited mainly to Cisco devices though I have seen Juniper and Vyatta images in the VM list. In the next series of blogs, I will walk through some of the following topics:
- What is CML, VIRL? Architecture and Software components.
- How to get started? Installation and Quickstart.
- Examples/Use cases that I tried. L3, L2, management.
Difference between CML and VIRL:
CML is a code branch of VIRL that has been enhanced to provide more scale, VIRL has a 15 node limit. CML customers get Cisco TAC support. CML is focussed towards Enterprise customers, while VIRL is focussed on individuals and training institutions. Obviously, VIRL is much cheaper than CML. VIRL has different prices based on personal or academic use.
Since I work in Cisco, I didnt have to pay any money to try out CML and VIRL. Going forward, I will use the term VIRL to describe the Network Modeling platform. If there are any CML specifics, I will mention those.
Continue reading VIRL and CML – Overview
This blog is part of my series on Openstack Juno. In this blog, I will cover different management interfaces to Openstack. Following are the different management interfaces available.
- Horizon web interface
- CLI interface to each service. CLI interface is provided by Python script. Internally, the script calls the REST interface.
- REST interface. This is accessible either through Curl or a POSTMAN kind of client.
- Programmatic interface using Python SDK.
On the host where stacking is done, webserver runs on port 80 and all Openstack services can be configured using this interface. Login to Horizon can be done with either tenant userid or admin userid. Based on the userid, privileges are granted.
CLI interface is provided for each service. Nova services are accessible through “nova” client, Swift services are accessible with “swift” client and so on. Following example lists running VMs. Continue reading Openstack Juno – Management interfaces