Originally published on TheNewStack
Platform engineering is a strategic concept in which engineers use a single pane of glass to streamline all processes, tools, and platforms. It optimizes security, DevOps, CloudOps, and more, so engineers can work more efficiently, without investing an excessive amount of time and effort.
This streamlining eliminates the overwhelming amount of tasks and responsibilities that come with working on complex microservices and cloud native environments. With less cognitive load needed to go into building applications, more products and services can go to market faster, supporting CI/CD practices, automation, security, and governance.
While platform engineering is seeing a lot of buzz these days, there is one aspect missing from the current paradigm, which focuses exclusively on balancing developer time vs. app stability and performance. This missing component is cost efficiency — which in today’s economic environment, should be front and center.
Platform engineering should enable fluid integration for cost-efficient cloud provisioning and automated scaling. This way, businesses get the full benefit of optimized developer time, performance, and cost efficiency.
Why Platform Engineering?
DevOps teams have a lot of technology, infrastructure, and dependencies to keep track of and maintain. They are often overwhelmed with an endless array of tasks and responsibilities, making them lose track of key technical dependencies.
Platform engineering seeks to solve this problem by creating a unified SaaS platform that better enables teams to build, deploy, and run software applications. Instead of opening tickets or waiting in line for requests, all tools and dependencies are unified and streamlined in one place so teams no longer need to worry about tools or infrastructure, and can instead focus on building services.
Bringing Cloud Costs into the Mix
Platform engineering is seeing widespread momentum in engineering circles, but integrating cost efficiency into this movement will help organizations even more, ensuring that profitability, or at least cost awareness, is embedded throughout developer processes.
There are dozens of ways that the concepts of platform engineering can be used to get a handle on costs, and many organizations will likely develop their own personalized systems for it, but there are some easy ways to start.
Automatic Notifications of Cost Thresholds
As engineers are building, coding, and delivering new apps, costs are frequently the furthest thing from their minds. But as an organization, someone (or something) needs to ensure that the cost of servicing a product is kept in check.
That’s where automation comes in. Imagine if you could embed the platform your engineers are already using with automatic notifications and alerts that anticipate costs before they’re generated. For example, if an engineer is about to spin up a cloud resource that goes above budget, they will receive a notification about estimated costs and prompts for approval.
This will provide an automatic barrier preventing engineers from going over budget. In addition, it will also cause the engineering team to have more awareness and ownership over the costs they incur, encouraging them to come up with more cost-efficient methods for releasing services.
A real-world example of something similar is InfraCost, which provides automatic cloud cost estimations for Terraform pull requests. When combined with automation, this tool can serve as a cost threshold with an approval chain that ensures costs are being managed and kept under control.
Ongoing Scaling of Cloud Resources
Another area where an automated cost optimization solution can be integrated into platform engineering is the continued scaling of cloud resources to fit business needs.
Today, the over-provisioning of cloud resources costs companies millions. But fixing this issue is complex. While limiting resources can cause your service to crash, over-provisioning is expensive, wasteful, and inefficient. The solution would be to auto-scale cloud resources so that application needs are consistently met at the most cost-efficient price point.
What does that look like through a platform engineering lens? Build this capability into the platform and provide it to the developer as an automated feature so that they no longer have to give any further thought to it.
One example where this can be applied is with containers, where engineers struggle to allocate the right amount of CPU and RAM they’ll need in complex and unpredictable environments. To ensure the stability and performance of their applications, they typically over-provision these resources, which drives up costs unnecessarily. According to Datadog, as much as 49% of containers are using less than 30% of the requested CPU, with similar levels for memory utilization.
Integrating this type of auto-scaling technology into developer processes can efficiently bring down costs, without any human effort. Such an automated resource allocation tool would detect the level of demand and then scale resources like CPU and RAM to a level that would enable applications to run as they should — at optimum stability and performance. Behind the scenes, the organization is dramatically cutting costs, and significantly reducing the manual work and the cognitive load for DevOps engineers.
As a new approach in the world of DevOps and software engineering, platform engineering is growing in popularity for its vision of streamlining and simplifying developer operations.
Taking it to the next level and imbuing it with an additional focus on cost-efficiency can help businesses ride out more difficult financial periods and ideally, put them on a flywheel for growth, for when the economic tide does eventually turn.
There is a lot of untapped potential within the idea of platform engineering and tech-savvy business leaders should consider how they could use it to develop new approaches to support application stability, performance, security, and cost efficiency. Economic downturns are never easy, but it also offers a great opportunity for leaders to cut inefficiencies and streamline processes that can enable your business to thrive for years to come.