DevOps is a software engineering practice that aims to unify software development and operations. And while that sounds simple and logical, it does present challenges to corporate IT teams.
Accenture, in partnership with Dell Boomi, offers the means to help organizations embrace DevOps.
The Accenture DevOps Platform (ADOP) brings together an integrated collection of enterprise and open source tools for developing, deploying and managing applications using DevOps and ALM best practices. It features Dell Boomi as the integration fabric supporting united development and operations.
We spoke with Kartik Shah, a master technology architect with Accenture who led development of ADOP. He discusses why DevOps can be challenging, how ADOP addresses the gaps between development and operational teams, and the role integration plays in improving workflows for DevOps.
Kartik Shah: To understand the emergence of DevOps, it helps to think about the way IT works.
In any IT organization, there are two key components. On the development side, developers and designers code and test software applications. Once user acceptance testing (UAT) is completed, the app is deployed in production. Then it’s up to the operations team to manage and maintain that software — and make sure it works for the business.
Until a few years ago, development and operations were separate functions. The Dev team would develop a code base, put it in a binary format, and “throw it over the wall” to the Ops team. At that point, the developers would bow out, leaving the operations team to maintain the software on their own.
When problems occurred, the teams would have to come together to figure out what went wrong and how to fix it. Usually the problem was related to human error.
That’s when this movement toward automation started — trying to reduce the error rate by eliminating or reducing human intervention in some of the development processes. Testing was one of the first areas where automation was introduced.
But, the handoffs between phases were still manual — a lot of notes and data changing hands. And that usually leads to errors. Things are lost in translation.
Kartik Shah: It was gradual. There was a move to automate everything in the Dev environment. And in the last five or six years, a lot of automatation tools became available, which made it possible to minimize the separation between Dev and Ops.
The focus became more about delivering business value and less about pointing fingers when something went wrong. DevOps is really nothing but development plus operations hooked together as a single team focused on reducing the challenges faced by the business.
While the blending of development and operations into DevOps was starting to become more common, the Agile methodology emerged. Agile promotes iterative development. Once a minor change is made, DevOps can deploy it quickly using automated tools. There’s no more waiting 24 or 48 hours to get everything set up and scheduled.
Change, test, deploy, repeat. DevOps and Agile go hand-in-hand.
Kartik Shah: Agile and DevOps are very complementary. But in the early days of the move to bring development and operations closer together — say around 2005 — Agile wasn’t a commonly adopted practice, at least not one I had heard about.
We were doing continuous integration to reduce our error rates. But we were still using the Waterfall methodology, which is linear and not based on rapid iterations. Deployment was often a six or 12-month program, sometimes 18 months. We had time for course correction. The need was always there for DevOps, even in the Waterfall world, but it wasn’t critical for successful application development.
The environment today is very different. Budgets and timeframes are shrinking. No one wants to take on a project that’s going to cost them $20 or $30 million, spread over four or five years. Businesses need applications to be available much more rapidly, because they need to change strategies and tactics quickly. Cloud-native companies are disrupting the market, because they don’t have the baggage of legacy systems to carry.
Agile development is critical to staying competitive. Applications used to be built to last, so they had to be perfect. But the pace of business has changed that. Businesses would rather get something faster that meets 80 percent of their objectives than wait to get something that’s perfect. Every additional day it takes to get to a release date increases the chances of another company releasing a competitive product.
The Agile methodology helps us cut down software deployment time from a few days to a few minutes. And with DevOps, we’re also greatly reducing maintenance overhead as well as risk.
Kartik Shah: Most of the companies we work with are Fortune 500 companies. There’s a lot of focus on automation, especially in the software delivery lifecycle — from design through deployment.
Initially, DevOps was focused on custom technologies — .Net and Java. We, as well as most of our competitors, were very comfortable with that. Then, clients started asking us to help them automate the continuous integration/continuous delivery (CICD) pipeline. And that means automating across the board for all the technologies we support for our clients: SAP, Oracle, Salesforce, NetSuite, SuccessFactors, and so on.
This was the conceptual starting point for the Accenture DevOps Platform (ADOP). We started with Java. We introduced integration. Then we got into the delivery and deployment aspects.
We make the platform available as a service to our clients — DevOps as a Service — on the Amazon cloud platform. And it’s available as open source on GitHub so developers can customize it as needed.
Kartik Shah: Businesses are shifting toward developing apps versus complex systems. In those scenarios, you have multiple sources of data and other applications, which in some cases are systems of record. You also have apps that function as systems of engagement, many of them via mobile devices.
So these are two separate sets of applications, not coupled, running on different platforms, often in different physical locations. The only way they can communicate is through integration using either REST and JSON services, or web services like SOAP.
Let’s take a mobile banking application as an example. When I log in, the app shows all my accounts and their balances. It’s a great experience for the user and it seems pretty simple.
But on the back end, it’s not that simple. The app has to fetch data from multiple account systems — savings, checking, market rate, investment, etc. and then display that information in a simple chart or table. This must be done in a fraction of a second. That’s where integration and integration platforms start playing a very essential role, and where Boomi has been so effective for us.
The challenge is that the systems of engagement are running very quickly because they are read-only, whereas the back end systems are systems of record and accuracy is vital. A lot of testing is required to make sure that the features of the app — the system of engagement — can be supported by the back-end systems without compromising data accuracy and security. We use a variety of service virtualization tools to simulate the consuming and back-end systems.
Kartik Shah: The basic framework uses Atlassian’s Jira. Jira is a proprietary software for bug and issue tracking and project management. It supports the system development lifecycle (SDLC) standards, which are common across all technologies.
For technology-specific capabilities, we have introduced a concept called cartridges. Cartridges are accelerators. A similar idea on the integration side would be Boomi’s Integration Packs. We create a cartridge with a specific set of technologies and configure the basic functionality. Then customers can take the cartridge and do additional configuration for their particular use case.
We have created ADOP cartridges for companies in energy, retail and healthcare. And we’re expanding into other industries.
Kartik Shah: Over the last five years we’ve done a lot of Boomi implementations for our clients. During that time, the Boomi platform has matured beyond basic offerings to those that cut across the enterprise technology stack.
Our clients wanted to automate the CICD pipeline for Boomi. We decided since we already have our DevOps platform, we could create a Boomi cartridge on top of it to make the ADOP a better go-to-market offering for our customers. This also pre-configures Boomi to support DevOps workflows.
Kartik Shah: Our partnership with Boomi is excellent. Boomi has given us tremendous engineering support as we work to automate DevOps workflows.
We’re working very closely to help our customers. Boomi is one of the rare integration platforms that provides not only integration but also application programming interface (API) management with Boomi Mediate, data quality and data synchronation with Boomi Hub, and now Boomi Flow for workflow automation and app development.
We’re using our industry expertise to add services on top of Boomi for our clients. And we’re working with Boomi to close any operational gaps, such as tactical analysis and security, that might prevent a seamless end-to-end experience of the DevOps platform.
We’ve already started working on the security piece, DevSecOps. We are seeing a rising demand from our corporate clients for help in improving security measures for software.
DevSecOps is a way security architects can integrate security at multiple points into DevOps workflows, which is largely transparent to developers and preserves the teamwork, agility and speed of DevOps and agile development environments.
Kartik Shah: It’s all about finding ways to further accelerate how teams build and maintain software, all in one continuous cycle. If you’re planning to implement DevOps yourself, realize that DevOps has three parts: continuous integration, continuous delivery and continuous deployment.
Focus on continuous integration first, which means your core build: migrate your code base from one environment to the next environment, once it is ready. Then, test with tools like SoapUI and service virtualization so you can sub out your downstream systems and simulate your upstream applications.
Keep these simulated environments alive so that when your upstream and downstream systems are available, you can replace your simulators with the actual systems. If everything has been done properly, your testing should be a breeze.
Continuous delivery is all about automation and speed. If you have each process automated, you will be better prepared to iterate more rapidly.
Not everyone is ready for continuous deployment. That requires both processes and a mindset where you are confident that a completely automated release system is both working and the right decision for your organization.
Most importantly, take into account the expanded boundaries of the enterprise — beyond private data centers to public and private clouds, and even to partner environments.
Security is also critical. So, when you are doing DevOps, you should be thinking about how you can implement DevSecOps. Security can’t be an afterthought. It has to be ingrained in all your applications from the beginning.
Accenture is a leading global system integrator and partner with Dell Boomi. Together, we are helping organizations around the world harness modern, low-code integration to drive digital transformation and build connected businesses.
Please contact our integration experts today to find out how Boomi and Accenture can help your company modernize its technology infrastructure.
The post Accenture and Boomi Automate DevOps Continuous Integration and Continuous Delivery Processes appeared first on Dell Boomi.