Quantcast
Channel: Tech Annotation
Browsing all 131 articles
Browse latest View live

Avoid circular dependency in microservices

A very common anti pattern that you might come across when you build a microservices architecture is known as Circular Reference (CR). While recursive codes in a normal object oriented programming can...

View Article


Code duplication dilemma in Microservices

Splitting a service in multi (micro)services, is very common that, at least some code is duplicated among a different services. A Dao object, a servlet filter or an utility class can be consumed by...

View Article


Don’t move too slow, Java’s race to the future

A little journey through Java versions release by exploring some features introduced and where the community is going with an unprecedented pace! Don’t worry, it needs less effort than you think to...

View Article

Spring Boot – Default memory size

How much is the Initial and Max Heap size when Spring Boot runs a Java application? Spring makes a good job, so we could skip this knowledge and move to something more interesting however, it’s better...

View Article

Java Stream and anyMatch, allMatch, noneMatch with Arrays

Java Stream package makes available, since version 8, great methods to work on collections. Before the introduction of Labda expressions, we get used to write foreach code instruction to loop a...

View Article


Be a good citizens by not mutating input parameter

Mutating input parameters inside a function is a very frequent bad practice, and dangerous because it’s made without awareness of the consequence, especially in multithread application. To understand...

View Article

When Jenkins meets an Artifact Repository – JFrog and Nexus OSS

Building a proficiency CI/CD pipeline means including a step where storing and versioning packages produced by your solutions. This is a node that, sooner or later, you find useful including during the...

View Article

When Jenkins meets an Artifact Repository – JFrog and Nexus OSS – Part 2

Continuing from the first part of this journey through the Artifact Repository, I’m going to develop a Jenkins pipeline to Upload an artifact to Nexus OSS in a Continuous Delivery/Deployment process....

View Article


Check the application metrics, the truth is in there

Application metrics tell us how’s going on our application and alert developers before something bad is going to happen. Yet, to get and understand them we need some tools, or a series of tools, to...

View Article


Continuous Delivery to Kubernetes with Jenkins Agent

It’s out of the question the fact Microservices find a perfect marriage with Continuous Delivery (CD) pipeline. The pros of using such methodology are already known in monolithics and, in...

View Article

Continuous Delivery to Kubernetes without Jenkins Agent

How can Jenkins deploy a container into Kubernetes cluster? One answer might be “Using an agent inside the cluster”. Is there any different choice from this one? In this article I’m going to explain...

View Article

Testing FrontEnd with Selenium and BrowserStack

A good testing suite cannot be completed without an end-to-end test where the user interface is engaged in user acceptable test (UAT) or something similar. Unluckily, testing an User Interface (UI)...

View Article

Get used with Podman, the next container generation

Red Hat has been rolling out its plan to replace Docker with Podman as container tool since 2018. Podman is a very interesting tool which resembles Docker both in concept and in command line. Yet, it’s...

View Article


Spring Cloud Gateway inside Kubernetes

One of the first things you learn when you approached microservices architecture is not a good idea to make all services visible to external client. Thus, you need something, as a Gateway, to put...

View Article

GraphQL, when less is more

GraphQL has improved the Rest Api’s capability to exchange data between different systems. Client is able to ask only the data it requires, avoiding useless data and improving the performance by saving...

View Article


Scale Up Jenkins with slave nodes

Scaling Jenkins in your organization based on jobs running is quite a common activity. The more projects follow the CI/CD approach, the more Jenkins needs resources to keep up the number of Jobs and...

View Article

Pull and Push Metrics inside Grafana

Application monitoring is always a vital activity. Unfortunately, it’s not an easy task and, frequently, logs are not enough to work out problems as load average, run out of resources, and even...

View Article


irate() vs rate() – What’re they telling you?

Prometheus makes available great functions for data aggregation by timeline. Among these functions, I focused my analysis on irate() and rate() which give us similar outcomes but they work in different...

View Article

Grafana – it’s not only a metrics matter

Metrics are useful, they tell you how your application is going, but they might not be enough when you came across an issue. Applications produce logs, and you need to dig into them to find out what...

View Article

RabbitMQ Exchange types – Put them into practice

Event Driven Architecture is a growing solution in a lot of projects where Event-Driven pattern is adopted. RabbitMQ makes available a message broker to get communication between different components...

View Article
Browsing all 131 articles
Browse latest View live