Alfresco DevCon 2019 (Edinburgh)
"Transforming the Transformers" for Alfresco Content Services (ACS) 6.1 & beyond
https://community.alfresco.com/community/ecm/blog/2019/02/07/alfresco-transform-service-new-with-acs-61
Alfresco provides various content transformation options across the Digital Business Platform (DBP). In this talk, we will explore the new independently-scalable Alfresco Transform Service. This enables a new option for transforms to be asynchronously off-loaded by Alfresco Content Services (ACS).
https://devcon.alfresco.com/speaker/jan-vonka/
5. Learn. Connect. Collaborate.
• Information & features presented will change
• Features are Enterprise
• We look forward to collaborating with you …
• … to improve & extend the Transform Service
Disclaimer
14. Learn. Connect. Collaborate.
Before …
• Alfresco Content Services (ACS) Repository
• Local & embedded transformers
• New content generates renditions (eg. thumbnails & previews)
• Consumes resources (Repository JVM or underlying O/S)
• Limited Scalability Options
• May be a limiting factor when ingesting lots of content
• Only option to scale transforms => scale the Repository
• Potential security concern when run on same “machine” as Repository
16. Learn. Connect. Collaborate.
Now …
• Evolve ACS Repository Architecture
• incrementally break-up the monolith
• asynchronously off-load transforms
• support large-scale ingestion & migration to ACS
• Introduce new Alfresco Transform Service (ATS)
• loosely-coupled & event-driven
• independently scalable & upgradable
• option to use across Digital Business Platform (DBP)
19. Learn. Connect. Collaborate.
Local / Embedded Transformers (ACS <= 5.2)
Content Services Process Services
Content + Governance
Apps
Process Apps
Files
Meta
data
Search
Files
Meta
data
SearchIdentity Identity
ProcessTransforms Transforms
Governance
20. Learn. Connect. Collaborate.
• Spring Boot 1.x
• Docker
• REST API
Evolve: ACS 6.0
ACS
imagemagiimagemagiimagemagick
imagemagick
imagemagicklibreoffice
imagemagick
imagemagickpdf-renderer
Synchronous POST
(multipart/form-data)
21. Learn. Connect. Collaborate.
New Transform Service (ACS >= 6.1)
Files
Meta
data
Search
Content + Process Apps
ADF
Identity
Common
Transform Service
Content Services
Content + Governance
Apps
ProcessTransforms
Governance
24. Learn. Connect. Collaborate.
Transform Service 1.0
https://github.com/Alfresco/acs-deployment/releases
Transform Service
imagemagic
k
imagemagic
k
imagemagic
k
imagemagic
k
ACS 6.1
imagemagic
k
imagemagic
k
imagemagic
k
imagemagic
k
tika
pdf-renderer
libreoffice
imagemagick
imagemagick
imagemagick
imagemagic
k imagemagic
k
Shared File Store
T-Engines
ActiveMQ
• Spring Boot 2.x
• Micrometer (eg. Prometheus)
• Messaging (ActiveMQ)
• Docker / Kubernetes
T-Router
1
2
3 4
5
6
7
26. Learn. Connect. Collaborate.
ACS 6.1 Async Rendition Service
V1 REST APIV0 REST API
Rendition Service 2
Rendition Service
Thumbnail Service
Action Service
Content Service Shared File Store
<<Docker>>
Content Update
Transform Service
T-Router
<<Docker>>
Transformers
<<Docker>>
Transformers
<<Docker>>
Transformers
<<Docker>>
T-Engines
<<Docker>>
Transform Response
Transform Request
TransformerTransformerLocal Transformers
Solr 6
101010
101010
101010
27. Learn. Connect. Collaborate.
rendition gif jpeg png docx xlsx pptx msg doc xls ppt
doclib png
imgpreview jpeg
pdf pdf
medium jpeg
avatar png
avatar32 png
webpreview swf
ACS 6.1 Renditions supported by Transform Service 1.0
(*) ACS 6.1 uses 36 transforms out of the 60 provided by the Transform Service 1.0
33. Learn. Connect. Collaborate.
Deployment – AWS Managed Services (Reference)
https://github.com/Alfresco/acs-deployment-aws/releases
Transform Service
imagemagic
k
imagemagic
k
imagemagic
k
imagemagic
k
ACS
imagemagic
k
imagemagic
k
imagemagic
k
imagemagic
k
tika
pdf-renderer
libreoffice
imagemagick
imagemagick
imagemagick
T-Router
Amazon
EFS
imagemagic
k imagemagic
k
Shared File Store
T-Engines
Amazon
RDS
Amazon
S3
36. Learn. Connect. Collaborate.
Using Gatling for Load Testing
Client:
- What’s the performance of your application ?
- Is it scalable?
- How much it costs to run your product ?
Dev:
- This change can’t impact performance …
QA:
- … it did ;-)
https://gatling.io/
40. Learn. Connect. Collaborate.
Future Ideas ?
Disclaimer: Subject to change … we look forward to collaborating with you
• Proposed Next
– More Scaling
– T-Engines Queues (async)
– Event Gateway
– Heartbeat
• And Beyond
– Extensibility Options (custom transformers)
– New T-Clients & T-Engines (more transformers)
– Dynamic Auto-Scaling
41. Learn. Connect. Collaborate.
Transform Service 1.0.x
https://github.com/Alfresco/acs-deployment-aws/releases
Transform Service
imagemagic
k
imagemagic
k
imagemagic
k
imagemagic
k
ACS
imagemagic
k
imagemagic
k
imagemagic
k
imagemagic
k
tika
pdf-renderer
libreoffice
imagemagick
imagemagick
imagemagick
T-Router
Amazon
EFS
imagemagic
k imagemagic
k
Shared File Store
T-Engines
Amazon
RDS
Amazon
S3
Planned
42. Learn. Connect. Collaborate.
imagemagick
imagemagick
T-Router
imagem
agick
imagem
agick
DBP Transform Service (on K8S / AWS)
Amazon
S3
Amazon
EFS
DBP
Transform Service
imagema
gick
imagema
gick
imagem
agick
imagem
agick
AWS *
Amazon
RDS
ASE
ACS
DBP Event Gateway (No@fica@ons)
imagema
gick
imagema
gick
imagem
agick
imagem
agick
custom
Amazon Elastic
Transcoder
Heartbeat Server
Aggregated Usage
APS
imagem
agick
imagem
agick
T-Engines
Future
Ideas ?