Skip to main content

Real scenarios. Local environment.

See how teams use Topaz to eliminate cloud costs, speed up CI pipelines, and ship Azure-backed applications faster — without a subscription.

Built for real workflows

From CI pipelines to microservices, here is how Topaz fits into the ways teams already work.

⚙️CI / CD

Reliable integration tests without cloud costs

Spin up a full Azure environment inside your CI pipeline — no credentials, no cloud subscription, no per-run charges. Topaz starts as a container alongside your app, provisions resources via the Azure CLI, and your integration tests run against real Azure SDK clients.

  • Zero cloud spend on every PR or nightly run
  • Deterministic environment — same state every time
  • Works on GitHub Actions, Azure DevOps, GitLab CI and any other runner
  • No secrets or service principals required in CI
GitHub Actions — integration-tests.yml
📦
Build & unit tests
dotnet test --filter Unit
PASS
🟦
Start Topaz
docker run thecloudtheory/topaz:latest
RUN
🔗
Provision resources
az group create / az storage account create
PASS
🧪
Integration tests
dotnet test --filter Integration
PASS
🚀
Deploy to staging
Only runs on main branch
SKIP
.NET · Python · any SDK

Point your Azure SDK at Topaz, keep your code unchanged

Topaz implements the same REST and AMQP protocols as Azure. Swap the endpoint URL and credential, and your BlobServiceClient, SecretClient, ServiceBusClient — everything — works as-is. A single NuGet helper package handles the credential wiring for .NET projects.

  • No application code changes — only connection strings differ
  • Supports Key Vault, Blob Storage, Service Bus, Event Hub and more
  • AzureLocalCredential mirrors DefaultAzureCredential behaviour
  • Hot-reload friendly: restart Topaz without touching your app
Program.cs — dependency injection
// One-time setup — redirect SDK to Topaz
builder.Services.AddAzureClients(clients => {
clients.AddBlobServiceClient(
new Uri("https://topaz.local.dev:8891/..."));
clients.AddSecretClient(
new Uri("https://topaz.local.dev:8898/my-vault"));
clients.UseCredential(
new AzureLocalCredential()); // ← Topaz helper
});

// Application code is unchanged
var blobs = serviceProvider
.GetRequiredService<BlobServiceClient>();

await blobs.CreateBlobContainerAsync("uploads");
🏗Infrastructure as Code

Validate ARM & Bicep templates before you touch the cloud

Deploy your Infrastructure-as-Code files to Topaz exactly as you would to Azure — az deployment group create, the Azure SDK, or a CI step. Topaz evaluates the template, provisions all described resources, applies RBAC assignments, and lets you verify the resulting state without risking a misconfigured production environment.

  • Catch template errors locally in seconds, not after a 10-minute cloud deploy
  • Test RBAC and managed-identity wiring before committing
  • Iterate on module structure without accumulating cloud resources
  • Works with both ARM JSON and compiled Bicep output
Bicep → Topaz ARM deployment
TEMPLATE
📄 main.bicep
📄 modules/storage.bicep
DEPLOY
⚙️ Topaz ARM engine
RESOURCES
📦 Storage account
🔐 Key Vault
🚌 Service Bus
VALIDATE
✅ RBAC assignments
✅ Secrets injected
🧩Microservices · Docker Compose

Replace a cloud subscription with one Topaz container

Running a microservices architecture locally usually means juggling Azurite, a separate Service Bus emulator, and a fake identity service — or paying for a shared dev Azure subscription. Add a single Topaz service to your docker-compose.yml and get every Azure dependency in one place.

  • Service Bus topics, Event Hub streams, Blob and Key Vault — all in one process
  • Managed identity and RBAC emulation keeps security models intact locally
  • Onboard new engineers in minutes: git clone, docker compose up
  • Persistent state across restarts via a mounted volume
docker-compose.yml — local topology
YOUR SERVICES
🌐 API Gateway
⚡ Order Service
📧 Notify Service
↓ connects to ↓
TOPAZ (single container)
🚌 Service Bus
📡 Event Hub
📦 Blob Storage
🔐 Key Vault
🆔 Managed Identity
RESULT
✅ No cloud subscription needed

Even more ways to use Topaz

Whatever the workflow, Topaz removes the cloud dependency from your inner development loop.

🔒
Security & RBAC testing

Model least-privilege role assignments and verify that managed identities can only access the resources they are meant to — all without touching a production tenant.

🚀
Rapid prototyping

Sketch a new Azure-backed feature and wire it end-to-end in an afternoon. No provisioning tickets, no shared dev subscriptions, no waiting.

🎓
Training & onboarding

Let new team members explore Azure APIs and SDK patterns in a safe, free, local environment before they ever touch a real subscription.

📴
Offline & air-gapped development

Work on a plane, in a secure facility, or anywhere without internet access. Topaz runs entirely offline — no Azure connectivity required.

🐛
Debugging SDK interactions

Reproduce subtle SDK or serialization bugs locally with full control over resource state. No need to recreate transient cloud conditions.

🔄
Migration & refactoring

Safely refactor how your application interacts with Azure services. Regression-test against Topaz before running against the real cloud.

Ready to cut the cloud dependency?

Topaz is free and open source. Get it running in under two minutes.