twobee - Fotolia

Developers must avoid excess cloud resource provisioning

As app development projects move into the cloud, overprovisioning of cloud resources and forgetting to spin them down afterward can result in excess spending.

Shrewd cloud application developers will use all the tools and resources given to them. That may not always be a good thing, however. Brian Adler, director of enterprise architecture at RightScale Inc., based in Santa Barbara, Calif., discussed "guardrails," a way to manage cloud resource provisioning, and prevent the spinning up of excess compute and storage resources that lead to wasteful spending.

What is the role of cloud app developers in controlling cloud resource provisioning to eliminate wasteful IT spending?

Brian Adler: I don't want to say that application developers are shielded, but they're not the ones paying the bill. It's the people above them who are trying to keep the reins in. We advise customers to give developers a curated list of things they can do, including their own self-service portal. Developers get their own personalized permissions and governance around use.

I don't want to say that application developers are shielded, but they're not the ones paying the bill.
Brian Adlerdirector of enterprise architecture at RightScale

A list of what developers can and cannot do?

Adler: Yes. App developers are going to use whatever resources are at their disposal. But maybe if you're on the development team for application A, you're not going to need to run a high-density [Amazon Web Services] instance that costs $2.60 an hour. You might be fine on an old AWS m1.large [instance type] for that purpose. Those guardrails, for lack of a better term, can be placed on app developers by management. This self-service portal is a way to rein in the use.

There's also the issue, regarding cloud resource provisioning, of remembering to flip the switch off when those resources are no longer needed.

Adler: We've written a tool, nicknamed 'the Terminator,' that goes around once a day. If you haven't put a particular name or lock on any resource, it gets terminated. We have so much waste of developers spinning resources up and forgetting to spin it down. App developers are not being malicious; they're just doing their job and using what's been given to them. They might not necessarily be good about cleaning up.

It's up to IT to be parental and be sure provisioned resources are put away at the end of each day?

Adler: IT management needs to be responsible for putting those guardrails around developers to prevent them from using things they shouldn't and finding ways to shut things down to prevent waste.

Developers need to be responsible corporate citizens, too.

Adler: As a developer, you have to make an active choice. Is this a business-hours thing? An always-on thing? There is responsibility there, and developers must realize they are spending money.

What are the approaches that developers should adopt as we move deeper into multicloud architecture?

Adler: The push into microservices architecture is a good indicator. Developers need to have a mind-set that large, monolithic applications are no longer the way to go. You want to design applications that have distinct tiers, distinct layers and distinct services.

This is the real-world idea that provisioned resources can fail?

Adler: Stuff is going to fail. You're going to lose servers or volumes. You need to design apps so they are tolerant to all of those situations and to the different fault cases that they might encounter.

Do CIOs fully comprehend the complexities of translating legacy apps for the cloud?

Adler: I ask CIOs to select some apps they think might be a good fit for the cloud to see if they are thinking about this in the correct way. Some enterprises are doing an awesome job, and others are completely backward, and don't understand the concepts of what you can and cannot do. They need to get away from legacy monolithic applications and get into a world that has multi-tiered service-oriented applications that can be dispersed across multiple resource pools.

Where does that ultimately lead?

Adler: Some enterprises bite the bullet and are updating or rewriting certain legacy apps. I give them credit; it's a very long, drawn-out, expensive process. This is not porting or migrating; it's a complete rewrite. They are refactoring the code to work in a Web services cloud-based environment, as opposed to an old, legacy, monolithic environment.

There must be some legacy CIOs who still think in legacy terms.

Adler: Some enterprises choose to leave those applications where they are. [Their logic is] it has worked for the last 20 years and they can keep it going for a while longer.

Next Steps

Monolithic apps demand dealing with monumental challenges

User-controlled resource provisioning can cause problems

self-service portals provide IT with a means for controlling resources

Legacy CIOs have difficulty parting with legacy IT technology

Dig Deeper on Topics Archive