Auto-Publishing & Monitoring APIs With Spring Boot

David Pitt Keyhole Creations, Microservices, Technology Snapshot, Tutorial Leave a Comment

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 are introduced with this style of architecture. If successful, your environment will have a plethora of service APIs available that the enterprise can consume for application development and integration.

This means that there must be a way that available API documentation can be discovered. API information needs to be effectively communicated throughout the enterprise that shows where APIs are used, how often APIs are used, and when APIs change. Not having this type of monitoring in place will hinder and possibly cripple the agility benefits that a Microservice style of architecture can bring to the enterprise.

This blog will describe how Swagger/OpenAPI documentation can be applied to a Spring Boot implementation. We will show how API documentation and monitoring can be automatically published to an API documentation portal.

As an example, we introduce a reference Spring Boot API CRUD application (using Spring MVC/Data with Spring Fox) and set up the automatic publishing of API documentation and statistics to documentation portal GrokOla. In the example, we introduce two open source utilities to help and allow published APIs the ability to be searched and notify users when changed….



White Paper Published – Microservices: Patterns for Enterprise Agility and Scalability

Keyhole Software Architecture, Company News, Microservices, Tutorial Leave a Comment

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 in the development community. A Microservices architecture addresses problems that modern enterprises often face, including responding to market demands, handling spikes in traffic, and being tolerant to failure. These benefits are achieved by functionally decomposing a business’ domain into microservices, services that handle only a single responsibility.

In this white paper, we discuss how Microservices came to be, contrasting architecture patterns, features of a Microservices architecture, established patterns, how to get started with Microservices, and suggestions for Microservices adoption.

Download the free Keyhole Software white paper today!



Security in the Microservices Paradigm

Zach Gardner Architecture, Microservices Leave a Comment

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 circuit breaker or service discovery, yet it is a critical piece of the ecosystem especially in an enterprise setting.

I’m working on a large Microservices project for a healthcare enterprise on the East Coast. One of the first pieces of the infrastructure we assisted with was security, which has turned out to be a lifesaver for everything that has come after it. I was able to see what security works well as well as what does not work so well in a Microservices environment. In this blog post, I will share a medium to high-level look into how security can be implemented in Microservices.



Getting Started With Ionic 2

Adam Costenbader JavaScript, Mobile, Technology Snapshot, Tutorial Leave a Comment

Everyone wants to have an “App” to represent them, their company, or just to perform some common task they might have in mind.

The problem with this is that there is so much to mobile app development. iPhone apps require that you have a Mac to compile them. Android apps have to deal with platform fragmentation. iPhone apps can mean working with Objective C, Android can mean Java– and if you aren’t a polyglot and fluent both these languages, you probably feel that mobile app development is quite the daunting task.

Luckily, though, there are other options to choose from – like the Ionic 2 framework. In this blog, we’ll show just how easy it is to get up and running with Ionic 2 by creating a reference mobile application. By the end of this blog, our application will have the ability to run in the browser, emulator, or be built-out to run on a device.



Learning Angular C.R.U.D.

Chris Berry AngularJS, JavaScript, Technology Snapshot, Tutorial 1 Comment

So, you’ve learned JavaScript and now you’re wanting to get into Angular. But where do you start?

There are quite a few examples out there. One of the best ideas I have personally found useful for a new developer to learn is how to do Create, Read, Update and Delete operations.

In this blog we’ll go through the process of building a simple, working Angular address book application with C.R.U.D. operations. By the end, and by studying the full, working code, you should have a better grasp on Angular.



Keyhole Labs Releases Trouble Maker v2.0.0

Lauren Fournier Company News, Keyhole Creations Leave a Comment

The Keyhole Labs team has announced the release of Trouble Maker v2.0.0.

Trouble Maker is a platform-agnostic tool that randomly takes down services to test stability. It also provides an ad hoc console to produce common troublesome issues in your platform so you can test durability on-demand.

Trouble Maker v2.0.0 introduces specific performance improvements implemented with Spring Boot and Java Websockets. Additionally, the Trouble Maker dashboard user interface has been re-designed, built from the ground up using Angular 2…



Taking A Mixed Approach To Single-Page Applications

Chris Berry AngularJS, JavaScript, Problem Solving, Single-Page Application, Technology Snapshot Leave a Comment

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 to be tied into a single shell application. He had first attempted to use an iFrame contained within another single-page application to display the child applications.

While this worked, he came up against another requirement: the child applications may or may not need access to data from the parent shell application.

It was at this point he came to me for suggestions. I had been playing with this exact idea for sometime; how can you manage a collection of Single-Page Applications and still share data between them?

At this point, I decided to create a hybrid solution of mixing Single-Page Applications with a server-rendered shell application. The following is the process I took for creating this solution, highlighting some of the pain points with some suggestions for further enhancements.



Cobol to Java

Adventures In Modernization: Strategy + Example Converting COBOL To Java

Dallas Monson Consulting, Java, Keyhole Creations, Programming, Technology Snapshot, Tutorial Leave a Comment

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 most of their existence. We have come across some repeated patterns and strategies for how to approach modernization of legacy systems. In this blog, we will cover a strategy that is very popular right now, Re-Platforming.

The basic flow of this post will be:

Introduction to Modernization
High-level definition of the Re-Platforming Strategy for Modernization
Sample of Re-Platforming using Keyhole Syntax Tree Transformer, COBOL –> Java
Additional thoughts on the value/risk of this strategy

Let’s get started…



Coding For Fun: MIT Battlecode Challenge 2017

Joshua Robinson Community, Programming, Technology Snapshot Leave a Comment

I recently participated in the month-long MIT Battlecode competition where I programmed a team of virtual robots that competed against another team in a real-time strategy game. In this blog, I discuss some of the lessons learned during the programming competition. I was surprised how much of it could be used as a lesson in the real-world of programming!

We’re in this industry because we love programming and writing code. It is in this spirit that I suggest to all readers to consider challenging yourself and doing something similar to “code for fun” and improve your skills!



A Test-Driven Development Introduction to Angular 2 – Part 2

Matthew Brown AngularJS, JavaScript, Single-Page Application, Technology Snapshot, Testing 4 Comments

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 1, and introduced some of the features of TypeScript.

I originally wrote this article/application when Angular 2 was still in beta. Now that it has released officially, I have updated the source code to reflect updates made to the Angular 2 framework for release. My approach to get this working was to start from the new Angular 2 quick-start project, port in the original application source code, and refactor as needed to make things work. Let’s get started…