How to build a cloud architecture that responds to your business needs

Creating a private cloud can give you the best of both worlds—the security and control of an on-premises data center, combined with the nimbleness and speed of the public cloud.

But IT professionals who build private clouds may fail to fully automate their processes. In many cases, they may be constrained by compliance issues or governance policies, or they may be required to couple automation with human validation steps. To avoid losing much of the agility a private cloud can enable, however, it's a good idea for cloud architects to eliminate as many manual processes as is practical.

As a cloud architect, your goal should be to design a framework that operates almost automatically.

If you want to work at the speed that private cloud can enable and make your IT infrastructure more responsive to business needs, you’ll have to remove as much human latency from your process as possible.

As a cloud architect, your goal should be to design a framework that operates almost automatically. Here are three steps that can help get you there.

1. Develop an API-centric architecture

In a self-service model, command-line interfaces and high-touch GUIs are the enemy. You don't want an engineer at a keyboard pushing buttons; you want machines talking to machines. Whether you're automating simple tasks or implementing a full continuous integration/continuous delivery toolchain, it's critical to have APIs that are as reliable as physical infrastructure.

The best way to achieve this kind of integration is to deploy REST APIs. With a RESTful architecture you no longer manage devices; you simply push configurations. Eventually, this will enable you to "nuke and repave"—wipe the entire configuration of a data center and replace it with a single click. Using REST APIs also eliminates dependencies. If one application or service in your private cloud changes, it won't break any others.

2. Limit user choices

Self-service models work best when you present users with a menu of discrete, pre-approved options. Just as Henry Ford offered the original Model T to customers in any color so long as it was black, you need to limit the choices you provide.

By determining which features to expose, you also shield users from the complexity of the underlying technology, significantly reducing their learning curve. And because you're not exposing every feature of the underlying infrastructure, you can change elements of it transparently without disrupting the user experience.

3. Avoid approval queues

Like death and taxes, the change review process is usually unavoidable. But you can minimize the time it takes by fully defining each process before presenting it for approval.

Ideally, the choice will simply be whether to approve or deny a process without involving committees in defining what that process should look like. Otherwise you will end up spending months to roll out a single app just because you're waiting for approvals.

It's the job of the cloud architect to understand the business requirements of a private cloud, define the security parameters, and decide what its high availability and resilience policies looks like.

Even if it takes an army of engineers to design and build your cloud architecture, it should take far fewer to operate and maintain it. The more automation you introduce, the faster you'll be able to scale to keep up with demand for your applications, today and in the future.