Microservice based automation tool built with Golang to build and deploy front-end apps on Docker, NGINX.
Kafka is used for the build queue.
wf-collect-clientMicroservice will collect the required details like repo public GitHub Url and Build Command to initiate the build process by producing event to kafkawf-code-builderthis 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
- 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
- Run
docker-compose up -dto 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