Drupal SaaS


Building software as a service on Drupal

Colan Schwartz






Drupal SaaS

Building software as a service on Drupal

Colan Schwartz


DrupalCamp Ottawa 2018

Who am I?

Consensus Enterprises

Helping you do big things in the cloud

  • DevOps processes & documentation
  • Self-hosted multisite solutions & audits
  • Application lifecycle management
  • Continuous integration/delivery (CI/CD)
  • Cloud infrastructure
  • Software-as-a-service engineering

Ground Rules

Interested in Drupal SaaS?

How many of you are…

  • considering building a SaaS product?
  • currently working on a SaaS product?
  • already selling a SaaS product?
  • just realizing you're in the wrong room?

<span class=‘fragment '

Other interests?

Project vs. Product

  • Different than development contracts
  • Lots of unpaid work to build platform
  • Have a plan for keeping the lights on
  • Consulting? Investors? Rich relative?
  • Now: Lots of development. No regular income.
  • Later: Little development. Lots of regular income.

<span class=‘fragment '

…but only if you’re successful.

Hosting

Drupal Hosting Companies

<span class=‘fragment '

Pros

  • Outsource infrastructure
  • Simplify site maintenance

<span class=‘fragment '

Cons

  • Vendor lock-in
  • No control over hosting costs
  • No control over data centre locations
  • Non-portable configuration as code
  • Don't support multisite
  • Costs may not scale well for many sites

Infrastructure

<span class=‘fragment '

Proprietary IaaS

  • Amazon Web Services (AWS)
  • Google Cloud Services (GCS)
  • Microsoft Azure

<span class=‘fragment '

Open-source IaaS

  • [OpenStack](https://en.wikipedia.org/wiki/OpenStack)

Infrastructure

OpenStack

  • No vendor lock-in
  • Often no data in & out charges
  • Portable configuration as code: standard API
  • Data centres in various countries
  • Data portability (e.g. export & import VMs)
  • More control over hosting costs

But you still need a hosting system!

Do you need to write one from scratch?

<span class=‘fragment '

No!

Why?

<span class=‘fragment '

Aegir!

Aegir Hosting System

  • Designed for hosting Drupal sites
  • Open source
  • 10+ years!
  • Web services API

…and will soon host anything

How many of you…

  • Have heard of Aegir?
  • Are using Aegir?
  • Were using Aegir?

So you now have a hosting system…

<span class=‘fragment '

How do you integrate it with:

  • e-commerce
  • recurring billing
  • subscription services

Aegir Site Subscriptions

Adds e-commerce to the Aegir ecosystem by associating hosted sites with customer subscriptions via recurring billing. Communicates with the Aegir API over Web services.

Aegir Site Subscriptions

Process

  1. Customer selects a plan
  2. Subscription service takes payment info
  3. Customer's site gets provisioned
  4. Site gets deleted on payment failures

Aegir Site Subscriptions

Subscription Providers

Plug-ins

  1. [Recurly](https://www.drupal.org/project/recurly) (done)
  2. [Commerce Recurring Framework](https://www.drupal.org/project/commerce_recurring) (ideal, needs funding)
  3. Others (need funding)

Customer site issues

  • [Installation profiles](https://www.drupal.org/docs/8/creating-distributions/how-to-write-a-drupal-8-installation-profile) (distros) vs. [Features](https://www.drupal.org/project/features)
  • Resource quotas
    • [Site Quota Enforcer](https://www.drupal.org/project/quenforcer)
  • Site admin access
    • User 1 vs. Owner role
    • [Permissions Subset](https://www.drupal.org/project/subpermissions) (needs D8 port)

Customer Service

<span class=‘fragment '

Public-facing issue tracker

  • [GitLab](https://about.gitlab.com/)'s [Service Desk](https://about.gitlab.com/features/service-desk/)
  • Associates customer tickets with project issues
  • Good option if already using GitLab
    • And who isn't?
  • Other good options?

Thank you!

Feedback

  • Questions?
  • Comments?
  • Thoughts?