"You Build It, You Run It" a personal case study

July 22, 2016

There are a few things which I advocate and believe in (technically wise). One of them is that the team which has built the application, should be responsible for deploying and managing it solely by its own. So no need for a separate DevOps team. I have talked about this more in one of my previous blog post You are the DevOps.

And I am very upset and disappointed when there is a big gap between those two teams, if there is such a separation in the first place.

Continue reading →

Where is Optional.isEmpty()

July 20, 2016

When Optional was introduced in Java 8, one of the noticeable design decision was not to include any kind of isEmpty() method into Optional API. Comparing to Scala which tried to take advantage of Java 8 not yet being released, had Option class with both isDefined() and isEmpty() methods.

First it might seem like a flaw in JDK API design. But, lets try to step out and think.

Continue reading →

Embrace final

July 18, 2016

Having immutability as the language feature by default is a very nice thing. That you know that everything you declare is immutable, and instead, you have to apply some "ceremony" to actually change the value of the thing, so it becomes very explicit to the reader that the value is changing.

Unfortunately Java doesn't have this by default. But Java has the final keyword (which has multiple semantics, to be precise, depends on the context), which can be used to embrace immutability into your codebase.

Continue reading →

Configuring Spring Boot application logging outside from Docker container

July 16, 2016

Logging is an important part of the application. This is one of a few ways to get the visibility about how your application is doing in production. There is no single answer which says what you should log and what you should not. But the common sense (although there is nothing more uncommon than common sense :) says, errors obviously, info messages mostly to as milestones of the application processing flow, and debug for anything which might interesting to explore. Here I will not talk about that specific topic, but instead about how to configure the logger using external logging config file.

And everything below will be in the context of Java, Spring Boot, Logback and Docker.

Continue reading →

Value of automation

July 14, 2016

For the last two days apart from other things I was busy with, I was working on infrastructure automation using Ansible. Why it is important, and why it could be difficult? Keep reading :)

Value of automation

Continue reading →