A common question asked about deployment is how does it work and where does it go - an important question to ask before considering a platform to build your tools on top of.
This question depends on one of two things - whether you're deploying to a self hosted Budibase platform or if you're deploying to the Budibase Cloud.
In the case of a self hosted deployment the answer is very simple, the app, attachments and all data will be uploaded to the self hosted platform, this data will be spread between your MinIO and CouchDB services, being served by the Budibase apps service. For more information on this please check out the hosting architecture page, found here.
When deploying to the Budibase Cloud your apps will be uploaded to services running in AWS data centres. Our architecture in the Cloud is slightly different from that which is used in the self hosted deployments, everyone's apps make use of the same services allowing us to offer lower hosting costs. This does not mean that your app is any less secure however, the data and information which makes up your apps receives its own partitions in our object store and database, meaning only you and users have the ability to access it.
We however know that not everyone who wants to use Budibase will be able to use the Budibase Cloud, whether it be for regulatory or company policy reasons you will always have the ability to store your app and its data in a way that suits you using self hosting.
Another important question is the technical side of what actually happens when your app is deployed. Here I'll give a quick overview of the steps taken by the Budibase builder and platform to get your app live! This process is nearly identical whether you're deploying to a self hosted service or if you're deploying to the Budibase Cloud; the only differences being around how Budibase keeps everyone's apps separate and within user quota limits in the Cloud.
First the builder sends up your hosting/API key to confirm you have access to the platform, if accepted the platform will return tokens to allow for a one time deployment to the various services
Next the builder uses these tokens to talk through our proxy service to the database and object store engines, storing app data, metadata about the app and the Budibase client, the Svelte app that is the base of every Budibase app.
Lastly the builder confirms if the deployment was successful and returns the information about how to access the app to the user. This will also include working our the URLs for any webhooks which are now running in the deployed app.
As you can see the deployment process is quite simple, secure, upload and then confirm, then you're ready to start using the app!