As a new year begins, we often take some time to reflect on the previous year and look ahead at what is to come. Suffice to say, 2016 was a momentous year for software delivery in the enterprise. DevOps adoptions matured greatly and, at conferences worldwide, industry leaders were eager to share their experience and expertise.
While DevOps was taking over, two trends focusing on small things were making big waves: containers and microservices as a means for organizations to scale their application development and releases. While both technologies have matured considerably in the last year, they are still challenging — particularly for enterprises that need to incorporate these new trends with monolithic applications, traditional releases, VMs, etc. While it’s not a silver bullet that’s suitable for every use case, we’re increasingly seeing more enterprises exploring Docker and microservices for their needs, and I’m sure these trends will continue to lead positive advancements in modern application delivery for the coming year (and beyond).
Continue reading for my insights on some of the opportunities and challenges surrounding these two major trends, as well as a few predictions for what’s to come in 2017.
2016 Trends: Looking Back
DevOps Has Matured
DevOps experienced considerable maturation and advancement in 2016. From its grass roots beginning with small teams, mainly for green-field applications or startup companies, DevOps has matured, where complex enterprises — not just the unicorns — are now often on the forefront of DevOps innovation. DevOps practices have expanded beyond just web apps to be used for your database deployments, embedded devices, and even mainframes.
Microservices and Containers Go Hand-in-Hand:
Microservices are an attractive DevOps pattern because of their enablement of speed-to-market. With each microservice being developed, deployed, and run independently (often using different languages, technology stacks, and tools), microservices allow organizations to divide and conquer and scale teams and applications more efficiently. When the pipeline is not locked into a monolithic configuration (of either toolset, component dependencies, release processes or infrastructure), there is a unique ability to better scale development and operations. It also helps organizations easily determine what services don’t need scaling to optimize resource utilization.
However, we have seen in 2016 that adopting containers and microservices can be challenging. What’s starting to happen, and what some people are starting to realize the hard way, is that you’re going have a really hard time doing containers and microservices well with bad architecture. Whether that is the architecture for your application, services, infrastructure and delivery pipeline, architecture matters greatly in your ability to do microservices well and take advantages of the benefit they and containers can offer. Microservices are not for everyone, and if you’re looking for microservices as a way to “uncomplicate” your life, you certainly won’t find that if you haven’t resolved CI, automated testing, monitoring, high availability, or other major prerequisites before. If you’re struggling in one area, it is highly recommended that you address those issues first and then you can decide if microservices will be an asset to your organization.
Legacy applications are another challenging factor when we look at the surge of demand for microservices over the past year. Do you decompose your application or parts of it? Do you build API around it? Do you completely rewrite it? We’ve learned the value of a phased approach when rearchitecting a legacy application or dealing with an organization that has established processes and requirements for ensuring security and regulatory compliance. In these instances, teams should start to consider starting with a monolithic application where they can and then gradually pull functions into separate services.
Microservices and containers will continue to be major players in 2017, and gradually, some of the kinks and challenges associated with them will be ironed out as the community as a whole becomes more proficient with them, and tools and patterns are introduced to accelerate the adoption and large-scale operations of these technologies.
What’s Ahead in 2017
DevOps Failures Will Come to the Forefront
While the hype around embarking on a DevOps transformation is credible and the ROI and transformational benefits of a DevOps transformation have been established, there has been a silent backlash that will make itself known in 2017. This will be the year we start to hear some of the failures — which is good, because we learn from them. There will be quite a few people who say, “Yeah, we tried DevOps. It doesn’t work. It’s all hype. It only works for the unicorns. It only works for new software. It only, it only, it only.”
This type of doubt is bound to happen when any new process or framework is introduced into legacy environments and cultures, and 2017 is the time for the doubt around DevOps to rise. Every DevOps adoption story is unique, and every journey is one of trial and error and the road towards continuous improvement. We know the road is challenging, frustrating at times, and certainly, it’s not all roses. However, the rewards are immense. As the community shares patterns and learning for what works, we’d also be more forthcoming about sharing our failures, setbacks and wrong turns. We can all learn and become better at realizing software together.
Importance of Microservices Adoption
2017 looks to be a year where microservices and containers will continue to rise and get pushed even further into the limelight as companies continue to invest in software-driven innovation and technology. It will be critically important for companies to have a solid architecture in place and understand how to approach and scale them effectively.
Impact on Financial Services
Furthermore, we will start to see some interesting disruption in FinServ. Interestingly, financial institutions have often seen technology as their own personal differentiator. However, more often than not, the problem these organizations have is with supporting the right culture to enable a successful DevOps implementation. As veteran companies work on instilling the right mindset to enable faster releases in such a heavily regulated industry, we could also see disruption in the space where new financial technology, new online banks, new companies, etc. are taking up more and more market share.
With the proliferation of IoT and our always-connected world and with the growing cyber security threats, we are going to see more security verification and more built-in compliance validation checks happening earlier in the lifecycle that are fully integrated with the development process.
All in all, what all teams and organizations need to do is keep their eyes on the ball. We practice DevOps to bring more value to our customers and employees, delight our users, and make things better, safer and faster. Keep that in mind because if what you’re doing on any given day isn’t moving that ball forward, what was the point? Focus on that for the new year!