Manage Learn to apply best practices and optimize your operations.

ElasticBox 3.5 aims for deployment standardization

Learn about ElasticBox 3.5 and why it is this month's choice for innovation.

The editors at SearchCloudApplications regularly recognize cloud applications, platforms and services for their innovation and market impact. ElasticBox 3.5 is the December 2015 editors' choice selection.

Product name: ElasticBox 3.5

Vendor: ElasticBox, based in San Francisco

Release date: Nov. 19, 2015

Applications are emphasizing components more often and are increasingly deployed into multicloud, multiprovider environments. ElasticBox 3.5 turns to standardization and containerization to help enterprise architects simplify the development, deployment and management of applications for any cloud infrastructure combination -- on or off premises, private, public, and hybrid.

What it does

ElasticBox employs the concept of bindings, which connects multiple components and multiple layers of the application together. The bindings method allows developers to deploy an application across multiple cloud environments or scenarios, according to Brannan Matherson, head of product marketing at ElasticBox. Because ElasticBox abstracts the infrastructure from each application component, it can use that information to configure each component independently and in real time.

We can now deploy to our VMware machines and to Azure without changing a thing.
Michael FerioliVP of SaaS operations, Brainshark

"There are products that use templates or profiles for deploying apps, but these tools deploy with single connections or single bindings, a one-to-one relationship between components, or to the infrastructure," Matherson said.

However, the ElasticBox model uses the concept of boxes, which enables multiple bindings of applications or components. Boxes can be bound, or stitched together, to model complex processes, such as deploying or upgrading multi-tier, enterprise-class applications. The idea is that configured application or architecture components are encapsulated in a box that becomes available as a service. Boxes support embedding of applications or their components inside other applications. "Now, you have this nested notion of complex applications that can be deployed in different tiers -- AWS, on premises, VMware or somewhere else," Matherson said.

Why it's cool

New in version 3.5 is the ability to deploy complete application stacks, an increasingly important concept as enterprises adopt multicloud, multiprovider scenarios. Using boxes to model the uniqueness of an application allows those characteristics to be saved and reused. This feature enables a developer to build once and deploy multiple times to several different destinations.

"Every infrastructure is unique," said Matherson. "It's one thing to say that a product supports every cloud, but AWS configures its networking and storage different than Azure or OpenStack."

In a modern cloud computing environment, it is common for an application to be deployed only once but updated frequently via rolling updates or in-place upgrades. "If a complex application is multi-tiered, you don't need to redeploy the entire app. You update only that tier, without bringing the entire service or app down for users," Matherson said. Doing so ensures uninterrupted operation, critical for both public-facing and internal applications.

One feature of release 3.5, resource naming, has already gained favor among developers. "Prior to this release, the name assigned to every virtual machine was a string of random characters designed to ensure uniqueness," said Michael Ferioli, vice president of software as a service (SaaS) operations at Brainshark, a developer of cloud-based sales-enablement and training applications based in Waltham, Mass. "Now, we can use our own naming conventions, and that increases both the comfort factor and recognizability."

Also new in ElasticBox 3.5 is enhanced support for containers. With boxes providing the flexibility to deploy applications to bare metal or virtual machines, the need to use containers is essential for ensuring underlying developmental and operations flexibility.

Matherson described a typical multi-tier application that might consist of one or more node.js Web front ends with load balancers, a middleware layer and a MongoDB database back end. Once containers are built and spun up, they can be placed in boxes, which allows the developer to decide how each container should be deployed and to which environment.

"Within our portal, you see the application running, along with insight into each deployed container," said Matherson. If a container experiences a failure at any point, an alert is generated and ElasticBox automatically spins up a replacement container. "If you need to spin up new instances, such as adding more node.js front ends to scale your application, ElasticBox will spin up the containers to do that."

What a user says

Brainshark initially turned to ElasticBox to help speed development and deployment of applications to its on-premises, company-owned infrastructure.

"We have been heavily virtualized with VMware, but in 2016 we plan to move to a public cloud model, most likely Microsoft Azure," said Ferioli. "Our tooling has to apply to both the existing on-premises and the future public cloud infrastructures." Brainshark's deployment process -- essentially, rip and replace -- required a near-continual manual build-up and tear-down of resources, encompassing hundreds of virtual machines that process video, audio and other content.

The problem was the inability to adequately scale in a timely manner, Ferioli said. To solve this challenge, Brainshark investigated several tools, eventually choosing ElasticBox. "With ElasticBox, we were able to automate these rip-and-replace deployments, and now do them in a predictable way with other tools, including Jenkins and Chef. We can now deploy to our VMware machines and to Azure without changing a thing."

Once ElasticBox was in place, Ferioli said Brainshark's engineering team discovered it was able to further speed up development by creating a self-service portal for the company's developers. "This allows developers and quality assurance staff to spin up resources as needed and on demand. When the tasks are complete, those resources can be quickly de-provisioned." This ability to quickly provision resources is now enabling developers to do parallel innovation and testing, ultimately leading to a better product that is deployed more quickly.

Pricing and availability

ElasticBox 3.5 is available now; users can access the new features via both the company's SaaS and on-premises virtual appliance platform offerings. A free single-user, introductory Cloud Edition of ElasticBox that allows developers to become familiar with the platform supports up three workspaces and five instances. The Enterprise Edition, which supports large-scale teams and an unlimited number of workspaces and instances, is custom-priced on a per-user, per-month subscription model.

Next Steps

Mobile app deployment tips

Guide to app deployment with CAM tools

App deployment with Amazon OpsWorks

Dig Deeper on Cloud application development