~

How I build an Automating Project to Update Servers

I built an automation project to update servers. Here is how I did it. Using APIs

Using APIs, I built an automation project to update all production servers. Here is how I did it.

Main goal of this project is to avoid manual work of updating each server and to manage all the server's configuration in one place. So, I came up with an idea of building an config based automation project to update all the servers.

The Initial steps: Unveiling My Path and the Idea

It all began during my work days, when I found my colleagues were spending a lot of time in updating the servers and was not able to concentrate on other tasks. So, I decided to build an automation project to update all the servers and to manage all the server's configuration in one place.

I started by planning the project and the steps to be followed. After that, I proposed the idea to CEO/CTO and got approval to work on the project. Then, I started working on the project and completed it in 1 week.

The project was so complex that I had to spend a lot of time in planning and designing the project. I had to spend a lot of time in understanding the requirements and the technologies to be used. I had to spend a lot of time in designing the project and the steps to be followed.

Since the project was so complex, I was the only one who was working on the project. I spent designing the schema and the configuration files along with the structure of the project. Then, I started working on the project but this journey was full of challenges and I had to face a lot of problems. I learnt a lot of things during this journey and I am happy that I was able to complete the project successfully.

Now, I will explain the steps that I followed to build the project.

  1. Define project requirements and gather input from colleagues.
  2. Design schema, configuration files, and project structure.
  3. Finalize the overall project design and get approval.
  4. Start project development and testing simultaneously.
  5. Document the project as development progresses.
  6. Deploy the finalized project.

[Top]

The Code part: Understanding and Implementing the Code

I picked Python and Go as the programming languages for this project. Configuration files are written in JSON format.

First I started with the schema design. I designed the schema in such a way that it is easy to understand and maintain. I used JSON format for the schema design, as it is easy to understand and maintain.

Once the schema design was finalized, I started working on the configuration files. It took me a lot of time to design the configuration files, as I had to make sure that they are easy to understand and maintain. But I was able to complete the configuration files in a day.

After that, I started breaking down the project into smaller tasks and started working on them one by one. I started with the database design and then moved on to the API design. I spent a lot of time in designing the API, as I had to make sure that it is easy to understand and maintain. But I was able to complete the API design in a day.

The high level design of the project is as follows:

  • Master Server: This server is responsible for managing all the servers and their configuration files. It is also responsible for handling all the schema and configuration files.

  • Slave Server(s): These servers are responsible for updating the servers and their configuration files. They are also responsible for handling all the schema and configuration files.

  • Git Repository: This repository is to store all the configuration files of servers and their schema files. It is also contains the configuration files.

A webhook is used to trigger the update process. When a webhook is triggered, the master server will send a request to the slave server(s) to update the servers and their configuration files. The slave server(s) will then update the servers and their configuration files.

The highlights of the project are as follows:

  • Updates the only required files that are changed. No need to update the entire server and services running on it. This saves a lot of time and resources.
  • Auto update of servers and their configuration files.
  • Complete control over the servers and their configuration files.
  • Easy to understand and maintain.
  • Easy to deploy and manage.
  • Easy to scale.
  • Easy to integrate with other systems.
  • No need to worry about the security of the servers and their configuration files.
  • Rollback feature is available along with the verification of the update process.

So, this is how I built an automation project to update all the servers and their configuration files. I hope you liked it. If you have any questions or suggestions, please feel free to contact me.

Also, I can setup this project for you. If you are interested, please feel free to contact me.

[Top]

Special Thanks

I thank myself for coming up with this idea and implementing it. I also thank my colleagues for their support and suggestions.

Photo by Taylor Vick on Unsplash

[Top]

Comments

Feel free to share your thoughts, feedback, or questions on how I built an automation project to update all the servers and their configuration files. Let's engage in meaningful discussions and explore the endless possibilities of automation in server management!

Please Note: Sometimes, the comments might not show up. If that happens, just refresh the page, and they should appear.

Email

Contact: admin@nekonik.com

Feedback: feedback@nekonik.com

Social
© 2024 Neko Nik · All rights reserved.