In the last blog I talked about the ownCloud vision, what it is and what we want to achieve. In this blog I want to cover the focus areas for this year to bring us there.
This is not a roadmap discussion or a guaranteed feature list for the next release, but more long term focus areas. We see these as key for the ongoing success of ownCloud and plan to invest significant time and efforts in these areas.
Ease of Use
One of the main design goals of ownCloud is to provide the best possible user experience for everyone. This might sound like a trivial and obvious thing, but I think it is very important that we always keep this in mind when we make architectural or technical decisions. We have to constantly check to ensure they are still in line with the bigger idea. This is about the user experience, the admin experience and also the developer experience of third-party apps. We hear that ownCloud provides a better experience than most other products out there, but there is always room for improvement and we will keep on focusing on the experience for everyone in the future.
Great scalability has been an architectural goal of ownCloud since the very beginning. ownCloud is intentionally designed as a standard HTTP-based web service so it can benefit from the best practices and experience of admins in this area–and off-the-shelf products like load balancers. This allows ownCloud to be scaled from very small installations to very big installations. We realize, of course, that there are still a few central components in a typical ownCloud architecture that can be bottlenecks. One is the database. Another is the file system. In ownCloud 9.x we focused on building an enhanced storage API that makes it easier to scale an ownCloud server up to multiple petabytes of data. The database tables that face the most load, the sharing table and the file cache table, are also abstracted into a pluggable API, which makes it possible to use alternative implementations. This works closely together with the storage layer. These changes make ownCloud even more stable and scalable for the biggest deployments out there.
We know that keeping an ownCloud server up-to-date wasn’t always an easy task in the past. Sometimes an upgrade required long maintenance windows and manual work. In 9.x, a completely new upgrade routine makes upgrading an ownCloud server easier, faster, more predictable and more robust. We will talk a bit more about this once ownCloud 9.0 is released, but rest assured that your next upgrade should be noticeably smoother.
Syncing is interesting. I have to confess that I thought that we solved syncing 4 years ago. And it is true that we solved it for 99% of all cases. Fixing the 1% corner-cases can’t be that hard, right? Sadly, we underestimated the complexity here, but are happy to announce that today our sync is really fast, scalable and stable. While we expect to discover interesting cases where our reliability is challenged to be rare, we keep working until we reach 100% sync reliability. On the performance side, we have bench marked a 4x performance gain, but recognize room for improvement, especially when it comes to small files. Sync reliably and performance will remain a focus for 2016.
Extended Focus on Automatic QA
Over the past few years we have put a lot of energy and resources into test automation. Today we have fully automatic test coverage of the core functionality in ownCloud. This is paying off. The latest ownCloud releases are clearly more stable than ever. While testing has offered significant improvements, we recognize the role of manual QA as well. For example, to QA our Windows Network Drive feature, we test against standard Windows file servers. However, some of our users deploy customized scenarios or with non-standard CIFS servers. We are expanding our QA to include even more thorough testing to ensure greater code coverage and, ultimately, smoother deployments for our users.
All the focus areas that I have mentioned so far are about stability, scalability and ease of use. But we also want to innovate and develop features that are new and unique and enable our users to use ownCloud in powerful new ways. One of the main focus areas of 2016 is Federation. This is the possibility to connect different ownCloud servers in a way that they behave and react as one big instance from the user’s perspective. This feature premiered in ownCloud 7 and was hugely improved for ownCloud 8. ownCloud 9 includes the next milestone–we will share more information when ownCloud 9.0 is released.
I hope that this gives you a good overview over the main strategic and architectural focus areas for the next few releases. Please let me know if you have any questions or are interested in more details in the comments below.