View
282
Download
2
Category
Preview:
Citation preview
Vision for the Alfresco PlatformObjectives and guiding forces driving development of the Alfresco Platform
3
Build an open and scalable platform to power the rapid developmentand deployment of hybrid content centric applications in the Alfresco extended ecosystem
Platform Vision
4
Pillars of the Alfresco Platform visionUnderstanding the vision
OpenOpen source, based on Open Source components and Open Standards, multi‐language
ScalableArchitected to perform at cloud scale, along multiple scalability
dimensions & different use cases
DevelopmentA product that Devs love, with
comprehensive, stable & supported APIs and SDKs
RapidOffering a high productivity development environment and a smooth learning curve
ApplicationsSmart process applications and
any other integrated application
Extended ecosystemPowering both internal and
external (community, partners, customers) development
DeploymentA product that Ops love, with a simple yet scalable cloud ready installation and configuration
HybridThe Platform & solutions built on it must be able to run on premise or on Cloud (or both)
5
Technology & market innovation driving Alfresco Platform strategyDriving Forces
Hybrid ECM Innovate at Cloud speed Think Big Customer drivenPlatform 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 lifecycleCustomer Driven
Backwards CompatibilityJava Modules
IndexExtreme scale
BackwardsCompatibility
Share Extensions
ModulesIsolation
In place upgrade SP & HF
RepositoryExtreme
Scale
BackwardsCompatibility
Remote Applications
8
Platform InvestmentsAn 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 casesExtreme 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 numbersExtreme 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 AlfrescoUpgrade 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 lifecycleShare / 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 platformBreaking the monolith
Alfresco Platform
Core set of functionalities exposing
extension points including Java and
ReST APIs
Transformation servicesCan 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 servicesCan 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 solutionsThe Alfresco Developer conundrum
Compatibility
Dev Env
Compatibility
Aikau based
Dev Env
StrategicTactical
19
Developer platform consolidation1. Documentation of Extension (Platform Java & Share) & integration (ReST) points
Move old ReST API to Limited Support and double down on new Alfresco One APICleary identify and document supported Java and Share
2. API lifecycle, support and Backward compatibility In process ‐Major version supportReST ‐ Independently versioned and inherently backward compatible
3. Customer success driven tactical investments on the Java platform & modulesJAR simple module support (for Alfresco and Share)Physical isolation of modules without need to modify Alfresco (immutable)Sharemodules support and reporting
Ongoing activities targeting Alfresco.next
20
docs.alfresco.com/5.0/concepts/dev‐extensions‐share‐extension‐points‐introduction.html
StatusLive on Alfresco Docs
For each extension pointClear documentationSample code (easily forkable)A Support statusMajor version compatibility
A glimpse on the improved Alfresco Dev ExperienceShare extension points documentation
How can you help
Send feedback to me,ole.hejlskov@alfresco.com or viaAlfresco DEVPLAT project
21
docs.alfresco.com/5.0/concepts/dev‐extensions‐share‐extension‐points‐introduction.html
StatusLive on Alfresco Docs
For each extension pointClear documentationSample code (easily forkable)A Support statusMajor version compatibility
A glimpse on the improved Alfresco Dev ExperiencePlatform extension points documentation
How can you help
Send feedback to me,ole.hejlskov@alfresco.com or viaAlfresco 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.xAlfresco modules can be compatible for a major version
2. ReST API version driven support for integrations (standalone apps)Not bound to the Alfresco versionClear rules for versioning of ReST APIsShould ideally never need to version, requires client side discoverability
For internal and external Alfresco extensions and integrations
23
Alfresco SDKWhat’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 compatibleTogether with Alfresco next
Fully supported, easily forkable and complete set of samples on alfresco‐sdk‐samples (in Github)Improved hot reloadingCustomer 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
25
provided in the following slide is roadmap information and therefore subtle to change in subject, timeline
26
Platform release targets1. Target: 5.1 —> End of primo 2016
Both Platform and Share 5.1 releasesIncludes all major Developer Platform improvementsSolr sharding and TXN MDQ improvements
2. Post 5.1 —> 2016Share can follow a more frequent / independent release scheduleIndependent maintenance schedulesStrategic improvements in the ReST API (vs Java), functionally and non functionallyMore modularization, for agility and scalability purposes
27
Take-aways1. API Lifecycle
Fundamental to avoid dependency hellClear, documented, easy to use and supported extension pointsKey factor to drive seamless upgrades
2. Extreme ScalabilitySolr ShardingMDQ improvementsTools 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
Recommended