MicroServices - Part 2 : Configuration Management with Spring Cloud Config and Vault

MicroServices - Part 2 : Configuration Management with Spring Cloud Config and Vault

In MicroServices using Spring Boot & Spring Cloud – Part 1 : Overview, we took a brief look at what are micro-services and how we can use SpringBoot and SpringCloud to build micro-services.

In this post, we are going to learn:

  • What is the need for Spring Cloud Config and Vault?
  • Create our first micro-service: catalog-service
  • Create Spring Cloud Config Server
  • Using Vault for storing sensitive data

MicroServices using Spring Boot & Spring Cloud – Part 1 : Overview

MicroServices using Spring Boot & Spring Cloud – Part 1 : Overview

Nowadays MicroServices is the hot buzzword in software development and many organizations prefer building their enterprise applications using MicroServices architecture. In Java community, SpringBoot is the most widely used framework for building both monoliths and microservices. I am planning to write a series of articles covering how to build microservices using SpringBoot and SpringCloud.

Why SpringBoot is so popular and how to learn SpringBoot effectively?

Why SpringBoot is so popular and how to learn SpringBoot effectively?

SpringBoot is the most popular and widely used Java framework. Occasionally this discussion of “Why is SpringBoot so popular?” come between me and my friends/colleagues. Also, I do get emails from various people asking “Spring is huge and how to learn it quickly?”. In this post, I will try to answer these 2 questions.

SpringBoot Messaging with RabbitMQ

SpringBoot Messaging with RabbitMQ

RabbitMQ is one of the popular message broker solutions and provides client libraries to be used from various programming languages including Java, Scala, .NET, Go, Python, Ruby, PHP etc. In this tutorial, we will learn how to use RabbitMQ message broker to send and receive messages from a SpringBoot application. We will also look at how to send messages as JSON payloads and how to deal with errors using Dead Letter Queues (DLQ).

Session Management using Spring Session with JDBC DataStore

Session Management using Spring Session with JDBC DataStore

In web applications, user session management is very crucial for managing user state. In this article, we are going to learn about what are the approaches we have been following to manage user sessions in a clustered environment and how we can use Spring Session to implement it in a much simpler and more scalable way.

CI/CD for SpringBoot applications using Travis-CI

CI/CD for SpringBoot applications using Travis-CI

In this article we are going to learn how we can use Travis CI for Continuous Integration and Continuous Deployment (CI/CD) of a SpringBoot application. We will learn how to run maven build goals, perform test coverage validation using JaCoCo plugin, Code Quality checks using SonarCloud, build Docker image and push it to DockerHub and finally deploy it to Heroku.

How was my year 2017 and my plans for 2018

How was my year 2017 and my plans for 2018

Happy new year to you :-)

I don’t really believe in new year resolutions or making big 5 year plans!! But I do realize that by making a list of things that I want to do keeps me focus on those things and minimize the distractions.

My Review of Vlad Mihalcea’s High-Performance Java Persistence book

In Java world, JPA/Hibernate is the most popular and widely used framework. When it comes to overall performance of a software system database persistence layer plays the crucial role. The tricky part with JPA/Hibernate is it is very easy to get started but very very hard to master. This is where Vlad Mihalcea’s High-Performance Java Persistence book helps you a lot.

Spring Cloud Tutorials – Introduction to Spring Cloud Config Server

Problem

SpringBoot provides lot of flexibility in externalizing configuration properties via properties or YAML files. We can also configure properties for each environment (dev, qa, prod etc) separately using profile specific configuration files such as application.properties, application-dev.properties, application-prod.properties etc. But once the application is started we can not update the properties at runtime. If we change the properties we need to restart the application to use the updated configuration properties.