Docker, DevOps and ownCloud – a Dream Team!

Posted by Holger Dyroff – 26. October 2017

With the release of ownCloud X (10.0.x) we have published official Dockerfiles that are maintained by ownCloud developers. We have also added it as one of the recommended ways to install ownCloud into the documentation.  You are more than welcome to try this out and give us your feedback and suggestions.

When we started to chat with customers about this, the immediate feedback was that Docker, and the container world in general, is a great tool for testing and development. They would also very much like to appreciate this world for production environments. Here are a couple of things they have asked us for and which are now available:

Dockerfiles for ownCloud Enterprise 
We have put examples of recommendations for MariaDB and Redis, two essential dependencies of any ownCloud install above several users, into our recommended Docker compose files for you! Of course, you are welcome to use your own or provide feedback for MySQL, PostgreSQL or even Oracle!

Our team is using Docker for our own production systems, as well as for demo systems and customers’ initial setups. We are also using it inside our ownCloud Appliance based on Univention.

What is Next?

Tools like Terraform allow us to do mass deployments of many, if not unlimited, ownCloud instances on public and private cloud services, which expose proper APIs. Today some manual interception and special scripts are still required, but those tools are very promising and will lead to automated environments including automated ownCloud upgrades for hundreds, if not thousands, of instances at the same time.

All of the above covers single instances of ownCloud. This means one ownCloud application server is connected to one kind of primary storage (typically file system, NFS or S3), one single instance database and one single instance redis (for file locking) – this is suitable for at least up to 500 users. Depending on the actual usage patterns of your users you can also run thousands, however, not tens of thousands of users like our typical large customers do.

While the above is ready for production and is ready for your feedback, comments, testing, and contributions, our next adventure is to investigate infrastructure as code for clustered and highly-available ownCloud database and storage environments combined with the proper monitoring for a highly automated environment. We are looking at DevOps tools like Kubernetes, Docker Swarm combined with Terraform, Azure Stack, OpenShift, Open Stack, etc. to fulfill this need and to provide a fully automated ownCloud “factory” for really large deployments.

Discuss with me and the team about the existing and future DevOps tooling for a smooth ownCloud experience!