Cloud Cost Is Not An Afterthought
We all understand that security is not an afterthought. To avoid expensive consequences, we must discuss and incorporate it early in the development process and build it into our delivery pipelines. Similarly, Cost Governance is not an afterthought— organizations looking to avoid surprises in the future need to consider cloud costs just as they would other software development decisions around scalability and design. To manage Cost Governance, organizations need to emphasize the impact of system design choices on cloud costs and take into account cloud budgeting.
There is a growing reliance on hardware to cure all the ills in software. Modern computers are much cheaper and significantly faster than early computers, with a much larger amount of available memory (gigabytes instead of kilobytes). With the emergence of cloud, this observation is not exempt, organizations are willing to scale up versus scale-out for many architectures and migration journeys.
In 2011, during Google’s I/O Developer Conference, Sergey Brin, Google’s co-founder announced efforts to defeat Page's Law—the tendency of software to get twice as slow every 18 months, which was offset by hardware advancements. He wished to break Page's Law and have software become increasingly fast regardless of hardware. This is one example of an emphasis on efficiency.
Despite all that, we have in terms of computing resources, efficiency, and cost are still an important consideration. A program is considered efficient if its resource consumption is at or below some acceptable level. This can only be achieved when focus and attention are shown to the lowest level of a program’s abstraction which includes the various components and algorithms that come together to provide the desired functionality.
The two most common ways to measure algorithmic efficiency are speed and memory usage. Other measures include transmission speed, temporary disk usage, and long-term disk usage, etc. Many of these measures depend on the size of the input to the algorithm, i.e., the amount of data to be processed. In practice, there can be other factors that can affect the algorithm efficiency, such as accuracy and reliability requirements.
Caveat—Data Transfer is Not Cheap in your Cloud Budget
In my experience, developers often focus on time complexity, space complexity, and the long term storage requirement. These are directly related to compute and storage utilization in the cloud environment; however, as seen in cloud billing reports, data transfer is one of the costliest line items after compute cost.
To achieve real efficiency from a cost perspective, data transfer among applications, services, zones, regions, or over the Internet, need to be thoroughly examined during the design stage.
Why is Cloud Costs a focus now?
There are two major catalysts for bringing cost into software design considerations the agility in infrastructure provisioning that incentivizes developers to write more efficient programs and the cost visibility provided to developers for their applications. The public cloud has totally changed the way we acquire the infrastructure to run our applications.
Unlike traditional IT, where the investment is made upfront in buying and setting up infrastructure followed by a rigid process of allocating resources to specific applications, the public cloud has totally changed the game. You can allocate as many resources you need for as long as you need it, today there is far more flexibility and agility in resource provisioning.
It’s fair to say you pay the price for the resources and duration that you use. For developers, it’s a huge incentive to bring as much programming efficiency into their applications. Their application can be extremely cost-optimized. On the other hand, applications can be scaled based on usage, so it can be further cost-optimized operationally.
In the past, developers could create beautiful applications, could write the most sophisticated code, but had no idea about the true cost of running in a real environment. It would never occur to them how their choices are making a difference in the bills paid by their company.
But this lack of information might become obsolete with the recent launch of Cloud Cost Management at Harness.
As stated in the product “Root Cost Analysis Lets Your Developers See Cloud Cost by Application, Microservice, Environment, Deployment, Cluster, Namespace, Workload, Node, and Pod.”
This might be a double edge sword—on one hand, it empowers users to control the cost efficiency of the application that they are responsible for, and, on the other hand, it has the potential to expose if certain applications are not designed from a compute-efficient perspective.
A New Wave. Cloud Cost Management for Developers.
Rising cloud costs across industries are turning Cloud Cost Management into a new dimension in the software development process. Granular cost visibility at the application and environment levels encourages developers to make responsible decisions around architecting and delivering efficient applications. The immense flexibility in the cloud allows us to operationalize in the most cost-efficient manner. Take action to do this today by scheduling a demo for Cloud Cost Management here.