Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft cloud vs self hosted #242

Open
wants to merge 15 commits into
base: main
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ import PremiumPlanBlurbApi from 'src/content/docs/_shared/_premium-plan-blurb-ap

<LicensingPremiumFeaturesIntro />

After summarizing the features offered in different FusionAuth plans, this article will explain the differences between hosting FusionAuth yourself, and having it hosted and managed for you in the cloud.

## Plans and Features

FusionAuth has different plans which have different features.
Expand All @@ -30,7 +32,7 @@ They are also called editions.
* `Essentials` has all advanced and premium features, but some may have some numeric limits.
* `Enterprise` has all enterprise, advanced and premium features and no limits.

Please review the [pricing page](/pricing) for much more information on plans and features.
Please review the [features page](/feature-list) for much more information on plans and features.

## Feature List

Expand Down Expand Up @@ -99,4 +101,56 @@ In the API documentation, you'll see enterprise features marked like this:

<EnterprisePlanBlurbApi feature="this feature" />

## Self-Hosted FusionAuth Versus Cloud-Hosted FusionAuth

Once you have chosen a FusionAuth plan with the features you want, you need to decide where to host your FusionAuth instance. You can host it yourself, either on-premise server or with a cloud service provider like Hetzner or AWS, or you can use FusionAuth Cloud to host your instance. Your decision to self-host or register for FusionAuth Cloud is independent of which plan you choose. There are no differences in plan features between hosts.

Let's first consider how each hosting type works, and then assess the advantages of each.

### How Each Hosting Type Works

For self-hosting, you download the FusionAuth software (usually a Docker image), and run it together with a PostgreSQL server. You may also run Elasticsearch, but it's unnecessary. You have full control over the configuration of FusionAuth but have to manage and maintain all the following considerations:

- Database backups
- Monitoring and error checking
- Networking
- Upgrades to PostgreSQL and FusionAuth
- Server scaling and migration as your users increase

To learn how to run FusionAuth on your own host, read the [guide to using FusionAuth on Docker](/docs/get-started/download-and-install/docker).

For cloud hosting, you create a FusionAuth Cloud account and choose a plan. You can then start and stop as many instances of FusionAuth (called deployments) as you want through the web interface. You pay for each deployment for as long as it runs but need not worry about any of the considerations of self-hosting.

Specifically, when cloud hosting, you:

- Cannot edit the FusionAuth instance configuration page like you can when self-hosting.
- Can choose when to upgrade FusionAuth to the latest version, but the process itself is automated.

To learn how to use cloud hosting in detail, read the [FusionAuth Cloud guide](/docs/get-started/run-in-the-cloud/cloud). To estimate the fees for the deployments in your account, use the [pricing calculator](https://account.fusionauth.io/pricing-calculator/).

### Advantages Of Each Hosting Type

Self-hosting gives you complete control over FusionAuth, including the ability to use [Kickstart](/docs/get-started/download-and-install/development/kickstart) to start an instance with the exact configuration you need, allowing you to specify whether it includes sample applications and users. You can use Kickstart in conjunction with GitHub or continuous deployment services to deploy any number and configuration of FusionAuth instances. The FusionAuth database runs on your host, and you can run any SQL queries against it to extract daily data for analytics, to import users, or to edit data in bulk.

Cloud hosting is more convenient than self-hosting. Starting and stopping a deployment takes only a few clicks, as does upgrading. Deployments scale easily as your number of customers grows, due to the more powerful cloud instances available to handle the greater authentication workload. Backups are automated and available should you need to roll back your database at any time. A team of FusionAuth experts manages the cloud environment and is available if you need support. You can also purchase a 99.99% uptime service level agreement (SLA) to guarantee that your site will always be available. FusionAuth is also available in the [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-65uhkzzoaqnwa), allowing you to use your pre-approved AWS spend to include FusionAuth as a single line item.

In exchange for convenience, cloud hosting offers less control than self-hosting. Be aware that you can't do the following when cloud hosting:

- **Access the database to extract data or run SQL scripts:** You can request the support team send you your database backup file, or extract data using the FusionAuth API.
- **Create your own database backups:** Backups are fixed in number and time by the plan you choose.
- **Use Kickstart** You need to configure each deployment manually via the web interface or by writing a script to call the FusionAuth API to set up applications, entities, and groups, similar to how Kickstart does it.
- **Access OpenTelemetry data to [monitor your instance](/docs/operate/secure-and-monitor/monitor).**
- **Use different FusionAuth licenses for different deployments:** If you use FusionAuth for one product with complex authentication needs and another, smaller service that needs just a username and password, both deployments will have to use the more expensive FusionAuth license. Alternatively, you can create a separate cloud account with a separate FusionAuth license for the second service.

### Use Cases For Each Hosting Type

Self-hosting is free (other than computer and network costs), which is perfect for testing FusionAuth, local development, or any spare resources you already have on an existing server. You can also host FusionAuth anywhere, even on a private network, which may be a requirement for your organization's data regulations. Self-hosting is a good choice if your team has the knowledge and time to manage FusionAuth.

Cloud hosting is a good choice for small businesses that want to spend as little time as possible managing infrastructure or that don't know enough about FusionAuth and server management to host FusionAuth safely themselves. Cloud hosting may also be useful when you have variable numbers of users, as you can more easily scale your authentication server up or down.

If neither option offers you an obvious advantage, compare the cost of self-hosting and cloud hosting to decide:

- Self-hosting is a good choice when you have an infrastructure team with spare time to monitor and maintain your own instances.
- Cloud hosting costs money but saves your infrastructure team time.

You should calculate the total cost of cloud hosting your deployments against the cost of having your own team maintaining FusionAuth, and the potential cost of downtime if your local FusionAuth instance were to become misconfigured.
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ Hathcock's
Hatwalne
Hawley
Heptio
Hetzner
Hingnikar
Hladky
Hooli
Expand Down
Loading