GitOps
Declarative Continuous DeploymentThis 50-minute video explores GitOps as an approach to Continuous Deployment for cloud-native applications. Keyhole Software Principal Architect, Jaime Niswonger, leads the lecture.
Recording
This video was recorded December 2020 at a Keyhole Software internal employee Lunch & Learn event.
GitOps Recording
GitOps Fundamentals and Basic ImplementationsGitOps Recording
GitOps Fundamentals and Basic ImplementationsGitOps Video Overview
GitOps provides a declarative approach for improving the management of application delivery.
Keyhole Software Principal Consultant Jaime Niswonger discusses basic GitOps fundamentals and various implementations in a Kubernetes environment. He covers GitOps best practices that unify deployment, management, and monitoring for containerized clusters and applications.
Though focused on Kubernetes, the broad concepts apply to other environments. Jaime includes his own experiences and what he has seen working with companies across various industries.
- Imperative CD Intro and Demo
- Declarative CD Intro
- GitOps Basic Principles
- ArgoCD Intro
- Declarative CD with ArgoCD
- Using Helm
Related GitOps Resources
-
Cloud platforms now sit at the center of business planning. Many teams compare AWS for its wide service range, Azure for its ties to Microsoft,... -
Outdated deployment practices can slow down even the best software teams. When you’re still manually moving files between servers, it’s easy for small mistakes to... -
A familiar challenge for many businesses is knowing when it’s time to modernize. Legacy applications that once ran smoothly on in-house servers start to feel... -
It’s common to face challenges around long-running workflows, state management, and resiliency when you’re building cloud-native applications. Traditional approaches like background services or message queues... -
Deploying a mobile app is often more difficult than building it. In this guide, we simplify the confusing, often poorly documented process of deploying a... -
Google Cloud Platform (GCP) offers developers and organizations the ability to create and deploy serverless Cloud Run functions. This code – whether it’s written in... -
As access to AI models has become more widely available and more and more people are using these tools on a regular basis, many organizations... -
What if your Azure cloud computing setup could do more for less? Many businesses unknowingly overspend on cloud services due to inefficient configurations and underutilized resources,... -
RAG architecture is revolutionizing how businesses use AI by enabling Large Language Models (LLMs) to access and utilize private, real-time data. Traditional LLMs, like ChatGPT,... -
Kubernetes has transformed how organizations deploy and manage containerized applications, but cloud-based Kubernetes services vary widely in what they offer. From pricing models to integrations... -
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... -
In the software development space, RAG solutions are being used to enhance productivity and streamline processes. By indexing and searching the entire codebase of a... -
In this blog, we'll explore how CI/CD automation with tools like JIRA Cloud, Jenkins, Slack, GitHub, SVN, and Postman benefits Agile teams as a whole.... -
Discover how Terraform IAC setup simplifies cloud infrastructure management, with a focus on Identity Aware Proxy (IAP) configuration on Google Cloud Platform (GCP). Learn from... -
Parts of this blog, including the code examples and architecture frameworks, were generated using Keyhole Software's EnterpriseGPT web client—an open-source tool that empowers organizations to... -
It’s time to release your latest front-end changes to production. However, as you create a new tag, you notice a large number of commits unrelated... -
Another great episode this time featuring the CEO of Think Big Leaders and innovation enthusiast, Amir Elion. Amir has worked with clients of all sizes,... -
This blog post serves as a thought experiment, delving into potential solutions for a pattern I have noticed on projects throughout my career. As a... -
Cloud services are reshaping business operations, enhancing flexibility and efficiency in our rapidly changing tech environment. As companies transition from outdated systems to modern platforms,... -
Microservices have taken the tech world by storm, and with them, the complex challenges of ensuring they run smoothly under pressure. Enter the unsung heroes... -
Modern application deployment involves critical decisions that can significantly influence technological growth and operational efficiency. The 'serverless vs. containers' debate epitomizes these choices, offering two... -
Choosing the right cloud provider for your enterprise is like picking the perfect partner in a high-stakes relay race. Your decision can either propel you... -
Accelerating DevOps begins by examining two critical phases of your project, each pivotal and typically managed by a person. However, inserting human elements between these... -
Event Source is an implementation of the Single Source of Truth architecture. Event Sourcing, at its core, just stores events as an ordered sequence of... -
As enterprises increasingly adopt cloud technologies, the importance of scalable and efficient solutions like Microsoft's .NET has never been more evident. This platform, compatible with... -
In this post, we will walk through using Terraform to create a Google Cloud function that triggers when a file is uploaded and outputs the... -
Transitioning to cloud technology is a pivotal step for any organization aiming to enhance its operational efficiency and scalability. However, this shift requires a thorough... -
On this episode, Zach has the pleasure of talking with Doug Shannon, a Global Intelligent Automation Leader and a LinkedIn Top AI Voice. Together, they... -
The digital landscape is constantly shifting, compelling enterprises to seek out strategies that not only streamline their development processes but also ensure the delivery of... -
Containerization is a cutting-edge technology approach that simplifies the deployment and management of software applications by packaging them into containers. These containers include everything the... -
In today's technological landscape, Keyhole Software recognizes the critical imperative for businesses to adopt cloud-native automation in order to remain competitive and agile. However, this... -
Microservices architecture has gained immense popularity due to its ability to break down complex systems into smaller, manageable services. When it comes to implementing microservices,... -
In today's rapidly advancing digital landscape, securing microservices architecture is paramount to the success and resilience of modern organizations. At Keyhole Software, we understand the... -
Docker is a pretty magical tool that streamlines server and environment setup while helping to eliminate the operating system and software version variables. It’s one... -
In this article, I'll share my Git aliases—personal modifications that I've found especially useful. I hope it inspires you to play around with customizing your... -
In today's fast-evolving digital landscape, understanding the intricacies of cloud computing has become indispensable for companies eager to optimize their use of online software solutions.... -
As an expert-driven software development and consulting firm, we prioritize knowledge sharing, client-focused delivery, and a commitment to modern technology solutions. In this spirit, we... -
In today's rapidly evolving digital landscape, cloud computing stands as a beacon of innovation and efficiency. However, the journey to the cloud is often marked... -
In past blogs, I have discussed development containers (dev containers) in detail, from explaining their general mechanics to showing how they can bolster a team's... -
In the last decade, the phrase "the cloud" has transitioned from a futuristic concept to a fundamental business strategy. The benefits of moving your business... -
In cloud computing, choosing the right cloud service provider transcends a simple choice—it's a strategic decision. This choice sets the foundation for the IT infrastructure,... -
This blog describes the basics of what it takes to get an existing LDAP server moved from the PV virtualization type to HVM. I encountered... -
Automated testing is a great way to ensure that any application can continue to grow and change while still giving fast and practical feedback to... -
In every software application I’ve ever worked on, no matter the industry or maturity of the team or number of weeks in a sprint, there... -
This year, the client I work with has started exploring the offerings in Google Cloud Platform (GCP) after investing years into the Microsoft Azure cloud.... -
One of my favorite things about the life journey that I find myself on is that I'm always learning. Every. Single. Day. Some days I learn... -
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... -
Recently, I’ve worked on automating some internal processes for building and releasing Flutter applications. Part of this effort included utilizing Fastlane with a Continuous Integration/Delivery... -
Recently, I worked on automating some internal processes for building and releasing Flutter applications. Part of this work has involved integrating integration test runs and... -
This blog is Part 1 of a three-part series exploring automating Flutter CI/CD on CircleCI. This post covers setting Fastlane to build and deploy applications,... -
In this post, I'll discuss how I’m currently working to migrate a suite of apps from Docker Swarm to Kubernetes. The client chose this migration to... -
Keyhole Software gives readers an in-depth code walkthrough and tutorial for how to integrate Avaya Agent for Desktop using React and SignalR. This integration allows the... -
A new trend of creating applications is emerging called Jamstack. No, this isn’t slapping together your favorite flavor of jelly (grape is the best) with... -
Imagine for a moment that we’re getting ready to publish a new app or feature. Following the principles of Test Driven Development (like we always... -
Welcome to the fourth and final installment of Creating an FHIR API with GCP. So far, we’ve covered a lot! We discussed the differences between Google... -
This is Part 3 of our series on creating an FHIR API using Google Cloud’s offering. In the last installment, we began implementing an FHIR... -
Welcome back to our series, Creating an FHIR API. This is Part 2 in our 4-part series on standing up an FHIR using GCP. In... -
Data interoperability is one of the hardest problems in Healthcare IT. The most popular approach is to exchange HL7v2 messages between systems. These pipe-delimited messages... -
A 35-minute discussion for application developers considering a multi-cloud approach, including potential advantages, pain points, and tradeoffs to be aware of. -
The purpose of this demo is to show you how easy it is to leverage Power Apps to quickly create an internal Attestation page. Power... -
In this white paper, Keyhole Software offers guiding principles as experts in developing custom applications that increase the probability of success in embracing a multicloud infrastructure.... -
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. -
Amazon Lightsail allows a developer to build applications and websites fast, with very little cost, using pre-configured cloud resources on AWS. You can create a... -
If you have ever mashed the Tab key to finish typing a filename or to show you the available flags to use when running a... -
Developing custom applications is one of the hardest professional endeavors, and making them secure is even harder. Malicious actors are constantly changing tactics and strategies,... -
A 55-minute dive into the "Serverless" framework, an open-source tool that aims to simplify building, packaging, and deploying serverless applications across multiple cloud providers and... -
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... -
This is my take on working with Kendo Grid in a Vue 3 project. While I have not explored the grid functionality to the nth... -
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... -
The steps described in this blog post allow for the adding of a Logic App on Azure to append rows to an Excel file. It... -
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... -
We are excited to announce that Keyhole Software is a Red Hat Ready Partner. This collaboration with Red Hat indicates Keyhole Software’s commitment to providing superior... -
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... -
Recently, while working for a large healthcare client in New York, I ran into an interesting problem that had slim literature on how to solve... -
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... -
GitKraken is a graphical user interface for Git built on top of the Electron framework - much like the popular Visual Code editor is. GitKraken... -
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... -
I have found myself in the following scenario many times throughout my career. Everyone is ready to get the project started. You know what you... -
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... -
Every long-term project will outlive at least some of the technologies it was originally built with. For example, a project I have been involved with... -
When it comes to the science of genomics, Amazon’s AWS is by far the platform of choice for most organizations. But, just like in the... -
Push notifications are a vital feature for today’s enterprise mobile applications. Why are they so important? They allow the business to communicate with its users... -
Many IT budgets are consumed by maintaining existing applications and resources, and getting out from under the weight of these existing applications can be daunting—schedule... -
Git has many features, but it’s likely that you only use a small subset on a daily basis. While git tends to handle things intelligently... -
This is a perfect opportunity for us to explore cloud serverless offerings as the ultimate contact-less development option. While COVID-19 continues to make face-to-face collaboration... -
Recording Details This 55-minute video features Keyhole Principle Consultant David Pitt in May 2020 at the Hyperledger KC User Group sponsored by Keyhole Software. Copyright Keyhole... -
We are excited to announce that Keyhole Software has achieved the Microsoft Gold Competency status. Joining this elite tier of Microsoft Partners signifies that Keyhole stands... -
The Keyhole team is proud to announce the publishing of a new white paper: Tracking Lab Results Better with Blockchain Technology. There are many viable use... -
The Keyhole Labs team has announced that the Keyhole Fabric API Gateway has been accepted into Hyperledger Labs. Hyperledger® Labs is a community-based innovation space gathering... -
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... -
Join us for a remote Hyperledger meetup over the lunch hour! We're choosing to host a virtual meeting due to COVID-19 and hope that you’ll... -
We are excited to announce Keyhole Software’s partnership with Microsoft to sponsor Azure App Modernization and Innovation Day on April 15, 2020. During this free community... -
We are excited to announce Keyhole Software’s partnership with Microsoft to sponsor Azure App Modernization and Innovation Day on April 15th, 2020. During this free community... -
We are pleased to announce that Keyhole Software is a Gold Sponsor of the 2020 Blockchain KC Conference! Our very own principal consultant and managing... -
The last few years have seen a lot of movement to bring applications that don't require manual intervention from the mainframe to Unix, Linux, Windows... -
This 60-minute video features Keyhole Principle Consultant David Pitt in December 2019 at the Hyperledger KC User Group sponsored by Keyhole Software. Copyright Keyhole Software,... -
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 Azure cloud platform is vast and it can be difficult to determine the best option given unique requirements. This video discusses six options within... -
Join us for the fourth learning event of the new Hyperledger Kansas City Meetup group - this time over the lunch hour! Hyperledger Fabric a general-purpose... -
Keyhole Software is excited to announce our very own David Pitt will providing a technical workshop at the University of Arkansas Blockchain Hackathon on November... -
Facial recognition is both amazing and horrifying. Some amazing things it can do is the ability to find missing children or seniors, using your face... -
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... -
I am working on a project that leverages both Azure Functions as well as Cosmos DB. In trying to get both of these components wired... -
This blog is about my dalliance with Elm; a purely functional, statically typed language that has type inference. It compiles to JavaScript. Functional programming is... -
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... -
I'm a big fan of Amplify. I'm also a big fan of TypeScript. Amplify is not built with TypeScript, and to use it effectively, sometimes... -
Part of the Solid Foundations Learning Series This is an in-depth learning series focused on a specific application: a JavaScript-based suite of single-page applications optimized for... -
In my previous blog post, I showed running a Spring Boot Java application in AWS Lambda. I discussed the pros and cons of using Java... -
Part 5 of the Solid Foundations Learning Series This is an in-depth learning series focused on a specific application: a JavaScript-based suite of single-page applications optimized for... -
There are two ways to create React components, using functions or classes. A common question when learning React is often “When do I use which?”... -
The Keyhole Labs team has announced that the Byzantine Config has been accepted into Hyperledger Labs. Hyperledger® Labs is a community-based innovation space gathering people who... -
In our prior segments of this series, we addressed being able to add in pages to the application and have them automatically registered with the... -
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... -
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 focus... -
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... -
As organizers of the new official Hyperledger Kansas City Meetup, the Keyhole Software team is excited to host the third meetup of the group on... -
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... -
We are proud to announce that Keyhole Software has earned its status as an Amazon Web Service Consulting Partner. Keyhole Software is now a Standard Tier... -
Have you ever wanted to create an automated way to load, manipulate, and then act upon a web page? Using CEFSharp (and some strategic JavaScript), you... -
Blockchain is all the buzz now. And for good reason! A distributed public ledger that is extremely secure through encryption?! Imagine the millions of applicable... -
The Keyhole Labs team has announced the release of Byzantine Tools, a series of blockchain open source projects to enhance Hyperledger blockchain networks. Keyhole Labs is a... -
Blockchain has gotten the software world buzzing about its potential applications in different business areas. With the US spending 17.9% of its GDP on healthcare... -
Keyhole Labs would like to announce the name change of our open source tool for Hyperledger Fabric blockchain networks. Previously known as the Keyhole Software Blockchain... -
As organizers of the new official Hyperledger Kansas City Meetup, the Keyhole Software team is excited to host the second meetup of the group scheduled for Tuesday,... -
Have you ever received endless notifications from the latest application you just downloaded? For example, a bank application that tells you your balance is less... -
As Keyhole consultants, we are exposed to a plethora of technology stacks and implementations from client project to client project. Particularly with our enterprise clients,... -
Problem I was pushing a new Docker image tag for each application code commit, and the admins of the private registry were getting annoyed at how... -
My favorite new technology as a developer is serverless computing. The convenience and cost make it a very compelling choice for running options in the... -
The Keyhole Software team is excited to announce that we are the new organizers of the official Hyperledger Kansas City Meetup group. This meetup group will... -
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... -
We are proud to announce the new release of a Hyperledger Fabric Blockchain Browser open source web application. This application utility allows developers and operators... -
We are excited to announce the next free public Keyhole Software educational event in Omaha: Blockchain for the Enterprise in Action. This Breakfast Boost event is... -
When developing in React, using a type system (like Typescript or Flow) can be a great help. You can be sure that your props and... -
The Keyhole Labs team has announced the release of an open source tool for Hyperledger Fabric blockchain networks: KHS Blockchain Browser. The KHS Blockchain Browser allows users to... -
Has your project gotten to the point when big data sets and/or time-consuming calculations have begun to affect performance? Or are you struggling to optimize... -
The power of GraphQL lies in its flexibility. That is especially the case regarding resolvers, where any local or remote data can be used 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... -
In general terms, a blockchain is an immutable transaction ledger in a distributed network of participating peers. Its data includes a string of transaction records... -
I am a Spring/Java developer (primarily) and an advocate of unit testing. There is often a debate over what constitutes a unit test, an integration... -
Angular CLI 6 is here! With it, the Angular team has made it much easier to create libraries. In this article, we show step by... -
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... -
Earlier this month my friend Ryan introduced us to Getting Started with Xamarin Forms and Prism. In that post, Ryan started a mobile application to... -
In a previous post, we discussed the basics of GraphQL and how it can be a great REST API alternative. In this one, we’ll see... -
The basic premise of data transfer and involves requesting and receiving lists. This is simplistic, but it gets to the root of why we’ve developed... -
In the last few years, React has continuously gained popularity for the development of web applications. At Keyhole, we have several blogs talking about React... -
The JUnit team continues to make great progress in adding new features and enhancements to the JUnit 5 framework. We already have a second significant... -
The typical deployment scenario for a Spring Boot application in AWS involves running the Java application on an EC2 instance 24 hours a day. Of... -
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... -
Bitcoin is hot -- and what an understatement that is. While the future of cryptocurrency is somewhat uncertain, blockchain, the technology used to drive Bitcoin,... -
Use Redux! Use MobX! Just use `setState`! Redux is functional! Mobx is reactive! `setState` is built-in! But Redux has so much boilerplate! But MobX is more difficult... -
We are excited to announce Keyhole's partnership with Microsoft to sponsor Azure Dev Days, a one-day workshop in Kansas City on Wednesday, April 25, 2018. This... -
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... -
The Keyhole team is proud to announce the publishing of a new white paper: Blockchain For The Enterprise. While Bitcoin is on the minds of the... -
Many of the companies that we work with use various cloud providers (such as Google, Amazon and Microsoft) for IT Service Delivery. This has created... -
This blog is about a human’s job being replaced by automation. But, before you start composing emails and social media responses, know that it’s a... -
This article is part of my blog series on automated testing promoting my new Pluralsight course Effective Automated Testing with Spring. Automated testing is an essential... -
I have worked with several different organizations in my career on initiatives to rewrite legacy applications. A common theme for each project was that the... -
We are excited to announce the next free public Keyhole Software educational event: Building Your Evil(?) Empire with Azure Functions. This Breakfast Boost event is a... -
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... -
We at Keyhole have been helping our clients adopt JavaScript-based single-page applications for over five years. We have been impressed with the adoption and advancement... -
A Lesson In ROI: Scratch vs. Adapt Existing Angular Code On a recent client project, I needed to develop an Angular front-end for a form that... -
We have all been there: some new technology comes out and we know it would improve our maintainability. But we can't use it. We already... -
We are excited to announce that Keyhole Software has achieved the status of Microsoft Silver Competency Partner. Joining this elite tier of Microsoft Partners represents that... -
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... -
A tool that helps the journey of learning Angular is the Angular CLI. The CLI is a useful tool that can help set up and... -
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,... -
With the explosion of the internet of things (IoT), many companies are competing to create the best smart home ecosystem for consumers. Amazon Echo, for... -
While acknowledging that I still have much to learn about Spring Batch, I’d like to share my well-learned lessons in the world of restartability, including... -
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... -
A coworker came to me with a problem. The client he was working with would be building hundreds of single-page applications and all would need... -
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... -
In this updated blog post, we’ve built an employee directory using Angular 2 with unit tests, gone over some differences between Angular 2 and version... -
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... -
Handlebars.js is a popular templating engine based on the Mustache template language. In this blog, we will explore how Handlebars is a dynamic template creation... -
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 HATEOAS REST 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.... -
It’s time to make decisions about how to use the 2016 IT budgets. You, the CIO, may have already decided which prepackaged software, cloud services,... -
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... -
CSS naming can be one of the most challenging things in creating large-scale style systems in an application. There have been a lot of great... -
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... -
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... -
What is Spring Integration? The popular definition (via Google), JavaWorld.com says: “Spring Integration is an enterprise integration framework that provides out-of-the-box implementation of the patterns in the now-classic... -











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 Applications If 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... -
When I was tasked with using SignalR to implement the real-time updating of data on a project I was working on, I was excited. Namely... -
After I began programming, I started noticing that some of the things I was doing on my computer at home were repetitive and could be... -
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... -
I was on a project recently where the team was faced with a daunting list of scheduling-related backlog stories. When looking at the entire feature, about... -
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... -
Now that Angular 1.3 has been officially released, I thought I would talk about some of the new features that developers would like to know,... -
While pulling down an existing Backbone.js project that I was helping with, I felt confident enough with JavaScript that I figured I could start cranking... -
I wanted to take some time to put together a summary of some popular dependency injection (DI) frameworks for Java. This is a high-level overview... -
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... -
This is the second blog in a two-part series on scaling PHP applications. The first blog in the series focused on replacing Apache+mod_php with Nginx+PHP-FPM. This... -
This is the first blog in a two-part series on scaling PHP applications. Part one will focus on replacing Apache while part two will go... -











Keyhole Software is delighted to announce our sponsorship of the Chicago CloudCamp Roof Deck Social! This event provides a free opportunity to get your cloud questions answered... -
I attained my IT degree (B. S. in Computer Science) 12+ years ago at a traditional midwestern college, so the education was fairly well rounded.... -
During the development of a fairly large JavaScript-based web application using Backbone.js, it became increasingly difficult manage the numerous View.js and Template.js files. Those familiar... -
The Keyhole team has had recent engagements that involve applying HTML5 technology to create rich client web applications. In order to explore and validate application... -











In Part One of this series, I reviewed the basic design goals of a Data Access Layer (DAL), those being: Contain all of the information about... -











Have you ever been stuck on a problem, some seemingly un-explainable production malfunction in the code? You’ve stepped though it with the debugger, run enumerable test... -











Today, I'd like to talk about the data access layer (DAL). I'll start with a brief review: the motivation behind the DAL, the design principles... -











If you're thinking that you can prevent end-user demand for mobility, just remember this: when PCs were first introduced, IT attempted to hold them at... -











Overview This is the second post in a series written on Dependency Injection for Android Development. In this blog, I will discuss how to take advantage of... -











Overview For many years now, Object Oriented developers have relied on various Dependency Injection frameworks while developing anything form desktop to web applications. For both Java... -











I ran into a design decision on one my engagements. Consider an abstract class implementation that references another (delegate) object. Convenience methods are in the primary class... -











If you want to go surfing but you live smack dab in Kansas, it could be a challenge. (Unless you want to go paddle in...






