diff --git a/README.md b/README.md index 74eccd32f..f67b9546e 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,8 @@ Each project has its own directory with a README.md file that has instructions.
Learn about long-running processes, HTTP and `curl`. 1. [Servers & Databases](./server-database) - `impl/server-database`
Build a server that takes data from a database and serves it in `json` format. +1. [Multiple Servers](./multiple-servers) - `impl/multiple-servers` +
Build and run file & API servers behind Apache in a simple multi-server architecture. ## Authors diff --git a/multiple-servers/README.md b/multiple-servers/README.md new file mode 100644 index 000000000..ae7f28ca2 --- /dev/null +++ b/multiple-servers/README.md @@ -0,0 +1,18 @@ +# Multiple servers + +![Architecture of this solution](./readme-assets/architecture.png) + +Create file server to serve static HTML files. Create an API server that serves JSON from a database. Run the API and file server as two separate servers. Try to load the website & see CORS issue. Put apache in front of the file server and the API so they are on a single port and hostname. Learn about how to run services in VMs in the cloud. Replicate this local setup in the cloud on a single VM, with all services running on the same host. Route requests to the service. + +Timebox: 10 days + +Learning objectives: + +- Basic microservices ideas, separating concerns of services +- Configure apache to talk to 2-3 copies of the API server +- Some web security ideas (CORS) +- Reverse proxy configuration, routing on path +- Health checks +- Running applications in the cloud on a raw VM +- Using cloud-hosted services like databases +- Multi-environment configuration diff --git a/multiple-servers/readme-assets/architecture.png b/multiple-servers/readme-assets/architecture.png new file mode 100644 index 000000000..7e623c5ff Binary files /dev/null and b/multiple-servers/readme-assets/architecture.png differ