We’re pleased to share with you an interview with Ryan Dawson, Activiti Core Developer, and Raphael Allegre, Senior Product Marketing Manager at Alfresco. Here, they talk about how the BPM and software development industry is moving ahead as well as how Alfresco is innovating in this space through the Activiti open source project. We invite you to join the conversation on Gitter or Twitter, @alfresco, @activiti, @RaphaelAllegre
Q: What is your take on the BPM industry and its evolution in 2018?
Raphael Allegre: I have been part of the BPM software industry for more than 5 years and each year I have been finding articles predicting the death of BPM. This year is no exception to the famous “BPM is dead…long live BPM!” mantra. It is a commonly accepted fact that traditional BPM software failed at delivering on its promise--instead providing too complicated and expensive platforms as well as poor user and developer experience. As a result, customers who had adopted these legacy BPMS report that it takes too long to see first business benefits. Many of the BPM players are aware that the wider development community is showing signs of falling out of love with traditional BPM. You can read some of their comments at: https://bpm.com/the-year-ahead-for-bpm-2018.
Nevertheless, bringing speed, agility and greater consistency into your business operations and processes for the benefit of your customers, employees, partners or citizens remain more than ever a priority for many business executives. Additionally, with the significant progress of many interesting new topics such as AI, blockchain, RPA, microservices, voice-enabled services, analytics, IoT and many more, business process management and business automation technologies have the potential to evolve into a much broader market.
Our view on this at Alfresco is quite simple: digital transformation initiatives are opportunities for renewed and modernized BPM solutions focused on solving key business challenges in a cost-effective way and at speed. Traditional BPM software solutions fail at listening to the wider development community and embracing modern software development methods and cloud-based infrastructures. This is a key ingredient for BPM to succeed and deliver measurable business value. At Alfresco, we are focusing on making sure organizations can leverage our process and content technologies to deploy their first application in a matter of a few hours, not months, and all at no upfront cost.
Q: From an Activiti developer standpoint what is your view on this?
Ryan Dawson Dawson: The developer experience is key. We have a great community of developers that are using Activiti at the coal-face, solving real-world problems and driving the business forward. Activiti aims to give developers tools that empower them to solve problems and that feel great in a sustainable modern solution. If there is something developers want Activiti to do, not to do or something that needs to be done differently, then we’re interested; this has always been our approach. With Activiti Cloud we are making a break from tradition in providing some opinionated ways to use Activiti for microservices-based projects. Traditionally, Activiti has focused on making great engines and exposing hooks and interfaces so that developers can do what they want with them. Providing specific ways of using Activiti has normally been of less importance. At this moment we think the industry's move towards cloud-native development practices is very important. We are big fans of the cloud-native ethos and the way it is being embraced in the Java and Spring communities. (For a good overview we’d recommend “Cloud Native Java” by Josh Long and Kenny Bastani.)
To do cloud-native development well, developers need to use Activiti in ways different from how it has traditionally been used and some of this could, without Activiti Cloud, involve a lot of work. You’ll want your cloud-native microservices to do distinct jobs in different ways, use different tooling, run in separate run-times and be properly isolated from one another. But they also need to converse freely with each other. Activiti Cloud provides a set of tools that do as much of the work as possible out of the box. We think the future of cloud-native Java development will center on Kubernetes and Spring Cloud so we're making them central to Activiti Cloud. Activiti can still be used as it always has and we're still exposing hooks and interfaces- making it as flexible as the community would expect. Activiti Cloud is being added to the family because it's the best way for Activiti to serve the wider software development community and to keep attracting new developers to Activiti by better supporting different kinds of use-cases. The community is at the center of this, so do share any thoughts (either on Activiti or the present and future of BPM) here or on the Activiti Gitter chat.
Q: Is the thought behind this move that everyone will soon be doing microservices?
Ryan Dawson: We are monitoring the technologies being used to develop microservices closely and we see some of the barriers to adoption coming down. The complexity of developing microservices projects and getting them to production is being reduced as Kubernetes becomes more easily available and the tools around it grow. That’s why we’re making sure Activiti is ready and fits in easily with these tools. We’re collaborating with other projects like the Spring Cloud Kubernetes project to help shape the way the space develops and keeping a close eye on new developments like the growth of service meshes.
Raphael Allegre: The digital transformation movement is continuing at a fast pace. Digital businesses generate more and more data and they want their systems to handle it reliably to achieve business insights and drive their business forward. Microservices architectures are a key part of handling large amounts of incoming data at scale and required to meet the demands of higher-frequency lower-risk software deployments. Microservices architectures are also most suitable for cloud infrastructures as they, for example, help to build fault-tolerant and highly available enterprise applications without high upfront investment costs. If you are interested in exploring more about microservices, cloud infrastructures and what it all means for BPM, take a look at Sandy Kemsley’s guest blog post. In short, microservices are on one hand challenging traditional BPM products, and on the other are an opportunity for new kind of BPM products that can embrace modern technologies designed for the ongoing data explosion.
Q: What can we expect from Activiti?
Ryan Dawson: Tools that empower developers to use Activiti for cloud-native Business Automation. Activiti Cloud uses the latest innovations from the Spring and Java communities to provide new options that give developers the microservices benefits of scalability and fault-tolerance out of the box. Developers will have more control over what parts of their Activiti-built applications are scaled in the cloud, including running more replicas of the components (including service tasks) and adding computing resources.
Activiti Cloud doesn’t only offer new cloud-native ways of using the engine. It also has new features such as more flexible querying capabilities, including a GraphQL module to help create more dynamic user interfaces. There’s also a scalable audit implementation that is separate from the engine. The tools should fit naturally into an organisation’s microservices ecosystem and provide the interfaces you’d expect to get the right data in and out of Activiti.
I can only mention some of the changes here - explaining all the changes in Activiti would be a topic in its own right. The best ways to learn about Activiti’s new features and how Activiti Cloud enables cloud-native BPM are to go to the developer guide gitbook or to speak to the team on Gitter.
Q: What does cloud native mean and why does it matter?
Raphael Allegre: First of all, let’s start by a common misconception of what cloud native means. For an application or a platform to be “cloud native” doesn’t necessarily mean it has to run in the cloud. You can be cloud native and stay on your own servers. As an example, check out the BlaBlaCar case study shared in the Cloud Native Computing Foundation (CNCF) October 2017 newsletter. In a nutshell, they could not make their website scale to address their exponential customer growth. They didn’t want to move to the cloud yet and they knew that buying more servers and hiring more resources would have significantly impacted both cost and team efficiency without solving the root cause. The solution they used was to incrementally containerize their entire platform and then used Kubernetes to dynamically orchestrate all these containers. The gains were significant: they went from 1 or 2 day deployment time for new services in a matter of minutes.
Cloud native is not just about technology. Joe Beda, the co-founder of the Kubernetes project, shares his broader definition in his blog series:
“Cloud Native is structuring teams, culture and technology to utilize automation and architectures to manage complexity and unlock velocity”.
Therefore, it’s not just a technology solution, it’s a movement that has cultural implications and benefits. He is also reminding companies that are at the very beginning of their cloud-native journey that
“these techniques can be applied incrementally as appropriate and should help smooth any transition to the cloud”.
This is a very important point knowing that the vast majority of today’s enterprise applications are not cloud native and that more and more companies are moving to the cloud. Based on this 2017 research project, the proportion of new enterprise apps that are cloud-native will more than double by 2020 jumping from 15% in 2017 to 32%.
To make Activiti cloud native, the Activiti team built a new architecture composed of containerized microservices that are dynamically orchestrated using Kubernetes, the most popular open source container-orchestration platform.
For more details on the Activiti microservices architecture check out our developer guide and the overview video from Mauricio Salatino, the Activiti Tech Lead at Alfresco.
The benefits of this cloud-native architecture are that you have the full flexibility to allocate the appropriate resources to different services and allow autonomous teams to work on independent components that have their own lifecycle. In a matter of minutes, they can build and deploy a domain-specific process application that is fault-tolerant, highly scalable and out-of-the-box. To get started now and deploy your first Activiti cloud-native application, please check out the Activiti Cloud BluePrint example here and share your feedback on the Gitter channel.
Q: What can we expect from Alfresco Process Services powered by Activiti?
Raphael Allegre: Activiti has always been the leading open source BPM project since its creation back in 2010. Based on its BPM heritage, Activiti evolves to serve as an umbrella for a set of cloud-native building blocks focused on business automation for highly distributed environments. The main cloud providers are increasingly supporting Kubernetes and choosing to provide platforms on top of it (e.g AWS EKS, PKS, GKE, etc...), meaning that portability between platforms should increase. With Activiti being ready to go for Kubernetes, the next version of Alfresco Process Services will have a strong foundation for helping organizations scale up and go cloud-native without being locked into a particular vendor.
In terms of timing, the first microservices-based version of Alfresco Process Services based on the new Activiti will be released later this year. It will nicely integrate with the Alfresco Digital Business Platform that intelligently activates process, content, and governance together by giving developers the tools they need to easily build and deploy unique cloud-native applications that drive digital transformation. To support your global cloud-native journey, the Alfresco Process Services subscription will provide a unique combination of tools and expertise delivered wherever you are by Alfresco support engineers and technical experts.