Case studies
Food & Wellness · E-commerce · Azure

The Azure platform behind a high-volume digital meal-plan experience, run as code.

PractiCal sells personalised meal plans across the UAE through a Next.js storefront, Laravel/PHP backend services and Azure serverless workloads. I owned the cloud and application platform end to end: infrastructure, edge security, CI/CD and production operations across development, staging and production.

Client
PractiCal, a UAE personalised meal-plan business serving Dubai, Abu Dhabi and the wider UAE
Sector
Food & Wellness · E-commerce
Duration
Ongoing platform ownership
Engagement
Fractional Platform Lead
Azure
one cloud platform for storefront, services and serverless
Laravel + Next.js
application stack, deployed by pipeline
End to end
cloud, DevOps and production ownership

01

The challenge

The platform combined a customer-facing Next.js experience with Laravel/PHP backend services and serverless workloads on Azure. The infrastructure had to support customer onboarding, meal-plan selection, subscriptions and continuous application change while keeping production secure and reliable. As the platform evolved, the focus was on removing manual infrastructure and deployment work, improving security at the edge, and establishing a predictable delivery process across development, staging and production.

02

Solution architecture

Solution architecture: PractiCal meal-plan platform on AzureCustomers reach the Next.js storefront through Cloudflare, which provides DNS, TLS and WAF. The storefront and the Laravel API run on Azure App Service. Azure Functions behind Storage Queues handle order processing, notifications and scheduled jobs. Data lives in Azure Database for MySQL, Azure Cache for Redis, Blob Storage and Key Vault, reached over private endpoints. Payment, messaging and delivery partners are called from the API and the functions. Azure DevOps, Terraform and Azure Monitor run alongside as the delivery and operations platform.AZURE · PRODUCTION · STAGING · DEVELOPMENT (ONE DEFINITION PER ENVIRONMENT, TERRAFORM)DELIVERY & OPERATIONSCUSTOMERSWeb and mobile visitorsOnboarding, plan selection, subscriptionsTEAMOperations and kitchen staffOrders, menus, delivery schedulesEDGE & SECURITYCloudflareDNS · TLS termination · WAF rules · Bot controls · Caching for static assets · Only route to the App ServicesSTOREFRONTNext.js on App ServiceCustomer experience: onboarding, meal-plan builder,subscriptions, account and checkoutServer-side calls to the Laravel APIStatic assets cached at the edgeBACKEND SERVICESLaravel / PHP API on App Service for ContainersPlans, orders, subscriptions, customersPayment and billing integrationsQueues work to Azure FunctionsAdmin and operations endpointsMESSAGINGStorage QueuesOrder placed, plan changed,payment eventsRetry and poison handlingSERVERLESSAzure FunctionsOrder processing and kitchen schedules · Notifications (email, SMS, push) · Nightly plan generation and remindersScale to zero between runs; no servers to patchManaged identity to data services and Key VaultDATAAzure Database for MySQLLaravel application dataAutomated backups, read replicaDATAAzure Cache for RedisSessions, cache, rate limitsQueue backing for LaravelDATABlob StorageMeal and menu media, exportsLifecycle policiesSECRETSKey VaultKeys, connection strings, certsManaged identities onlyEXTERNALPayment gatewayCard payments and subscriptionsWebhooks into the APIVerified signaturesEXTERNALMessaging providersEmail, SMS and pushCalled from Azure FunctionsTemplates versioned in GitEXTERNALDelivery and logisticsRoute and slot integrationsDaily schedule exportsCalled from the APIVirtual network with private endpoints for MySQL, Redis, Storage and Key Vault. App Services accept traffic only from Cloudflare.CI/CDAzure DevOpsBuild, test, deploy perenvironment; staging isthe gate before productionIACTerraformApp Services, Functions,data, network, Cloudflare;plan and apply in pipelinesOBSERVABILITYAzure MonitorApplication Insights, LogAnalytics, alert rules,dashboards, runbooksRequest pathData and queue accessExternal calls, deployment and telemetryDev, staging and production are identical definitions

Request path in teal; dashed lines are private connectivity, deployment and telemetry. Scroll sideways on small screens.

Edge and security
Cloudflare DNS, TLS termination, WAF rules and bot controls for the storefront and the API hostnames.
Storefront
Next.js on App Service: onboarding, meal-plan selection, subscriptions, account; server-side calls to the Laravel API.
Backend services
Laravel/PHP API on App Service for Containers: plans, orders, subscriptions and billing integrations.
Serverless
Azure Functions behind Storage Queues for order processing, notifications and scheduled jobs.
Data
Azure Database for MySQL, Azure Cache for Redis, Blob Storage for media, Key Vault for secrets.
Network
Virtual network with private endpoints for data services; App Services reachable only through Cloudflare.
Delivery and operations
Azure DevOps pipelines, Terraform for the whole estate including Cloudflare, Azure Monitor and Application Insights.

Layers top to bottom. Controls apply at every layer.

03

Approach

  1. 01Azure cloud architecture: designed and managed the infrastructure for the web application, backend services and serverless workloads.
  2. 02Application platform: owned the hosting and deployment requirements for the Laravel/PHP services and the Next.js front end.
  3. 03Serverless: moved event-driven and supporting workloads onto Azure Functions, so there was no dedicated infrastructure to operate for them.
  4. 04CI/CD: built and maintained Azure DevOps pipelines for automated builds and deployments across environments.
  5. 05Infrastructure as code: provisioned and managed the platform with Terraform, removing manual configuration.
  6. 06Edge security: managed Cloudflare DNS, TLS and WAF controls for every public endpoint.
  7. 07Production operations: deployments, infrastructure changes, monitoring, troubleshooting and incidents, end to end.

04

How the delivery ran

  • Baseline first: the existing Azure estate mapped, then brought under Terraform environment by environment.
  • Pipelines per application in Azure DevOps, with staging as the gate before production.
  • Event-driven jobs such as order processing, notifications and scheduled tasks moved from always-on servers to Azure Functions behind queues.
  • Cloudflare put in front of every public hostname, with WAF rules tuned against real traffic and TLS handled at the edge.
  • Monitoring and alerting wired to the same dashboards used for releases, so every deployment could be verified the same way.

05

What was delivered

  • Azure cloud infrastructure as Terraform
  • Laravel/PHP application infrastructure
  • Next.js application deployment
  • Azure Functions workloads behind queues
  • Azure DevOps CI/CD pipelines
  • Development, staging and production environments
  • Cloudflare DNS and edge configuration
  • WAF, TLS and secure application ingress
  • Application and infrastructure monitoring
  • Production deployment, troubleshooting and optimisation

06

Results

DimensionOutcome
Cloud platformStandardised Azure infrastructure supporting the whole application ecosystem
Application deliveryRepeatable CI/CD for the Laravel and Next.js applications
ServerlessEvent-driven workloads moved onto managed Azure services where appropriate
SecurityStronger edge protection through Cloudflare and WAF, with controlled access
InfrastructureManual configuration replaced by Terraform
OperationsBetter visibility and more predictable production support
DeliveryFaster and more controlled application releases

Facing a similar decision? A 30-minute architecture review is the fastest way to find out whether the same approach fits.

Book an architecture review

More case studies

Other engagements

All case studies

Government · Tourism · Azure

A secure Azure platform for a national tourism digital ecosystem, delivered as code.

A high-traffic tourism ecosystem built on Sitecore, .NET and Optimizely needed standardised, observable and resilient infrastructure across development, UAT and production. I owned cloud architecture, security, networking, CI/CD and production application delivery as Cloud Solution Architect and DevOps Engineer.

AzureSitecore.NETOptimizely
Read the case study

Education · Enterprise · Azure

A secure Azure platform for a large-scale university digital experience on .NET and Umbraco.

A university digital platform serving prospective students, current students, faculty and other stakeholders: programme discovery, admissions, applications and student services on an ASP.NET and Umbraco CMS stack. I owned Azure infrastructure, application delivery, security and production operations.

AzureAzure App Service.NETASP.NET
Read the case study

B2B SaaS · AWS

Kubernetes platform that cut cloud spend by 60% and deploy time from 45 minutes to 5.

A growing SaaS platform was running on hand-built AWS infrastructure with manual deployments and costs rising 40% month on month. I replaced it with a production-grade EKS platform, GitOps delivery and infrastructure as code, migrated with zero downtime.

AWSEKSTerraformArgo CD
Read the case study

FinTech · AWS

Zero-trust AWS controls that took a FinTech to SOC 2 Type II in 8 weeks with no audit findings.

Enterprise deals depended on SOC 2 Type II, and the existing estate had shared secrets in code, permissive IAM and no audit trail. I designed and implemented the identity, network, secrets and audit controls, and the external audit closed with zero findings.

AWSSecrets ManagerIAMVPC endpoints
Read the case study

B2B Software · Kubernetes

Observability and SLOs that cut detection time from 90 minutes to 5 and freed a fifth of engineering time.

A six-person team ran production with no visibility: incidents took hours to detect and 40% of engineering time went to firefighting. I built the observability stack, defined SLOs and burn-rate alerting, and wrote the runbooks. Detection fell to 5 minutes and the team got 20% of its time back.

KubernetesPrometheusGrafanaOpenTelemetry
Read the case study

Next step

Bring me the platform decision you have to get right.

A 30-minute architecture review call. You leave with a written view of the risk and the next step, whether or not we work together.