Productivity

Collabora Online: Real-time on Documents

By Jan Holešovský Development Manager at Collabora Productivity [email protected] @JHolesovsky +holesovsky Skype: janholes

Collabora Productivity www.collaboraoffice.com

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 , 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 image and/or packages

● http://collaboraoffice.com/code

● ~2 million Docker pulls

Richdocuments: A simple ownCloud or 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 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

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]