 So let me reintroduce again. My name is Eduardo Delano, software developer at one and one and today we'll present how we've integrated LibreOffice online into the one-on-one mail and media ecosystem, very important mail and media. So mail and media develops two of the largest internet portals in Germany, WebD and Jmix. I think you know them. And besides those they have portals for international brands like in UK, Spain or France, Jmix International and for US there is the portal mail com. So the presentation is how we've integrated and what architecture we have used of the LibreOffice online into these major portals. The presentation is structured on three important aspects. Why we've chosen LibreOffice online and what are the products that we've built based on LibreOffice online? Short introduction of the architecture that we've we've developed using LibreOffice online, how the architecture looks, how we deploy and how we monitor the whole products. And last part is a little bit about what contributions we have made in this year, starting from February and the short demo of the portal, of the international portal. Okay, why we've chosen LibreOffice online? As I've said one-on-one and let's say Jmix brand portal has services like email services like cloud and many other. So they had the cloud where you can store documents but they didn't have any solutions for visualizing or for editing those documents. So this is what we've missed. So for view, we needed a solution. Okay. The same for edit. For view, we are using LibreOffice online and we've built the online office viewer product based on LibreOffice online. And we are using the only component, the best component that we can use from LibreOffice online for for viewing documents, the low convert to REST API. What we are doing is we are converting the documents into PDFs and after that we render the documents using PDF.js library in the UI. So this is one product that we've built based on LibreOffice online. For editing is more simpler because we created online office editor is the name of the product inside one-on-one. But it actually leverages all the editing capabilities offered by LibreOffice online by the open source product. Okay, so now we can view and edit the files from cloud. What about mail attachments? Because one-on-one receives emails with attachments and you want to maybe to preview the attachments not to download to your local or maybe you want to edit the attachments and after that send the email again. So we have implemented the view of the email attachments and we are in the progress of developing the editing of the email attachments through the online office editor. Let's see a little bit how it looks. So in the top right corner we have the cloud where you can upload the files. For the cloud we can both view and edit the files as you've seen in the picture when you press right-click you have the option edit and after you click edit it will go directly into the online office application, starting the LibreOffice container, the LibreOffice view and starting to edit the file. And at the bottom we have view from the mail attachments, from an email where we receive an attachment and we have the option to view, to preview the attachment and we'll see how it looks. For the moment don't have the edit, the capability to edit the attachment, but this will be available soon. Okay, let's see how the look and feel on various brands. So this is the WebD brand, the WebD brand. We have the online office application. We have a sidebar on the left of the view. From where you can create documents, you can create blank documents, text, presentation and spreadsheet. After that you have the view of your active documents. And we have three possibilities. The first one is to browse through your cloud documents in order to edit them. We have an option to upload your local documents, to upload directly into the cloud and start editing them. And the last option that we have in the sidebar is displaying the most recently edited files in the portal. Okay, so as I said, this is the WebD portal for German customers. The same for JMXnet. It looks the same, only the teaming for the portals is different. As you see, we are loading the LibreOffice online iframe. The version that we are currently using is 6.1. Okay. This is the international brand, JMXCOM. Where we have presentation in the edit mode. Okay. If you don't like the sidebar, both the sidebar and the navigator, and you think that this somehow doesn't allow you to edit the document in a nice view, we can enter in a full screen mode and we can hide the navigator and the sidebar. And this is accepting the two icons from the left corner. The left top corner is the full LibreOffice online view and the full LibreOffice online application, India. Okay. And this is how the online office editor looks like without any open document. So it's only the sidebar and on the center it will wait to open an iframe with a document that needs to be edited. Okay. So in short terms and in short words, this is the online office editor. This is how it looks. Let's see how the online office viewer looks. In this image, I previewed a document that I have stored in the cloud. So by simply clicking it, the document was, as you've seen in the name, it's in the ODT format. So what the application does, it converts the ODT through LibreOffice online to the convert to API into PDF. And after that, it renders the file into the browser through PDF.js library. This is very useful because the other option will be to download the file and to open the file locally. So in this way, you are not exiting the application. And you can preview more quickly. Okay. So this is why we've wanted to integrate LibreOffice online. These are the two main solutions that we built through LibreOffice online. The online office viewer and the online office editor. And now let's talk a little bit of how we've done it. The architecture overview. And we'll start with the system solution. Okay. So I guess the diagram isn't different than the rest than the other diagrams that were presented here. Let's start from the left. So we have the landing page, the one that we've seen earlier. And all the Lolaflit pages are loaded as iframes. So the Lolaflit will mean active document that is currently edited. But the parent iframe is the landing page. Our landing page from where you can browse through your open, through your cloud documents from where you can create. Upload the documents or from where you can see that most recently used. So after you choose a document to edit, the story is the one that you've already heard about LibreOffice online. So we are creating the WebSocket. The same, the WebSocket goes to proxy balancer, and after that LibreOffice online handles all the work. For whoopie, for integration with whoopie, the cloud from media didn't know the whoopie rest API. So we've needed to create an adapter for that in order to facilitate the communication between LibreOffice online and the cloud. It was considered the fact that you only need three operations to start the editing of the file. You need to get file metadata, get document and upload document. It was really easy to start the integration with the cloud. What's really important is that all the online office editor modules are deployed using Kubernetes, and this facilitates us to quickly scale the number of instances, the number of LibreOffice online instances, the number of the proxy of the balancers and the number of the storage adapter. Getting to more details about the system solution. I think I've covered most of the aspects, but let's review them again. The landing page allows to create documents from blank templates. We will have a feature from where we can choose specific templates like CV or brochure, and you can create the documents more quickly in the cloud in ODF format, and after that you can add it through LibreOffice. You can browse through your cloud documents to open them in edit mode. You can upload from local, and you can see the most recently used documents. The balancer is only a middleware. It facilitates the communication between the client and LibreOffice online, but it also can implement authentication, session management, and the most important load balancing between LibreOffice online nodes. The storage adapter is very simple. As I said, it facilitates only the communication between LibreOffice online and the cloud, and it's an adapter of the request. Let's go to the interesting part of Kubernetes. Especially for LibreOffice online, we've packaged LibreOffice online as a Docker container and deployed it in Kubernetes. How we are doing this is through Helm. Helm is the package manager for Kubernetes, and it uses as packaging type the chart in abstraction. The chart is all the collection of files that you are seeing here in the LibreOffice online example. This is an example from Kubernetes site. So in the end, the chart will be a representation, a metadata representation of the Kubernetes resources, like deployment services, POD. POD is the smallest unit of abstraction for Kubernetes. For us, POD means one LibreOffice container, because in POD, you can have multiple containers, but for us, POD means a LibreOffice online container. As you've seen, you have a lot of metadata that some of them are mandatory, some of them are not optional, but the important directory in the LibreOffice online chart is the templates where you specify the templates, meaning how the deployment will look like in Kubernetes. I've added in the present... You cannot see. So in the presentation, we'll have some links that will go through the Kubernetes documentation, and you can find all the needed information from there, but the help chart is quite easy to write, and after that, if you have a Docker container, a Docker image of LibreOffice online is very easy to deploy. Why Kubernetes was chose for the deployment environment is the capability to autoscale the number of instances, the number of pods. Let's talk a little bit about this. The resource that facilitates this in Kubernetes is called the Horizontal POD Autoscale, and how it works. We have the pods where, in our example, are the LibreOffice online containers, and there is a service called Metric Server inside Kubernetes that is packaged when you install Kubernetes. That queries from these pods metrics like CPU, memory, or even you can configure it to query for custom metrics. Let's say that we have a metric in LibreOffice online that says that the number of active documents that are currently edited through that instance. So the Metric Server could query for that metric. But for us, we are only checking the CPU and memory. So the Metric Server checks the CPU and memory for each pod, and in the Horizontal POD Autoscale, as you've seen in the image, we have some thresholds. You see that the memory has a threshold of 70%, and the CPU the same, 70%. So whenever the threshold is... Whenever we pass the threshold, the Horizontal POD Autoscale takes the decision and instructs the deployment of Kubernetes to scale up or to scale down, depending on the traffic. In this way, if we pass the threshold, for example, for the memory, the Horizontal POD Autoscale will tell the deployment resource from Kubernetes to create another instance of LibreOffice online. As you've seen in the example, the threshold is 70%. We can configure it to say, okay, we want a minimum number of replicas of LibreOffice online replicas, and we've set it to one, and a maximum number of replicas, and we've set it on three. And based on the actual load, the Kubernetes takes the decision and scales down and scales up. In this example, the current number of pods are two. But this is decided based on the load on the traffic that each pod receives. Okay, monitoring. So LibreOffice online has that in console. But we've wanted the monitoring solution when we have multiple LibreOffice online instances. So in this way, we are using Prometheus for storing the matrices and Grafana for visualizing those. So it's very easy to integrate Prometheus with, let's say, Kubernetes or any other applications. Prometheus only needs an endpoint, a rest endpoint, where you write all the metrics that you want to expose. So this is a custom change that we've done and that we'll want to make it available in the community. We've created a rest endpoint and we've added the matrices that we want to visualize. And in Kubernetes, we've configured that the Prometheus instance that we have will query the metrics from each node and they will store it. And for visualizing, as you see here, we are using Grafana and it will show nice charts and we can monitor more quickly. For example, the global memory that LibreOffice instances is using, the maximum load duration for a view when a document is currently edited, and many other. Okay, that was short the architecture, the short introduction of the architecture, the deployment through Kubernetes, the most important, the horizontal pod autoscaler that allows us to scale the number of LibreOffice online instances and how the monitoring works for us. Let's talk a little bit about the contribution added by 1&1 and I will go after that and present a short demo. So we start contributing from February this year and I will say that the most important contribution that we have was made by Gabriel, my colleague from 1&1 that is present here was the WebSocket defragmentation. After that, we have some small cross-site scripting fixes based on security testing that we had. Also, we've upgraded a lot of the libraries like Vex.js, Shrimpac, small fixes like detecting password-protective files when we are using the code to REST API and one important thing was that we discovered and reported the CVE related to the LibreLogo, global events script execution, I think in the past month. What are our custom changes that we want to backport to the community is, for example, the SSL to cloud provider. So the communication between LibreOffice online and the cloud could be more protected by providing, let's say, client authentication through SSL certificates. This is something that we have and could be backported to the community and it will stronger the communication between LibreOffice and online and any other cloud provider. CDN integration for the static resources of Lola Fleet. Currently, the static resources are served by the LibreOffice online server and those can be put in a CDN content delivery network platform and they could be served from wherever country it's close. And what I've talked about the monitoring has months. As I said, we've added some metrics to the admin module. We've exposed it through the REST endpoint that I was talking about and that endpoint could be used by Prometheus integration and from there you can create your own charts to visualize a set of number of LibreOffice instances. Yeah, and it could help if you are a fan of Grafana and Prometheus. Okay, let's see how I can do them short. So, this is Helm Indian Kubernetes. There is a lot of documentation of how we can create. But let's go back to the GMX portal and the demo. Okay, so the left sidebar from where we can create templates so we can create presentation quickly. It opens the iframe with the current file. We can see where the file is stored. It is stored in the Cloud MyOffice files so if we navigate to Cloud MyOffice files we can see it, then we'll spread it. Also, I've talked about the options that we have. We can browse to our active documents and open them in EditView. One feature that we've just added, for example, is the welcome tour. So, we have some customers that didn't know how to use LibreOffice. Not LibreOffice but, yeah, the editing capabilities of the LibreOffice. So, we've thought about a way of presenting different options that they can do through the Editor instance. And we've created this welcome tour and it shows you different steps like format, text formatting, inserting images, editing, repairing the document and after that it will go to the sidebar, information about the sidebar. The welcome tour changes based on the type of the document that you are currently editing. Let's talk about the upload. So, we can upload from local the presentation. It will be saved in the Cloud MyOffice file and you can start editing it. The resolution is OK. All these files you can see in the recently used files. So, if we closed one of them and you want to edit, just open from here. So, this is the online office editor for online office viewers. So, we are in the Cloud. So, we want to preview a file. We just need to click it. The file, it will be converted into the PDF and the PDF will be rendered in the browser through the PDF.js library and we can more easily look at it. And the same story is for email attachments. Let's say we have an attachment and we want to preview it. The same model, the same iframe will load with the document converted to PDF and after that we can browse through it. The next step will be to have the option to edit, to save in the Cloud and edit the attachment in the online office. So, that was all from me. Thank you very much for listening.