Last week, Alfresco sent a notice to its customers (link requires a support login) outlining some major changes coming with 6.0, the next major release of the software.
The general theme of these changes appears to be that of streamlining and simplifying the platform, both in terms of functionality it offers and in terms of how it is deployed and run.
I’m glad to see this happening–the platform is littered with good ideas that were implemented, iterated upon once or twice, and then abandoned (I’m looking at you, Web Quick Start). There is never a good time to make such significant changes to a shipping product, but it was probably past time to do this.
The high-level goals probably won’t surprise you. They can be summarized as: Better Integration, Containerization, and Enhanced REST API. The devil is in the details, and there are a few items that don’t fit neatly into those categories, so let me run-down each of the major items and give you my take.
Bye bye binary installers
Right off the bat, Alfresco says they are going to eliminate the binary installers and replace them with Docker containers. The idea is to make it easier to deploy across environments and data centers, whether those are on-premises or in the cloud.
My take: I like Docker and I know there are people running Alfresco in containers, but this isn’t going to be that interesting to most of my current clients, at least in the near-term, because they aren’t yet ready to use containers in production. Instead, it’s going to cause pain because we’re going to have to manually install Alfresco rather than use the binary installer. On the other hand, there are many things that need to be done for a production install that the binary installer does not cover, so the installer wasn’t really buying us much anyway.
Was nice knowing you, WAS
Alfresco is going to make the repository directly executable without the need for a separate servlet container. This means JBoss, WebSphere, and WebLogic will no longer be supported. The announcement says that support for running within Tomcat will also be dropped in the future, though it does not say when.
My take: I rarely see those “enterprise-y” app servers used any more, especially in the context of Alfresco. Most people run on Tomcat. But those running on Tomcat rarely run anything else besides Alfresco in the same Tomcat instance, so the value that Tomcat brings is pretty low. Making the repo directly executable nets out to a Good Thing.
Sayonara CIFS
It’s funny–CIFS is often the killer feature clients cite as the thing that made it possible for Alfresco to be their shared drive replacement. But it also seems to be a huge source of headaches. Alfresco says security vulnerabilities have made continuing with it untenable. Customers should switch to AOS for Windows clients and WebDAV for non-windows clients. AOS is shipped with Community Edition, but it is not open source.
My take: So many problems, so tough to debug. Good riddance. I will say that AOS has not been without its share of problems, and with AOS not being open source, we’re completely reliant upon Alfresco here.
So long Solr 1
Alfresco 6.0 will leverage Solr 6.0. Solr 1 is being dropped and Solr 4 is sticking around to help customers migrate to Solr 6.
My take: Alfresco has been playing catch-up with Solr for a long time, so anything that keeps it moving forward is good.
Disconnect the Share Connector
The Share Connector made it possible to integrate standalone Activiti (aka, “Process Services”) with Alfresco Share. This gave you the full power of a separate Activiti instance while letting users continue to use the document management and collaboration UI they were familiar with (Alfresco Share). Now Alfresco is essentially saying, if you need both, write it yourself using the ADF.
My take: Alfresco Share is essentially no longer being developed, so why continue to maintain a connector between Activiti (aka, “Process Services”) and Share? Agreed, it doesn’t make sense. And the more I look at the ADF, the more apparent it is that the true value of the framework is only realized if you are using both Process Services and Content Services. Otherwise, you end up stripping out a bunch of stuff you don’t need. But that’s another blog post.
Multi-Tenancy doesn’t live here anymore
Alfresco is dropping multi-tenancy support unless you have an OEM agreement.
My take: Ah, multi-tenancy. You think you want it until you see the list of what you have to give up to use it. It’s a feature even Alfresco didn’t use in their own cloud product. Now it’s official.
Deprecation Appreciation
Okay, those are the things that are going away. But the notice also included a list of deprecations. Web Quick Start, Alfresco in the Cloud, and Share Site Components will all be deprecated with Alfresco 6.0. All three are examples of good ideas that never really “made the turn”. I suspect Alfresco in the Cloud will prove to be the most problematic in terms of transition, depending on what Alfresco replaces it with.
Share Site Components means that Site Blogs, Site Calendars, Site Data Lists, Site Links, and Site Discussion Forums are going to be considered deprecated in the 6.0 release. Alfresco says if you need those features you should rely on integrating with other products or writing your own custom code.
Most projects I work on don’t use blogs, calendars, links, or discussions. I have a client or two that are using Alfresco as a team collaboration tool, but even then, the use of those tools is fairly sparse within the company. But lots of people use Data Lists, so that one may raise an eyebrow or two.
A Data List is just a collection of content-less objects of the same type. To Do Lists and Contact Lists are simple examples but people use Data Lists for all kinds of things. The Share UI doesn’t deal with content-less objects very well–you’re supposed to be collaborating on documents so when an object does not have a content stream it looks a little ugly. The Data List UI in Alfresco Share is an answer to that. But Alfresco is encouraging the creation of custom applications with the ADF (or without) so if you need something like a Data List, the repository still supports it–it’s just up to you to develop the UI.
Dropping these lesser-used tools is okay. It does seem weird that they are being dropped before Share is officially discontinued. Why not just let them stick around until Share is dead? I suspect Alfresco knows it will be a long, long time before they can officially kill Share, so they might as well trim what they’ve got to lessen the ongoing burden and to “purify” the platform of anything that’s not strictly about content.
Developer Direction
The notice closes out with some advice for people customizing the platform which can be summarized as: Use the platform as a black box. Rather than customizing Share, write a custom application that calls Alfresco’s services. Rather than integrating Alfresco with other systems “from the inside, out” by writing code that runs in the same process and leverages the foundational, native Alfresco API, put that logic in external applications that get what they need from Alfresco via REST. This is sound advice and I think many of us made that shift a while ago.
I should note that while Alfresco would like you to use ADF to build your custom content-centric applications, you’d be wise to assess that decision carefully. Depending on exactly what you are doing you may be better off without it.
There are some confusing statements about workflow. Here’s what the announcement says (emphasis is theirs): “In order to make it easier to design, deploy, and maintain custom workflows, in a future release we will be providing a platform-wide workflow service using Alfresco Process Services (powered by Activiti). This will replace the use of embedded Activiti for custom workflows. Future custom workflows will be implemented external to the Content Repository and will leverage the REST APIs of Alfresco Content Services.”
That sounds to me like they are removing embedded Activiti from the repository. However, in the next bullet, they say, “ACS workflows are intended to automate the management of content items within the Content Repository and APIs for custom workflows will continue to be available with subscriptions to Alfresco Content Services.” That sounds like there will still be a way to do workflows within Alfresco, but it isn’t clear whether or not that will still be Activiti or something else.
This was a long post, but, as you can see, they had a lot to announce. On the whole, I think they are positive, necessary changes. Small customers that are trying to use Alfresco for a lot of things, particularly collaboration, may feel some pain as they will be forced to look elsewhere for that kind of functionality. Very large customers, who often leverage Alfresco only for the repository and almost always have a custom front-end, may not be affected at all, and to the extent they already use containers, may benefit.
Regardless of customer size, we’ll all benefit from a more svelte platform that Alfresco and the community are better able to support.
Photo Credit: Richard Summers, CC BY 2.0
Hi Jeff,
thanks for the summary. Can you provide a link with these information from Alfresco? I have not received this mail…
If I read your summary, I would say that custom workflows within Alfresco will be available for enterprise subscribers only (“with subscriptions to Alfresco Content Services”), but the following statement in the roadmap (https://community.alfresco.com/docs/DOC-1085-alfresco-ecm-product-roadmap) makes it more clear:
“Replace the embedded Activiti with the stand-alone Activiti”
According to Docker- I also guess that some customers need years before running Alfresco as docker container in production. So I believe the installer are still needed for years…
Thanks
Jens
Jens, I’ve updated the post with the link although it does require an Alfresco support login to see it.
I also originally thought that the workflow was being removed from Community Edition, but this was a post in the support site, which only paying customers and partners have access to, so I think the bullet point did not intend to exclude Community Edition users when it mentioned “subscribers”.
As of Alfresco 6.0, it sounds like if you don’t want to run containers, you will have to use your own scripts or configuration tools like Ansible or others. The community can obviously help here.
Thanks a lot for sharing news and insight, Jeff.
I fully agree that on the whole most of the changes mentioned are a good thing even though some hurt us and our customers. Specifically, with regards to Share, I think its fate was obvious for a very long time. However, I think Alfresco should have been more open about the directions they have taken earlier on.
Maybe now is the time to be honest and say the SDK is deprecated already?
Other than that, I wonder why they are announcing those changes behind a subscription wall and not publically.
Personally, I am most excited about dockerization at this time.
Are there an “Alfresco in Docker entry points” you could recommend? Latest 201711-EA?
regards
Andreas
Andreas, I suspect that Alfresco feels like their paying customers should hear major announcements first as one of the benefits of having a support subscription, which is probably fair, and because, unfortunately, many of their subscribers do not follow the community very closely. I know the CIFS discussion was started in IRC and on the forums quite some time ago. The specific Docker approach is also not surprising given last year’s BeeCon talks from John Newton and others. Workflow changes have been on the horizon for a while, although the specifics still seem vague to me.
The deprecation of the Share site components is kind of a surprise–I had not heard they were going to do that.
I’ll bet we’ll hear a lot of detail on all of these at BeeCon in Lisbon.
I don’t understand your point about the SDK. Why would it be deprecated?
With regards to Docker, I think they are pretty late to the party.
My point with the SDK is that I feel Alfresco wants customizations to stay out of process. In fact, I think that applies beyond the SDK. Convenient for them, inconvenient for the people building customizations. I suspect they want to go the cloud way and sometimes one needs to make a tradeoff. Perfectly fine, just saying.
On top of that, looking at the current state of the SDK, I dare to say it looks pretty swamped for a “fresh” major release. I understand that certain goals may be truly challenging to achieve with maven.
I doubt we will see a healthy SDK.
I want to add a few points to this conversation:
* The article in the support portal is intended for subscribers to support services from Alfresco. Once we have received feedback from those customers, we intend to publicly share the information both in the online developer community (http://community.alfresco.com/) and at DevCon (http://devcon.alfresco.com).
* We want to inform people as early as possible, but these changes are expected to occur over multiple releases. Specific technical details will be coming in future communications.
* We are not announcing an end-of-life for the Share application, as we expect it to continue to be supported for some time. However, we want to be clear that Share is not intended to be a platform for developing custom solutions. We want to simplify the application both for our own maintenance and based on customer feedback. This is the same plan for the future of Share that we explained at the 2017 BeeCon in April, with the evolution that today we are even more confident that the ADF will be able to replace Share for all development use cases in the near future.
* Thank you for the feedback on usage of Data Lists. We are circulating this information to get that sort of feedback and will consider adapting our plans.
* The advice on workflow development is not contradictory. The workflow service will be moving outside of the repository, so don’t use the local API calls. But the workflow service will continue to be available to the content repository, and won’t require a subscription to Alfresco Process Services. We also are trying to be clear that we won’t be supporting our customers in using the workflow capability of the content repository to do advanced process management as we have a separate product offering for that.
* Our goal is to replace the installers with a containerized deployment in the immediate future (it is our current top priority). The installation bundle only meets a few uses cases and is not very adaptable to new deployment requirements (like an external workflow service). The distribution.zip will continue to be available for people doing manual installations but it will get more complicated. We expect in the future that people inspect and adapt the containers to their specific environments.
* The SDK is not deprecated. We have always struggled to keep the SDK current with the rest of the product, and it continues to be developed in spurts. However, we have been discussing how best to proceed with the SDK as we move into a future focused on REST APIs integrations and containerized deployment. No decisions have been made.
* We want to emphasize that our goal is to move as many customizations as possible outside of the repository, but we recognize that may not be possible for some use cases. We are tackling the most common requirements, and will keep ticking them off until people can treat the repository like a black-box or we decided that customers can meet their goals to easily extend the system in a way that can be maintained and upgraded.
As always, thank you for the discussion. I look forward to continuing the conversation at DevCon and when we publish this information in the online developer community.
— Richard Esplin
Thanks, Richard!
The details around workflow are still confusing to me. I guess I’ll just wait for it to unfold a bit.
The focus on Docker containers is a bit baffling. I’ve been talking to Enterprise customers about this since the announcement and I’ve yet to find one that is doing anything with Docker in production or has any plans to do so. I fear you may be too far ahead of your customers on this one.