This year, I participated in the Veeam Community Hackathon for the first time. It was the second hackathon organized by the community, and there were several weeks between registration and the actual start, during which the teams were formed behind the scenes.
What worked particularly well was that Veeam took participant preferences into account, so I was able to team up with my two preferred colleagues, whom I had the pleasure of meeting at this year’s VeeamON in Fort Lauderdale, Florida.
Members of team 4 of this year’s Hackathon:
Ian Engelbrecht – Technical Sales Manager – Johannesburg
Markus Kraus – Technical Solution Specialist – Hamburg
Chalid Mohamed Fathallah – Consultant – Frankfurt
Markus Hartmann – Senior Consultant – Zwingenberg (Bergstrasse)
Lukas Klostermann – Senior Consultant – Muenster
Phases of implementation:
First phase: KickOff
Here, as a team, we brainstormed our goals, identified the problem we wanted to solve, and outlined our approach. It quickly became clear that we wanted something mobile—a smartphone app!
With the team’s background in the service industry and many years of experience with Veeam, we decided to focus on the VSPC (Veeam Service Provider Console) and explore what improvements we could offer there.
While customers can log in via their Cloud Service Provider’s console and access a wealth of information, this data is restricted to that portal and not always accessible on the go. Our goal is to ensure that cloud tenants have access to this information anytime, anywhere. Therefore, we aim to design the mobile app around the VSPC portal.
Second phase: Coding and Research
At this stage, I could offer little support personally, as I have limited coding experience. We started by setting up a demo environment with various components. For this, we relied on Microsoft Azure to have a persistent environment that could be accessed easily from anywhere with minimal effort.
When it came to coding, we ultimately used the following tools to keep the costs of our project low within the short timeframe:
- React Native
- EXPO
- Microsoft Azure & On-Premise Tentants
- Uizard.io
- Expo on iOS
- Android Studio
- ZeroSSL and OpenSSL
- and more
The app is ultimately functional on both iOS and Android, with the appropriate tools selected and implemented by my colleagues.
It’s important to note that we had only about one week for the actual coding!
Third phase: Testing and Feedback
At this stage, the entire team got involved—it was time to test the app and check for bugs and missing features. Fixing the bugs was done relatively quickly, and together, we defined which features could still be added in the short time left and which would be placed on a roadmap for future development.
The app was finally completed, and I took on the task of creating a video for the final presentation, which also served as the evaluation criteria for the jury. The video was submitted just before the final deadline—now it’s time to wait!
App Design:
We defined that the app should be easy to use and designed in a very clear and straightforward manner. We want to avoid requiring users to go through extensive training or having to read a manual, so the app should be highly intuitive. The app pulls its data from the VCSP environment, meaning the information is simply displayed visually here.
Architecture:
The information to be displayed is already fully available within the VCSP environment, so we only need to access it externally. For this, we used the VSPC API, which is publicly accessible, and Veeam provides a command set that allows for the evaluation of information.
There are two main methods for working with the API: Push and Pull. With Push, commands are sent to the VSPC, enabling actions to be executed. With Pull, information is retrieved from the VSPC so that it can be processed.
Due to time constraints, we focused solely on the Pull method. The standard structure of a VCSP environment is well-known, and we created demo tenants in the form of Azure environments, where we temporarily deployed a VBR (Veeam Backup & Replication).
Decision on App Features:
There were many ideas overall, but due to the tight timeframe, we couldn’t implement all the functions cleanly in the app. To address this, we created the following decision matrix during the kickoff phase:
Priority: | Difficulty: high | Difficulty: low |
---|---|---|
high | backup status of VBR and VBM365 | Quota usage and billing |
high | repository status | |
high | secure access via mobile device | |
high | Tentant view | |
high | Threat Dashboard | |
high | SLA status | |
low | MFA | Agent status of discovered computers |
low | Service Provider view |
Additional features that can be implemented via Push (i.e., the active execution of functions and commands in the environment) are something that can be defined as a milestone for the future, provided the project continues to be pursued.
Role of AI within the Project:
Since only two of the five team members had coding experience, it quickly became clear to us as a team that we wanted to leverage AI within the limited timeframe. The AI helped us create the basic framework for the app and transformed a hand-drawn sketch into an initial design.
The sketch looks as follows:
From this, the AI generated the code for the following design proposal:
Conclusion:
Without the AI, it would not have been possible for us to achieve the final state of our app, which we ultimately reached in just one week. The app is functional in its basic features, and the connection to the VSPC works, having been successfully tested on both platforms (Android and iOS).
As a small learning point: the AI saved us time and made this entire endeavor possible. I would particularly like to highlight Ian and Markus Kraus, who were primarily responsible for the coding stack, without whom we likely would never have been able to present the final result—even with AI!
We are now eagerly awaiting the jury’s decision, which will be made by October 11, 2024. The winning project will then be officially announced by the jury on October 18, 2024. Until then, it’s time to keep our fingers crossed!