Skip to content

Instantly share code, notes, and snippets.

@dannycoates
Last active August 29, 2015 13:56
Show Gist options
  • Save dannycoates/9315547 to your computer and use it in GitHub Desktop.
Save dannycoates/9315547 to your computer and use it in GitHub Desktop.
open cloud services

Mozilla's cloud services need to advance the state of the web in privacy, security, and usability in order to compete and keep the web open. We need a platform that has a user experience closer to mobile where building, signing up, using, and managing apps is easy. We need the cloud to integrate well with our mobile, desktop, and lifestyle devices. We need choice in how our data is used. We need to trust the services we use. To do this we should build a platform that lets us run our cloud apps (service instances) individually, in the cloud or on our own servers.

As technical people, today we can enjoy the benefits of owning some of our web identities and data by running our own services on our own servers. We can register our own domains, manage MX records, setup shared hosting or VPS, make our own blogs, host our own email, and even run our own Firefox Sync service because we own our servers, or at least the data. Even for the most dedicated of us its time consuming and complicated to setup and maintain. Its not something that most people are interested in undertaking. Making these things accessible to everyone is a huge challenge but the history of computing has shown that its not only possible but probably inevitable.

Today's server complexity is sort of like life before the internet in the PC era. Making the computer run what we wanted was itself an accomplishment. Things slowly got easier on the desktop but we all suffered through blue screens of death. Eventually web browsers came along and gave everyone a reason to use computers for more than games, spreadsheets or as fancy typewriters. PCs were still horrible, finicky machines but browsers made the pain worth it because the internet was amazing!

Now personal computing has advanced into the mobile age. Fortunately modern mobile OSes have way better security and system reliability than PCs and are generally much more usable and managable, allowing even more people to join the online community.

Modern servers don't have the usability of mobile. They are still mainly used to host isolated services to an exclusive set of users. Successful services have many servers connected in complex networks in order to reliably serve all their users. Their service software can be equally complex. Therefore these systems are designed, installed, configured, and managed by experts. Current development seeks to make these complex systems easier to build and manage. Virtualization has made servers easier and more efficient to utilize by allowing us to deploy and scale resources without buying and maintaining hardware. This has made creating personal servers easier as well. We can easily sign up at any number of VPS hosting providers for a few dollars a month to run our own blogs and email servers. The difficulty is that the servers themselves still require expert knowledge to use. What if the server ecosystem was more like the mobile ecosystem?

When operating a server becomes more like operating a smart phone we will all enjoy the benefits of having a persistent, stable presence on the internet with the usability we've come to expect from our phones. We will choose how our data is shared and with whom, sync data securely, and connect directly with the people we care about. We'll be able to leverage the unique capabilities of each of our devices to their full combined potential.

Firefox OS makes it possible to easily build native mobile apps using standard web technologies. An open server platform will allow us to build social networks and personal services more easily as well. It will also improve our individual privacy and security by giving us more control of our data. With it we can recapture our presence on the web from the "silos" of today.

Creating an open personal server platform that everyone can use is an incredible amount of work but its already possible. No new hardware or network protocols need to be invented and we can do it incrementally. We can gradually chip away at the high barrier of entry to enable more and more people to host themselves on the web. We can start with a small number of core services for advanced users while incrementally making the platform more accessible and robust. Building services that people can easily self-host should be a core goal in our plan and is something that's distinctly Mozillian.

We, Mozillians, fight to keep the web open and strive to empower individuals to own their online identities. As regular people we give away vast amounts of personal information to large and small organizations without much choice in what they decide to do with the data we give them, whether we do it intentionally or by them tracking us. In most cases we don't intend to give them our data for their benefit, but either as an intermediary for sharing it with people we want to reach or to store it so we may retrieve it later from somewhere else. These things should not require us to agree to broad, confusing terms of service. They are things we should be able to do individually with the technologies of the web, securely, safely, and easily. Helping to make this possible is why I am a Mozillian.

Here's my first sketch of what a roadmap might include at a high level to show that at each phase we offer useful services as it matures and gains adoption.

early adopters

Phase 1

  • target Wizards (nightly)
  • new deployment options
    • self hosted (gentoo style)
    • advanced installation/admin knowledge required
    • build steps
    • manual process management
  • new support options
    • IRC, mailing list, bugzilla
  • new services
    • sync

Phase 2

  • target Enthusiasts (Beta)
  • new deployment options
    • self hosted (ubuntu style)
    • package manager installation
  • new support options
    • wiki
    • forum
    • readthedocs.org
  • new services
    • media storage
    • blog
    • email

mainstream

Phase 3

  • target Busy-Bees & Middle-Managers (Stable)
  • new deployment options
    • fully hosted (wordpress style)
    • zero installation
    • simple administration
    • optional custom domain
    • monthly hosting fee
  • new support options
    • dedicated customer service
  • new services
    • identity (browserID IdP)
    • contacts

Phase 4

  • target everyone
  • new deployment options
    • hosted (VPS image style)
  • new support options
    • paid support options
  • new services
    • hosting provider integration
    • full "Mobile OS" like experience
    • 3rd party apps
    • app management
    • app store
    • data import/export

late adopters

  • target Stalwarts & Evergreens
  • new support options
    • remote family support
@dannycoates
Copy link
Author

@ckarlof
Copy link

ckarlof commented Mar 28, 2014

I think a common (anti) pattern here at Mozilla is to charge forward along a technical path without thinking through the end user experience. How exactly would a user take advantage of this? In what ways would it be more delightful than the alternatives? If it's hard to think about these questions now, it may not be any easier to answer these questions later.

If it's too hard to answer those in the general sense, it may be helpful to constrain the problem to a narrower use case.

Do you envision the target of this effort to be developers or end users? (And developers are users too.)

I look forward to digging in more during workweek and thanks for thinking big Danny!

@dannycoates
Copy link
Author

I agree that we often dive into technology with less consideration for products and end users. I thought this recent post by Isaac of node and npm fame relevant:

http://blog.npmjs.org/post/80997676347/nebulous-profit-meditations

Fortunately I think this path has many waypoints with directly delightful products and/or features for users that are interested in being more active in their personal data. Many people don't care about their personal data, at least beyond the current status quo. This isn't immediately targeted at them. I suspect there's a decent (and growing) number of people who do care about the data they generate. The technical ones can help themselves with current solutions but non-techies are left out. I want to help them. By doing so they might also educate their friends on the benefits and become advocates.

As a straw man, "private sync":

How exactly would a user take advantage of this?

  • "set up" a sync server
    • install something or sign up for a service
  • set a url in the sync preferences pane

In what ways would it be more delightful than the alternatives?

  • some "intangible" benefits
    • knowing their data is "safe" on their own machine
    • knowing their data is portable
  • rainbow unicorn features
    • web interface (to view from other devices)
    • option to make some data public
    • P2Pish social bookmarks
    • long term archive (with search) <-- my fav
  • allows us to do things most people would be "suspicious" of a free service doing

Do you envision the target of this effort to be developers or end users?

End users (technical first?) until developers get interested. But really I don't know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment