

0 / 2 embers
0 / 3000 xp
click for more info
Complete a lesson to start your streak
click for more info
Still calibrating
click for more info
Not enough gems
Cost: 6 gems
1: Monoliths and Decoupling
incomplete
2: Which Is Better?
incomplete
3: Admin Namespace
incomplete
4: Deployment Options
incomplete
This lesson's interactive features are locked, please to keep using them
We won't go in-depth with deployment instructions right now; that said, let's talk about how our choice of project architecture affects our deployment options, and how we could deploy our application in the future. We'll only talk about cloud deployment options here, and by the "cloud", I'm just referring to a remote server that's managed by a third-party company like Google or Amazon.
-- xkcd
Using a cloud service to deploy applications is super common these days because it's easy, fast, and cheap.
That said, it's still possible to deploy to a local or on-premise server, and some companies still do that, but it's not as common as it used to be.
Deploying a monolith is straightforward. Because your server is just one program, you just need to get it running on a server that's exposed to the internet and point your DNS records to it.
You could upload and run it on a classic virtual server, something like:
Alternatively, you could use a platform that's specifically designed to run web applications, like:
With a decoupled architecture, you have two different programs that need to be deployed. You would typically deploy your back-end to the same kinds of places you would deploy a monolith.
For your front-end server, you can do the same, or you can use a platform that's specifically designed to host static files and server-side rendered front-end apps, something like:
Because the front-end bundle is likely just static files, you can host it easily on a CDN (Content Delivery Network) inexpensively.
If you want to be able to scale your application up and down in specific ways, or you want to add other back-end servers to your stack, you might want to look into container orchestration options like Kubernetes and Docker Swarm.
I'm trying to gently introduce you to some popular technologies and how they work together, but you don't need to memorize all of these products and options.