Software teams are under pressure to deliver better quality software at ever faster speeds. Toward that end, many of them have embraced Agile methodologies, which have helped accelerate the pace of software development.
Software release schedules haven't necessarily improved to the same degree, however, particularly when operations continues to operate as a siloed organization. To solve that bottleneck, organizations are moving to DevOps, if they haven't already.
DevOps requires developers and operations to collaborate, which doesn't come easy to either of them. Operations doesn't want developers configuring production environments because their changes could cause a stable environment to become unstable. Conversely, developers are frustrated by the amount of time it takes for operations to deliver the infrastructure necessary to adequately test applications.
"There has always been some contention between developers and operations because we'd throw things over the wall and then they'd blow up and not work the first, second, or third time until we got everyone in the same room and ironed out an appropriate hand-off procedure," said Bob Familiar, director, national practice at interactive design and technology architecture firm, BlueMetal.
DevOps tooling helps solve the problem by giving developers insight into operations and operations insight into development. Working together as DevOps teams, developers and operations personnel are able to collectively reach new levels of efficiency.
DevOps Isn't Just About Tools
Cloud environments enable DevOps because infrastructure can be configured on-the-fly. Appropriate tooling helps, but to be successful, DevOps requires a cultural shift, which is the hardest part of it.
"The advent of the cloud means that infrastructure is now defined as code and not physical machines, so the act of doing operations is closer to software development than it ever was before," said Familiar.
Syncfusion, a provider of software development controls, moved towards DevOps slowly over time. As an Agile development organization, Syncfusion was able to deliver new products and features faster, but the release process took several weeks. DevOps has enabled faster and more predictable deployments than Agile alone, according to vice president Daniel Jebaraj.
When DevOps is successful, organizations are able to release stable software faster.
Containers Are Having an Effect
Containers have become popular among developers because they can be deployed in any cloud environment. Everything needed to run a piece of software is included the container – the code, libraries, tools, and runtime. Software licenses and analytics can also be included.
"In earlier days, development and operations teams had to work in a pristine environment where you could recreate the production environment or development environment, and keep them as identical as possible," said Jebaraj. "A lot of scripting work had to be done to make sure those things were identical, but if you offload that responsibility to another piece of software, you can ensure that the container is identical to the development environment which reduces complexity."
Software teams developing next-generation applications are moving toward microservices because they're modular and scalable. Microservices can be combined in different ways and then deployed in containers irrespective of the infrastructure.
Learn More About DevOps and Containers
BlueMetal's Familiar will be discussing container technology at Interop ITX in Las Vegas, on Wednesday, May 17. His session, The Intersection of Big Data, Cloud, Mobility and IoT: Making the Connections will focus on how containers impact the way software teams architect, provision, and deploy IoT and advanced analytics solutions.