Posts in category Devops


There are different points of view on how logging levels should be used in code. I will share mine. My assumption is: «There should be no errors in logs when everything is fine.» The idea is that the strongest log level should trigger alarm causing immediate notification (push or SMS) to operations team. Accordingly, that’s how logging levels should be used: error – Some action should be taken immediately! Ops team should enable email or sms notifications when a message of that king appears in logs.

You may find following tips useful when setting up continuous integration infrastructure. Security Use VPN or reverse proxy provider like cloudflare.com to secure your CI infrastructure. Never make your real IPs publicly available, otherwise you increase a risk of being hacked. Jenkins Use master node and build agents. Master node acts only as web console. Nodes are for compiling and testing. Notifications If you’re using google apps for domain, you may use Google’s restricted SMTP server to send notifications.

I’m going to start a series of posts covering different aspects of DevOps.

Let’s start today with branching strategy called «dirty trunk». Actually, this is an attempt to avoid branching at all. The idea is that:

Jolokia Logo

Very often there is a need to monitor the Java application server. For example, external monitoring tool, like Nagious/Zenoss/Zabbix needs to get some metrics, like heap memory usage or thread count.

Usual way to get that metrics is to setup access to application server via JMX.

But, sometimes, it is not possible to leave some other port opened for JMX and the only port available is HTTP(80 or 8080) or HTTPS(443 or 8443).

Here the Jolokia comes to rescue!

Deploying to Apache Tomcat often requires making changes to default configuration. These changes are often environment specific. Also, when upgrading a Tomcat to new version you need to be sure that all your custom changes have not been lost and were applied to new configuration. To deal with all that stuff Tomcat via separation of the configuration. This post contains step-by-step instruction will help you to establish custom tomcat configuration.

Solari Board is a javascript app for displaying some status information. For example, it can be used to scheduling support team activity or displaying project build status from CI server (e.g. Jenkins) This article with a video about how the guys from FogCreek software has integrated SolariBoard into BigBoard to monitor their support team activity.

I’ve recently switched logback configuration of our application from XML to Groovy. Configuration file is not about 5 times smaller and can be displayed on one screen! Groovy helped to remove duplicating parts of configurations by using for loop. The moving was easy thanks to online conversion tool. And don’t forget to add a groovy-all runtime dependency to your project config.

For every new project, one of the first questions to answer when planning release system is «How to define a product versions?». Now I know the default answer for this question: «Just look at the Semantic Versioning Specification!. It looks very natural: X.Y.Z where X is major version, Y is minor version and Z is the patch (hotfix) version of the product. X,Y,Z are non-negative numbers. See full specification for details, it is not big, just 12 points.