Cloud workloads are challenging to predict. If you’re building the next killer app and you're app attracts many users overnight, how do you plan for this sudden growth? The short answer is that you cannot. Gridcentric’s Reactor for Openstack is a scale-out virtualization technology that allows you to automatically scale OpenStack enabled apps. It provides dynamic, instant on, policy-driven scaling that is needed for cloud apps and leverages the power of virtual memory streaming to rapidly spin up new virtual machines when needed. Reactor automatically scales (or shrinks) the number of virtual machines needed to power your cloud. You only use the minimum number of instances you need. Nothing more, nothing less, and without any operator intervention.
|Idle overprovisioned resources||With Reactor, only the minimum number of virtual machines are instantiated and used. This improves resource utilization rates and eliminates zombie servers.|
|Lack of instant scaling capabilities||Reactor leverages the rapid virtual machine cloning technology of VMS to seamlessly scale your apps in response to load. This increases the success rate to meet your SLAs.|
|High operating costs||Reactor allows you to predefine policies to automate activities that previously would have been human intensive tasks. Additionally, reactor makes the best use of your available hardware to lower your operating costs.|
|Lack of visibility into resource usage||Reactor's rich GUI gives you insight into your workload and how your cloud resources are scaled (up or down).|
Reactor provides the following features:
- Dynamic scaling
Reactor dynamically scales your apps on Openstack by automatically growing and shrinking the number of virtual machines used based on your workload. If you have sudden burst of requests, reactor seamlessly and automatically spins up new instances to meet the growing requirements. When demand drops, Reactor automatically stops idle virtual machines reducing your cloud costs.
- Instant-on scaling
Reactor leverages Gridcentric’s Virtual Memory Streaming technology to rapidly spin up virtual machines from live images. This means that when reactor launches a new virtual machine it is ready to serve load immediately without any delay. Additionally, since virtual machines are thin provisioned, each virtual machine uses only a small fraction of the memory.
- Policy-driven scaling
Reactor can monitor different kids of apps - apps that are HTTP based, arbitrary network socket-based (such as memcached), or a non-service based networked app (such as a NoSQL database or a Hadoop map-reduce cluster). Reactor rules can be composed to monitor a number of different metrics such as number of HTTP connections, CPU load, and application provided metrics (such as transactions per second). Using the SLA's defined in the reactor rules, Reactor automatically takes the corresponding scaling action on your behalf.
- Rich dashboard
Reactor has a rich GUI dashboard. Using this dashboard, you can configure reactor rules and monitor the number of active, running, paused, and stopped virtual machines. The reactor GUI also provides usage graphs for live metrics such as bytes transfered and the response time.
Best suited for applications with the following characteristics :
- Built to scale-out
Infrastructure blocks can be added and removed from the system dynamically, and are based off of a common template - they differ from each other only by their runtime identification (e.g. hostnames and IP addresses) and runtime working sets (e.g. active users, active sessions, or active applications).
- Have measurable metrics
Load on the application is definable and measurable by metrics such as number of current connections, number or active sessions,and number of active applications.
- Infrastructure bottlenecked
Increasing the number of infrastructure blocks increases the capacity of the application to handle load.
How does it work?
Reactor auto scales your apps on Openstack. It leverages virtual memory streaming technology to efficiently launch new virtual machine instances when required. It is typically deployed as a virtual appliance co-located on the cloud hosting the app and can manage multiple apps through endpoints. Each endpoint can be configured independently and can have different reactor rules. Reactor periodically accumulates and normalizes metrics from running virtual machine instances and applies the appropriate reactor rules for that endpoint. It then determines, how many virtual machines are needed to meet the SLA of your app and instantiates these virtual machines. After the newly launched virtual machines are ready, Reactor registers them with the configured load balancer for the endpoint.
Get started with Reactor and OpenStack
Our experts are ready to help you get started with your OpenStack-based app that requires Reactor. E-mail us up here and we’ll get in touch with you shortly.