Cloud Native Development Services

Expert cloud-native development and consulting services to help modernize, scale, and secure your applications with microservices, containers, Kubernetes, and DevOps.

At Keyhole Software, we help organizations unlock the full potential of the cloud. Our expert consultants build scalable, resilient, and high-performing cloud-native applications that accelerate innovation and reduce operational overhead. Whether you’re migrating legacy systems, architecting microservices, or embracing serverless computing, our team delivers modern solutions tailored to your goals.

Navigating GCP IAP Local and Deployed Development with .NET and React

Navigating GCP IAP: Local and Deployed Development with .NET and React

Zach Gardner .NET, API Development, Articles, Google Cloud Platform, React Leave a Comment

I’m currently working on several cloud-native projects hosted on Google Cloud Platform (GCP) that use .NET for the API and React for the UI. These projects rely on GCP’s Identity-Aware Proxy (IAP) to handle authentication, which occurs before any requests reach the Application Load Balancer or the application itself.

While GCP’s IAP offers robust security benefits, configuring a .NET and React application to work seamlessly with it—both locally during development and when deployed to a Cloud Run instance as a Docker container—proved to be more challenging than I expected. The available documentation and resources for this setup are sparse and often fragmented, making it difficult to piece together a clear solution.

This blog post is my way of sharing the lessons I’ve learned along the way. By outlining the steps and solutions that worked for me, I hope to save others from the trial and error I experienced and provide a clearer path for integrating GCP IAP with .NET and React applications.

Top React Frameworks for Enterprise App Dev

Top React Frameworks for Enterprise App Dev

Zach Gardner Articles, Consulting, Development Technologies & Tools, Opinion, React Leave a Comment

There is such a rich, user-driven ecosystem around React that it can be difficult to discern which frameworks, if any, should be used to develop enterprise-grade applications. This blog post dives into the most popular ones and analyzes which are most suitable for that specific use case.

Before diving in, please remember: the decision of which one is the right one for a given organization or application is very context-specific, so diligent consideration is required to ensure an optimal outcome.

Cloud Native & Microservices Readiness Assessment

Lauren Fournier Bogner Application Rewrite, IT Strategy, Manufacturing, Industrial & Supply Chain, Modernization, Transportation & Logistics

The project included an assessment of an existing monolithic application and recommendations for modernizing it to achieve the goals of the initiative—mainly a cloud-first, performant, and microservices-based implementation. Specific technology suggestions were proposed in addition to the reasoning behind each recommendation. While proprietary details cannot be shared, generalized takeaways are included. Client Consulting Relationship The client was a global leader …

Updating Microservices with Netty 5, Kafka 3, and React: Whirlpool Revisited

John Boardman Articles, Development Technologies & Tools, Java, JavaScript, Microservices, React Leave a Comment

Back in 2015 and 2016, I wrote two blogs that went step by step to develop a microservice/Netty architecture with fully working code called Whirlpool.

A lot has changed in the years since, so recently I decided to come back to the project, update it with the latest versions of Kafka and Netty, and add a React UI to it (rather than the vanilla JavaScript version it used before). In addition, I also added Windows Subsystem for Linux (WSL) scripts in addition to the Mac and Linux scripts that were there before and made all of the scripts more robust.

This blog will be about the work that went into all of those updates, plus a look at the new React UI. This provides an excellent view into what it takes to update an outdated microservices application implemented with Kafka (version .9 –>3.0) and Netty (4.1.3->5.0.0-alpha2), bringing all versions up to date and adding a React UI. By the end you’ll be familiar with the latest versions of these frameworks, know some “gotchas” to avoid, as well as understand how to integrate WebSockets into React.