Software and the internet have metamorphosed the world and its industries ranging from shopping to entertainment to banking. It is no longer something that just supports a business. Instead, it has become an integral part of every part of a business. Organisations interact with their customers through software that is delivered in the form of digital service or application and on all kinds of devices. They also leverage software to enhance operational efficiencies by transforming every part of the value chain. This is where DevOps plays a key role.
DevOps is having an astronomical role to play in the rapid IT service delivery mechanisms. And when it comes to Drupal development, DevOps can be instrumental in streamlining project delivery involving Drupal. Before we traverse deeper into how Drupal can benefit from DevOps, let’s look at this terminology called DevOps.
Evolution of DevOps
Sometime between 2007 and 2008, when IT operations and software development communities were vocal about some of the calamitous level of dysfunction in the industry, DevOps started to coalesce.
Developers and IT/Operations professionals had separate goals, separate department leadership, separate key performance indicators, and, most often than not, they worked on separate floors. As a result, isolated teams were only concerned about their own fiefdoms, long hours, botched-up releases and dissatisfied customers.
People like Patrick Dubois, Gene Kim and John Willis pioneered the evolution of DevOps model
‘There must be a better way’ was the notion that propelled the two communities coming together and talking about betterments in software deliveries. People like Patrick Dubois, Gene Kim and John Willis pioneered this conversation.
Therefore, what began in online forums and local meet-ups is now a significant theme in the software zeitgeist which is probably what brought you here!
What is DevOps and how does it work?
"DevOps represent a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach"
Gartner states that “DevOps represent a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture) and seeks to improve collaboration between operations and development teams. DevOps implementations utilize technology — especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective”.
Development and operations teams are not siloed under a DevOps model. Sometimes, these two are teams are combined to form a single team where the engineers work across the entire application lifecycle ranging from development and testing to deployment and operations. Thus, engineers wind up developing a range of skills which are not limited to a single function.
Quality assurance and security teams may become more firmly incorporated in some DevOps models with development and operations and throughout the application lifecycle. When security becomes the point of focus for everyone on a DevOps team, this is sometimes called as DevSecOps.
These teams leverage practices for automating processes that have been, historically, manual and sluggish. They make use of tech stack and tooling which assist them while operating and evolving applications rapidly and reliably. These tools also help engineers autonomously accomplish tasks like deploying code or provisioning infrastructure thereby enhancing team’s velocity.
Benefits of DevOps
Incorporating DevOps into the business workflow brings in a lot of merits.
Using DevOps, move at high velocity so that you can build digital innovations faster, adapt to altering markets better and grow more efficacious at driving business results. For instance, microservices and continuous delivery allow teams to take ownership of services and then swiftly release updates.
Infrastructure and development processes can be operated and governed at scale. Automation and consistency assists in governing intricate and changing systems effectively and with less risk. For instance, infrastructure as a code assists in handling the development, testing and production environments in a repeatable and more efficacious manner.
Enhance the frequency and pace of releases so that you can build innovate and improve your projects quicker. The faster you can release new features and fix bugs, the quicker you can respond to needs of customers and develop a competitive advantage. For instance, continuous integration and continuous delivery are the practices that can automate the release process right from the build stage to the deployment phase.
Quality of application updates and infrastructure alterations can be ensured so you can reliably deliver at a faster pace, thus, providing a positive experience to the end users. For instance, continuous integration and continuous delivery can be leveraged for testing each of the alterations and ensuring that it is functional and secure. Monitoring and logging practices assist you to be apprised of performance in real-time.
DevOps model can be adopted without compromising on security by using automated compliance policies, fine-grained controls and configuration management mechanisms. For instance, defining and then tracking compliance at scale is possible using infrastructure as code and policy as code.
There are significant practices that help businesses to implement DevOps model in the best possible way and get the most out of it.
Performing small updates frequently
These updates are more incremental in nature in comparison to the occasional updates performed under traditional release practices. They assist teams to address bugs quicker as the teams can easily identify the last deployment that resulted in the error. Even though the cadence and size of updates may vary, the DevOps model helps in deploying updates more often than the firms who use traditional software development practices.
Using microservices architecture
Making use of microservices architecture helps firms in making their applications more pliable and allow faster innovation. Decoupling large, intricate systems into simple, autonomous projects is possible with microservices architecture. Applications are divided into many individual components or services where each of the services are scoped to a single purpose or function. They are operated independently of its peer services and the applications as a whole. Such an architecture minimises the coordination overhead of updating applications. When each of the services is paired with small, agile teams, businesses can move more swiftly.
Leveraging continuous integration and continuous delivery
Combination of microservices and enhanced release frequency might lead to numerous deployments which can pose operational hurdles. Hence, DevOps practices like continuous integration and continuous delivery help in resolving these issues and allow businesses to deliver faster.
Making use of infrastructure as code
Infrastructure automation practices like infrastructure as code and configuration management allows you to keep computing resources elastic and responsive to frequent alterations.
Monitoring and logging the workflow
Use of monitoring and logging allows the engineers to track the performance of applications and infrastructure thereby reacting swiftly to the issues.
Implementing DevOps model for Drupal development
The DevOps movement is leading the way forward for higher quality Drupal projects, quicker delivery, happier team members, and satisfied clients for projects of any scale. A digital agency used a Drupal development process to outline key pieces to a reasonable, DevOps-based workflow irrespective of the hosting platform or the different tools you choose to use.
The DevOps movement is leading the way forward for higher quality Drupal projects, quicker delivery, happier team members, and satisfied clients for projects of any scale
The agency maintains a pre-configured Drupal 8 install profile that lives on Github which is also mirrored on Packagist. This helps in kickstarting all the new projects with a working theme, pre-configured content types, Media bundles, Paragraph bundles and other elements.
A solid local development workflow is integral to any continuous workflow environment. Developers build new features or fix bugs on their local machines and the alterations are pushed to Github for triggering several actions. The agency experimented with DrupalVM and Lando which offered easy, repeatable processes for enabling developers and contractors to easily spin up a local environment matching production environment.
For this agency, the build code for each project like composer.json and any custom modules or theme reside in Github. Every time a pull request is made, their code is automatically deployed to a continuous integration server and to a live web environment.
For incorporating modern DevOps techniques, it needed a programmable hosting platform to let developers and other systems like continuous integration server to automate and interact with the platform. It worked extensively with both Acquia and Pantheon hosting which offered a different set of tools.
It leveraged continuous integration server called Circle CI for automatically spin up and test a new version of the site every time the developer introduces a new functionality or a bug fix to the git repository.
Automated functionality tests are another important part of DevOps strategy which this agency used to a great extent. Each time a commit is pushed, a complete version of the site spins up on CircleCI which runs through a series of automated Behat tests for verifying key functionality. CircleCI automatically notifies the hosting environment if the tests pass thereby spinning up a new branch and a new copy of the site. When the Github pull request is submitted on that branch, the final CricleCI build is triggered. When the tests are successful, the code is automatically combined with the production site.
Future of DevOps
According to a Capgemini report, 60% of the companies have opted for DevOps model or are planning to do so eventually. That means DevOps is being widely accepted as a key component of a business strategy. As DevOps continues to grow, some of the future possibilities that are expected to transpire along with the increase in DevOps adoption is being outlined here.
Perpetual growth of DevSecOps
Much in the same way, DevOps has the objective of inculcating continuous delivery in the business workflow, DevSecOps expands this to include security. Looking forward, this trend of incorporation of security into the DevOps pipeline will make businesses more inclusive with security tools and practices becoming part of the early development cycle.
DevOps and IoT
Increasingly, hardware manufacturers working on IoT devices would see software as a significant component of their project. This comprises the integration of DevOps into their business workflow making it absolutely compulsory to have people perpetually work on both hardware and software designs.
Monitoring to become the new testing
At the current and future scale, it is a formidable task and impractical to test all conceivable scenarios at the end of the product cycle. Rather than doing this, it is much more worthy to monitor for live issues and rectify them in short cycles. Testing puts a limitation on what you may find as it required you to think of certain problems to look out for.
But, monitoring will bring up issues as they happen. Adoption of monitoring will permit companies to understand the way their software runs in real situations thereby offering quick information about their systems.
Kubernetes to become standard for cluster computing
More companies will join the project and offer services on top of their operating systems. Moreover, extensions will be made for running applications in the cloud. Many of the major cloud providers are starting to provide Kubernetes as a service. Even a serverless Kubernetes will be on offer where nodes are managed by the cloud provider thereby creating another level of abstraction and simplicity for the developers. This general advancement within Kubernetes will lead to an enhanced adoption of advanced monitoring, logging and metric studying within companies.
Removal of (server) operating systems as we know them
This trend links back to Kubernetes becoming a main operating system for the cloud and clusters/containers that means operating systems would be replaced by the ones that can run containers in a Kubernetes cluster. Furthermore, operating systems for hosts will face implications from containers as in these new environments they will no longer have a host.
Continued growth of DevOps into new industries is opening doors for incorporating new departments such as security, enhancement in product monitoring and the standardisation of Kubernetes for cluster computing. DevOps and its accompanying benefits will become the norm as the integration of more departments into the beginning of the product pipeline would transpire and a rise in monitoring would improve solutions and designs.
DevOps strategy would have a positive impact on Drupal development as well and improve the project timeline and delivery. Opensense Labs strongly believe in the digital innovation and can help you provide amazing digital experiences through Drupal development.
Tell us how you want us to be part of your digital transformation journey at [email protected].