The path to getting your applications to the cloud starts with first choosing your underlying cloud infrastructure. OpenStack, an Infrastructure as a Service (IaaS), provides an open-source solution that can transform your existing data center into an on-premise cloud platform. OpenStack is broken into a combination of services mainly Compute, Networking, and Storage that are configured together to form its environment.
Control and Compute
At Miracle, we have built a proof-of-concept infrastructure consisting of two node types to house these services, which we have labeled the Controller Node and Compute Node. The Controller Nodes act as orchestration over the Cloud, and are configured to run the following OpenStack services,
- Identity (Keystone) – provides authentication and authorization services for users, roles, etc.
- Image (Glance) – Registry service for VM guest images
- Dashboard (Horizon) – Web-based dashboard for managing OpenStack services
- Management portions of Compute ( Nova )
- Management portions of Networking (Neutron)
- SQL Database, Message Queue, NTP Services, and Token Handler
Our Compute Nodes are then configured to run VMs (or) house a Platform as a Service (PaaS) such as Cloud Foundry (or) OpenShift. Its OpenStack services are minimal and consist of,
- Hypervisor portion of Compute (Nova) that operate instances (VMs)
- Network service agent that connect instances to virtual networks and provides firewall services to instances via security groups
Networking for OpenStack
The network topology for this infrastructure consists of two networks; the Management Network that OpenStack uses to send RESTful API calls between different nodes and services, and the Provider Network that is used to give virtual machines connectivity to the outside world. Accessing OpenStack through the Horizon dashboard is done with a web browser, and from there you can provision instances, manage projects, create users, and oversee your OpenStack deployment.
Applications and Virtual Machines
Migrating your application to OpenStack then can be achieved by importing your existing virtual machine into the OpenStack Glance service. Supporting multiple types of virtual images from QCOW2, AMI, vmdk, and RAW disk formats, Glance provides storage of your images and snapshots of your application. Once your image is registered, you can configure the resources your application can scale up from the Horizon dashboard, along with the network it will be utilizing the security groups for port handling.
Our Thoughts on OpenStack
Our time with OpenStack has proven itself as a mature IaaS that is growing with each new release. Our teams continue to work on added functionality through OpenStack, configuring it for application housed in containers, deploying full application stacks with orchestration templates, key management services and much more.
With specific configurations covering Big Data deployments, eCommerce infrastructures, Video Processing with Content Delivery, High Throughput Computing, or Container Optimization, OpenStack allows a breadth of deployment options for your data center to be configured with.
Its source code is available freely online, you can start contributing to the project at any time and follow its progress with each line of code added by over 2000 active developers working on it today.
The future of OpenStack at Miracle
Miracle plans to expand its deployment of OpenStack to include multiple availability zones across regions with the ability to deploy cloud native applications on Cloud Foundry (PaaS), microservices on OpenWhisk (Serverless) and business applications on Containers and VMs within a resilient cloud.
As of today, Miracle runs disparate sets of virtualized servers that run all kinds of workloads from Java Application to Enterprise Middleware. Close to 150 virtual machines, ranging from RedHat to Windows, are run across 3 data centers with manual processes and no single point of management and monitoring.
The goal of Miracle’s Private Cloud Project is to bring all of our data centers and compute power under one single umbrella that still exists across regions with high resiliency. Through this implementation, we will be able to increase developer agility while providing higher visibility to the operations team under a single pane of glass. We will be able to not only control all of our compute power from one dashboard, but will also give us more visibility into usage and availability as well.
The future home of Miracle’s applications looks very good indeed!