Friday, November 21, 2014

Bitnami Open Source Leaders Interview Series: Frank Karlitschek from ownCloud

As part of our Open Source Leader podcast series, we interviewed Frank Karlitschek, founder of ownCloud, to learn how ownCloud helps you share your files with friends and co-workers. ownCloud gives you universal access to all your files, contacts, calendars and bookmarks across all of your devices for free!

The questions below are answered throughout the interview:

  • What is ownCloud? 
  • How technical does one have to be to use ownCloud?
  • How does ownCloud manage third-party extensions/plugins?
  • What is next for ownCloud version 8? 

After learning more about the project, you can launch ownCloud to the cloud or deploy it locally with free installers, virtual machines and cloud templates from Bitnami. Get started in the cloud for free with a $200 credit from Microsoft Azure.

Stuart Langridge:       These are the Bitnami Open Source Leaders Series of interviews.  I’m Stuart Langridge and I’m here talking to Frank Karlitschek of the ownCloud project.

Frank Karlitschek:     Hey, Stuart. Thanks for having me.

Stuart Langridge:       I think a lot of people may have heard of ownCloud generally, but can you give us a brief description of what ownCloud is and what it’s for?

Frank Karlitschek:     The mission of ownCloud is to provide functionality similar to Google Drive, Dropbox, or OneDrive from Microsoft. The difference is that ownCloud is completely free software, open-source, and it’s actually designed to run wherever you want.
                                    There’s only one ownCloud like there is only one Dropbox, but you can download the ownCloud source code and install it wherever you want. You can run it on your repository at home, an old desktop computer, or on a server on the Internet. It can run at a university, your company, or wherever you want. You can even run it on a shared web space. For example, if you have web space on a university, you can just pick the ownCloud Zip file, put it in there and unzip it, and you have your own server.

Stuart Langridge:       What types of people are using ownCloud at the moment? Is it primarily individuals, organizations, companies, or university students? Of the people who aren’t using it yet, are there particular areas/demographics you’re targeting?

Frank Karlitschek:     The answer is all of them. There are a lot of people who are running it at home because they want to keep their data under control. For example, they only have their external hardware to keep all their files on. They can add ownCloud to a small home device server, and then have their own little server to share photos and documents with friends and family, which is just one use case. Individual users, families, small companies, organizations, software clubs, etc., run ownCloud for their organization to synchronize their files between them. However, there are also very huge installations. For example, there is a state in Germany that is rolling out ownCloud for every single student of the state. There are 500,000 students, and this is running on a big cluster with an ownCloud installation. 

Stuart Langridge:       That’s interesting. There’s certainly a perception that ownCloud is mostly used by quite technically literate people, would you say that was reasonable?  Is that something you’re trying to fix, or do you think it’s just not the case at all?

Frank Karlitschek:     The mission of ownCloud is to enable everybody to run ownCloud like a cloud service. We really invest a lot of time into making all the installations as smooth and as easy as possible. For example, the installation of ownCloud is basically unpacking a TAR file and then opening the browser. After that you go to the URL of the Web server, choose a route, an admin password, and that’s it.

On the other side, this is a web server that is running somewhere, so you need a bit of knowledge on what a web server actually is and what consequences it has when running a public server on the Internet. I wouldn’t say that it’s the right fit for everybody, but it should be very easy for people who have a little bit of technical knowledge. For the people who don’t really want to run their own server, there are a lot of providers out there that can help. I think we have 20-40 providers listed on our website, where you can get ownCloud hosting, and you don’t have to do any administration at all.

Stuart Langridge:       Are there people who provide you with a VM, a machine on which you can install ownCloud, or are they already running ownCloud and just give you an account?

Frank Karlitschek:     Both, again. There are virtual machines that we provide on our website. You can download them and run them somewhere. There are also the pure providers, who do everything for you. You can go to a URL, type in your login and password that you got from them, and then you can use it. There are lots of options.

Stuart Langridge:       That’s interesting. So, let’s take Bitnami as an example and how ownCloud has been working with Bitnami for single-click deployment into the cloud. Is that a common way of running ownCloud? It gets around the idea of having to have your own server and setting it up. You just punch a button. It provides you with an EC2 instance, and then you’ve got ownCloud running on it.  Do you see that as being a more common way for people to start using ownCloud in the future?

Frank Karlitschek:     First of all, I have to say that I really love Bitnami and the easy way to deploy services like ownCloud. It’s really awesome that the Bitnami installer for MacOS or for Windows can be downloaded and started within a few clicks. Two or three clicks in the setup, and it’s running on your machine. Instantly, you have turned your Windows machine into an ownCloud server. It’s super easy, so we love it. Also, the options to deploy it on EC2 SSA is awesome as well.
                                    How many people actually use this? We can’t really say. It’s software that really only runs on your machine, so there is no tracking. We have no information at all from our side about what people do with this code. However, from the feedback that we get, the Bitnami service is very popular because it’s so easy.

Stuart Langridge:       One of the advantages of putting ownCloud in the cloud rather than on your own server is that you can scale it up quite easily. You can add a second EC2 instance, so on and so forth. How well is ownCloud set up for doing that kind of wide scaling? How much work are you putting into ownCloud to make that it as wide as I need?

Frank Karlitschek:     ownCloud is designed from an architectural point of view, and is designed very similar to a lot of other cloud services. It’s running on PHP, Apache Web server, and also on other Web servers. We support standard SQL databases, so it is similar to a lot of other applications, which makes scaling very straightforward. The usual way to scale ownCloud is by using some kind of load balancer where you have several application servers that run your ownCloud application, and on the backend you have some kind of database or database cluster with some storage. 

This can all be done on Amazon EC2 services or OpenStack, so it is absolutely possible. Although, to be honest, to configure an ownCloud cluster, you really need a little bit more knowledge to understand what you’re actually doing, but that’s just in the nature of things.

Stuart Langridge:       But you’d expect that if I’m using ownCloud for my own purposes, I probably won’t need to scale it that much.

Frank Karlitschek:     No. We did tests on a machine, and were able to easily serve hundreds of users with some memory, good CPUs, and so on. A cluster isn’t needed for small installations. 

Stuart Langridge:       That’s fair, absolutely. ownCloud is primarily web-driven, and accessed at least partially through a browser. How much is ownCloud working on keeping up to date with modern web standards?  Does it handle responsive design on mobiles very well?

Frank Karlitschek:     There are a lot of different ways to use ownCloud. There is the web interface, as you said, which is a file manager that gives access to all the other applications that ownCloud can provide in the web browser. However, I wouldn’t say that this is the most common way of using ownCloud because we have different clients that you can use to access your data. There are desktop-shrinking clients on Mac, Windows, Linux, and mobile clients for iOS and Android, both phones and tablets. With these applications, you can connect to your ownCloud to synchronize, upload, download, share, edit, and work with your files.
                                    For example, if you use it on your desktop or laptop, you can leave ownCloud files or part of your ownCloud files and let them sit in a normal home directory as normal files. The user experience is very similar to what Dropbox is doing. You have the very synchronized folders, so you have different options.

Stuart Langridge:       One of the things that I think is interesting about ownCloud that a lot of people don’t realize that it’s more than just file-syncing.  People tend to talk about ownCloud as though it’s just a file-syncing rival to Google Drive or Dropbox - and that's where the project started I believe. If you look at it, there are hundreds of extra downloadable apps for ownCloud to do things such as calendaring, e-mail services, contacts, and so on.  So, you’re building a market for extra pluggable ownCloud apps, but how are you ensuring the quality of those apps? Can anyone just submit an app they like? Is it up to a user to read the ratings or are you trying to enforce some consistency and some integration between applications?

Frank Karlitschek:     First, as you said, this app concept is very important for us. Synchronizing files between different computers was the beginning of ownCloud and is still the core of what we are doing, but now we have these extensions/ plugins. Some examples are calendar, address book, bookmarks, photo gallery, video streaming, RSS reader, notes, text editing and so on. I heard from the community that there are many more coming very soon. And the question is how can people access this, how is this secure, and who reviews what? That’s an interesting question because this is free software, so we can’t really enforce any DRM, code signing, or something like that. 

We really don’t want to change, so we have a system that has different levels. Level one is an application that is really important like ownCloud. A group works very close with the core team, and they ensured that the app works, is fully tested, and has no security problems. In this case, we ship it as part of our release.  Examples of those are the photo gallery, the calendar app, the contacts app, and a few others.  Those apps are part of the ownCloud release because they’re guaranteed to work with no problems. 

There are also options for a developer who doesn’t want to follow the release schedule of the main release, or work with the rest of the crowd. For that option, they can submit it to an app store that we have,, which is a repository of third-party add-ons. It’s downloadable and installable, and with the installation there are different levels, again. 

If you upload a third-party add-on, it can be downloaded from the Web server as normal Zip file, and then manually put it into your ownCloud. If you put some random code on your web server, it’s your responsibility as an admin to understand if you should trust it or not. This is similar to a random WordPress plugin or random Linux application. However, we do review. The core team reviews the applications and confirms, for most of them, that they are high quality, super-secure, and work with the current version. In this case, they are basically approved. These apps are called approved apps, and show up in the ownCloud administration interface. The third-party apps on there can be installed and run very smoothly. 

And for certain apps that are even more polished, we have a recommended tag. Special recommended third-party apps are shown on the on top of the list, which creates a span of different levels of trust. On one hand there is the stuff that we ship, which is totally secure and works just fine. On the other hand, there is just some code that someone published and no one really knows how to use.

Stuart Langridge:       I see. So, if I were to build an e-mailing package as an ownCloud app, I could do that. I can upload it to the app store and anyone can use it whenever, but obviously what I should do is integrate with the existing ownCloud contact system and calendaring system. The more work that I put into making it a native app for the ownCloud platform, the more likely you are to recognize it as an approved app, a recommended app, and so on.

                                    You spoke a bit there about the community. Obviously you’ve got a user community of people who are running ownCloud in their business or for themselves. You also have a developer community, people who’re making applications for ownCloud or building on the ownCloud platform, and then you’ve got the core developer community who’re building the core version of ownCloud itself. How much overlap is there between those things? Is every user basically a developer?

Frank Karlitschek:     No. The biggest group, as you said, is the user community. It is really difficult to know how many there are, but we have an estimation of about 105 million users currently. Then, there are the third-party application developers, which are hard to count because we only see that someone published an extension without knowing how many people worked on it. It could be one person or it could be more.

The core group itself, which are the people who deal with the releases, had over 500 people contributing in the last 12 months. There is obviously some overlap, but it’s totally different. There are people who’re really engaged but only care about one specific app that they’re writing, and there are others who only care about the deep backend database layer, and others who care about marketing and user experience. Each group is totally different.

Stuart Langridge:       You’re at the ownCloud conference right now, yes?

Frank Karlitschek:     Yes, exactly.

Stuart Langridge:       What’s going on there?  What’s that all about?

Frank Karlitschek:     This is very exciting for me, personally, because I started the ownCloud project by myself four and a half years ago. After a few weeks, it grew very quickly because a few people joined by saying, “Hey, I have a patch here. I have a patch there, some improvements there”. After a few months, we collected a community of five or six developers. Then we had our very first developer meeting, where five people met for a weekend and worked on ownCloud. And this event of sitting together working on ownCloud, grew over time significantly. After a year, we already had 10-20 people there. Last year we had 50 people sitting in a room for fun and working with ownCloud, and this year we have 150 registrations. This year the event is hosted by a university in Berlin.

                                    Everyone sits in rooms, Tuesday to Sunday, to work on ownCloud and listen to talks on Saturday. These talks included lighting talks where people present what they’re working on, workshops, and two keynotes. This conference is all about working together on the next major ownCloud version. I’m thrilled - going from 1 to 150 - I still can’t believe it.

Stuart Langridge:       That’s excellent. You mentioned there the next version. What’s ownCloud’s release strategy and the cadence?  Do you do releases at a given time, or do you work on something until it’s done?  How often do you put a new version out and how long do you support old versions?

Frank Karlitschek:     At the moment we are releasing major versions about two times a year. We just released ownCloud 7, which brought a lot of significant improvements in the quality, functionality, and the speed. If it goes on like that, we will release ownCloud 8 in about 6 months. At the moment, we’re discussing if we want to do a few smaller changes instead of big releases, because ownCloud 6 and 7 only have a 6 months difference. At the moment we’re discussing something like a three-month cycle, but it’s not decided yet.

Stuart Langridge:       That’s moving more towards a kind of a rolling release model, more updates but each one being smaller. How does upgrading work? Can I just punch a button somewhere and have it upgrade, or do I need to reinstall everything?

Frank Karlitschek:     No. There are different options. It depends on how you have installed ownCloud in the first place. In our admin interface, you will see a notification that says a new version is available. You can press a button and a new version is downloaded and installed, this works if you installed it via a normal web installer. If you installed it via Linux package you get the update via the repository with your normal Linux package manager. If you run it on a bigger application with thousands of users, you should try it on a staging system first, and then do some plant downtime after the service ends.

Stuart Langridge:       That makes sense. Now, it would be unreasonable of me to have this conversation without bringing up some of the criticisms I’ve heard about ownCloud in preparation for this conversation, by being involved in the community, reading reviews, reports, and so on. There’s quite a wide perception, I think, that there’re two big problems with ownCloud. The first one is that there are lots of different apps but none of them integrate very well together at all.  And, secondly, the file-sync is unreliable. It doesn’t feel complete and working yet. How would you respond to those criticisms?

Frank Karlitschek:     We, as ownCloud and an open-source community, take the quality and the feedback that we hear from users very seriously. ownCloud is an open-source project, so we see our users as part of the project. We don’t believe that people should just deal with the problem. It’s actually our problem because our mission is to make something that’s actually useful to people.
                                    We’re very open and transparent with our open bug tracker and open discussion about these issues. We really want to make our users happy. We are investing a lot more time into structured automated testing, integration testing, Jenkins, acceptance testing and so on. Currently, we are at a way better state than we were a few years ago. 

Another thing that I want to mention is that some of the criticism that we see in Internet forums and other places - these bugs are actually fixed. Some were fixed a long time ago, but it’s relatively hard for us to convince those people to try again since they had a bad experience. With that being said, I encourage everybody to try the latest version, ownCloud 7.  It’s really stable and super fast, and we are really happy with the quality.

Stuart Langridge:       So you’re all there at the ownCloud conference and working on the next version. You said ownCloud 8 should be out in 6 months or so. What are the plans for that? What’s happening with ownCloud 8, and what is the future of ownCloud over the next year, the next two years?

Frank Karlitschek:     It’s too early to talk about ownCloud 8 features in a concrete way. It is one of the topics at the conference that is discussed, so it’s hard to say what we will have. Things that we will definitely invest in will be quality and stability, but from a functionality standpoint, you have to ask me in three or four months. I can’t answer that yet. 

For the long-term future, we see that a lot of people are really interested in ownCloud, from a user perspective and also developer perspective. From discussions and some of the criticisms that came out in the last few months, people are more careful with who has access to the data and how this cloud thing actually works. I think in the long-term future, people will use self-hosted installations and less centralized ones. I think this is a great opportunity for free software in ownCloud.

Stuart Langridge:       Excellent, and that’s a great note on which to end.  Thank you very much for speaking with us and telling us about ownCloud, Frank Karlitschek.

Frank Karlitschek:     Thanks a lot, Stuart.  It was great.