DevOps Within

Stories from a man against the machines.

Get elastic with ElasticStack and docker-compose

Recently, I'm becoming increasingly fascinated by the seemingly endless possibilities of monitoring things. I think that it all started with learning Zabbix 3.x and starting to use it instead of the old-schooler Nagios. But those two tools are somewhat standard monitoring tools among many others of their type.

Lately, full-text-search instruments such as ElasticSearch are all the rage in the industry. And for a good reason - they are simply awesome for viewing, searching and analysing all sorts of data. They are going to be even more so when all the new features announced on Elastic{ON} are implemented and live.

So, you want to check out the goodies? Let me summon some views using buzzword magic: Let's run a scalable ElasticStack Cluster using Docker and Docker-Compose in three simple steps!

(read more)

Serialising objects in Golang: JSON

Previously, I have shown how to visualise the data gathered by the crawler part of i-must-go. To pass the data to the graphing library - sigma.js in this case, it has to be stored in a text file, which then is used to recreate the object. The process of translating the object to a format that can be stored more easily is called serialising or marshalling the object.

Out of many different available formats, JSON (JavaScript Object Notation) happens to be the most common nowadays, being used very often to transport data to and from RESTful APIs. Its clear structure and readability has made it one of the people's favourites. Of course, golang has its library for dealing with this, and I'm going to show you how I use it.

(read more)

Visualising the network: First Encounter

After fixing the network issues which caused a little mess in the connections, now I can track all 119 expected devices (and some more unexpected guests). This is an amount of nodes which isn't easy to imagine on a piece of paper. There are about 360 connections between those nodes, too!

This made me think about visualising the data sooner than I have planned, but hopefully, it will allow understanding of the context for i-must-go better. Here's first entry about visualising the gathered data using JavaScript.

(read more)

Oh baby, it crawls!

Last time when I was writing about i-must-go, I have just managed to find neighbours of one single device on the network. Next step, obviously would be to follow through and find more nodes. And more. And them some more. Now, I might not be a CS graduate, but I know a graph when I see it!

Of course, graphs (and especially those easy ones, like the ones I'll be dealing with) are a well-documented topic and don't require that much of innovative thinking. So my obvious first step was to find a library, which would help me in dealing with graphs so that I don't have to implement everything myself.

It's easier said than done, though...

(read more)

Blogging with Pelican

Okay, I guess I am a sort of a hipster. I prefer the bottom half of a bread roll to the top one, use SaltStack instead of Puppet, work on my code on Gitlab instead of GitHub and run a static blog on Pelican instead of Jekyll.

To be honest, on a basic level most of static website generators are pretty similar. It's hard to say which one is THE best objectively. I'd like to show why I chose Pelican instead of others and what are it's basic features.

(read more)

Code your code automation

I don't use GitHub as my main code repository for the project and I don't use Travis (or Jenkins) for my Continuous Integration. I'm a Gitlab addict and I'm not afraid to say it out loud :). Why should I be, anyway?

Gitlab is an awesome environment which started out as a self-hosted GitHub clone, but now it is so much more that you should definetely check it out. But in this post I don't want to talk about Gitlab as a whole - I'd like to show you some cool stuff that could be done with gitlab-ci and how I currently use it.

(read more)

Whose MAC is this anyway?

In the previous installment I have shown that we can find MAC addresses of network neighbors using LLDP. While MAC addresses might work great as node identifiers (those have to be unique in the network if we don't want bad things to happen), this is not the usual way of addressing things over the network. The typical thing to use is IP Address and there are ways of translating one to the other.

(read more)

Where do we go(lang) now?

I've been a Python guy since I started programming consciously and I got used to all those things which make Python easy to start with. Especially dynamic typing. But golang is more like C/C++, which are the languages that I have begun my programming adventures with. This post is going to cover my first steps with i-must-go application and golang.

(read more)

The tools for the job (I)

I'm usually not the organize-everything type of guy. I generally despise agile (well, maybe not as an idea, but all those agile-ban-waterfall-when-needed implementations of it in organizations I've seen) but I decided to take a different approach than usual to this project. Since I'm not a developer and I'm going to do some coding I might as well use something to organize my work, right? This post is going to show and explain my own weapon of choice for tasks management.

(read more)

i-must-go, my project needs me

Get Noticed! 2017

What? Don't go yet!

Well, i-must-go, my project, needs me. The project was created as entry to the Get Noticed competition (a.k.a "Daj się poznać" in Polish). But this was just spiritus movens of starting the work on it. The idea came from a students' organization called SKOS (Students' Campus Computer Network) in Gdansk University of Technology, which I am still a part of, even after graduating - yeah, it's that fun ;-).

So let me tell you a few words about the background of the i-must-go application.

(read more)