Cloud Infrastructure & DevOps Engineering

Cloud infrastructure built for reliable production.

We design, automate and operate the infrastructure behind modern software.

For agencies, product teams and growing businesses that need dependable production without building an infrastructure team.

Production architecture overview Users reach a load balancer running Nginx, which forwards traffic to the application and then to the database. A CI/CD pipeline deploys to the application, and a monitoring system watches it. Users Nginx Application Database CI/CD Monitoring Load balancer Deploy path Metrics and alerts

Your application is only as reliable as the infrastructure running it.

We help teams move from “the application works” to “the application is ready for production.”

When teams come to us

If one of these sounds familiar, start with an infrastructure assessment.

Request an assessment

From first assessment to ongoing operations.

Seven services that follow the life of a production system.

  1. Infrastructure Assessment

    Find out what’s wrong before it costs you.

    A focused review of your existing cloud and deployment environment, delivered as a written report.

    • Reliability and failure risks
    • Security configuration
    • Deployment process
    • Backup and recovery readiness
    • Monitoring gaps
    • Cloud cost

    Findings, severity, business impact and a prioritised roadmap.

  2. Cloud Architecture & Infrastructure

    Design the foundation before you deploy.

    • AWS environment design
    • Private networking and isolation
    • Access control (IAM)
    • Compute, storage and databases
    • DNS and TLS
    • Separate staging and production environments
    See it in practice: Webhook Delivery System
  3. Cloud Migration

    Move from a starter setup to infrastructure you control.

    • From starter hosting platforms to a structured AWS environment
    • From single-server setups to separate staging and production
    • Planned cutover with a rollback path
    • Documentation of what was moved and how
    See it in practice: Operationalizing an Existing Application
  4. DevOps & Deployment Automation

    Turn deployment into a repeatable engineering process.

    • Automated testing and deployment pipelines
    • Containerised applications
    • Staging and production with approval gates
    • Health checks and automatic rollback
    • Secrets kept out of code and images
    See it in practice: Docker-Based CI/CD Pipeline
  5. Reliability & Observability

    Know what is happening in production.

    • Metrics and dashboards
    • Alerting on failures and error rates
    • Health checks
    • Service-level visibility across components
    See it in practice: Webhook Delivery System
  6. Infrastructure Security

    Secure the infrastructure your application depends on.

    • Least-privilege access
    • Network isolation between services
    • Secrets management
    • TLS everywhere
    • No long-lived credentials in CI/CD
    See it in practice: Production Waitlist API
  7. Managed Infrastructure

    Keep your production infrastructure running.

    For teams that don’t want to build an infrastructure function of their own. Defined monthly scope.

    • Monitoring review
    • Deployment support
    • Maintenance and updates
    • Cost reviews
    • Incident assistance during agreed support hours

We can also build custom applications and APIs when infrastructure and application engineering need to be delivered together.

Work with your existing engineering team.

Radiance doesn’t replace your developers. We work alongside them on the infrastructure layer (design, automation and operations), so your engineers can stay focused on the product.

Software agencies

An infrastructure partner for client projects that need cloud deployment, CI/CD, production environments or ongoing support.

Product and SaaS teams

Infrastructure and reliability support as your product moves from development into production and begins to scale.

Founders and teams building with AI

Applications built quickly with AI tools often work in a demo and strain under real users, real data and real security expectations. We take them from working to production-ready.

Growing businesses

Cloud infrastructure without the cost of a full internal infrastructure team.

A process, not a one-off setup.

  1. Understand

    The application, the business requirements, the current infrastructure.

  2. Assess

    Risks, constraints and opportunities.

  3. Design

    The target architecture and an implementation plan.

  4. Build

    Infrastructure, automation and operational tooling.

  5. Validate

    Deployment, failure recovery, security and operational behaviour.

  6. Operate

    Ongoing maintenance, monitoring and support where required.

Implementation is one step of six.

Where is your infrastructure today?

  1. WorkingThe application runs.
  2. Production-readyDeployment, security, backups and monitoring are in place.
  3. ReliableFailures are visible, recoverable and rehearsed.
  4. OptimisedCost, performance and operations are continuously improved.

An assessment tells you which step you are on and what it takes to reach the next one.

Engineering systems.

Reference systems built and documented by Radiance to demonstrate how we design and operate production infrastructure. Each one is public on GitHub.

Webhook Delivery System

Challenge

Webhook delivery requires guaranteed async processing, retry logic on failure, full audit trails, and operational visibility, none of which you get from a simple HTTP call inside an API handler. Built on a producer/consumer architecture with Redis as the message queue.

Approach

  • Two-tier AWS architecture: application layer (FastAPI, RQ worker, Redis, Nginx) on Instance 1, data and observability layer (PostgreSQL, Prometheus, Grafana) on Instance 2, communicating exclusively over a private VPC network. No internal traffic crosses the public internet.
  • Decoupled delivery pipeline: API accepts the event, persists to PostgreSQL, and pushes a job to Redis, returning immediately. The RQ worker processes delivery asynchronously, retrying on failure. Every attempt is recorded. The API never blocks on delivery.
  • Runtime secrets fetched from AWS Parameter Store via IAM role at deploy time. No secrets on disk, no secrets in the repository. GitHub Secrets used only for CI/CD pipeline operations.
  • Four-job GitHub Actions pipeline: test, build, deploy-staging (auto), deploy-production (manual approval gate). Single Docker image, different entrypoint commands for API and worker: one build artifact, two runtime roles.
  • Prometheus scrapes four targets (API, node-exporter, redis-exporter, self). Two active alert rules: target-down fires immediately, high error rate fires when 4xx/5xx ratio exceeds 5% over a 5-minute window.

Infrastructure

FastAPIRedis · RQPrometheus · GrafanaAWS VPCParameter Store

Outcome

Demonstrates a private two-tier AWS design, asynchronous delivery with retries and audit records, and alerting on failures and error rates.

View on GitHub →

Production Waitlist API Infrastructure

Challenge

Production APIs need secure HTTPS access, reverse proxy routing, isolated environments, and reliable deployments. A single container exposed directly to the internet is not production-ready.

Approach

  • Built a production-grade FastAPI system with PostgreSQL backend, Nginx reverse proxy, and HTTPS via Let’s Encrypt.
  • Nginx handles SSL termination and forwards traffic internally to FastAPI over a private Docker network. Application and database containers are never publicly exposed.
  • Full GitHub Actions pipeline with staging deployment, production approval gate, health checks, SHA-based rollback, and environment-specific Nginx configurations.

Infrastructure

FastAPINginxPostgreSQLHTTPS

Outcome

Demonstrates HTTPS termination, network isolation between services, and a gated deployment pipeline with rollback.

View on GitHub →

Operationalizing an Existing Application

Challenge

Existing applications often lack deployment automation, environment isolation, and operational reliability. Production infrastructure must be designed around software that was not originally built for deployment workflows.

Approach

  • Integrated a complete DevOps layer into an existing Flask warehouse management application: Docker, Docker Compose, GitHub Actions pipeline, staging and production environments, and deployment approval gates.
  • Identified and resolved undocumented operational gaps including missing dependencies, incomplete database schema setup, and unmerged migration scripts.
  • Implemented persistent Docker volume storage so application data survives container restarts and deployments reliably.

Infrastructure

DockerGitHub ActionsPython FlaskEC2

Outcome

Demonstrates taking an application that was not built for deployment to a repeatable, gated release process.

View on GitHub →

Staging & Production Environment Separation

Challenge

Deploying directly to production on every push means users are exposed to every bug. There is no safe place to test before it’s live.

Approach

  • Two isolated EC2 environments: staging deploys automatically on every push, production requires manual approval.
  • Single Docker image built once and deployed identically to both environments, so there is no drift between staging and production.
  • Per-environment secrets via GitHub Environments. Staging and production have completely isolated credentials.

Infrastructure

StagingProductionApproval GatesGitHub Environments

Outcome

Demonstrates environment separation with approval gates and isolated credentials.

View on GitHub →

Multi-Container System with Database

Challenge

Real apps need databases. Running an app and a database together in production requires careful networking, configuration, and startup ordering.

Approach

  • Flask API and PostgreSQL running as separate containers connected via Docker Compose networking.
  • Containers discover each other by service name: no hardcoded IPs, no fragile config.
  • All secrets injected at runtime via environment variables, never stored in code or images.

Infrastructure

Docker ComposePostgreSQLFlask APIEC2

Outcome

Demonstrates a multi-container service with runtime-injected secrets.

View on GitHub →

Docker-Based CI/CD Pipeline

Challenge

Deploying raw code to a server means the server must be configured for every app. One wrong dependency breaks everything.

Approach

  • Containerised a Python Flask app with Docker. The server only needs Docker installed, nothing else.
  • Three-job pipeline: tests run inside the container, image pushed to Docker Hub tagged with Git commit SHA, EC2 pulls and runs the image.
  • Automatic rollback to previous image by SHA if health check fails after deploy.

Infrastructure

DockerGitHub ActionsPython FlaskEC2

Outcome

Demonstrates a containerised delivery pipeline with health checks and automatic rollback.

View on GitHub →

Tools we work with.

Cloud

AWSVPCIAMEC2Route 53Parameter Store

Infrastructure

DockerDocker ComposeLinuxNginxTerraformKubernetes

Delivery

GitHub ActionsCI/CD

Observability

PrometheusGrafana

Data

PostgreSQLRedis

Also used

FastAPIBash

Built from first principles.

Radiance IT Solution focuses on deployment automation and operational reliability: building infrastructure systems that help teams ship software confidently through automated pipelines, containerized environments, and structured deployment workflows.

Every system is approached with a focus on understanding why each component exists, not just making it function. The result is cleaner infrastructure, faster debugging, and more reliable delivery systems designed to handle operational failure gracefully.

The goal is simple: make software delivery reliable and repeatable for teams that have more important things to focus on than deployment complexity.

W.K.V.P Randunu
DevOps Engineer

Not sure what’s wrong with your infrastructure?

Start with an infrastructure assessment.

Request an assessment

Let’s talk about your infrastructure.

Tell us what you’re running and what’s worrying you. We’ll reply with an honest view of whether and how we can help.

contact@radianceits.com