29 Nov 2016

Cedric joins the Cozy crew

Cédric joins the Cozy Crew

At Cozy, we like to keep in touch with student communities. That’s where we often meet passionate people determined to find meaning in their work, who are very enthusiastic when discovering a new language and development project. That’s how Cédric found us: he wanted to create a professional data portfolio for individuals using Cozy. He used our IRC to ask for help on a technical detail. He then communicated extensively with Clochix, first about his own project, then generally about the Cozy platform and project. While ending his studies, Cédric was looking for an internship and asked if he could join us for six months. Although interested in Web tech, he unexpectedly found himself working on the Cozy Cloud infrastructure, where he studied team member needs in order to create an adapted management tool. So for most team members, meeting Cédric was like coming face to face with Santa Claus: he was determined to find out what each member wanted in terms of infrastructure, and to see how he could make that happen. There have been worse first encounters…

Cédric didn’t follow the usual route to becoming a developer: for a long time, he combined his passion for development with his studies, pursuing a future in the agri-food industry. Cédric found he had a taste for web tech thanks to having visited forums when younger, and later discovering Apple. He first started tinkering around with HTML templates, then taught himself programming. Cédric has always liked science and everything high tech, so naturally he felt that he should study engineering. Coming from the Réunion island, Cédric started an agri-food specialised preparatory class at ESIROI, but quickly found that he had a lot in common with IT students. He continued to teach himself, to the point that he came to question his official specialisation. In his second year, he decided to change tack and follow the computer science route. He did so well for himself that in his third year, he was able to study abroad in coordination with Télécom Bretagne. This was the beginning of a new life for Cédric, who has always felt the need to work in a field he felt passionate about and voluntarily put in long hours. He enjoyed the atmosphere, and (surprisingly) Brittany as well. After one year at the Brest campus, Cédric knew he wanted to spend more time in mainland France.

Cédric could have pursued an entirely different career: he has played the accordion for years and has long been passionate about music. Whatever Cédric does, he’s always wearing his earbuds. Music is his refuge, and Cédric’s highly eclectic tastes ensure that he’s always in the right mood for any situation. Whether it’s development, video projects, editing, or just simple meditation… Although Cédric spends a lot of time in front of his computer, he’s always doing something different!

Cédric’s calm and accommodating personality combined with his ability to take a step back from any situation and assess what is asked of him are precious assets for our front line team. His work on our infrastructure gave him an excellent bird’s eye view of the project’s complexity, and he has been able to perfectly integrate Cozy’s various aspects. He’s the youngest sailor among our crew, and we hope to keep him on board for as long as possible!

28 Nov 2016

On the road to Cozy version 3

roadmap_1200x600-nuage.jpg

TL; DR:

Cozy is an Open Source / Free Software project that is both audacious and moving fast: applications are getting better, users are numerous and the community is very active. Financially, things are going well, the recent funding roud enables us to hire more developers. There is an issue though: the price of hosting a Cozy instance. Until then, it was a minor issue as we focused on building software, but now that we need to scale in order to reach thousands and soon millions of users, this has become a pressing issue.

The solution we have picked is a rewrite of the back-end side of Cozy. This rewriting has already started, and as it’s a significant change, it has an impact on the whole Cozy project.

Rewriting means that there will be a transition period where the future version will have less features than the existing one.

In order to limit the impact of these changes, we will maintain the existing version while building the new one so that everybody (hosted instances users, self-hosting users and application developers) has time to adjust to the changes brought by Cozy version 3. In order to ease the transition for application developers, a new library called Cozy-client-js is being created. Its documentation is already on-line.

Getting into more details

Cozy can be defined as a free software / open source project that has industrial goals. This means that we work with different stakeholders, including our community of users and application developers but also hosting providers. All of the stakeholders participation are needed for the project to be successful and meaningful. We get two requests quite frequently from them. The first, coming from power users is “when will we get the ability to host several users on a Cozy?”. Hosting providers have another request: when will we have a scalable version of Cozy, so that hosting large numbers of Cozy instances (up to millions of users) is economically doable?

For now, we cannot give positive answers to these questions, due to existing limitations of the technologies used to build Cozy. This is frustrating for everyone involved. This is why we’re working on Cozy version 3, which is a rewriting of the back-end part of the software to fix both issues.

Version 3 development has already started and it’s moving along nicely. Bruno Michel, and its back-end team, has made significant strides, but a lot remains to be done before the current version can be replaced by version 3. I’ll explain below what will change with version 3 and how we will implement it.

From a technical standpoint

Long story short, the back-end part of the Cozy project is currently written with NodeJS. Version 3 will be a rewriting in the Go programming language.

What does it mean for self hosting?

Self hosting users will get the ability to run several Cozy instances without needed significantly more RAM. In the current version, running two Cozies means using twice the amount of RAM. With Cozy version 3, additional resource consumption for each instance will be very limited.

An additional benefit is that packaging Cozy for GNU/Linux servers is going to be a lot more straightforward: installation and maintenance will be greatly simplified.

What does it means for users of Beta instances hosted by Cozy?

The calendar still needs some fine-tuning, but here is what we’re considering:

  1. Members of the community who do not need to migrate their data to the new back-end will benefit from brand new instances as soon as we put them into production, so they’ll be served first.
  2. We would like to migrate beta instances to the new back-end around Q3 2017 if everything goes as planned.

Hosting providers and commercial partners

In order for our partners to offer reasonable prices for a Cozy instance, they need to make sure that computing resources used each additional instance is limited even at a large scale. This is currently not the case, but it will be with version 3. This means that Cozy will be able to reach a much broader audience thanks to an inexpensive solution which has to compete with the free model used by organizations that monetise personal data.

Developers building Cozy applications

For developers that rely on the client-side model for their apps, a simple migration will be needed. Instead of relying on the Cozy-browser-SDK library, they will have to use our new library called Cozy-Client-JS, which is very similar. Cozy-Client-JS can be used with both the old and the new back-ends and its documentation is already available. The existing tutorial will be updated in a few days in order to reflect the library change.

On the other hand, applications built with a server-side component will need more investment as NodeJS support is not scheduled at this point in time.

How is the transition going to happen?

From now on, we will focus our development efforts on Cozy version 3 so that we can offer an early version as soon as possible. In other words, we will avoid spending time on the old version and feedback that will be provided by the community will be mostly used to improve version 3 applications. In the same vein, we will not offer new Cozy instances running the current version. New instances will be created when we’ll be ready for version 3 to be put into Beta production.

Also, we aim at shipping version 3 ASAP so that it can be tested by the community. In order to ship quickly, we will focus on having a limited feature set around file synchronization. Then, we will build on top of this by adding more features to the back-end in order to get close to what is currently possible with the current version.

Here is a preview of the road map:

Roadmap-Cozy-3_0-english_.png

  • During Q4 2016 - Begin rewriting of the current back-end.
  • End of Q1 2017 - Cozy 3.0 so that it offers file synchronization:
    • Files and Photos apps are now compatible with version 3.
    • Cozy 3.0 is being put into production in limited numbers.
    • A limited numbers of Beta-testers positions are opened for people who do not need data to be migrated.
    • File sync with GNU/Linux, MacOS and Android.
  • End of Q2 2017 - Data aggregation:
    • Front apps: data aggregation.
    • More Beta instances are created. Some Beta users are migrated to version 3.
    • Starting encryption features.
    • Adding scalability features.
  • End of Q3 2017 - Cozy, your digital home:
    • All Beta users have been migrated to version 3.
    • Fine-tuning scalability features.
    • Contacts & Agenda apps are running.
    • Self-hosters can deploy Cozy 3.0.

Other questions and FAQ

We have created an FAQ where we will be answering questions you may have about the transition to Cozy version 3. Come with your questions, we’ll do our best to answer them!

15 Nov 2016

FOSDEM & Decentralized Internet

Fodesm.jpg

The Cozy team wants people to take back control of their data, but we know this is just a part of a larger goal, which is building a decentralized Internet. In order to achieve this, we want to help the many projects around a decentralized Internet to connect and cross-pollinize. This is why I have  […]

Continue reading

10 Nov 2016

Digital home, sweet digital home

Digital home, sweet digital home

Is privacy a thing from the past? We hear it claimed a hundred times a day that privacy is dead. Today, Google, Facebook, Amazon, Microsoft know more about us than our parents or best friends thanks to the information they collect on us by storing our mail, our files, our photos, analysing our  […]

Continue reading

9 Nov 2016

Cozy will be at POSS2016

Cozy will be at POSS2016

TL;DR Join us on November 16th and 17th for the Open Source Summit at POSS ! You can meet us at our stand B28. What is the Open Source Summit? The Open Source Summit is a European event dedicated to open source and open innovation in general. Free & Open Source Software, open data, open  […]

Continue reading

- page 1 of 5