This post is provided by App Dev Manager Reed Robison who examines the opportunity and impact of cloud application performance. If you are moving apps to the cloud, it has never been more important think about performance and as a developer, the business impact you can have may be profound.
Early in my career, developers were always talking about performance. Efficient code was something that established credibility, but it was also an integral responsibility of every dev since resources were limited. Thanks to Moore’s law, most developers don’t lose a lot of sleep over performance these days. Developer time is a premium expense, so throwing hardware at a problem is commonly the least expensive way to solve these problems. Combined with the pressure to deliver software faster and the ability to update frequently, performance tuning isn’t nearly as cool as it used to be. In fact, unless you are a game dev or working in a regulated industry, I’m willing to bet that performance is an afterthought for many projects. In the cloud, this complacency has customers throwing money away and most don’t even realize it. If you are moving apps to the cloud, it has never been more important think about performance and as a developer, the business impact you can have may be profound.
If it isn’t a current priority, it might not be obvious why you should start caring about performance in the cloud. Don’t assume that performance and scale is all magically handled for you in this new world.
While every cloud provider offers services to help solutions scale and handle massive amounts of load, they come with a cost. You are responsible for choosing tiers for all these services and you pay a premium for high end workloads (which generally sit on premium hardware). In the initial move to the cloud, many companies settle on a cloud environment that mimics the hardware they had on premises-- Lift and shift. This gets you into the cloud, but it’s only a first step toward reaping the benefits and savings. In order to really see the benefits, it’s important to optimize those workloads to take advantage of features that reduce resource overhead.
In order to optimize workloads, you have to understand usage patterns—baselines, benchmarks, capacity limits, etc. This understanding allows you to establish minimal deployments, scale to meet increased periods of workloads, and understand how an application behaves when it’s overwhelmed. Some try to do this in production via monitoring, insights, and telemetry capture, but these are performance testing activities and it’s a risky thing to do in production. Performance data gives you (the developer) insights to consider service limits of cloud features and architect software to maximize ROI. If you are building applications that will run in the cloud, you have an incredible opportunity to save money through performance tuning and architectural decisions.
If you quickly skim through everything else in this post, slow down here and consider about the following points:
- Moving to the cloud means have the ability to pay ONLY for what you use.
- Architecting for cost can ensure you use only what you need.
- Performance Tuning can reduce overhead and minimize operational expense.
Not so long ago, it wouldn’t make any sense to re-write an app to be faster without adding features. Customers will pay for features because it provides new value, but nobody gets a rebate on hardware they already purchased.
In the cloud, you ONLY PAY for what you use. You are renting resources and can think of consumption like an overhead expense. It means that the more you optimize an application, the less you pay out to run it. It’s money you instantly save.
Developers make decisions every day when they write code about how to programmatically achieve a result. Today, most of those decisions are not influenced by cost of any operation and that can translate into missed opportunity. For example, using something like Azure Storage in place of SQL Server for simple data needs or caching data around expensive I/O operations can have a profound impact on cost. Load-leveling an intense workload to use a cheap queue and low end server might work just as well as paying for a high end server if message processing doesn’t need to happen in real-time. These are simple examples of decisions that have significant operational consequence in terms of cost.
Simple put, if you re-write a cloud an app today to run on half the resources, that can easily translate into savings > 50%. If you are hosting a solution (SaaS), you can pass those savings on to your customers and be more competitive. If you are writing applications that power your company, you might save that business a lot of money.
This is all to get to a few key points:
- Architecting for cost is fundamental to reaping the benefits of cloud transformation.
- Developers can have a profound impact on the operational expense of a cloud application.
- If performance is not a priority in your cloud development, you are throwing money away.
- If you need help, Premier Support can provide performance tuning services and testing resources to help you make the most of your cloud transition.
If you a building apps or moving workloads to the cloud, make sure you are having strategic conversations with your devs about performance and cost. If you are new to the cloud, it might not be your first priority, but it’s critical to stay competitive, minimize your expenses, and realize the full benefits of cloud transformation.
Premier Support for Developers provides strategic technology guidance, critical support coverage, and a range of essential services to help teams optimize development lifecycles and improve software quality. Contact your Application Development Manager (ADM) or email us to learn more about what we can do for you.