/SERVICES

How Phronesys scaled to 350+ tenants on AWS with IBM Instana at the center

Phronesys is a Belgian SaaS company with a PHP-based platform that it sells to business clients. The platform is a cloud-based QHSE management solution, used by organizations to digitize and manage their quality, health, safety, and environment processes. It comes with a mobile app and has been on the market for over 15 years. When Phronesys came to NubeX, they had hundreds of clients and were growing fast. The setup they had built had served them well, but growth was pushing against its natural limits.
Seamless Scaling via Kubernetes and Automated Onboarding
Instant, Code-Free Observability for PHP
Cost Optimization via Per-Host Billing & Infrastructure as Code

A solid foundation, ready for the next step

The application ran on a single dedicated server at a European hosting provider. For a company in growth mode with a development team focused on the product itself, this was a sensible and effective choice. It kept operations simple and the application stable. As the client base grew toward 300 tenants, though, the team started running into the boundaries of that approach. Because all clients shared the same deployment, software updates went out to every tenant at once. Tenant workloads also shared the same underlying resources, which made right-sizing tricky. And as expectations around data isolation and security matured, the single-server model made it harder to give each client a fully independent environment. The architecture wasn't broken. Phronesys had simply grown to a point where more flexibility was worth investing in.

The migration: Kubernetes on AWS

NubeX designed a new infrastructure on AWS and containerized the application to run on Kubernetes (EKS). Each tenant now runs in its own isolated namespace. A problem in one tenant's environment cannot impact another. Updates can be staged tenant by tenant. The team also offloaded heavy background tasks, including PDF generation, Excel exports, and outgoing mail, to AWS Lambda. This keeps the core containers lean and prevents out-of-memory failures during peak processing. The migration also introduced a fully automated onboarding flow. When Phronesys adds a new client, an internal API call triggers a pipeline built on AWS Step Functions and Terraform. That pipeline provisions a dedicated Kubernetes namespace, S3 buckets, domain configuration, and everything else the application needs to go live. The whole thing runs without manual intervention. At the time of writing, Phronesys runs 350+ tenants on this cluster and they are currently still migrating existing customer & new customers to the platform on a daily basis.

The monitoring challenge

A containerized environment at this scale needs deep observability. You need to see what is happening not just at the infrastructure level but inside each application, right down to individual requests and database queries. NubeX initially evaluated a managed Prometheus and Grafana stack. The problem was cost. Running Prometheus for 300-plus tenants, each generating metrics continuously, made the managed pricing very expensive very fast. Beyond cost, the team would have needed to build and maintain all their own dashboards, with no pre-built coverage for Kubernetes or AWS out of the box. A self-hosted Prometheus also runs on the same infrastructure it monitors, which creates an awkward dependency: the tool you rely on to detect problems could itself be affected by the problems you are trying to catch. IBM Instana addressed both issues.

Why Instana

End-to-end visibility

Instana monitors the entire stack through a single interface. The NubeX team can trace a request from the moment a user triggers it in the mobile app, through the API layer, into the Kubernetes pods, all the way down to specific database queries and cache lookups. When something is slow, a waterfall view shows exactly where the time is going. This has helped the team catch slow database queries that needed indexing, confirm cache behavior, and optimize performance across the board. The application now runs with a cache hit rate of around 85%, meaning only 15% of requests actually reach the database. The login page responds in milliseconds.

PHP auto-instrumentation

Instana automatically instruments PHP processes without requiring developers to add code. Once the Instana agent is installed on the cluster, it detects running PHP processes and starts collecting traces inside the application. For the Phronesys team, this meant deep visibility into their existing codebase without any development effort or code changes.

Per-host billing

Instana bills per host rather than per data volume. For an environment like Phronesys, which generates a large amount of metrics from hundreds of tenants continuously, this pricing model made a practical difference. NubeX configured the cluster to maximize pod density on each node, running production workloads across six larger hosts rather than twelve smaller ones. The result is the same compute capacity at a lower license cost.

Terraform-native, fully automated

Instana ships a native Terraform provider. Because NubeX builds and manages infrastructure as code, this mattered a lot. When a new tenant is onboarded, the Terraform pipeline that provisions their Kubernetes namespace also creates a corresponding Instana view scoped to that tenant, sets up alert rules, and configures monitoring automatically. When a tenant is offboarded, the same pipeline removes the Instana configuration. Nothing in the monitoring setup is configured by hand.

PagerDuty integration and 24/5 on-call

NubeX runs an on-call rotation for Phronesys. Instana's integration with PagerDuty means alerts go directly to the on-call engineer when something breaks. Synthetic monitoring checks run every five minutes against the application endpoints and trigger an alert if response times cross a threshold or the application stops responding altogether. The team configured these checks from their own Kubernetes cluster, which gives a realistic external view of performance rather than measuring latency from inside the same network.

Shared context between developers and infra

One feature that has changed how the two teams work together is shareable time-scoped links. When a developer notices something unusual in the application, they can copy a link from Instana that locks in the current time window and filters. Sending that link to the infrastructure team gives both sides an identical view of what was happening at that moment, across both the application layer and the underlying infrastructure. The two teams also share access to the same Kubernetes and AWS dashboards, which means developers can surface infrastructure-level signals without waiting for the infra team to investigate on their behalf.

What changed for the team

Instana sits on top of the entire infrastructure as the team's operational control center. Pre-built dashboards cover Kubernetes, AWS, and PHP out of the box. Alert routing to PagerDuty works without building custom pipelines. The monitoring configuration is managed as code alongside the rest of the infrastructure, so it stays in sync as the environment grows. The engineers involved were initially skeptical. Enterprise observability tools often come with a reputation for being expensive and complex to configure. In practice, auto-instrumentation worked on first install, the out-of-the-box dashboards were perfect for daily use, and the per-host pricing model, when the cluster is optimized around it, came in below what managed Prometheus would have cost for the same scale. At 350+ tenants on the new infrastructure and growing, Phronesys now has the infrastructure and visibility to keep scaling without adding operational overhead.   Interested to talk to an Observability specialist? contact us!  

/CONTACT

Get in touch!

Subscribe to our newsletter*

/FAQ

FAQ - ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In porta posuere nisi sed blandit. Nam cursus interdum maximus. 

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In porta posuere nisi sed blandit. Nam cursus interdum maximus. 

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In porta posuere nisi sed blandit. Nam cursus interdum maximus. 

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In porta posuere nisi sed blandit. Nam cursus interdum maximus. 

/INSIGHTS

Related insights - dolor sit amet, consectetur adipiscing elit 

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In porta posuere nisi sed blandit. Nam cursus interdum maximus.

Your trusted partner for Cloud Neutral Platform Managed Services

/NAVIGATION

BTW BE 0677.419.096

/CONTACT

We have a presence in both the Flemish and French region of Belgium and also in Luxembourg.