SpringBoot application deployment and monitoring series - Part 2 - Build Server Setup using Jenkins

This is the 2nd part of our journey to learn SpringBoot application deployment and monitoring series. We are going to setup Jenkins build server and configure Pipelines for vote-service, bookmark-service and bookmarks-ui microservices. In this article we are going to learn: Implementing build pipeline using Jenkins Pipeline as Code Using Jenkins Shared Libraries Setting up pipelines using Job DSL You can find the GitHub repositories below: devops-setup https://github.

Continue reading »

SpringBoot application deployment and monitoring series - Part 1 - Build Services

This is the first part of our journey to learn SpringBoot application deployment and monitoring series. We will be using the following tools throughout the process, so please install them based on your operating system. Prerequisites Java 11, Maven (I would recommend using SDKMAN to install these tools) Docker, docker-compose VirtualBox Vagrant Ansible Minikube I will be using MacOS, Intellij Idea and shell scripting. You can use your favorite IDE, but try to use *nix like environment (Linux or MacOS) to be able to run those shell scripts.

Continue reading »

SpringBoot Application deployment and monitoring series

Few years ago I wrote a series of blog posts on Developing a simple e-commerce application from scratch to production using SpringBoot. Well, I covered most of the development stuff but left “to production” part because other things came up. Many things changed since then. Now I want to write a series of articles focusing on deployment and monitoring. So, I am planning to build a simple application using SpringBoot and deploy it in different ways.

Continue reading »

Tips to work at traditional enterprise organizations as consultant/contractor (and save your ass)

I worked at different types of IT organizations including small 20 people company, world’s largest bank, start-ups etc. Working at a service based company is both very interesting and at times frustrating depending on the client. On the positive side you get to work on different types of domains/applications, different tech stacks, and you may get to learn verity of organizational cultures. On the downside you may end up working with “Typical traditional enterprise organizations” which makes you question your career choices!

Continue reading »

My 2020 year review and plans for 2021

I would like to share how was my year 2020 and what I am planning to do in 2021. As we all know 2020 was a rough year due to COVID-19, lockdown and all, but 2020 is a good year for me in many ways. It used to take minimum 2 to 3 hours of daily commute for office, now that I have been working from home I am able to use that time for other activities.

Continue reading »

Improve JPA application performance using HypersistenceOptimizer

In Java world, Hibernate/JPA is the most popular ORM framework. Also, JPA/Hibernate is a very controversial topic because some people don’t like it at all. It is very understandable though. Many people start using JPA/Hibernate with minimal knowledge and keep adding logic (read as “annotations”) as and when required to get the job done. While checking the overall application performance, most of the time people realize it’s because of poor performance of persistence layer.

Continue reading »

Quirks of Spring's @TestConfiguration

If you know me you know that I am a big fan of Spring ecosystem. I have been using Spring framework since 2007, and I am pretty familiar with many of its features. Even if we are familiar with some technology once in a while we get stuck with small issues and end up spending hours and hours figuring out why something is not working as expected. Spring framework is very flexible, and usually there are multiple ways to achieve the same thing.

Continue reading »

My Thoughts on CleanCode, Simplicity, Automation and Empathy

When I observe old people I notice one interesting thing. They don’t usually react aggressively like teenagers do. Even when they have to deal with difficulties in life they deal with it calmly. Even when some people undermine them they simply give a smile and move on rather than trying to prove they are wrong. I wonder is growing older makes them wise? Looking at some people I know who is in their 50’s, I can confidently say No, becoming older doesn’t make them wiser automatically :-)

Continue reading »

Philip's Testing Spring Boot Applications Masterclass Course Review

If you ever worked on a large project which doesn’t have any tests then you know how painful it is to work on such codebase. You know what is more painful? Working on a project which has plenty of USELESS tests written for the sake of passing minimum code coverage requirement. Being a Professional Software Developer means more than solving a problem. One needs to learn how to write maintainable and testable code, write meaningful tests, know what to test and what not to test, how to evolve the codebase backing with a good set of test suite.

Continue reading »

LocalStack SpringBoot Starter Tutorial

I was working on a SpringBoot application which is planned to deploy on AWS and, we were using S3, SQS and RDS services. LocalStack provides an easy-to-use test/mocking framework for developing AWS based Cloud applications. I want to use Localstack mock services instead of using real AWS services for two purposes: To run integration tests To run application locally We can use Testcontainers to spin up a Localstack docker container, but we need to configure Amazon service clients like AmazonS3, AmazonSQSAsync which is typical boilerplate that we copy-paste from project to project.

Continue reading »