SlideShare uma empresa Scribd logo
1 de 40
Upgrading to Alfresco 6
The Short History of the Long Road
Angel Borroy
Developer at UST Global
@AngelBorroy
angelborroy
keensoft
Learn. Connect. Collaborate.
Upgrading process in a nutshell
Previous version
1. Backup database and content store
2. Identify your customizations and addons
New version
1. Install Alfresco 6 from scratch… or use public Docker images!
2. Restore database and content store
3. Apply your customizations and addons
4. Start Alfresco and have some fun
https://docs.alfresco.com/community/tasks/upgrade-process.html
Learn. Connect. Collaborate.
Wait a minute…
2010 Peter Monks
Alfresco Environment Validation and “Day Zero” Configuration
2011 Frederik Heremans
Migration from jBPM to Activiti
2013 Kyle Adams
The Art of the Upgrade
2015 Alfresco Tech Talk Live 82
Upgrading to Alfresco 5.0
2017 Ian Wright
Upgrading extensions - help is at hand
Learn. Connect. Collaborate.
Contents
• Understanding the Upgrade Process
• Elaborating an Upgrade Plan
• Identifying Deprecated Features
• Adapting your Customizations
• Installing your new Alfresco
• D-Day considerations
Understanding the Upgrade Process
Learn. Connect. Collaborate.
What is happening behind the scenes
Source Alfresco
Content Store
Database
Indexes
Halfway Alfresco
copy
dump
N
Target Alfresco
move
move
copy
patch patch
Learn. Connect. Collaborate.
Source Alfresco
• Test your backups
– Database
– Content Store
– Indexes
• Use dump for the Databases
• Use rsync for Content Store
– So you can perform a quick last rsync just before stopping the service for the
upgrading process
– Consider only files modified 30 days ago or less from Content Store Deleted
• Use rsync for Indexes
– Only required for Target Alfresco, as Halfway(s) Alfresco are running in no index
mode
Source Alfresco
Learn. Connect. Collaborate.
Halfway Alfresco(s)
• Not all Database Patches are included in every Alfresco version
– Depending on the Source Alfresco version, several Halfway Alfresco instances must
be used
• Prepare as many Alfresco Instances as required (3.4, 4.2…)
– Deploy only customized Content Models
Other addons and customizations can be ignored
– Deploying Share web application is not required
– Transformation Service is not required
ooo.enabled=false
jodconverter.enabled=false
– Configure noindex mode
index.subsystem.name=noindex
– Disable scheduled jobs
• These instances are used only to patch the Database, so server resources
(CPU, RAM…) can be lower than PROD environment
Halfway Alfresco
Learn. Connect. Collaborate.
Target Alfresco
• Same (or higher) resources as Source Alfresco
• Every configuration, customization and addon is deployed
– Probably some adaptations are required
• Using original Indexer Subsystem mode to minimize downtime
– For instance, configure solr4 mode
index.subsystem.name=solr4
• Last Database Patch should be also applied when starting Alfresco
Repository for the first time
• Just switch your public HTTP proxies to Target Alfresco hostname or IP
after validating the environment
Target Alfresco
Learn. Connect. Collaborate.
Database Patches Catalog
https://github.com/Alfresco/alfresco-repository/tree/master/src/main/resources/alfresco/patch
Learn. Connect. Collaborate.
Final adjustments: upgrading SOLR
Target Alfresco
Content Store
Database
Indexes
Indexer Alfresco
Indexes
solr4 solr6
Final Alfresco
move
move
move
Learn. Connect. Collaborate.
Indexer Alfresco
• This instance calculates indexes for the new SOLR version while Target
Alfresco is being used in real
• Same configuration as Target Alfresco can be used, but deploying Share
web application is not required
• Indexation is a heavy process (in CPU and network bandwidth), so you
can consider a nightly only execution
• SOLR Web Console can be used to follow indexation progress
Indexer Alfresco
• Once the indexation is current, you can switch
Indexer Subsystem mode to the new SOLR
version and (finally)… you’re done!
Elaborating an Upgrade Plan
Learn. Connect. Collaborate.
Auditing your Source Alfresco
Volume
• Count of all database tables
• Size and number of files in content store
• Size of Lucene or Solr indexes
Customizations
• Custom Content Models
• Custom Process Definitions
• Installed Modules
• Other Customizations or Extensions Source Alfresco
OOTB Alfresco
Learn. Connect. Collaborate.
Preparing your playground
Backup
• Database dump
• Content Store rsync
• Indexes rsync
Test data
• For large Content Stores
– Mock up with small files
https://github.com/kylefernandadams/alfresco-mock-content-generator
Learn. Connect. Collaborate.
Defining your upgrade path
• Apply the latest Service Pack to
your Source Alfresco
• Upgrades from 5.0 and 5.1 need to
stop at 5.2
• Upgrades from Solr 4/6 subsystems
need to upgrade also to Alfresco
Search Services 1.2
5.2.x
5.2.x
Learn. Connect. Collaborate.
Identifying required steps
Learn. Connect. Collaborate.
Recovery strategy
• Prepare for the worst scenario
• Preserve your Source Alfresco untouched to switch it live again (quickly) if
upgrading process fails
Do not perform an in-place upgrade!
Kyle Adams – The Art of the Upgrade - 2013
Identifying Deprecated Features
Learn. Connect. Collaborate.
Alfresco 5
• Alfresco Explorer
• AVM (Advanced Versioning Manager)
• Lucene
• Old Fashioned CMIS API endpoints replaced by clearer ones
• CML Web Services SOAP API
• JCR / JCR-RMI
• URL Addressability API
• Social Publishing Features
• Blog Publishing Features
https://ecmarchitect.com/archives/2014/11/06/3962
Learn. Connect. Collaborate.
Alfresco 6
• Binary installers
• JBoss (aka WildFly), WebSphere and WebLogic
• DB2
• Solaris
• CIFS (unsupported)
• Solr 1
• Share Connector for Activiti integration
• Multi-Tenancy
https://ecmarchitect.com/archives/2017/12/02/4305
Learn. Connect. Collaborate.
Alfresco 6.1
• CIFS (removed)
• NTLM v1
– Passthru authentication subsystem is no longer available
• API Deprecation
– TransformService
– RenditionService
• Additional deprecations planned for 6.x
– Embedded Activiti
– Share Pages (blogs, calendars, wiki…)
– Web Quick Start
– Alfresco in the Cloud
https://community.alfresco.com/community/ecm/blog/2018/01/03/architecture-changes-for-alfresco-content-services-version-60
https://github.com/Alfresco/acs-packaging/blob/master/CHANGELOG.md
Learn. Connect. Collaborate.
Alfresco Product Support Status
• Product releases
• Modules, add-ons and components
• SDKs
• All items currently EOM
– Workdesk
– Google Docs v1 and v2
– Quickr Connector
– XAM Connector
– Alfresco Analytics
– …
https://www.alfresco.com/alfresco-product-support-status
Adapting your Customizations
Learn. Connect. Collaborate.
Alfresco 6 Backward Compatibility
Some addons will work without recompiling nor
repackaging them with Alfresco SDK for version 6
• Repository includes relevant Java Library
upgrades
– Addons must be reviewed
• Share code from 5.x is compatible
– Everything should work in the same way
• ADF 1.x & 2.x code from 5.2.x is compatible
• Activiti workflows from 5.x are compatible
– But probably you should start thinking of moving
them outside ACS
Repository
Learn. Connect. Collaborate.
Alfresco 6 Repository Migration Guide
• Hibernate is completely remove from the product
– Use iBatis framework if you had custom DAOs
• Quartz has been updated to 2.3.0
– Change your Job Spring Bean definitions
• Spring has been updated to 5
– Update your XSD declaration for beans
– Change your “idreflocal“ to “idrefbean“ clauses
– Review your testing code
• Jackson has been updated to 2.9.5
– JSON Mappers based in 1.x must be rewritten
https://github.com/Alfresco/alfresco-repository/wiki/ACS-6-Migration-Guide
Learn. Connect. Collaborate.
Integrations
Upgrading process preserves UUIDs from Source
Alfresco
CML Web Services SOAP API
• Removed in Alfresco 5.0
• Time to Move!
CMIS
• 1.1 specification (Atom / Browser) closed in 2017
• Still supported by many products
REST API
• Old Version still available for Share and other products
• Consider migrating to New Version, based in Swagger and
designed for Angular apps
Installing your new Alfresco
Learn. Connect. Collaborate.
Alfresco 6
By Components
• Distribution ZIP
– Community
https://www.alfresco.com/thank-you/thank-you-downloading-alfresco-community-edition
– Enterprise
http://support.alfresco.com
• Supported Platforms
https://docs.alfresco.com/6.0/concepts/supported-platforms-ACS.html
• Installation instructions
http://docs.alfresco.com/community/concepts/install-community-intro.html
http://beecon.buzz/2017/assets/files/EF09/EF09-Installing-Alfresco-components-1-by-1.pdf
Learn. Connect. Collaborate.
Alfresco 6
Docker Compose
• Not supported for Enterprise PROD installations!
• Official Docker Images
– Community https://hub.docker.com/u/alfresco/
– Enterprise https://quay.io/organization/alfresco
• Official Docker Container Compositions
– Community https://github.com/Alfresco/acs-community-deployment
– Enterprise https://github.com/Alfresco/acs-deployment
• Community provided deployments
– https://github.com/keensoft/docker-alfresco
Learn. Connect. Collaborate.
Alfresco 6
Kubernetes
• Official Helm Charts not available at https://hub.helm.sh
• Official Kubernetes deployment
– Community https://github.com/Alfresco/acs-community-deployment
– Enterprise https://github.com/Alfresco/acs-deployment
Amazon AWS
CFN Template
https://github.com/Alfresco/acs-deployment-aws
D-Day considerations
Learn. Connect. Collaborate.
Monitoring
Logs
tail, docker logs, kubectl logs
Log4j logging levels to TRACE or DEBUG
JVM
JProfiler, YourKit
Database
SQL Developer, psql, mysql
Performance
top, nmon, kill -3
Learn. Connect. Collaborate.
Common problems
Long running patches
Depending on your data, some patches can take long time to complete
Auditable Behavior
Depending on your upgrade path, Auditable Aspect must be disabled during
upgrading process
Orphaned nodes
Content Store Cleaner Job will purge them after upgrading
Unindexed nodes
Not every node can be indexed
Learn. Connect. Collaborate.
Validation
• Verify that every service, subsystem and protocol is working as expected
– Repository, Share, CMIS, REST API, AOS, SOLR
– Transformation, Authentication, Synchronization, Search
– FTP, WebDAV, AOS, SMTP, IMAP, CIFS
• Verify that nodes count is the same
• Verify SOLR count and errors
• Verify that every addon and
customization is still working
Learn. Connect. Collaborate.
Final Operations
Document final operations and inform involved people before going on with
the upgrading process
Moving forward
Switch public addresses to Final Alfresco
Going back
Restore your Source Alfresco Source Alfresco
Final Alfresco
Learn. Connect. Collaborate.
Downtime
Source Alfresco Halfway Alfresco Target Alfresco
Indexer Alfresco Final Alfresco
Service Downtime
Upgrading Finished
Upgrading to Alfresco 6
The Short History of the Long Road
Angel Borroy
Developer at UST Global
@AngelBorroy
angelborroy
keensoft

Mais conteúdo relacionado

Mais procurados

Alfresco search services: Now and Then
Alfresco search services: Now and ThenAlfresco search services: Now and Then
Alfresco search services: Now and Then
Angel Borroy López
 
Alfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin IdeasAlfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin Ideas
AlfrescoUE
 

Mais procurados (20)

Alfresco search services: Now and Then
Alfresco search services: Now and ThenAlfresco search services: Now and Then
Alfresco search services: Now and Then
 
Alfresco tuning part1
Alfresco tuning part1Alfresco tuning part1
Alfresco tuning part1
 
Alfresco tuning part2
Alfresco tuning part2Alfresco tuning part2
Alfresco tuning part2
 
From zero to hero Backing up alfresco
From zero to hero Backing up alfrescoFrom zero to hero Backing up alfresco
From zero to hero Backing up alfresco
 
Alfresco DevCon 2019 Performance Tools of the Trade
Alfresco DevCon 2019   Performance Tools of the TradeAlfresco DevCon 2019   Performance Tools of the Trade
Alfresco DevCon 2019 Performance Tools of the Trade
 
Moving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesMoving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to Microservices
 
Bulk Export Tool for Alfresco
Bulk Export Tool for AlfrescoBulk Export Tool for Alfresco
Bulk Export Tool for Alfresco
 
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco Repository
 
Alfresco Security Best Practices Guide
Alfresco Security Best Practices GuideAlfresco Security Best Practices Guide
Alfresco Security Best Practices Guide
 
Alfresco Bulk Import toolのご紹介
Alfresco Bulk Import toolのご紹介Alfresco Bulk Import toolのご紹介
Alfresco Bulk Import toolのご紹介
 
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoCollaborative Editing Tools for Alfresco
Collaborative Editing Tools for Alfresco
 
Jose portillo dev con presentation 1138
Jose portillo   dev con presentation 1138Jose portillo   dev con presentation 1138
Jose portillo dev con presentation 1138
 
Alfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin IdeasAlfresco Share - Recycle Bin Ideas
Alfresco Share - Recycle Bin Ideas
 
Storage and Alfresco
Storage and AlfrescoStorage and Alfresco
Storage and Alfresco
 
Sizing your alfresco platform
Sizing your alfresco platformSizing your alfresco platform
Sizing your alfresco platform
 
Alfresco 5.2 REST API
Alfresco 5.2 REST APIAlfresco 5.2 REST API
Alfresco 5.2 REST API
 
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud NativeCSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
 
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora - Benchmark ...
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora  - Benchmark ...The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora  - Benchmark ...
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora - Benchmark ...
 
Alfresco - You probably didn't know that
Alfresco - You probably didn't know thatAlfresco - You probably didn't know that
Alfresco - You probably didn't know that
 

Semelhante a Upgrading to Alfresco 6

The Need For Speed - NEBytes
The Need For Speed - NEBytesThe Need For Speed - NEBytes
The Need For Speed - NEBytes
Phil Pursglove
 
The Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen CambridgeThe Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen Cambridge
Phil Pursglove
 
The Need for Speed - EpiCenter 2010
The Need for Speed - EpiCenter 2010The Need for Speed - EpiCenter 2010
The Need for Speed - EpiCenter 2010
Phil Pursglove
 

Semelhante a Upgrading to Alfresco 6 (20)

201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
201511 -  Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...201511 -  Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
 
Alfresco 5.0 Technology Review
Alfresco 5.0 Technology ReviewAlfresco 5.0 Technology Review
Alfresco 5.0 Technology Review
 
Alfresco Day Roma 2015: Platform Update
Alfresco Day Roma 2015: Platform UpdateAlfresco Day Roma 2015: Platform Update
Alfresco Day Roma 2015: Platform Update
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
Bee con2016 presentation_20160125004_installing
Bee con2016 presentation_20160125004_installingBee con2016 presentation_20160125004_installing
Bee con2016 presentation_20160125004_installing
 
The Need For Speed - NEBytes
The Need For Speed - NEBytesThe Need For Speed - NEBytes
The Need For Speed - NEBytes
 
Velocity - Edge UG
Velocity - Edge UGVelocity - Edge UG
Velocity - Edge UG
 
The Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen CambridgeThe Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen Cambridge
 
Tech talk live alfresco add ons
Tech talk live alfresco add onsTech talk live alfresco add ons
Tech talk live alfresco add ons
 
No Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleNo Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with Ansible
 
ITB2017 - Keynote
ITB2017 - KeynoteITB2017 - Keynote
ITB2017 - Keynote
 
The Need for Speed - EpiCenter 2010
The Need for Speed - EpiCenter 2010The Need for Speed - EpiCenter 2010
The Need for Speed - EpiCenter 2010
 
Phil Pursglove: Velocity, the Need for Speed - epicenter 2010
Phil Pursglove: Velocity, the Need for Speed - epicenter 2010Phil Pursglove: Velocity, the Need for Speed - epicenter 2010
Phil Pursglove: Velocity, the Need for Speed - epicenter 2010
 
Developer’s intro to the alfresco platform
Developer’s intro to the alfresco platformDeveloper’s intro to the alfresco platform
Developer’s intro to the alfresco platform
 
Alfresco Day Vienna 2015 - Technical Track - Developer Platform Updates
Alfresco Day Vienna 2015 - Technical Track - Developer Platform UpdatesAlfresco Day Vienna 2015 - Technical Track - Developer Platform Updates
Alfresco Day Vienna 2015 - Technical Track - Developer Platform Updates
 
The Alfresco Platform
The Alfresco PlatformThe Alfresco Platform
The Alfresco Platform
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco API
 
Introduction to SharePoint Framework (SPFx)
Introduction to SharePoint Framework (SPFx)Introduction to SharePoint Framework (SPFx)
Introduction to SharePoint Framework (SPFx)
 
Jive, dropbox and other integrations
Jive, dropbox and other integrationsJive, dropbox and other integrations
Jive, dropbox and other integrations
 

Mais de Angel Borroy López

Before & After Docker Init
Before & After Docker InitBefore & After Docker Init
Before & After Docker Init
Angel Borroy López
 

Mais de Angel Borroy López (20)

Transitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearchTransitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearch
 
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 EuropeAlfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Using Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms togetherUsing Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms together
 
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
 
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
 
Docker Init with Templates for Alfresco
Docker Init with Templates for AlfrescoDocker Init with Templates for Alfresco
Docker Init with Templates for Alfresco
 
Before & After Docker Init
Before & After Docker InitBefore & After Docker Init
Before & After Docker Init
 
Alfresco Transform Services 4.0.0
Alfresco Transform Services 4.0.0Alfresco Transform Services 4.0.0
Alfresco Transform Services 4.0.0
 
Using Podman with Alfresco
Using Podman with AlfrescoUsing Podman with Alfresco
Using Podman with Alfresco
 
Alfresco Embedded Activiti Engine
Alfresco Embedded Activiti EngineAlfresco Embedded Activiti Engine
Alfresco Embedded Activiti Engine
 
Alfresco Transform Core 3.0.0
Alfresco Transform Core 3.0.0Alfresco Transform Core 3.0.0
Alfresco Transform Core 3.0.0
 
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para Docker
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
 
Deploying Containerised Open-Source CSP Platforms
Deploying Containerised Open-Source CSP PlatformsDeploying Containerised Open-Source CSP Platforms
Deploying Containerised Open-Source CSP Platforms
 
Introduction to AWS
Introduction to AWSIntroduction to AWS
Introduction to AWS
 
A Practical Introduction to Apache Solr
A Practical Introduction to Apache SolrA Practical Introduction to Apache Solr
A Practical Introduction to Apache Solr
 
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaDocker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
 
How to Write Alfresco Addons that Last Forever
How to Write Alfresco Addons that Last ForeverHow to Write Alfresco Addons that Last Forever
How to Write Alfresco Addons that Last Forever
 
10 Tips Every New Developer in Alfresco Should Know
10 Tips Every New Developer in Alfresco Should Know10 Tips Every New Developer in Alfresco Should Know
10 Tips Every New Developer in Alfresco Should Know
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Upgrading to Alfresco 6

  • 1. Upgrading to Alfresco 6 The Short History of the Long Road Angel Borroy Developer at UST Global @AngelBorroy angelborroy keensoft
  • 2. Learn. Connect. Collaborate. Upgrading process in a nutshell Previous version 1. Backup database and content store 2. Identify your customizations and addons New version 1. Install Alfresco 6 from scratch… or use public Docker images! 2. Restore database and content store 3. Apply your customizations and addons 4. Start Alfresco and have some fun https://docs.alfresco.com/community/tasks/upgrade-process.html
  • 3.
  • 4. Learn. Connect. Collaborate. Wait a minute… 2010 Peter Monks Alfresco Environment Validation and “Day Zero” Configuration 2011 Frederik Heremans Migration from jBPM to Activiti 2013 Kyle Adams The Art of the Upgrade 2015 Alfresco Tech Talk Live 82 Upgrading to Alfresco 5.0 2017 Ian Wright Upgrading extensions - help is at hand
  • 5. Learn. Connect. Collaborate. Contents • Understanding the Upgrade Process • Elaborating an Upgrade Plan • Identifying Deprecated Features • Adapting your Customizations • Installing your new Alfresco • D-Day considerations
  • 7. Learn. Connect. Collaborate. What is happening behind the scenes Source Alfresco Content Store Database Indexes Halfway Alfresco copy dump N Target Alfresco move move copy patch patch
  • 8. Learn. Connect. Collaborate. Source Alfresco • Test your backups – Database – Content Store – Indexes • Use dump for the Databases • Use rsync for Content Store – So you can perform a quick last rsync just before stopping the service for the upgrading process – Consider only files modified 30 days ago or less from Content Store Deleted • Use rsync for Indexes – Only required for Target Alfresco, as Halfway(s) Alfresco are running in no index mode Source Alfresco
  • 9. Learn. Connect. Collaborate. Halfway Alfresco(s) • Not all Database Patches are included in every Alfresco version – Depending on the Source Alfresco version, several Halfway Alfresco instances must be used • Prepare as many Alfresco Instances as required (3.4, 4.2…) – Deploy only customized Content Models Other addons and customizations can be ignored – Deploying Share web application is not required – Transformation Service is not required ooo.enabled=false jodconverter.enabled=false – Configure noindex mode index.subsystem.name=noindex – Disable scheduled jobs • These instances are used only to patch the Database, so server resources (CPU, RAM…) can be lower than PROD environment Halfway Alfresco
  • 10. Learn. Connect. Collaborate. Target Alfresco • Same (or higher) resources as Source Alfresco • Every configuration, customization and addon is deployed – Probably some adaptations are required • Using original Indexer Subsystem mode to minimize downtime – For instance, configure solr4 mode index.subsystem.name=solr4 • Last Database Patch should be also applied when starting Alfresco Repository for the first time • Just switch your public HTTP proxies to Target Alfresco hostname or IP after validating the environment Target Alfresco
  • 11. Learn. Connect. Collaborate. Database Patches Catalog https://github.com/Alfresco/alfresco-repository/tree/master/src/main/resources/alfresco/patch
  • 12. Learn. Connect. Collaborate. Final adjustments: upgrading SOLR Target Alfresco Content Store Database Indexes Indexer Alfresco Indexes solr4 solr6 Final Alfresco move move move
  • 13. Learn. Connect. Collaborate. Indexer Alfresco • This instance calculates indexes for the new SOLR version while Target Alfresco is being used in real • Same configuration as Target Alfresco can be used, but deploying Share web application is not required • Indexation is a heavy process (in CPU and network bandwidth), so you can consider a nightly only execution • SOLR Web Console can be used to follow indexation progress Indexer Alfresco • Once the indexation is current, you can switch Indexer Subsystem mode to the new SOLR version and (finally)… you’re done!
  • 15. Learn. Connect. Collaborate. Auditing your Source Alfresco Volume • Count of all database tables • Size and number of files in content store • Size of Lucene or Solr indexes Customizations • Custom Content Models • Custom Process Definitions • Installed Modules • Other Customizations or Extensions Source Alfresco OOTB Alfresco
  • 16. Learn. Connect. Collaborate. Preparing your playground Backup • Database dump • Content Store rsync • Indexes rsync Test data • For large Content Stores – Mock up with small files https://github.com/kylefernandadams/alfresco-mock-content-generator
  • 17. Learn. Connect. Collaborate. Defining your upgrade path • Apply the latest Service Pack to your Source Alfresco • Upgrades from 5.0 and 5.1 need to stop at 5.2 • Upgrades from Solr 4/6 subsystems need to upgrade also to Alfresco Search Services 1.2 5.2.x 5.2.x
  • 19. Learn. Connect. Collaborate. Recovery strategy • Prepare for the worst scenario • Preserve your Source Alfresco untouched to switch it live again (quickly) if upgrading process fails Do not perform an in-place upgrade! Kyle Adams – The Art of the Upgrade - 2013
  • 21. Learn. Connect. Collaborate. Alfresco 5 • Alfresco Explorer • AVM (Advanced Versioning Manager) • Lucene • Old Fashioned CMIS API endpoints replaced by clearer ones • CML Web Services SOAP API • JCR / JCR-RMI • URL Addressability API • Social Publishing Features • Blog Publishing Features https://ecmarchitect.com/archives/2014/11/06/3962
  • 22. Learn. Connect. Collaborate. Alfresco 6 • Binary installers • JBoss (aka WildFly), WebSphere and WebLogic • DB2 • Solaris • CIFS (unsupported) • Solr 1 • Share Connector for Activiti integration • Multi-Tenancy https://ecmarchitect.com/archives/2017/12/02/4305
  • 23. Learn. Connect. Collaborate. Alfresco 6.1 • CIFS (removed) • NTLM v1 – Passthru authentication subsystem is no longer available • API Deprecation – TransformService – RenditionService • Additional deprecations planned for 6.x – Embedded Activiti – Share Pages (blogs, calendars, wiki…) – Web Quick Start – Alfresco in the Cloud https://community.alfresco.com/community/ecm/blog/2018/01/03/architecture-changes-for-alfresco-content-services-version-60 https://github.com/Alfresco/acs-packaging/blob/master/CHANGELOG.md
  • 24. Learn. Connect. Collaborate. Alfresco Product Support Status • Product releases • Modules, add-ons and components • SDKs • All items currently EOM – Workdesk – Google Docs v1 and v2 – Quickr Connector – XAM Connector – Alfresco Analytics – … https://www.alfresco.com/alfresco-product-support-status
  • 26. Learn. Connect. Collaborate. Alfresco 6 Backward Compatibility Some addons will work without recompiling nor repackaging them with Alfresco SDK for version 6 • Repository includes relevant Java Library upgrades – Addons must be reviewed • Share code from 5.x is compatible – Everything should work in the same way • ADF 1.x & 2.x code from 5.2.x is compatible • Activiti workflows from 5.x are compatible – But probably you should start thinking of moving them outside ACS Repository
  • 27. Learn. Connect. Collaborate. Alfresco 6 Repository Migration Guide • Hibernate is completely remove from the product – Use iBatis framework if you had custom DAOs • Quartz has been updated to 2.3.0 – Change your Job Spring Bean definitions • Spring has been updated to 5 – Update your XSD declaration for beans – Change your “idreflocal“ to “idrefbean“ clauses – Review your testing code • Jackson has been updated to 2.9.5 – JSON Mappers based in 1.x must be rewritten https://github.com/Alfresco/alfresco-repository/wiki/ACS-6-Migration-Guide
  • 28. Learn. Connect. Collaborate. Integrations Upgrading process preserves UUIDs from Source Alfresco CML Web Services SOAP API • Removed in Alfresco 5.0 • Time to Move! CMIS • 1.1 specification (Atom / Browser) closed in 2017 • Still supported by many products REST API • Old Version still available for Share and other products • Consider migrating to New Version, based in Swagger and designed for Angular apps
  • 30. Learn. Connect. Collaborate. Alfresco 6 By Components • Distribution ZIP – Community https://www.alfresco.com/thank-you/thank-you-downloading-alfresco-community-edition – Enterprise http://support.alfresco.com • Supported Platforms https://docs.alfresco.com/6.0/concepts/supported-platforms-ACS.html • Installation instructions http://docs.alfresco.com/community/concepts/install-community-intro.html http://beecon.buzz/2017/assets/files/EF09/EF09-Installing-Alfresco-components-1-by-1.pdf
  • 31. Learn. Connect. Collaborate. Alfresco 6 Docker Compose • Not supported for Enterprise PROD installations! • Official Docker Images – Community https://hub.docker.com/u/alfresco/ – Enterprise https://quay.io/organization/alfresco • Official Docker Container Compositions – Community https://github.com/Alfresco/acs-community-deployment – Enterprise https://github.com/Alfresco/acs-deployment • Community provided deployments – https://github.com/keensoft/docker-alfresco
  • 32. Learn. Connect. Collaborate. Alfresco 6 Kubernetes • Official Helm Charts not available at https://hub.helm.sh • Official Kubernetes deployment – Community https://github.com/Alfresco/acs-community-deployment – Enterprise https://github.com/Alfresco/acs-deployment Amazon AWS CFN Template https://github.com/Alfresco/acs-deployment-aws
  • 34. Learn. Connect. Collaborate. Monitoring Logs tail, docker logs, kubectl logs Log4j logging levels to TRACE or DEBUG JVM JProfiler, YourKit Database SQL Developer, psql, mysql Performance top, nmon, kill -3
  • 35. Learn. Connect. Collaborate. Common problems Long running patches Depending on your data, some patches can take long time to complete Auditable Behavior Depending on your upgrade path, Auditable Aspect must be disabled during upgrading process Orphaned nodes Content Store Cleaner Job will purge them after upgrading Unindexed nodes Not every node can be indexed
  • 36. Learn. Connect. Collaborate. Validation • Verify that every service, subsystem and protocol is working as expected – Repository, Share, CMIS, REST API, AOS, SOLR – Transformation, Authentication, Synchronization, Search – FTP, WebDAV, AOS, SMTP, IMAP, CIFS • Verify that nodes count is the same • Verify SOLR count and errors • Verify that every addon and customization is still working
  • 37. Learn. Connect. Collaborate. Final Operations Document final operations and inform involved people before going on with the upgrading process Moving forward Switch public addresses to Final Alfresco Going back Restore your Source Alfresco Source Alfresco Final Alfresco
  • 38. Learn. Connect. Collaborate. Downtime Source Alfresco Halfway Alfresco Target Alfresco Indexer Alfresco Final Alfresco Service Downtime Upgrading Finished
  • 39.
  • 40. Upgrading to Alfresco 6 The Short History of the Long Road Angel Borroy Developer at UST Global @AngelBorroy angelborroy keensoft