In most development teams, the infrastructure provided to developers follows a “just enough” principle, where developer machines, local or cloud, have just enough resources needed to build and test applications at a bare minimum. Premium infrastructure like load balancers, SSD drives, and more CPU are reserved for production.
This is not optimal. Application development stands to benefit significantly by providing development environments with resources that are comparable to those available in production.
This includes SSD. Below, I explain how providing SSD to development can greatly improve dev/test environments.
Why SSD is a Luxury
The primary reason organizations decide to keep SSD resources to a minimum is price. For most cloud providers, SSD is priced multiple times more than standard disk resources.
As cloud providers expand their offerings, SSD will become more common, and the price will drop over time. But Alibaba decided to get ahead of current price concerns, and out of the gate, their SSD offering is priced substantially less — nearly half the price of other cloud providers — and it’s just $4.50/month for the smallest Linux instance. Developers can benefit from SSD in a big way, especially those building net new applications.
Why SSD Matters in Dev
There is more to cloud resource cost than just resources. There is also the cost of not leveraging them properly. Why do developers need that type of power? There are several key reasons:
1.) Parity: A major challenge for developers when it comes to knowing how applications will run in production is having enough parity with production that they can run the application in a development environment that closely resembles production. Without parity, deploying applications is a guessing game. You assume that the infrastructure’s impact on the application is small enough that there is no risk. But we have seen plenty of instances where this is not the case. This applies not only to SSD. By giving developers equivalent resources, their development environments become full-blown continuous integration (CI) environments. And they can know confidently how the application will perform when it’s pushed to production.
2.) Testing: Great performance means you can test faster and test more. In addition to faster and more frequent testing, performance testing can begin to shift left, giving you accurate benchmarks of performance closer to code creation.
3.) Optimization: More testing and parity means that with an accurate picture of how the application will run when the code is created, developers can better optimize both their development environment and production, and they can communicate more effectively with Ops on what resources are needed for the application. This is where soft ROI comes in. If developers can more confidently predict how many resources the application will need to run under load, then the Ops team does not need to overshoot resources, resulting in decreased costs — and there is a good chance that better estimates of required resources in development environments will actually result in cost savings.
It also means that developers can start to embrace more complex testing against real data. Often organizations will avoid testing against real data because access to the data or transfer rates are slow. As a result, a lot of testing has turned to application mocks, or not testing the backend at all. But with SSD, developers can do more testing with real data.
With high-performance applications, such as those developed in the science domains, access to SSD may be necessary. How quickly information is serialized to the disk can impact how the applications run and are architected.
The cost of SSD is a challenge that developers face when deciding whether SSD is something they need in their development environments. Plus, costs with many cloud providers are unpredictable. One developer’s monthly spend could be many multiples of another. This unpredictability makes organizations uneasy because the cost of development should be concrete, and production should follow ideal application usage.
Developers don’t just want more power, they want to be more efficient and effective. And they will often turn to local development environments over the cloud in order to get the power they need. But local environments don’t match production. A cloud provider like Alibaba has deliberately made compute with SSD predictable and cost-effective, providing developers more of what they need to build great applications for production in the cloud.
Chris Riley (@HoardingInfo) is a technologist who has spent 12 years helping organizations transition from traditional development practices to a modern set of culture, processes and tooling. In addition to being a research analyst, he is an O’Reilly author, regular speaker, and subject matter expert in the areas of DevOps strategy and culture. Chris believes the biggest challenges faced in the tech market are not tools, but rather people and planning.