We started 2017 with predictions on what the year will bring for enterprise DevOps adoption, and as we approach the end of the year, we have seen more enterprises using DevOps-leading practices to both help keep up with innovative companies and be more agile, adaptable and scalable. For some organizations, DevOps represents a departure from traditional processes, roles and even responsibilities in favor of enabling more efficiency and speed for the business. As a result, an established DevOps base can become a good jumping-off point for enterprises to introduce new technologies such as microservices and containers that can extend these benefits and ultimately support digital transformation initiatives.
But First, DevOps
Often for enterprises to remain competitive they need to be able to quickly respond and adapt to changes in the market. DevOps aims to meet this need by combining a culture centered on collaboration through owning the code from development to production, instead of developers simply throwing it over the wall to operations and having no subsequent responsibility. DevOps also uses openness and automation to help accelerate application delivery and a dynamic, programmable platform. It is no longer about simply bringing developers and operations staff together to help accelerate time to market, but rather incorporate business teams to enable greater alignment of the development and delivery process with business objectives.
This form of DevOps, often called BizDevOps, is both a result of and can be a driver for digital transformation. This is not a process that happens overnight. It can require an intentional shift in individual mindset and corporate culture away from sequential, waterfall-like methodologies to more agile, iterative workflows. With these processes in place and a culture that is familiar and comfortable with this pace of change, organizations can be better prepared to manage the additional complexity introduced by microservices while still making a positive impact.
Make Way for Microservices
Although the idea of modularity has been around for years, microservices architecture brings more flexibility through the independence of services, enabling organizations to become more agile in how they deliver new business capabilities or respond to changing market conditions. With a microservices-based architecture, individual services can be added, changed or removed at any time without the need to bring the entire application offline for maintenance. As a result, multiple DevOps teams can work independently on new functionality or bug fixes at the same time, and at their own pace.
While it may seem contrary to its name, the goal of microservices is not to make everything as small as possible, but to architect business changes at the most granular level in the areas that make the most sense.This architecture allows software development teams to scale by removing natural bottlenecks that may have historically serialized and slowed the development process. Microservices is as much about optimizing organizational structure as it is about software architecture.
Prior to the use of containers in the enterprise, this level of granularity, modularity and independence often provided little value. Containers not only offer a development and deployment vehicle that is well-suited to the lightweight, distributed nature of microservices, but also can enable greater control and security of the services through container cluster management and orchestration tools such as Kubernetes and Red Hat OpenShift Container Platform. Using these tools to manage multiple microservices versus a single monolithic application, can become much more tractable at scale.
Bringing it All Together
It may not be enough to simply adopt DevOps and microservices; for the enterprise to get the most out of these technologies and also automation there also should be a platform strategy in place. The definition of platform in the new world of digital transformation is not necessarily just the underlying hardware and operating system, but all the software that the application developer builds and runs on, including the operating system, middleware framework, cloud technologies and storage. Having a platform in place enables microservices to have a solid base to scale from without putting too much strain on the enterprise. The automation of tests, the delivery pipeline, developer sandbox and scanbox provisioning, among other actions, are ones that can benefit from automation to help increase the speed of production.
As DevOps and microservices evolve in the enterprise, they can help businesses reach their goals and stay ahead of the competition. Having the right technology platforms in place enables even the non-techy businesspeople to more confidently embrace the culture and tools that can be key to a successful digital transformation.
About the Author / Rich Sharples
Rich Sharples is Senior Director, Product Management at Red Hat. He is an engineer turned strategist and technology leader with over 20 years of experience using, designing, building, marketing and selling enterprise middleware. He has a particular fascination with new and emerging technologies and markets, and his specialities include an in-depth technical knowledge of the Java Middleware market – Mobile, MBaaS, MEAP, APS, ESB, Java EE, node.js, Micro Services, SOA, Open Source, PaaS, Cloud.