DEV Community

Chiamaka Ojiyi
Chiamaka Ojiyi

Posted on

Simplify Your Microservice Debugging Workflow with an Automated Startup Script

Microservice architecture offers development teams scalability and flexibility, but debugging microservices can be a daunting task, especially when dealing with multiple interconnected services. Manually starting up each service and ensuring proper communication can consume valuable time and effort.

In this article, I will show you how to streamline your microservice debugging process by automating the startup with a script.

Typically, when testing the flow of a microservices project, manually starting each service in separate terminals and monitoring the logs becomes inefficient for debugging purposes.

However, there's a better way. You can create a script to automate the startup process.

microservices

Let's consider a project consisting of the following microservices:

  • User microservice
  • Billing microservice
  • Consumer microservice
  • Reports microservice

If you need to debug an issue in the Reports microservice, the manual approach would involve starting up each service that communicates with it and switching between multiple terminals to follow the logs. This method is tedious and time-consuming.

To automate this process, we'll create a shell script that starts all the microservices with a single command, consolidating the logs into a single terminal for efficient debugging.

Assuming all the microservices are in the same directory, follow these steps:

  • In your terminal, navigate to the directory containing all the microservice folders and create a shell script with the following command:
touch startup.sh
Enter fullscreen mode Exit fullscreen mode
  • Open the startup.sh script in your preferred editor and add the following code:
#!/bin/bash

# Start Microservice A
cd /path/to/microservice-a
echo "Starting Microservice A..."
command_to_start_microservice_a >> /dev/tty

# Start Microservice B
cd ../path/to/microservice-b
echo "Starting Microservice B..."
command_to_start_microservice_b >> /dev/tty

# Start Microservice C
cd ../path/to/microservice-c
echo "Starting Microservice C..."
command_to_start_microservice_c >> /dev/tty

# Add more services as needed

cd ../

# Wait for user input to shut down services

echo "Press any key to stop all microservices..."

read -n 1 -s

killall node
Enter fullscreen mode Exit fullscreen mode

In the above script, each startup command is preceded by an echo statement indicating the microservice being started. The >> /dev/tty redirects the output of each startup command to the terminal, allowing you to view the logs and verify that the services started successfully.

Make sure to update the script by replacing /path/to/microservice-x with the actual paths to your microservice repositories, and command_to_start_microservice-x with the respective startup commands for each microservice.

  • Save the script and make it executable by running the following command in your terminal:
chmod +x startup.sh
Enter fullscreen mode Exit fullscreen mode

By executing this script, you can start all your microservices simultaneously. When you're ready to stop them, simply press any key in the terminal where the script is running. The script will then send termination signals, effectively shutting down the microservices.

Automating the startup process of your microservices simplifies your debugging workflow, eliminates the need for manual service startup, and allows you to focus more on actual debugging tasks.

In conclusion, by leveraging an automated startup script, you can streamline your microservice debugging process, reduce time and effort, and enhance overall productivity.

Top comments (2)

Collapse
 
akinloludavid profile image
akinloludavid

Wow. Really great write up. I’m sure I can apply this to microfrontends. And I’ll definitely need this in the future

Collapse
 
algodame profile image
Chiamaka Ojiyi • Edited

Thank you Akinlolu for reading. I am happy you find this post useful 😃