Microservices Experts
Help clients embrace Microservices & the DevOps needed for success.Microservices Consulting
Experienced Implementers
Microservices experts with multiple projects in-flight.
Analysis & Roadmap
Analyzing your applications & creating a strategic path for Microservices migration.
DevOps Platforms
Providing the necessary automation required for Microservices success.
Microservices Education
Helping you understand approaches, constructs, and potential pitfalls.
Learn About Microservices
Monolithic Architecture
Recent Microservices Resources
- It’s important to thoroughly consider both the benefits and drawbacks of microservices architecture before you implement it. It’s also important to implement robust testing strategies...
- A one-hour discussion of Continuous Delivery with GitOps (using Kubernetes) with key concepts and real-time examples featuring trunk-based development and feature flags.
- In this post, I'll show you how to use the new, web-based interface in Cloudflare to quickly configure a tunnel to your local resources for...
- Kubernetes, or k8s, is an important container orchestration platform. In this blog, I'll describe creating a workable Kubernetes cluster implemented on a stack of four...
- 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...
- This presentation explores a Terraform-based approach to Infrastructure as code. Infrastructure is becoming more and more important for us as developers to understand and develop;...
- In this post, l explain how we used Visual Studio Code’s Development Container feature as a stepping stone in our long-term effort to achieve Collaborative...
- In this blog, we utilize the strengths of Docker containers to quickly spin up two separate containers that we can utilize for our software development...
- Microservices has become a catch-all term in the industry used to describe anything from architecture patterns to actual service implementations.With such a broad spectrum, it...
- In this post, I will be introducing three strategies that can help Node developers who wish to loosen their code. First, we’ll cover microservices with...
- On my last two projects, I decided to give Azure Data Studio a try to see how it measured up to SSMS. Azure Data Studio...
- GitOps provides a declarative approach for improving the management of application delivery.In this 50-minute video, Keyhole Principal Consultant Jaime Niswonger discusses basic GitOps fundamentals and...
- Infrastructure as Code (or IaC) is the process of using code and versioning in the same way you do your source code to manage your...
- This is a tutorial for how to use the VS Code Remote-Containers extension to containerize your development environment. First, I will discuss my reasons for separating...
- Azure Service Bus is a message-queueing technology. In this introductory blog, you will learn what Azure Service Bus is and when to use it, see...
- In this post, we will set up continuous deployment using Azure’s Deployment Center. Continuous Deployment is used to shorten the release cycle and quickly get...
- So you want to host a web application on Azure with minimal overhead, but how is this done? Azure makes it possible by running an...
- The Keyhole Labs team is proud to announce the release of the Byzantine API Gateway, a new addition to our Byzantine Tools initiative. The Byzantine API...
- When the Microservices approach became popular a few years ago, many companies rushed to build their own microservices or to convert their legacy applications into...
- The Keyhole team is excited to share an internal educational video that is now available to the public. In our first-ever video release, we discuss...
- The big three cloud providers (AWS, Azure, and Google Cloud, in that order) have their various strengths and areas of expertise. Most large organizations though...
- AWS SQS (Simple Queue Service) can provide developers with flexibility and scalability when building microservice application(s). In this quick start tutorial, we will demonstrate how...
- Remember when Netflix first came out with its suite of distributed components? It included Eureka for service discovery, Hystrix for circuit breaking, and Zuul for...
- I’ve been in the software development business for a long time and I can’t tell you how many login screens with authentication logic I have...
- This is an in-depth learning series focused on a specific application: a JavaScript-based suite of single-page applications optimized for use in a microservice environment. We...
- Part of the Solid Foundations Learning Series This is the introductory post to an in-depth series of articles that will tell the story of why and...
- Microservices? Yeah, you’re doing it wrong.Microservices is a silver bullet, magic pill, instant fix, and can't-go-wrong solution to all of software’s problems. In fact, as...
- ProblemI was pushing a new Docker image tag for each application code commit, and the admins of the private registry were getting annoyed at how...
- I am assisting a client that is migrating from a monolithic legacy application to a modern Microservice stack with Spring REST. We are helping to...
- From some of my previous posts, you can get the idea that I promote the idea of developing maintainable code rapidly. So I was pretty...
- We are excited to announce the Summer 2018 Keyhole Education Series!This series consists of three educational Breakfast Boost events open to the public. The presentations...
- One issue that we face day to day as developers is speed of development. One of the coolest things to me in the ever-changing landscape...
- In this blog, I share an example of a real-world, agile enterprise modernization project that benefited from a User Story Map.I’m the team lead for...
- This post is a continuation of our hands-on OpenShift Quick Start blog series.In the first post we introduced OpenShift & its features. In part two,...
- This post is a continuation of our hands-on OpenShift Quick Start blog series. In the first post we introduced OpenShift, and in part two, you worked...
- Our previous blog in the series introduced RedHat’s OpenShift solution that provides a way for enterprise teams to implement their own PaaS. Essentially, it sits...
- For the last few years, Docker containers have been all the rage in the DevOps world. After all, what’s not to like? They allow you...
- Recently I needed web/access logs from a NetScaler appliance. The client wanted me to explore NetScaler Web Logging (NSWL) as a possible solution.To make...
- When I heard that the Struts Open Source framework played a role in the recent Equifax hack, I wanted to do some research to understand...
- I recently worked to develop a software platform that relied on Spring Boot and Docker to prop up an API. Being the only developer on...
- Keyhole Software is excited to once again be a Gold sponsor of the Nebraska.Code() Conference. If you have yet to register to attend, use promo...
- This article is part of a series of articles about modern tooling and techniques for building distributed systems in DotNet.In our first article, we...
- This is going to be the first post in a series of articles about modern tooling and techniques for building distributed systems. In this post,...
- If you are heading down the path of a Microservices style of architecture, one tenant you will need to embrace is automation. Many moving parts...
- We're excited to announce the release of a new, free white paper on the Microservices software architecture style.Microservices is an architectural pattern gaining steam...
- One of the least glamorous aspects of implementing a Microservices architecture is the security. It's not fun or cool when compared to things like the...
- We have consultants who specialize in moving old to new, renovating dilapidated code bases, and designing brighter futures for enterprises who have been vendor-locked for...
- Keyhole Software has announced that it will host a Microservices and DevOps educational Breakfast Boost event on January 25, 2017. This presentation will demonstrate an...
- The Keyhole Labs team is excited to announce the release of a Spring Boot starter for auto-configuration of Trouble Maker.This new auto-configuration allows Spring Boot...
- The Keyhole Labs team is excited to announce that GrokOla now offers API governance features including API documentation and real-time monitoring.GrokOla is a knowledge documentation...
- In part two of this series, we create a microservice architecture using JHipster’s available options for doing so. There is quite a bit more work...
- I introduce the process I went through to diagnose the bug and determine the correct integration test solution to fix it the right way. In...
- So, you want to stay on the leading edge of technology, but feel overwhelmed by all the moving parts. You’re in luck! jHipster aims to...
- At Keyhole, we have published several blogs about Microservices. We've talked about architectural patterns used in a Microservices environment such as service discovery and circuit...
- I had some time before my next project started up, so David Pitt asked me to research and write a blog on Service Fabric. It sounded terrifying....
- Introduction Update! Whirlpool now uses the "just released" Netty version 4.1.3. The great news about this is the upgrade required zero code changes, just update the...
- Arguably one of the most difficult Microservices patterns to apply and implement is the bounded context.The bounded context concept originated in Domain-Driven Design (DDD) circles....
- I recently spoke at the DeveloperWeek 2016 conference in San Francisco, California about JavaScript Debugging Patterns. This conference was an amazing opportunity to see and...
- Or How I Learned to Stop Worrying and Love the HATEOASREST has become the defacto, or at least vogue, solution to implementing web services. This...
- Service Fabric is a massively progressive step for Microsoft. At the core, it is a distributed systems platform used to build scalable and reliable applications....
- Your application just launched into production after 6+ months of development and bug fixes. In true Agile fashion, you and the team released your MVP...
- Keyhole Software has released a schedule of upcoming educational events that are open to the public. Keyhole is hosting two free Breakfast Boost events to advise members...
- The Keyhole Software team is excited to announce the release of a new open source tool: Trouble Maker.Trouble Maker helps organizations to maintain stable and durable platforms...
- For too many reasons to count, it is nearly a guarantee that your production software systems will fail in some way.We attempt to QA our...
- In the last several years, there have been new requirements and expectations placed on enterprise applications that have dramatically increased application code complexity. Users want...
- Developing a large BackboneJS application presents a unique design problem. As developers, we like to organize our code so it is understandable, logical, and predictable. However,...
- Recently Keyhole wrote the white paper “Predicting The Future Of Development.” The white paper recommends enterprises move away from the Monolithic-based architectures that “have been a...
- This happened to me...Twas the night before beta launch... I installed a new node module for a last minute feature and everything went haywire when...
- Keyhole Software has scheduled its next educational event open to the public. Keyhole is hosting a free Microservices Breakfast Boost event to educate on the Microservices application...
- Keyhole Software has scheduled its next educational event open to the public. Keyhole is hosting a free Microservices Breakfast Boost event to educate the appdev public...
- A Discussion of Architectural Styles to Mitigate Technology Shift: Microservices and Single-Page ApplicationsIf you're in the enterprise, it is common to wonder how long your current...
- Here at Keyhole, we are very fond of Spring Batch. In many Java Enterprise environments, there is still a big need for automating moving data...
- My local development feedback loop between code change and runnable container was annoyingly long on a Maven-based project I was recently working on. I wanted...
- It's rare that a piece of software as new as Docker is readily adopted by startups along with huge, well established companies. dotCloud, the company...
- Single Page Applications are quickly gaining traction as a way to implement rich, robust, and mobile friendly web-based applications. Essentially, this requires a shift in...
Microservices: Patterns for Enterprise Agility and Scalability
Introduction to the Microservices architecture style, concepts, recommended patterns, and suggested adoption.
Key Microservices Concepts
The Microservices approach originally evolved from web companies that needed to be able to handle millions of users with significant variance in traffic, while being able to also maintain the agility to respond to market demands.
What those companies pioneered—technologies, design patterns, and operational platforms—have been shared with the open source community in an effort to help other organizations to adopt Microservices.
Established patterns and constructs need to be understood before embracing Microservices. Examples include the Service Registry, API Gateway, Edge Controller, Circuit Breaker, Fallback Method / Chain Of Responsibility Pattern, Command Pattern, Bounded Context Pattern, and Failure as a Use Case, among others.
Microservices can add complexity with more moving parts. The most important (and, arguably, most difficult) part of Microservices adoption is the automation required to move all of these numerous moving parts in and out of environments. DevOps automation is key.
The decoupled, discoverable, and isolated nature of the Microservices architecture style supports a continuous deployment environment that allows microservices to be deployed at will. However, just having the ability to obtain infrastructure in an on-demand manner is not enough.
An automated platform that supports the numerous moving parts of a Microservice architecture is required. This includes as much automation as possible, to include continuous deployment, integration, delivery, and monitoring.
There will be many more moving parts in a Microservices architecture. All services must be immutable — easily deployed, started, stopped, and discovered. This is why containerization is so important.
Containerization allows an application and the environment it runs in to be moved as a single immutable unit. These containers can be managed individually, scaled as needed, and deployed in the same fashion as compiled source code. Containers have been key to attaining agility, quality, scalability, and durability.
As an example, Docker is open source software that allows you to build, run, test, and deploy distributed software containers. A Docker image can contain everything that software needs to run: code, runtime, system tools, system libraries, etc. A Docker image enables you to quickly, reliably, and consistently deploy applications regardless of environment.
Microservices architecture breaks up application function into smaller independent units that are accessed and discovered at runtime, whether over HTTP or a IP/Socket protocol using RESTful APIs.
Services should have a small granularity and the protocols should be lightweight. This creates a smaller surface area of change, making it easier to add functions and features to the system at any time. As a result of this smaller surface area, instead of having to redeploy entire applications as you might have with a monolithic application, you might only need to deploy one or more distinct services.
Organizations can exploit on-premise or off-premise infrastructure-as-a-service (IaaS) solutions. Computing resources like servers, data sources, and storage to be acquired in an on-demand manner. Three excellent solutions include:
Kubernetes by Google, is an open source container management platform for managing containerized applications across multiple hosts. It provides basic mechanisms for deployment, maintenance, and scaling of applications. Additionally, it enables scheduling, upgrades on-the-fly, auto-scaling, and constant health monitoring.
OpenShift, by Redhat, is a Platform-as-a-Service container application platform that allows developers to quickly develop, host, and scale applications in a cloud environment. It natively integrates technologies, like Docker and Kubernetes, and combines them with an enterprise foundation in Red Hat Enterprise Linux.
Service Fabric, by Microsoft, is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices. In addition to containerization, you get the added benefit of having Microservices best practices built in. Service Fabric is not limited to Azure or Windows, as you can run Service Fabric on Linux, in your local data center, or on AWS.
Recent Microservices Projects
- Client Snapshot: The client is a cybersecurity-as-a-service company offering a proprietary security platform with best-in-class automated compliance software and concierge consulting. Project Overview A team of Keyhole...
- Keyhole consultants were brought in over a multi-year period to assist Northwell Health with a large-scale modernization and migration to the cloud using Azure. Northwell...
- A team of Keyhole Software Consultants built a customer-facing analytics dashboard for an international leader in automotive data and software services. This project was performed...
- Keyhole Consultants are currently leading an initiative at a large financial services firm to move a large, monolithic, legacy application running in the organization's "on-premise"...
- Client Snapshot: Privately controlled and independent investment management firm.A cross-functional team of Keyhole Software consultants assisted a long-term client of Keyhole Software on various, concurrent...
- Northwell Health has leveraged the strengths and talents of Keyhole Software since 2014 to launch various custom software initiatives focused on enhanced patient care. Because...
- The ultimate goal of this project was to improve the stability of the application suite as the organization made the transition to a Microservices-style platform....
- In this project, almost 1,000 existing Model 204 batch applications were converted to Java Spring and Spring Batch-based applications.The goal of this engagement was for...
- The goal of this assessment was to give the client an in-depth, hands-on look at strategies for separating domains; automating build, test and release pipelines;...
- Keyhole Software was brought in to help the client meet a deadline imposed by the client state of residence. Keyhole consultants helped deliver Single-Page Application...














