What’s new with the Alfresco Platform?
Ole Hejlskov
Developer Evangelist
@OleHejlskov
Welcome!
Vision for the Alfresco Platform
Objectives and guiding forces driving development of the Alfresco Platform
3
Build an open and scalable platform to power the rapid development
and deployment of hybrid content centric applications in the Alfresco
extended ecosystem
Platform Vision
4
Pillars of the Alfresco Platform vision
Understanding the vision
Open
Open source, based on Open
Source components and Open
Standards, multi-language
Scalable
Architected to perform at cloud
scale, along multiple scalability
dimensions & different use cases
Development
A product that Devs love, with
comprehensive, stable &
supported APIs and SDKs
Rapid
Offering a high productivity
development environment
and a smooth learning curve
Applications
Smart process applications and
any other integrated
application
Extended ecosystem
Powering both internal and
external (community, partners,
customers) development
Deployment
A product that Ops love, with a
simple yet scalable cloud ready
installation and configuration
Hybrid
The Platform & solutions built
on it must be able to run on
premise or on Cloud (or both)
5
Technology & market innovation driving Alfresco Platform strategy
Driving Forces
Hybrid ECM Innovate at Cloud speed Think Big Customer driven
Platform and solutions should be
able to run on premise, on cloud
or both
Deliver innovation to the on
premise and cloud products with
agility typical of pure SaaS players
Enable the scaling of people,
processes and products
Customer feedback, research,
validation, pretotyping at the core of
ideation and decision making process
6
Key improvement areas in the customer lifecycle
Customer Driven
Backwards
Compatibility
Java Modules
Index
Extreme scale
Backwards
Compatibility
Share Extensions
Modules
Isolation
In place
upgrade
SP & HF
Repository
Extreme
Scale
Backwards
Compatibility
Remote Applications
Alfresco Platform projects
Ongoing developments in the Alfresco Platform
8
Platform Investments
An end to end Platform lifecycle makeover
DeploymentTesting Release Integration Maintenance
Standard Dev Env
Share Separation
API BCKs
Xtreme scalability
Share separation API compatibility
JAR modules
Modules isolation
Dev Docs / Samples
Solr Sharding
Suite installers
In-place SP & HF
API Compatibility
Share separation
Development
9
Testing real life cloud-scale use cases
Extreme Scalability
1. Loading Alfresco on AWS + Aurora up to 1B documents
2. Indexing 1B documents with a sharded Solr configuration (20 shards, with 50M docs)
3. Improve MDQ to support transactional use cases (OR and boolean support)
4. Test real life use cases, starting with Share collaboration and Headless Content
Platform
5. Producing sizing and scalability blueprints based on real data collected at different
data points
10
Some numbers
Extreme Scalability
1. The best document load rate for the number of Alfresco servers, latency and load
balancer thresholds was 1000 documents per second (with 10 nodes); the load rate
was consistent even passing the 1B document
2. A 3.2 TB Aurora database did not show any degradation
3. On 1B docs:
Query: select * from cmis:document where IN_FOLDER('0d10d28f-4671-4077-b888-b7f4eaf1b450') order by cmis:name asc
Paging: Limit 100 and various skips applied to the known 1000 results
Time: 150ms
11
What’s in it for me?
Extreme Scalability
1. Alfresco 5.1 supporting Solr Sharding!
2. Improved Metadata queries (OR and Boolean Support)
3. Updated scalability blueprint for 5.x
4. Updated AWS reference architecture for 5.x
12
Enabling a seamless maintenance for Alfresco
Upgrade Task Force
1. In place application of SP & HF (not major and minor upgrades, for now)
2. Separation of Share and Platform releases for independent consumption (and definition
of a clear compatibility matrix)
3. Consolidation of Public API Lifecycle to ensure high longevity customizations (no need for
re-test)
13
Effects to the product lifecycle
Share / Platform separation
Platform and Share
can be built
and developed
independently
Dev Release Install
Platform and Share
can be released
independently (or
together)
Maintain
Suite and
independent
installers for
Alfresco and Share
Consume new
version of Platform
& Share
independently
And what about compatibility?
14
Modularizing the platform
Breaking the monolith
Alfresco Platform
Core set of functionalities exposing
extension points including Java and
ReST APIs
Transformation services
Can be scaled independently using the
transformation server or in MM for
video transformations
Share services
(New!)Subset of platform functionalities now
extracted in a separate module (AMP)
following the Share release lifecycle
Search services
Can be scaled independently as it relies on
Solr4 standalone (with Replication and
Sharding support)
15
Share separation takeaways
1. Share (only) releases will now contain a share-services.amp which contains Share
specific backing APIs
2. Platform (only) released will no longer contain Share specific Java services
3. Compatibility between Share & Alfresco is driven by the Java (not ReST) APIs
compatibility policy (wait for it…in the next slides!)
4. Expect more frequent Share releases on prem (quarterly) and on cloud
What you need to know!
16
Alfresco for the Developers
1. Comprehensive set of content management & workflow Java and ReST API
2. Modular UI framework to custom business solutions
3. De facto standard based and enterprise ready SDKs for web and mobile development
4. Compatibility between Share & Alfresco is driven by the Java (not ReST) APIs
compatibility policy (wait for it…in the next slides!)
What’s great about Alfresco Dev Platform
17
Multiple ways Alfresco helps you achieve your custom solutions
The Alfresco Developer conundrum
Compatibility
Dev Env
Compatibility
Aikau based
Dev Env
StrategicTactical
18
Consolidate & Extend
Platform execution strategy
Consolidate
Alfresco 5.1
Extend
Post Alfresco 5.1
19
Developer platform consolidation
1. Documentation of Extension (Platform Java & Share) & integration (ReST) points
Move old ReST API to Limited Support and double down on new Alfresco One API
Cleary identify and document supported Java and Share
2. API lifecycle, support and Backward compatibility
In process - Major version support
ReST - Independently versioned and inherently backward compatible
3. Customer success driven tactical investments on the Java platform & modules
JAR simple module support (for Alfresco and Share)
Physical isolation of modules without need to modify Alfresco (immutable)
Share modules support and reporting
Ongoing activities targeting Alfresco.next
20
docs.alfresco.com/5.0/concepts/dev-extensions-share-extension-points-introduction.html
Status
Live on Alfresco Docs
For each extension point
Clear documentation
Sample code (easily forkable)
A Support status
Major version compatibility
A glimpse on the improved Alfresco Dev Experience
Share extension points documentation
How can you help
Send feedback to me,
ole.hejlskov@alfresco.com or via
Alfresco DEVPLAT project
21
docs.alfresco.com/5.0/concepts/dev-extensions-share-extension-points-introduction.html
Status
Live on Alfresco Docs
For each extension point
Clear documentation
Sample code (easily forkable)
A Support status
Major version compatibility
A glimpse on the improved Alfresco Dev Experience
Platform extension points documentation
How can you help
Send feedback to me,
ole.hejlskov@alfresco.com or via
Alfresco DEVPLAT project
22
So what about compatibility?
1. Major version for Platform and Share extensions (modules)
Your custom module built on 5.1 Public API will work throughout the whole 5.x
Alfresco modules can be compatible for a major version
2. ReST API version driven support for integrations (standalone apps)
Not bound to the Alfresco version
Clear rules for versioning of ReST APIs
Should ideally never need to version, requires client side discoverability
For internal and external Alfresco extensions and integrations
23
Alfresco SDK
What’s out already
Alfresco SDK 2.1.0 - Compatible with 5.0, with hot reloading (Platform & Share)
What’s on the way
Alfresco SDK 2.1.1 - Multiple bug-fixes, backward compatible
Together with Alfresco next
Fully supported, easily forkable and complete set of samples on alfresco-sdk-
samples (in Github)
Improved hot reloading
Customer value driven prioritization of Public Github issues. Request
enhancements at https://github.com/Alfresco/alfresco-sdk/issues
Making Alfresco development even more productive, safe and fun
What & when?
An outlook to our target Platform release plan
25
n provided in the following slide is roadmap information and therefore subtle to change in subject, timeline
26
Platform release targets
1. Target: 5.1 —> End of primo 2016
Both Platform and Share 5.1 releases
Includes all major Developer Platform improvements
Solr sharding and TXN MDQ improvements
2. Post 5.1 —> 2016
Share can follow a more frequent / independent release schedule
Independent maintenance schedules
Strategic improvements in the ReST API (vs Java), functionally and non functionally
More modularization, for agility and scalability purposes
27
Take-aways
1. API Lifecycle
Fundamental to avoid dependency hell
Clear, documented, easy to use and supported extension points
Key factor to drive seamless upgrades
2. Extreme Scalability
Solr Sharding
MDQ improvements
Tools and collaterals for sizing, scalability and reference architectures
3. Share separation
4. Upgrade task force
What you really need to remember about today’s session
Conclusions and Q/A
29
WHAT WHY WHERE WHEN WHO HOW
Any Question ???
Feel free to send your feedback at ole.hejlskov@alfresco.com or on twitter @OleHejlskov

Alfresco Day Vienna 2015 - Technical Track - Developer Platform Updates

  • 1.
    What’s new withthe Alfresco Platform? Ole Hejlskov Developer Evangelist @OleHejlskov Welcome!
  • 2.
    Vision for theAlfresco Platform Objectives and guiding forces driving development of the Alfresco Platform
  • 3.
    3 Build an openand scalable platform to power the rapid development and deployment of hybrid content centric applications in the Alfresco extended ecosystem Platform Vision
  • 4.
    4 Pillars of theAlfresco Platform vision Understanding the vision Open Open source, based on Open Source components and Open Standards, multi-language Scalable Architected to perform at cloud scale, along multiple scalability dimensions & different use cases Development A product that Devs love, with comprehensive, stable & supported APIs and SDKs Rapid Offering a high productivity development environment and a smooth learning curve Applications Smart process applications and any other integrated application Extended ecosystem Powering both internal and external (community, partners, customers) development Deployment A product that Ops love, with a simple yet scalable cloud ready installation and configuration Hybrid The Platform & solutions built on it must be able to run on premise or on Cloud (or both)
  • 5.
    5 Technology & marketinnovation driving Alfresco Platform strategy Driving Forces Hybrid ECM Innovate at Cloud speed Think Big Customer driven Platform and solutions should be able to run on premise, on cloud or both Deliver innovation to the on premise and cloud products with agility typical of pure SaaS players Enable the scaling of people, processes and products Customer feedback, research, validation, pretotyping at the core of ideation and decision making process
  • 6.
    6 Key improvement areasin the customer lifecycle Customer Driven Backwards Compatibility Java Modules Index Extreme scale Backwards Compatibility Share Extensions Modules Isolation In place upgrade SP & HF Repository Extreme Scale Backwards Compatibility Remote Applications
  • 7.
    Alfresco Platform projects Ongoingdevelopments in the Alfresco Platform
  • 8.
    8 Platform Investments An endto end Platform lifecycle makeover DeploymentTesting Release Integration Maintenance Standard Dev Env Share Separation API BCKs Xtreme scalability Share separation API compatibility JAR modules Modules isolation Dev Docs / Samples Solr Sharding Suite installers In-place SP & HF API Compatibility Share separation Development
  • 9.
    9 Testing real lifecloud-scale use cases Extreme Scalability 1. Loading Alfresco on AWS + Aurora up to 1B documents 2. Indexing 1B documents with a sharded Solr configuration (20 shards, with 50M docs) 3. Improve MDQ to support transactional use cases (OR and boolean support) 4. Test real life use cases, starting with Share collaboration and Headless Content Platform 5. Producing sizing and scalability blueprints based on real data collected at different data points
  • 10.
    10 Some numbers Extreme Scalability 1.The best document load rate for the number of Alfresco servers, latency and load balancer thresholds was 1000 documents per second (with 10 nodes); the load rate was consistent even passing the 1B document 2. A 3.2 TB Aurora database did not show any degradation 3. On 1B docs: Query: select * from cmis:document where IN_FOLDER('0d10d28f-4671-4077-b888-b7f4eaf1b450') order by cmis:name asc Paging: Limit 100 and various skips applied to the known 1000 results Time: 150ms
  • 11.
    11 What’s in itfor me? Extreme Scalability 1. Alfresco 5.1 supporting Solr Sharding! 2. Improved Metadata queries (OR and Boolean Support) 3. Updated scalability blueprint for 5.x 4. Updated AWS reference architecture for 5.x
  • 12.
    12 Enabling a seamlessmaintenance for Alfresco Upgrade Task Force 1. In place application of SP & HF (not major and minor upgrades, for now) 2. Separation of Share and Platform releases for independent consumption (and definition of a clear compatibility matrix) 3. Consolidation of Public API Lifecycle to ensure high longevity customizations (no need for re-test)
  • 13.
    13 Effects to theproduct lifecycle Share / Platform separation Platform and Share can be built and developed independently Dev Release Install Platform and Share can be released independently (or together) Maintain Suite and independent installers for Alfresco and Share Consume new version of Platform & Share independently And what about compatibility?
  • 14.
    14 Modularizing the platform Breakingthe monolith Alfresco Platform Core set of functionalities exposing extension points including Java and ReST APIs Transformation services Can be scaled independently using the transformation server or in MM for video transformations Share services (New!)Subset of platform functionalities now extracted in a separate module (AMP) following the Share release lifecycle Search services Can be scaled independently as it relies on Solr4 standalone (with Replication and Sharding support)
  • 15.
    15 Share separation takeaways 1.Share (only) releases will now contain a share-services.amp which contains Share specific backing APIs 2. Platform (only) released will no longer contain Share specific Java services 3. Compatibility between Share & Alfresco is driven by the Java (not ReST) APIs compatibility policy (wait for it…in the next slides!) 4. Expect more frequent Share releases on prem (quarterly) and on cloud What you need to know!
  • 16.
    16 Alfresco for theDevelopers 1. Comprehensive set of content management & workflow Java and ReST API 2. Modular UI framework to custom business solutions 3. De facto standard based and enterprise ready SDKs for web and mobile development 4. Compatibility between Share & Alfresco is driven by the Java (not ReST) APIs compatibility policy (wait for it…in the next slides!) What’s great about Alfresco Dev Platform
  • 17.
    17 Multiple ways Alfrescohelps you achieve your custom solutions The Alfresco Developer conundrum Compatibility Dev Env Compatibility Aikau based Dev Env StrategicTactical
  • 18.
    18 Consolidate & Extend Platformexecution strategy Consolidate Alfresco 5.1 Extend Post Alfresco 5.1
  • 19.
    19 Developer platform consolidation 1.Documentation of Extension (Platform Java & Share) & integration (ReST) points Move old ReST API to Limited Support and double down on new Alfresco One API Cleary identify and document supported Java and Share 2. API lifecycle, support and Backward compatibility In process - Major version support ReST - Independently versioned and inherently backward compatible 3. Customer success driven tactical investments on the Java platform & modules JAR simple module support (for Alfresco and Share) Physical isolation of modules without need to modify Alfresco (immutable) Share modules support and reporting Ongoing activities targeting Alfresco.next
  • 20.
    20 docs.alfresco.com/5.0/concepts/dev-extensions-share-extension-points-introduction.html Status Live on AlfrescoDocs For each extension point Clear documentation Sample code (easily forkable) A Support status Major version compatibility A glimpse on the improved Alfresco Dev Experience Share extension points documentation How can you help Send feedback to me, ole.hejlskov@alfresco.com or via Alfresco DEVPLAT project
  • 21.
    21 docs.alfresco.com/5.0/concepts/dev-extensions-share-extension-points-introduction.html Status Live on AlfrescoDocs For each extension point Clear documentation Sample code (easily forkable) A Support status Major version compatibility A glimpse on the improved Alfresco Dev Experience Platform extension points documentation How can you help Send feedback to me, ole.hejlskov@alfresco.com or via Alfresco DEVPLAT project
  • 22.
    22 So what aboutcompatibility? 1. Major version for Platform and Share extensions (modules) Your custom module built on 5.1 Public API will work throughout the whole 5.x Alfresco modules can be compatible for a major version 2. ReST API version driven support for integrations (standalone apps) Not bound to the Alfresco version Clear rules for versioning of ReST APIs Should ideally never need to version, requires client side discoverability For internal and external Alfresco extensions and integrations
  • 23.
    23 Alfresco SDK What’s outalready Alfresco SDK 2.1.0 - Compatible with 5.0, with hot reloading (Platform & Share) What’s on the way Alfresco SDK 2.1.1 - Multiple bug-fixes, backward compatible Together with Alfresco next Fully supported, easily forkable and complete set of samples on alfresco-sdk- samples (in Github) Improved hot reloading Customer value driven prioritization of Public Github issues. Request enhancements at https://github.com/Alfresco/alfresco-sdk/issues Making Alfresco development even more productive, safe and fun
  • 24.
    What & when? Anoutlook to our target Platform release plan
  • 25.
    25 n provided inthe following slide is roadmap information and therefore subtle to change in subject, timeline
  • 26.
    26 Platform release targets 1.Target: 5.1 —> End of primo 2016 Both Platform and Share 5.1 releases Includes all major Developer Platform improvements Solr sharding and TXN MDQ improvements 2. Post 5.1 —> 2016 Share can follow a more frequent / independent release schedule Independent maintenance schedules Strategic improvements in the ReST API (vs Java), functionally and non functionally More modularization, for agility and scalability purposes
  • 27.
    27 Take-aways 1. API Lifecycle Fundamentalto avoid dependency hell Clear, documented, easy to use and supported extension points Key factor to drive seamless upgrades 2. Extreme Scalability Solr Sharding MDQ improvements Tools and collaterals for sizing, scalability and reference architectures 3. Share separation 4. Upgrade task force What you really need to remember about today’s session
  • 28.
  • 29.
    29 WHAT WHY WHEREWHEN WHO HOW Any Question ??? Feel free to send your feedback at ole.hejlskov@alfresco.com or on twitter @OleHejlskov