Retrying HTTP Requests In Spring Cloud Netflix

As I have talked about before, one of the key aspects of cloud native applications is resiliency. In order to be robust and avoid all the potential problems that can come from running in such a volatile environment like the cloud your application needs to be able to handle anything that can be thrown at it. One of the more common operations a cloud native application will do is make HTTP requests to other applications. These applications may be under your control as well or they could be third party apps, but in the end it doesn’t really matter who controls them, there is always the potential for failure when making any kind of network request.

Evicting Instances From Eureka

Typically when you are using Spring Cloud Eureka for service discovery and you shut down an instance that is registered with the server that instance is removed from the registry. However in some cases that might not be happen and instead the instance is just marked as being DOWN. If you look at your Eureka dashboard you will see something like this.

Retrying Requests With Spring Cloud Ribbon

Most applications today make HTTP requests to external services. When using Spring Cloud one way to make these requests is to use what we call a “load balanced RestTemplate”. Creating a load balanced RestTemplate is pretty strait forward.

Providing Hystrix Fallbacks For Routes In Zuul

** NOTE: ZuulFallbackProvider has been deprecated in Spring Cloud Edgware, use FallbackProvider instead. **

Manual Creation Of Feign Clients In Spring Cloud


Tracing In Microservices With Spring Cloud Sleuth

One of the problems developers encounter as their microservice apps grow is tracing requests that propagate from one microservice to the next. It can quite daunting to try and figure out how a requests travels through the app, especially when you may not have any insight into the implementation of the microservice you are calling.
Spring Cloud Sleuth is meant to help with this exact problem. It introduces unique IDs to your logging which are consistent between microservice calls which makes it possible to find how a single request travels from one microservice to the next.

It Was Time For A Change

Change is good…well thats what they say anyways ;) After working for IBM for 8+ years, I have left the only company I have every worked for and have joined Pivotal. I owe a lot to IBM. I joined right out of college and I learnt so much during the 8 years I was there. I worked on a lot of great projects, and was presented with so many great opportunities that took my career in directions I would have never imagined. By far the part of IBM that has impacted me the most both personally and professionally were the people. There are SO many talented people at IBM, and I was lucky to work with many of them. They taught me how to be an engineer, how to survive in a company with 400k people, and what it takes to progress professionally.

Pivotal Spring Cloud

Recently however an opportunity came up for me to join Pivotal and work on the Spring Cloud team. If you are a regular reader of this blog, you have probably noticed that I have been a big fan of Spring and Spring Cloud, so when the opportunity to work on those technologies presented itself I could not pass it up.

I am truly thankful for my 8+ years at IBM, and I am very excited to now be starting a new chapter in my career with Pivotal.

Bluemix Cloud Connectors For IBM Graph DB and Object Storage Services

As I have blogged about in the past, the Bluemix Cloud Connectors project is a Java library you can use to easily access service credentials and obtain high-level Java objects to work with various services in Bluemix. Today I updated the project to add support for two new services in Bluemix, the IBM Graph DB service, and the Object Storage service.

Docker Compose and IBM Containers

Recently my colleague Chris Rosen published this blog post about some new functionality coming to the IBM Containers service in Bluemix. One of the new features that is now available is native Docker Compose support. Docker Compose is a great tool to use if your application is split up into multiple containers. It takes care of a lot of the orchestration and configuration needed to be done between the various containers so that they can work seamlessly together. You can read more about Docker Compose in the Docker documentation.

Running OpenWhisk Actions From Node-RED

At IBM InterConnect 2016, IBM announced a new experimental compute runtime for Bluemix called OpenWhisk. What is OpenWhisk?