🚀 Go Remote Deploy

Microservice based automation tool built with Golang to build and deploy front-end apps on Docker, NGINX.

Kafka is used for the build queue. Webfront-Miro

  1. wf-collect-client Microservice will collect the required details like repo public GitHub Url and Build Command to initiate the build process by producing event to kafka
  2. wf-code-builder this is for processing build events received via Kafka (consumer)
    • Clones the repository from github url received via kafka from wf-collect-client service
    • Generates the Build using the build command
    • Deploys the generated build files
  3. MongoDb is being used for logging the events.

For more details about the project check out the pdf file in cwd.

Tech Stack

  • Golang - Two microservices built using Go
  • Kafka - Message broker for event-driven communication
  • MongoDB - To store the event logs for each build
  • Docker Compose - To spin up Kafka and Zookeeper on docker
  • Shell Scripting
  • Microservices

Setup

  1. Run docker-compose up -d to start Apache Kafka & Zookeeper

Go Lang & Kafka Implementation

  • On Kafka, Microservices can publish events
  • Microservices can also subscribe to the events(consume)
  • Kafka can store events for later retrieval