Design for efficiency and operations

Your organization has moved a majority of their systems to the cloud, but are now seeing cost increases in areas they didn't expect. After some observation, you realize you're inefficient across your environment, and are still doing manual operational work.

Here, we'll take a look at some ways they can eliminate waste and improve operational efficiencies.

Importance of efficiency and operations

Efficiency is focused on identifying and eliminating waste within your environment. The cloud is a pay-as-you-go service and waste typically comes from provisioning more capacity than demand requires. There are operational costs that go along with this as well. These operational costs show up as wasted time and increased error. Focusing on these as you design your architecture will help you identify and eliminate waste across your environment.

Waste can show up in several ways. Let's look at a few examples:

  • A virtual machine that is always 90% idle
  • Paying for a license included in a virtual machine when a license is already owned
  • Retaining infrequently accessed data on a storage medium optimized for frequent access
  • Manually repeating the build of a non-production environment

In each of these cases, more money is being spent than it should, and each presents an opportunity for cost reduction.

Operationally, it's important to have a robust monitoring strategy. This helps you identify areas of waste, troubleshoot issues, and optimize the performance of your application. A multilayered approach is essential. Gathering data points from components at every layer will let you alert when values are outside of acceptable values and track spending over time.

Efficiency best practices

There are several ways to optimize your environment and maximize efficiency. A great place to start is to look at cost optimization steps like sizing virtual machines properly and deallocating virtual machines that aren't in use. Now that you are paying for what you use, you want to be sure that you aren't wasting any of these resources.

Where possible, you want to move from IaaS to PaaS services. PaaS services typically cost less than IaaS, and typically bring reduced operational costs along as well. With PaaS services, you don’t have to worry about patching or maintaining VMs because those activities are typically handled by the cloud provider. Not all applications can be moved to PaaS, but with the cost savings that are there with PaaS services, it's certainly something worth considering.

Operational best practices

Automate as much as possible. The human element is costly, injecting time and error into operational activities. You can use automation to build, deploy, and administer resources. By automating common activities, you can eliminate the delay in waiting for a human to intervene.

Throughout your architecture, you want to have a thorough monitoring, logging, and instrumentation system. This will always give you the capability to see what’s going on. It will ensure you know when something is not right before your users are impacted. With a comprehensive approach, you'll be able to identify performance issues, cost inefficiencies, correlate events, and gain a greater ability to troubleshoot issues.

Lastly, modern architectures should be designed with DevOps and continuous integration in mind. This will give you the ability to automate deployments using infrastructure as code, automate application testing, and build new environments as needed. DevOps is as much cultural as it is technical, but can bring many benefits to organizations that embrace it.

Efficiency is about identifying and eliminating waste within your environment. With cloud computing, you're paying for what you use, so you want to make sure you aren't wasting resources. To help ensure efficiency, try to automate as much as possible, move systems from IaaS to PaaS, and design your architectures with DevOps in mind.

Check your knowledge


Suppose you have recently moved your application to the cloud and your monthly bill seems higher than expected. The utilization level of your VM is high enough that you are hesitant to downsize. What might be a reasonable next step you could take to help you find inefficiencies?


Which of the following is an example of improving operational efficiency?