Collabora Productivity
Collabora Online: Real-time Collaboration on Documents
By Jan Holešovský Development Manager at Collabora Productivity [email protected] @JHolesovsky +holesovsky Skype: janholes
Collabora Productivity www.collaboraoffice.com Collabora Online
High fidelity, WYSIWYG rendering
● A tough problem; 20+ years of code.
Great Interoperability Support:
● DOC, DOCX, PPT, PPTX, XLS, XLSX + ODF.
● Import/View Visio, Publisher + 100 more
Easy to deploy
● No database, plain C++ binaries, no expensive dependencies
Rich Document Collaboration
● More and more features known from the desktop LibreOffice / Collabora Office exposed with every version 2 Collabora Productivity www.collaboraoffice.com Integrating with Partners ...
Collabora: no SaaS product, no EFSS, no Mail, no Video conferencing, no … simply Office.
Collabora Productivity www.collaboraoffice.com CODE: Collabora Online Development Edition
CODE – grab the latest Docker image and/or packages
● http://collaboraoffice.com/code
● ~2 million Docker pulls
Richdocuments: A simple ownCloud or Nextcloud extension
● No core changes required, easy to deploy
● Reference, but it’s easy to create other integrations via WOPI protocol 4 Collabora Productivity www.collaboraoffice.com Demo / what it looks like
Collabora Productivity www.collaboraoffice.com Demo / what it looks like #2
Collabora Productivity www.collaboraoffice.com New in 3.0: Dialogs from LibreOffice
Exposing advanced features
● Advanced character, paragraph and page properties
● Line, fill, cell properties, etc.
● All that collaboratively!
Collabora Productivity www.collaboraoffice.com Deployment Example Deployment EFSS clustered storage Advanced - including an HA setup... Collabora Online Worker Nodes Users Load balancing access to EFSS Talking WOPI HA balancer of choice: ha-proxy, nginx, F5, ...
https:// Load balancing Collabora document Online editing Worker Nodes Key attribute is to ensure that all traffic related to the same document goes to the same worker – all collaborators end up in the same address space. Balancing on WOPISrc 9 Collabora Productivity www.collaboraoffice.com Hardware Sizing – per node
Guidelines:
● 10 active documents / CPU thread
● 50Mb RAM / active user
● 100kbit/s / active user
5000 ‘users’ → diversity → 500 concurrent users
● 50 CPU threads
● 25 Gb of RAM
● 50 Mbit of bandwidth
Can setup today on a single large machine. 10 Collabora Productivity www.collaboraoffice.com Under the hood
Collabora Productivity www.collaboraoffice.com Security: The onion ...
Regular Penetration Testing
Layered approach to protecting infrastructure ... Virtual Machine / Docker Container
Document Data Isolation into chroots seccomp-bpf ~no bad syscalls ... extremely sparse filesystem chroot per document / user ... systematic load crash testing Industry beating coverity score.
LibreOfficeKit rendering instance
Collabora Productivity www.collaboraoffice.com Security: Pixels to the people ….
Looks and feels like a local editor
Client has ~only bitmaps
● Document data stays on the server
● Lock-down options:
● disable download, copy, paste, print, etc.
● Optional watermarking of each tile:
13 Collabora Productivity www.collaboraoffice.com WOPI – integration & extensions ... WOPI – the details
Protocol that you have to implement when integrating Collabora Online
● Ties together auth & I/O
● https://wopi.readthedocs.org/en/latest/
WOPI extensions
● Additional properties in CheckFileInfo for eg. avatars
● Additional authentication methods
● UI lockdown
Collabora Productivity www.collaboraoffice.com Biggest difference: No locking
The WOPI spec. insists on file locking
● But that’s against how the EFFS usually work – people can work offline and upload the new versions of the document
Collabora Online uses timestamps instead
● When there is a conflict of versions, the user is presented with a dialog asking to resolve the conflict
● When the session is inactive, it is transparently updated after the user activates it again
Collabora Productivity www.collaboraoffice.com Why Collabora ? What you get ...
Customer Portal access
● Access to Collabora Online binaries & update channels.
● Full Technical Docs
● Setup, deployment,
● User manual
● Support ticketing system – file & fix.
Laser focus:
● Documents only!
● Not an EFSS, not E-mail, not Video Conferencing 18 Collabora Productivity www.collaboraoffice.com Partners & Customers
Product Management interaction
● Driving our development
Responsive support & winning tenders together
CEO | CTO at Adfinis SyGroup AG
Airsoft action:
19 Collabora Productivity www.collaboraoffice.com A Partnership with LibreOffice community
~200 million LibreOffice user-base Ubuntu LTS Roadmap A 10k user survey. ~1000 people helping to develop LibreOffice “Help Ubuntu set the Default Apps” 300 individual committers in the last year
Vendor Neutral Berlin-based Stiftung
Product developed in public.
20 Collabora Productivity www.collaboraoffice.com Backed by a real, diverse community Commits per month by affiliation RedHat 2000 Collabora 1800 Assigned 1600 1400 CIB 1200 TDF 1000 Peralex 800 SIL 600 Munich 400 Canonical 200 Apache Volunteer 0 Linagora 1 1 1 1 1 1 1 1 1 1 1 1 1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 Nou & Off 8 9 0 1 2 1 2 3 4 5 6 7 8 -0 -0 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 6 6 6 6 6 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 SUSE 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2
21 Collabora Productivity Conference 2017: Guests of the City of Rome www.collaboraoffice.com What we did in the last year (since 2.0) Collabora Online 2.1 ...
Upgraded to common code with Collabora Office 5.3
Performance:
● Memory reduction – reduce guidance 50% + OOM
● CPU perf. wins + anti-aliased rendering
● B/W reduction – avoiding un-changed tile updates
Collaboration:
● Client-side JS animated commenting and change tracking
23 Collabora Productivity www.collaboraoffice.com Collabora Online 2.1 ...
Internal re-design: simplifying threading
Security Improvements
● seccomp-bpf: pre-emptive kernel API sub-setting
● Content Security Policy / header improvements
● stronger admin password hashing
Calc
● 500k rows re-work
● Active cell reference
24 Collabora Productivity www.collaboraoffice.com Collabora Online 2.1.x
Avatar support
Improved Admin Console
● View by users
● Modified?
25 Collabora Productivity www.collaboraoffice.com Collabora Online 2.1.x
Chart sub-object editing & position
New platforms
● RHEL6
● SLES11SP4
● Debian 9
Config expansion
● rlimits, memory handling, etc.
26 Collabora Productivity www.collaboraoffice.com Collabora Online 3.0
Exposing advanced features via dialog tunneling
● Advanced character, paragraph and page properties
● Line, fill, cell properties, etc.
● All that collaboratively!
Collabora Productivity www.collaboraoffice.com Ongoing work for 3.x & beyond
Interoperability – LibreOffice 6.0
● Lots of of file-format fixing
● New Pivot Charts feature
● Improved EMF+/EMF rendering
Latency & Bandwidth
● Much improved tile compression …
And more ...
28 Collabora Productivity www.collaboraoffice.com Collabora Productivity Summary
● Georgeous, interoperable, easy to integrate document collaboration
● Continuous improvement based on a deep customer & partner discussion
● Services & Support from Collabora
● Collabora Productivity: The driving force behind LibreOffice Online.
By Jan Holešovský @JHolesovsky +holesovsky Skype: janholes [email protected]