-
Building a simple front end and one Microservice
9 Lessons-
StartWhat we'll cover in this section
-
StartSetting up the front end
-
StartReviewing the front end code
-
StartOur first service: the Broker
-
StartBuilding a docker image for the Broker service
-
StartAdding a button and JavaScript to the front end
-
StartCreating some helper functions to deal with JSON and such
-
StartSimplifying things with a Makefile (Mac & Linux)
-
StartSimplifying things with a Makefile (Windows)
-
-
Building an Authentication Service
9 Lessons-
StartWhat we'll cover in this section
-
StartSetting up a stub Authentication service
-
StartCreating and connecting to Postgres from the Authentication service
-
StartA note about PostgreSQL
-
StartUpdating our docker-compose.yml for Postgres and the Authentication service
-
StartPopulating the Postgres database
-
StartAdding a route and handler to accept JSON
-
StartUpdate the Broker for a standard JSON format, and conect to our Auth service
-
StartUpdating the front end to authenticate thorough the Broker and trying things out
-
-
Building a Logger Service
11 Lessons-
StartWhat we'll cover in this section
-
StartGetting started with the Logger service
-
StartSetting up the Logger data models
-
StartFinishing up the Logger data models
-
StartSetting up routes, handlers, helpers, and a web server in our logger-servic
-
StartAdding MongoDB to our docker-compose.yml file
-
StartAdd the logger-service to docker-compose.yml and the Makefile
-
StartAdding a route and handler on the Broker to communicate with the logger service
-
StartUpdate the front end to post to the logger, via the broker
-
StartAdd basic logging to the Authentication service
-
StartTrying things out
-
-
Building a Mail Service
10 Lessons-
StartWhat we'll cover in this section
-
StartAdding Mailhog to our docker-compose.yml
-
StartSetting up a stub Mail microservice
-
StartBuilding the logic to send email
-
StartBuilding the routes, handlers, and email templates
-
StartChallenge: Adding the Mail service to docker-compose.yml and the Makefile
-
StartSolution to challenge
-
StartModifying the Broker service to handle mai
-
StartUpdating the front end to send mail
-
StartA note about mail and security
-
-
Building a Listener service: AMQP with RabbitMQ
13 Lessons-
StartWhat we'll cover in this section
-
StartCreating a stub Listener service
-
StartAdding RabbitMQ to our docker-compose.yml
-
PreviewConnecting to RabbitMQ
-
StartWriting functions to interact with RabbitMQ
-
StartAdding a logEvent function to our Listener microservice
-
StartUpdating main.go to start the Listener function
-
StartChange the RabbitMQ server URL to the Docker address
-
StartCreating a Docker image and updating the Makefile
-
StartUpdating the broker to interact with RabbitMQ
-
StartWriting logic to Emit events to RabbitMQ
-
StartAdding a new function in the Broker to log items via RabbitMQ
-
StartTrying things out
-
-
Communicating between services using Remote Procedure Calls (RPC)
5 Lessons -
Speeding things up (potentially) with gRPC
9 Lessons-
PreviewWhat we'll cover in this section
-
StartInstalling the necessary tools for gRPC
-
StartDefining a Protocol for gRPC: the .proto file
-
StartGenerating the gRPC code from the command line
-
StartGetting started with the gRPC server
-
PreviewListening for gRPC connections in the Logger microservices
-
StartWriting the client code
-
StartUpdating the front end code
-
StartTrying things out
-
-
Deploying our Distributed App using Docker Swarm
27 Lessons-
StartWhat we'll cover in this section
-
StartBuilding images for our microservices
-
StartCreating a Docker swarm deployment file
-
StartInitializing and starting Docker Swarm
-
StartStarting the front end and hitting our swarm
-
StartScaling services
-
StartUpdating Services
-
StartStopping Docker swarm
-
StartUpdating the Broker service, and creating a Dockerfile for the front end
-
StartSolution to the Challenge
-
StartAdding the Front end to our swarm.yml deployment file
-
StartAdding Caddy to the mix as a Proxy to our front end and the broker
-
StartModifying our hosts file to add a "backend" entry and bringing up our swarm
-
StartChallenge: correcting the URL to the broker service in the front end
-
StartSolution to challenge
-
StartUpdating Postgres to 14.2 - why monitoring is important!
-
StartSpinning up two new servers on Linode
-
StartSetting up a non-root account and putting a firewall in place.
-
StartInstalling Docker on the servers
-
StartSetting the hostname for our server
-
StartAdding DNS entries for our servers
-
StartAdding a DNS entry for the Broker service
-
StartInitializing a manager, and adding a worker
-
StartUpdating our swarm.yml and Caddy dockerfile for production
-
StartTrying things out, and correcting some mistakes
-
StartPopulating the remote database using an SSH tunnel
-
StartEnabling SSL certificates on the Caddy microservice
-
-
Deploying our Distributed App to Kubernetes
22 Lessons-
StartWhat we'll cover in this section
-
StartInstalling minikube
-
StartInstalling kubectl
-
StartInitializing a cluster
-
StartBringing up the k8s dashboard
-
StartCreating a deployment file for Mongo
-
StartCreating a deployment file for RabbitMQ
-
StartCreating a deployment file for the Broker service
-
StartWhen things go wrong...
-
StartCreating a deployment file for MailHog
-
StartCreating a deployment file for the Mail microservice
-
StartCreating a deployment file for the Logger service
-
StartCreating a deployment file for the Listener service
-
StartRunning Postgres on the host machine, so we can connect to it from k8s
-
StartCreating a deployment file for the Authentication service
-
StartTrying things out by adding a LoadBalancer service
-
StartCreating a deployment file for the Front End microservice
-
StartAdding an nginx Ingress to our cluster
-
StartTrying out our Ingress
-
StartScaling services
-
StartUpdating services
-
StartDeploying to cloud services
-
-
Testing Microservices
7 Lessons-
StartTesting Routes
-
StartGetting started with the Repository pattern for our data package
-
StartUpdating our models, handlers, and the main function to use our repository
-
StartSetting up a Test repository
-
StartCorrecting a (rather stupid) oversight in models.go
-
StartTesting Handlers
-
StartMocking our call to the logger-service for tests
-
