Terraform state is the “brain” of your infrastructure. If you lose it, you are in trouble. Storing it locally is a no-go for teams. Azure Storage Backend We use Azure Blob Storage to hold the state file. It supports state locking (via Leases) to prevent two developers from applying changes simultaneously. Bootstrap Script The chicken-and-egg […]
Read more →Testing .NET 6 Applications: Integration Testing with WebApplicationFactory
Integration testing is the highest value testing you can do. In .NET 6, `WebApplicationFactory` makes it incredibly easy to spin up an in-memory version of your API for testing. Exposing the Program Class With Top-level statements, `Program` is internal. To test it, you need to expose it in `Program.cs`: The Test Setup
Read more →Kubernetes 1.22: API Removals
Kubernetes 1.22 is a “breaking” release for many because it finally removes old beta APIs that have been deprecated for years. If you rely on `extensions/v1beta1` for Ingress, you will break. The Big Changes Ingress: Move from `networking.k8s.io/v1beta1` to `networking.k8s.io/v1`. Path type is now required (`Prefix` or `Exact`). CRDs: `apiextensions.k8s.io/v1beta1` is gone. Use `v1`. ValidatingWebhookConfiguration: […]
Read more →Designing for Nullability in C#
Nullable Reference Types (NRT) are enabled by default in .NET 6 templates. It’s time to stop fighting the warnings and embrace the design philosophy. The Golden Rule “Design your types to be initialized fully on construction.” Most NRT warnings come from models that are partially initialized or set via property injection later. If a property […]
Read more →.NET 6: Minimal APIs Explained
Minimal APIs are the biggest shift in ASP.NET Core since version 1.0. They remove the MVC ceremony (Controllers, Actions, Filters) in favor of a fluent lambda-based syntax. The Code Is it just for tiny apps? No. Performance is technically better than MVC (fewer allocations, no Filter Pipeline overhead). However, organization becomes the challenge. You don’t […]
Read more →GraphQL vs gRPC vs REST: The 2021 Guide
Choosing an API style is no longer simple. Each has a niche. Protocol Best For Pros Cons REST Public APIs Universal cacheability Over/Under fetching gRPC Microservices Binary performance, Typed Browser support is poor (needs WebProxy) GraphQL Mobile/Frontends Single request, Flexible Complexity, Security (DoS via deep queries) The Hybrid Approach We use gRPC for internal service-to-service […]
Read more →