Services
Custom software developmentUmbraco developmentWeb developmentCRM developmentERP developmentAI & LLM integration.NET development & modernizationE-commerce developmentIntegrations & automationCloud & DevOpsMaintenance, support & project rescueDedicated teams & white-label
Our Work
Case studiesProducts
About Blog Contact
Cloud & DevOps · AWS · Azure

Cloud and DevOps for systems that cannot go offline.

We move live applications between clouds, run heavy jobs on Kubernetes and write the infrastructure down as code. Releases become routine, and the cloud bill follows the actual workload.

Where most requests start

Migrate, scale, or automate?

Cloud work usually starts with one of these three problems. Each links to a project where we solved it.

Migrate

Move a live system to another cloud

Choose this when: Your application runs on one provider and the business has decided to move it, but the site or API cannot go offline.

A container image, a target setup on the new provider, and a staged traffic shift with the old setup kept ready until the new one holds the load.

Azure to AWS, zero downtime
Scale

Run heavy jobs on Kubernetes

Choose this when: Work arrives in bursts: video, audio, imports or AI calls. Fixed servers sit idle most of the day and choke at peak.

A queue in front, one pod per job, and an autoscaler that adds nodes when the queue grows and removes them when it is empty.

$0 compute while idle
Automate

Repeatable builds and environments

Choose this when: Deployments depend on one person, environments drift apart, and nobody is sure what runs in production.

Docker images, CI/CD pipelines and infrastructure written as code, so Dev, Staging and Prod are built the same way every time.

ExampleEM2
Terraform and Azure DevOps pipelines
What we do

From the first container to a monitored production setup.

Each card links to a client project where this work runs in production.

Migrations between clouds

We containerize the application, build the target setup next to the old one and move traffic in stages. The public site stays up while it happens.

  • AWS ECS Fargate, RDS, S3 and ECR
  • Load balancer in front of the new setup
  • Gradual traffic shift to AWS
See it in Ben-Gurion University · ~80,000 pages moved to AWS

Containers and Kubernetes

Each heavy job gets its own pod with set CPU and memory limits. Helm charts describe the setup, and the cluster grows and shrinks with the queue.

  • Docker images per service
  • Helm charts and pod templates
  • Queue-driven autoscaling with AWS SQS
See it in AI transcription pipeline · 300+ jobs at the same time

Infrastructure as code

Networks, queues, functions and secrets are written down in Terraform. A new environment is a pipeline run, not a week of clicking in a portal.

  • Terraform for Dev, Staging and Prod
  • Azure Service Bus and Azure Functions
  • Key Vault and managed identities
See it in EM2 · 8 .NET microservices on Azure

CI/CD pipelines

Every change is built, tested and packaged the same way. Releases stop depending on a single laptop or a single person.

  • Azure DevOps, Azure CI/CD and AWS CodeBuild
  • xUnit and Moq tests around business logic
  • Docker images for local and production
See it in Jongeneel · Docker, CI/CD and xUnit tests

Cloud cost control

Compute that runs only while there is work, and AI models picked by the size of the task. The bill follows the workload, not the calendar.

  • Scale to zero when the queue is empty
  • ARM node affinity for heavy jobs
  • Model selection by job length
See it in Cloud media pipeline · $0 compute when no jobs wait

Monitoring and logging

Health checks per service, error tracking and dashboards, so a failing job shows up in a log before it shows up in a support ticket.

  • Datadog and Application Insights
  • Serilog and Sentry
  • Per-service health checks
See it in Alliant · Azure hosting watched by Datadog
Client story

A university site moved from Azure to AWS while people used it.

Ben-Gurion University’s main site holds about 80,000 pages and is edited by around 1,000 people. Applicants, students and staff use it every day, so the move to AWS could not cause an outage.

  • The C# and Umbraco application was containerized with Docker and stored in Amazon ECR.
  • It runs on ECS Fargate with Amazon RDS, S3 and a load balancer. A Windows EC2 bastion runs the import services.
  • Traffic shifted to the new setup gradually. The public site had zero interruption.
Read the case
Ben-Gurion University home page after the move to AWS
0
interruption to the public site
~300
requests per second at peak
~80K
pages moved
Cloud cost

Pay for compute only while there is work.

Heavy, uneven workloads are where cloud bills grow fastest. A video service that keeps large machines running all night pays for nothing most of the time. We design these systems around a queue, so capacity follows demand.

$0

compute cost while the queue is empty. Our media pipeline reads jobs from AWS SQS, gives each one its own Kubernetes pod and lets the autoscaler remove every node once the work is done. Read the case

5video tiers, 240p to 1080p, from one upload
Up to 500parallel S3 upload threads
Up to 60%lower AI and API cost from model selection

Cost is also about which service does the work. In an AI transcription pipeline for a lecture archive, each audio chunk goes to Gemini Pro or Gemini Flash depending on its length. That choice cut AI and API cost by up to 60%, while the cluster runs more than 300 jobs at the same time.

Building AI features on top of this kind of pipeline? See AI development.

AWS vs Azure

Pick the cloud your team can run.

We have production systems on both, so we have no reason to push one. Our honest default: stay where your team, contracts and other systems already are, and move only for a concrete reason.

AWS

What we run on AWS

Services in our projects: ECS Fargate, EC2, RDS, S3, ECR, SQS, CodeBuild, load balancers

A good fit when you want containers without running a cluster (ECS Fargate), when work is queue-driven (SQS and S3 events), or when the rest of your stack already lives there.

Azure

What we run on Azure

Services in our projects: Functions, Service Bus, AD B2C, Key Vault, Blob Storage, Load Balancer, DevOps Pipelines

A natural choice for .NET teams that already sign in with Microsoft accounts, use Azure DevOps, or need Azure AD B2C for customer logins.

ProjectsEM2, Alliant

Mixed setups happen too. The transcription pipeline stores media in AWS S3 and calls Google Vertex AI, with Google Cloud Storage alongside. What matters more than the logo is that the setup is written as code, monitored and cheap to run.

How a cloud project runs

Small steps, each one reversible.

Most cloud work happens under a running system. So we change one piece at a time, keep a way back and only switch off the old setup when the new one has proved itself.

Moving a .NET application at the same time? See .NET development. Need someone to keep it running afterward? See maintenance and support.

  1. Review what runs today

    We list the services, databases, storage, jobs and pipelines, and where each one lives. You get a map of the current setup and its weak points.

  2. Agree on the target

    Provider, managed services, containers or not, and how releases will reach production. Decisions are written down with the reason behind each one.

  3. Build it as code

    Docker images, pipelines and infrastructure definitions go into your repository, so the setup can be rebuilt and reviewed like any other code.

  4. Move in stages

    Traffic or workloads move a piece at a time. The old setup stays ready until the new one has carried real load.

  5. Watch and tune

    Logs, health checks and dashboards go live with the first release. Then we look at the bill and the metrics and adjust sizing and scaling.

Cloud and DevOps stack

The tools behind our cloud work.

Every item here comes from a client project. The list grows when a project needs something new, not when a new service is announced.

AWS
ECS FargateEC2RDSS3ECRSQSCodeBuildLoad balancer
Azure
Azure FunctionsService BusAD B2CKey VaultBlob StorageLoad BalancerAzure DevOps
Containers
DockerKubernetesHelm
Infrastructure and delivery
TerraformCI/CD pipelinesxUnitMoq
Monitoring
DatadogApplication InsightsSerilogSentry
Also used
Google Cloud StorageGoogle Vertex AIFFmpegPython.NET
Cloud and DevOps case studies

Infrastructure running in production.

Cloud migrations, Kubernetes pipelines, Terraform environments and CI/CD on AWS and Azure.

Ben-Gurion University home page with aerial campus video and search
Web platforms2024–2025
Ben-Gurion University of the Negev · Israel

Moving Ben-Gurion University's ~80,000-page site to AWS without downtime

The university's main Umbraco site: ~80,000 pages, ~1,000 editors, daily staff data imports and a zero-downtime move from Azure to AWS.

~80,000pages managed
~1,000content editors
Media and streaming
Cloud & DevOps2025
Media and streaming

A Kubernetes transcoding pipeline that costs nothing while the queue is empty

An event-driven AWS and Kubernetes service that turns each uploaded video into adaptive HLS streams with multi-language audio, then scales back to zero.

$0idle compute cost
5adaptive video tiers
Media and EdTech
AI2025
Media and EdTech

Transcribing Hebrew and Aramaic lectures at 99% precision with Gemini

A Kubernetes pipeline that turns hours of mixed-language lectures into timed transcripts, subtitles, summaries and HLS video.

99%precision on Hebrew and Aramaic
300+concurrent transcription jobs
Event dashboard with attendee counts and quick links for a two-day forum
Web platforms2025
Events and conferences

EM2: matching thousands of event attendees across 8 .NET microservices

A cloud-native platform for multi-day, multi-venue events: 8 .NET microservices on Azure handle registration, scheduling, attendee matching and Zoom.

8microservices
1000sattendees and sessions
Alliant risk management page with the Invested in You hero
Web platforms2025
Alliant · United States

One Umbraco codebase now runs Alliant's family of insurance websites

A rebuild of Alliant's web estate on current Umbraco: one modular architecture for many sites, Okta sign-in for editors and forms connected to Eloqua.

Multi-siteone shared Umbraco architecture
Okta SSOfor back-office access
Completed toolbox quiz question in the Jongeneel platform
CRM & ERP2025–2026
Jongeneel

Moving Jongeneel's operations platform from Umbraco 8 to 17 on .NET 10

An internal platform for inspections, toolboxes and transport planning, upgraded from Umbraco 8 to Umbraco 17 on .NET 10 with daily workflows intact.

Umbraco 17from Umbraco 8
.NET 10from .NET Framework
All case studies
Client reviews

What clients say about our engineers.

Quotes from verified Clutch reviews of long-running platform and custom software projects.

They maintained reliability without needing constant oversight, which made the collaboration efficient.
ExecutivePeregrine Ship · Hong Kong
★★★★★ Logistics platform on .NET and AWS, 2024–2025
Guys proved to be experts in their field.
Andrey MirCEO, HS High Stake GmbH · Karlsruhe
★★★★★ .NET portal with microservices, from 2021
Given that the client (us) invest in giving them adequate feedback, they deliver high quality, maintainable code.
Joannes VermorelCEO, Lokad · Paris
★★★★★ Clutch review, September 2024
Cloud FAQ

Cloud and DevOps questions buyers ask us.

Anything missing? Send us your question and an engineer will answer, usually within one business day.

Contact us
Can you move our application from Azure to AWS without downtime?+

Yes, if the move is staged. For Ben-Gurion University we containerized a site of about 80,000 pages, built the new setup on AWS ECS Fargate with RDS, S3, ECR and a load balancer, and shifted traffic gradually. The public site had no interruption, and it handles around 300 requests per second at peak.

Should we choose AWS or Azure?+

Usually the one your team and your other systems already use. Both run .NET, containers and queues well, and we have production work on each. A move between providers costs time and money, so we recommend one only when there is a clear business reason, not because a newer service looks interesting.

Do we need Kubernetes?+

Not always. A web application with steady traffic can run well on a managed container service such as ECS Fargate, as Ben-Gurion University does. Kubernetes earns its place when work comes in bursts and each job needs its own resources, like the video and transcription pipelines we built.

How do you keep cloud costs down?+

We size compute to the workload. Our media pipeline adds nodes as its queue grows and removes them all when it is empty, so idle compute costs $0. In an AI transcription pipeline, picking the AI model by job length cut AI and API cost by up to 60%.

Do you write infrastructure as code?+

Yes. On EM2, an event platform with 8 .NET microservices, Terraform and Azure DevOps pipelines deploy separate Dev, Staging and Prod environments. On Kubernetes projects we use Helm charts. The definitions live in your repository next to the application code.

Can you set up monitoring for an existing system?+

Yes. We have run Datadog on Alliant’s Azure-hosted sites, Application Insights with per-service health checks on EM2, and Serilog with Sentry on Jongeneel’s platform. The tool usually follows what your team already uses.

How much does cloud and DevOps work with OSKI cost?+

Our rate listed on Clutch is $25–49 per hour, and the minimum project is $1,000. A defined piece of work, such as a migration, can run as a fixed-scope project. Ongoing DevOps support can run as a monthly dedicated team or as an engineer added to your team.

Start a project

Tell us where your system runs today. We will tell you how we would move, scale or automate it.

A spec, a Figma file or three paragraphs is enough to start.

  1. First reply · from an engineer, not a sales rep
  2. 30-min call · with Roman, our CTO, to clarify scope
  3. After the call · a written proposal with plan, team and price
Roman Oleksuk
Roman Oleksuk, CTOPrefer to talk? Pick a slot in Roman's calendar
We reply from a human mailbox. No newsletters. Your brief stays under NDA on request. We use your details only to reply; see our privacy policy.