"You Build It, You Run It" a personal case study
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()
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
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.
Configuring Spring Boot application logging outside from Docker container
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
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 :)