On-demand data storage for DevOps environment using InfoScale storage checkpoints
What is DevOps?
DevOps is an approach to software delivery where development and operations teams collaborate to build, test, deploy and monitor applications with speed, quality, and control.
A common problem with traditional software development models is that the software works fine in the developer’s testing environment but breaks when it’s deployed in production. This is typically due to resource differences between the testing and production environments (different hardware, storage, network, application stack, etc). Resources differ mainly in terms of scale and performance, and there are often differences with software configurations and versions. When this happens, the software may behave differently in the test and production environments even though the software itself was not developed with specific dependencies on any of these resources.
The solution: bridge the gap between development and operations environments and ensure they are very similar. This is one of the core principles behind the DevOps methodology.
To achieve this, DevOps environments rely on various tools and practices. One example of this is the containerization of software, to ensure consistency in application runtime environments.
Let’s talk about how InfoScale can help manage data and storage for DevOps environments.
Storage requirements for DevOps
The general objective with storage for DevOps is to provide a data set for testing which is as close to the production data set as possible. To do this, you need to consider the following:
- The size and scale of the test data should be very similar to the production data. The main difference between development and production environments is usually the (smaller) amount of data. New software features should be tested with the data set scaled to production levels to ensure a consistent deployment.
- The data should be current. When software is tested using the most current data set, the transition to a production environment will most likely be smooth. Working with older data sets increases the potential for issues to arise.
- Storage should be able to provide multiple copies of data. Different developers may be working on various features and bug fixes. Having multiple data copies saves time by allowing them to test code changes in parallel. This means that new features and bug fixes are deployed faster.
- The data should be provided on-demand. Having dedicated copies of data for testing can be expensive. Data copies should only be created when required and they should be deleted after the use.
Veritas InfoScale Storage Checkpoints
An InfoScale storage checkpoint is a persistent image of a Veritas file system (known as VxFS) at a point in time. After creating a storage checkpoint for a mounted file system, you can continue to create, remove, and update files on the file system without affecting the storage checkpoint. This is shown in Figure 1.Let’s talk about how storage checkpoints work as well as some best practices for using them in your DevOps environment.
- The data set for DevOps should be very similar to the production data set.
- A Storage Checkpoint is an instantaneous consistent full image of the VxFS file system with access to all files (which could include a production or pre-production data store) in the same directory structure.
- The checkpoint image can be mounted as read-only or with read-write access depending on the use case. The changes made to files in the checkpoint are persistent and will not have any impact on files in the base file system, and vice versa.
- Storage Checkpoints are copy-on-write. When a block is changed in either the base file system or a checkpoint, a copy of that block is made before the block is overwritten by new data. There is a single copy of the blocks common to both.
- If the application requires multiple file systems, storage checkpoints can be created across multiple file systems. InfoScale guarantees data consistency across multiple file systems.
- Storage checkpoints also work in clustered environments, assuming the base file system is an InfoScale (VxFS) clustered file system.
- The data should be current.
- Storage should be able to provide multiple copies of data.
- As storage checkpoints can be created any time, you can always get current and fully functional copies of your base file system.
- You can easily discard a checkpoint that isn’t current and create a new one to ensure it’s up to date.
- You can also create multiple storage checkpoints using the same base file system. They can be used by different developers in parallel.
- Note that with copy-on-write technology, your storage usage is optimized, so having multiple checkpoints doesn’t require much additional storage.
- The data should be provided on-demand.
- A storage checkpoint does not require a separate storage device. It uses free space in the base file system to create a new namespace image. It’s not a new file system – it’s a logically separate namespace within the file system.
- When a checkpoint is removed, that space is returned to the base file system automatically.
Value-Added capabilities of Checkpoints
- Removable Checkpoints: ensure that the primary file system does not run out of space. When space on the primary filesystem is running low, the removable checkpoints are automatically deleted which clears up space for the primary filesystem.
- Checkpoint of a Checkpoint: If you want to use a specific point-in-time data set multiple times or provide the same data set to multiple consumers, you can create a “Checkpoint of Checkpoint”. To do this, you create a checkpoint of a file system at a specific time. Later, you can create one or more checkpoints of the first checkpoint. The new checkpoints can be used as needed, while the first checkpoint preserves the original point-in-time data set.
Conclusion
InfoScale storage checkpoints provide several benefits for DevOps environments: no requirement for dedicated storage, a small storage footprint, and flexibility around instantly creating and managing point-in-time images of file systems. Easy to use and manage, InfoScale storage checkpoints provide a flexible and efficient storage management solution for DevOps environments.
Additional Information
If you’re interested in learning more about InfoScale storage checkpoints and its capabilities, you can find more information in the user guide. For additional information about InfoScale, take a look at Veritas InfoScale: Managing Mission Critical Applications in a Software-defined Data Center,
You can also check out the InfoScale technical library for additional InfoScale resources.