How Genezio Enhances Web3 Development at Bware Labs
Bware Labs Team
At Bware Labs, a forefront player in the Web3 space, managing a complex network of blockchain nodes and infrastructure is a critical yet challenging task. The ever-evolving nature of blockchain technology needs frequent updates, but the traditional methods of handling these updates can be complicated and inefficient. Enter Genezio, a performant and cost efficient function-as-a-service platform.
Bware Labs operates numerous nodes across different blockchains, each requiring regular updates to maintain optimal performance and security. Historically, this process involved the DevOps team constantly monitoring Slack channels for update notifications and manually executing update scripts. This approach not only placed a heavy burden on the team but also introduced the risk of human error and delays in critical updates.
Genezio helped our team with one-click deployment and a serverless infrastructure, allowing developers to easily build and deploy applications that can then be integrated into a company’s existing workflows – this is how we built M.A.T.E.I., an internal monitoring app that sends our DevOps team notifications on Slack once an update for a specific chain is available. The application we built continuously monitors all repositories associated with each blockchain, tracking incoming releases across various tracks. By utilizing OpenAI’s advanced capabilities, the app analyzes the content of each release to determine its significance. When an important update is identified, it sends a notification directly to the relevant Slack channels, ensuring that the developers are promptly informed.
This intelligent notification system allows our DevOps team to stay updated without the constant need for manual monitoring. They can also customize their notification preferences, choosing specific channels to receive updates, thereby reducing unnecessary interruptions and focusing on what’s important.
One of the most significant advantages Genezio brought to M.A.T.E.I. is the ability to facilitate one-click update deployments. With the click of a button, developers can trigger scripts that execute the necessary updates across all relevant nodes. This feature drastically reduces the manual workload on the DevOps team, allowing them to concentrate on more strategic infrastructure tasks and innovation.
The implementation of the application built using Genezio at Bware Labs, M.A.T.E.I., is straightforward, requiring only one to two days to integrate into existing workflows. This quick setup minimizes disruption and allows the team to swiftly reap the benefits of the platform. Here is the approach we used in developing this application.
Genezio hosts the code in a serverless environment, allowing the application to run without the need for managing server infrastructure. They also offer PostgreSQL databases, where our application stores information about the latest releases of various blockchains.
We configured a cron job to periodically run and check each repository form a predefined list. The cron job then called the GitHub API to check the latest releases for each repository.
The answers we obtained from GitHub are compared with the information that is already in the PostgreSQL database. If a release is newer than the one that is in our database, the application that we built uses OpenAI to analyze the release’s description and determine its importance (i.e. hard forks, major changes, etc).
If the release is considered to be important, M.A.T.E.I. sends an automatic notification to the specified Slack channel, using a webhook. The notification includes details about the release and gives our team the option to update the note directly from Slack, through an interactive button.
By clicking the button in Slack, a callback is made to Genezio, which receives the necessary details. The app then determines the needed parameters for the update and calls a preconfigured Ansible playbook which contains all the steps for updating the node on the specified blockchain.
M.A.T.E.I. is configured using an automatic CI/CD pipeline, and all the modifications made to the code are tested automatically, and after approval, it is launched in production through a merge and commit process. The CI/CD is offered by Genezio and we just configured it in our repository.
In summary, thanks to Genezio, our team was able to build an application that automates the flow and saves human resources and countless hours that were spent monitoring channels. By automating repository monitoring, enhancing notification systems, and enabling one-click updates, using Genezio reduces the operational load on the DevOps team and ensures timely, efficient updates. This leads to improved service reliability, enhanced team productivity, and a more streamlined development process, empowering Bware Labs to continue leading the charge in blockchain innovation.