While such exponential growth proves our platform’s success to handle, anyone in the software engineering industry knows the complexities of scaling a system to meet surging demand. Achieving this requires building systems that are scalable, resilient, and high-performing, which demands relentless focus across various workstreams. One of the most critical areas that contributes to this success is infrastructure — the very backbone of our platform.
This article shares our journey of transitioning from a non-Kubernetes setup to a Kubernetes-based infrastructure. We’ll walk you through the challenges we faced, the trade-offs we made, and the solutions we ultimately implemented. Whether you’re an engineering leader, a systems architect, an infrastructure engineer, a DevOps engineer, or simply curious about modern infrastructure practices, we hope you find this story both insightful and inspiring. Get an inside look at the process and discover how you can leverage our learnings for your own tech transformation!
While cloud providers have and keep making progress in improving compliance, security, and accessibility, financial services in many parts of the MENA region still face strict regulatory requirements. These often mandate that sensitive financial data be stored within the country’s borders, making on-premise infrastructure a necessity for organizations like Thndr.
At Thndr, a significant portion of our infrastructure remains on-premises to meet these regulatory demands. While this setup was sufficient during the early days, the rapid growth in user activity and transaction volume highlighted critical limitations. Upgrading our legacy on-prem infrastructure quickly became a top priority.
Our setup relied on a simple group of virtual machines (VMs), which introduced numerous challenges:
This image was generated using DALL-E
The previously mentioned issues highlighted the pressing need for a scalable, automated, and resilient infrastructure, laying the groundwork for the pivotal decision to transition to a Kubernetes-based solution.
Kubernetes is our usual go-to choice for deploying and managing containerized applications since it supports flexible, scalable, reliable, and efficient environments. It makes nearly every aspect of management and deployment easier thanks to features like:
When choosing a suitable Kubernetes cluster with limitations such as unavailable cloud solutions, you must work with a group of on-premises machines to create a semi-managed or unmanaged solution. To build Kubernetes on on-premises machines, there are several options available, including k3s, kubeadm, and EKS Anywhere.
When setting up a Kubernetes cluster in your system, the chosen approach, tools, and version are determined by your constraints, areas of expertise, and existing toolset. At Thndr, we opted for k3s after extensive research and experimentation. K3s proved to be the optimal solution for Thndr. It required only a few on-premises machines with a lightweight Kubernetes version
K3s is developed by the Rancher team, and it is a CNCF Sandbox Project. K3s represents a streamlined, simple-to-install, deploy, and oversee iteration of standard Kubernetes (K8s). K3s is an authorized Kubernetes distribution. While K3s is an enhanced variant of Kubernetes (the original version), its fundamental operation remains unaltered.
Reference: How k3s works
In that section, we will focus on the core components we have, starting from how we created the k3s and ending with how we receive the traffic.
We rely on Ansible for configuration management to set up k3s, with special thanks to Vincent RABAH, who created the Ansible file structure for k3s setup. He is the author of many other valuable resources, so we encourage you to follow his work. Before proceeding, we recommend familiarizing yourself with the core components of Ansible through this link.
On-premises Kubernetes environments lack the cloud-native support for LoadBalancer-type services found in platforms like AWS or GCP. Tools like Cilium, MetalLB, and ServiceLB fill this gap, each with a different approach.
Each tool offers unique trade-offs. ServiceLB is suited for basic needs, MetalLB balances simplicity and flexibility, and Cilium delivers advanced performance for modern networks.
Kubernetes, originally designed for stateless applications, now supports StatefulSets to manage stateful workloads with persistent volumes. On cloud platforms, storage is dynamically managed using drivers like AWS EBS, GCE Persistent Disk, or EFS CSI Driver, enabling seamless scaling and reliability. However, in on-prem environments, storage management is more complex due to the lack of native, scalable storage options.
Container Storage Interface (CSI) solutions address this gap by enabling dynamic provisioning, replication, and failover for persistent volumes in on-prem Kubernetes clusters. Key CSI tools include:
Each CSI solution varies in complexity and capabilities, from Longhorn’s simplicity to Rook’s versatility and OpenEBS’s application-centric design. These tools make on-prem storage management more reliable, scalable, and adaptable to diverse workload needs.
Reference: Kubernetes adoption levels
The journey from a simple on-premise setup to a robust Kubernetes-based infrastructure has been one of the most impactful and prioritized projects at Thndr. While the transition presented its fair share of challenges, it has empowered us to scale effectively, deliver a more reliable and seamless experience for our users, and adhere to the regulations — all while positioning the platform for long-term growth.
As Thndr continues to expand in Egypt and the broader MENA region, we remain dedicated to evolving our infrastructure. Our goal is not just to meet the demands of today but to anticipate and prepare for the opportunities of tomorrow. This commitment is fueled by our mission to democratize investing, leveraging technology to provide a simple, barrier-free investing experience that is truly user-centric.
]]>Discover a financial revolution with Thndr App’s Investment Guide — crafted to simplify the staggering task of starting your investment journey. Triggered by user inquiries on social media, this feature resulted in an impressive ≈8 p.p increase in funded accounts to signups. Tailored for all investors, it enhances user experience, guiding decisions aligned with financial goals and risk tolerance. Join us to unveil the logic, explore diverse personalities, and gain insights from usability testing sessions.
The backstory of our game-changing Investment Guide
We all know it is overwhelming to start investing and find a good investment to start your journey with. So, why not help investors discover their investor personality and give them recommendations to improve their path to financial freedom?
Whether a beginner or an experienced investor, the Investment Guide feature helps you make informed decisions aligned with your financial goals and risk tolerance.
What was the trigger?
We received many CX inquiries and users were also asking on our social media platforms what to invest in. And, many of them weren’t familiar with the different investment products on Thndr.
Investment Guide card design: the entry point from the Explore page
A deep dive into tailoring our guide for maximized impact
We wanted to create a fun, short, and effective guide to have accurate outcomes. Hence, we focused on 4 main aspects that will determine an investor’s personality:
Objective: Determine a clear and specific investing goal.
Risk: Measure the tolerance for uncertain or adverse actions in a given situation.
Duration: Analyze the investing time frame.
Passiveness: Compare activity vs proactivity.
4 questions for each aspect mentioned above
After pinpointing these 4 aspects we created 4 different personalities for all the possible results. Here they are:
Guardian: You know your money’s worth and want to guard your hard-earned treasure.
Maverick: You prefer to take control of your own decisions — and you know very well that with high risk comes an even higher reward.
Portfolio Pro: You’re open to some risk, but prefer to leave it up to the pros to invest on your behalf.
Safe-Player: Slow and steady wins the race; you’re not about taking chances.
4 personalities with their generated recommendations
Cracking the Code: Unveiling the Logic Behind Our Results!
Here’s a diagram illustrating various scenarios and their corresponding outcomes.
A flow explaining the possible results for different answers
Are you curious about exploring different personalities? — we’ve got you covered
We provided a flow where you can view all personalities after you finish the guide. Browsing through other personalities and learning about them might motivate investors to explore more opportunities. We also allowed the users to redo the guide if they wanted to.
We provided a flow where you can view all personalities after you finish the guide. Browsing through other personalities and learning about them might motivate investors to explore more opportunities. We also allowed the users to redo the guide if they wanted to.
Test again and explore all personalities flows
Usability testing sessions for an extra layer of confidence
We tested with 5 users to understand their behaviors and to make sure the flow was clear and easy to digest.
Usability testing sessions highlights
The Moment of Truth: Examining how well this feature has delivered
An increase of ≈ 8p.p in the conversion of funded accounts after releasing this feature.
Data after releasing the feature
In conclusion, introducing the Investment Guide on Thndr App has proven to be a pivotal step towards enhancing the user experience and encouraging informed investment decisions. Recognizing the overwhelming nature of starting an investment journey, the Investment Guide assists both beginners and experienced investors in discovering their investor personality and aligning their choices with financial goals and risk tolerance.
And… That’s a wrap!
I hope you found this case study useful and informative. Feel free to contact us on any social media platform if you have any questions. We would be more than happy to have a chat with you.