Transforming Transformers for ACS 6.1 and beyond ! Jan Vonka Architect & Product Owner @ Alfresco
Introduction
Learn. Connect. Collaborate. Agenda • Introduction • Themes • Why … ? • Evolutionary Architecture • Alfresco Transform Service • Deployment Options • Scalable Load Testing (Demo) • Future Ideas … ? • Recap & Links • Q & A
Learn. Connect. Collaborate. • Jan Vonka – https://slideshare.net/jvonka • Architect & Product Owner • Hot-air balloonist https://www.deviantart.com/eddiekisosondi/art/HOT-AIR- JELLYFISH-315503032
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
Themes
Learn. Connect. Collaborate. Evolution Themes Change Transformation Future
Learn. Connect. Collaborate. Evolution – March of Progress http://mentalfloss.com/article/27542/10-variations-our-march-progress ➡ Evolutionary Architecture ➡ Monolith to Microservices ➡ Frequent Incremental Releases ➡ Containerised Deployments ➡ Independently-Scalable ➡ Simple & Safe Upgrades
Learn. Connect. Collaborate. Evolution - SkyNet https://www.deviantart.com/weylandyutanicorp/art/Skynet-Terminator-Models-419812236
Learn. Connect. Collaborate. Change Transmutation Change in Substance Transformation Change in Shape Metamorphosis Change in Form
Learn. Connect. Collaborate. Transforming the Transformers … https://michaelbaystransformers.fandom.com
Learn. Connect. Collaborate. ... Meta Metamorphosis ! -
Why … ?
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
Learn. Connect. Collaborate. Embrace Change
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)
Evolutionary Architecture
Learn. Connect. Collaborate. Evolve: ACS 5.x
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
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)
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
Learn. Connect. Collaborate. John Newton @ DevCon 2019
Alfresco Transform Service
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
Learn. Connect. Collaborate. Design – Sequence Diagram
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
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
Deployment Options
Learn. Connect. Collaborate. Deployment - Docker Compose (for Dev / Trial) https://github.com/Alfresco/acs-deployment/releases
Learn. Connect. Collaborate. Cloud Native vs Cloud Agnostic … https://landscape.cncf.io Cloud Native Computing Foundation (CNCF)
Learn. Connect. Collaborate. Deployment - Helm / Kubernetes (Reference) https://github.com/Alfresco/acs-deployment/releases
Learn. Connect. Collaborate. Container Orchestration => Kubernetes (k8s) GKE AKSEKS
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
Learn. Connect. Collaborate. Documentation https://docs.alfresco.com/transform/concepts/transformservice-overview.html * (* published with ACS 6.1 release)
Scalable Load Testing (Demo)
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/
Learn. Connect. Collaborate. Quick Demo
Learn. Connect. Collaborate. Using Gatling for ATS Load Testing
Future Ideas … ?
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
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
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 ?
Recap & Links
Learn. Connect. Collaborate. Recap Evolutionary Architecture • Alfresco architecture will continue to evolve – Agility – Stability – Scalability • Transform Service 1.0 works with ACS 6.1 – Reference Deployments (Helm/K8s + AWS stack) – Download Trial (docker compose)
Learn. Connect. Collaborate. @ DevCon 2019 • Architectural Changes in Repo 6.1+ – Stefan Kopf & Alex Mukha (Thursday @ 10:45) • Porting Custom Transforms to new ATS – Alan Davis (Thursday @ 13:30) • The Transform Graph – Lucian Tuca (Wednesday @ 11:00)
Learn. Connect. Collaborate. Transform Service Releases (part of ACS Deployment) • https://github.com/Alfresco/acs-deployment • https://github.com/Alfresco/acs-deployment-aws Documentation • https://docs.alfresco.com/transform/concepts/trans form-overview.html * (* published with ACS 6.1 release)
Thank You https://slideshare.net/jvonka Transforming Transformers for ACS 6.1 and beyond ! https://www.youtube.com/embed/oa1XVYZOfLU

Alfresco Transform Service DevCon 2019