Solid state disks (SSDs) have become popular in consumer devices, and sometimes server environments, as a means of improving data I/O and application performance.
But the benefits of SSDs don't end with these use cases. SSDs can also significantly speed the development of applications. This article explains how software delivery teams can leverage SSD storage to improve application development.
SSDs Enable Frequent Builds
Modern DevOps teams work at a pace that more traditional teams would call frantic. Builds have become micro-sized and they're more frequent as team members commit code all through the day.
Docker containers enable teams to work in this manner—to decompose your application and develop it in a distributed way. At a time when application development is more complex and developers use multiple OSes to build development environments, containers bring consistency across the team. Containers also allow for portability of code, as the same container can be run in different environments and even in production.
In the past, the number of VMs were manageable and development environments were fewer and more consistent. Today, applications are more distributed and are developed over a large number of containers. Docker also enables greater variation in development environments and the explosion in the number of container instances used for development (and the small files inside each container) have a big impact on storage.
Dev teams need storage which can handle the high input/output operations per second (IOPS) that today's container-based operations require. This can be achieved to an extent by optimizing storage for containerized development, but to see big results, it takes a switch from traditional storage disks to cloud-based SSDs.
SSDs Better Align QA with Dev
With DevOps, testing has become more aligned with development and happens earlier in the development pipeline. Tests are equally fragmented to reflect the change in development. In addition, containers have made testing more consistent, as QA teams can test the exact same containers used in development environments. This means no more configuration drift and better team dynamics.
SSDs Help Create Environments Faster
The ability to quickly create new environments is a necessity. This is true for Dev as well as QA. They need to be able to easily and quickly create new dev and test environments to support the pace of work. Test environments need to be destroyed after test runs and results need to be stored persistently—and containers have made this possible. What it once took to spin up and fully configure a VM now takes mere seconds, thanks to Docker. Because they're much more lightweight than VMs, containers enable higher server density and require much less storage per instance.
To fully take advantage of the container revolution for Dev and QA, SSDs are a must-have. The high IOPS, throughput, and low latency that they enable give DevOps teams the confidence to move faster through each step of the pipeline. QA teams can push the limits when trying to break things in the apps they test, knowing that creating a new test environment takes just a few seconds.
Along with these fundamental changes at the infrastructure level, greater gains can be achieved with automation. When dev and test environments are created and destroyed automatically, it relieves DevOps teams of the burden of having to configure infrastructure from scratch every time—and this wouldn't even be possible to do manually, considering the scale at which modern DevOps teams function. Taking this into account, automation would be severely restricted if done using traditional hard disks. SSDs let you take advantage of the speed that automation provides when creating and destroying dev and QA environments.
SSDs Help Reduce Storage Costs
A prime concern for IT teams is optimizing the costs of running development and testing environments. Containers help by increasing server density and requiring lesser storage. One misconception IT teams may have, however, is that traditional hard disks are more economical than SSDs when it comes to application development. It's true that SSDs seem like a big investment if you look at the price per GB of storage. But that's a primitive and misleading way to assess real long-term costs. The biggest hidden cost when using hard disks is sacrificing all the benefits discussed above. Slower performance of dev and QA environments means less agility and less innovation. Products are released slower and what gets released isn't the best your organization can deliver.
Apart from this, it's more holistic to look at the combination of containers and SSDs and how well they complement each other. Another important aspect is that the cloud is making SSDs much cheaper. SSDs, combined with containers, bring you the best price-performance ratio. Alibaba Cloud has made it easy to get started with SSDs by providing a $300 free trial, which is more than enough to get a feel for their various storage options.
You could also optimize storage to use a combination of SSDs and cloud disks. This way, you would use SSDs for high-performance workloads and traditional disks for reliable storage over a longer period.
As your software delivery chain is transformed by DevOps principles, the transformation requires changes across your development stack. Storage is one area that's ripe for change. Moving to SSDs gives your teams the edge in speed and helps you deliver your most innovative work yet.
Author's Bio
Twain Taylor is a Fixate IO Contributor. He began his career at Google, where, among other things, he was involved in technical support for the AdWords team. His work involved reviewing stack traces, resolving issues affecting both customers and the Support team, and handling escalations. Later, he built branded social media applications and automation scripts to help startups better manage their marketing operations. Today, as a technology journalist he helps IT magazines and startups change the way teams build and ship applications.