Microservice Development Toolkits part 1 – Otto

  • -

Microservice Development Toolkits part 1 – Otto


Otomato is happy to announce we’re collaborating with Codefresh on their great continuous delivery for docker containers solution. (If you’re using docker in your development/production or only thinking of doing it – go check out http://codefresh.io. ) Our collaboration is mostly focused on industry analysis and docker development ecosystem research with the goal of identifying pain points and providing effective solutions. With quite a bit of evangelism on top. The linked post is the first fruit of that. ottologo

Microservice Development Workflow with Otto


  • -

Have you heard of Wajig?

We love productivity tools of all kind and believe that software should be making our lives easier. For some reason many software products we have to work with don’t really feel like their creators agree. They may have great architecture, reliability and functionality but it looks like usability is snapped on as an afterthought.
One example of this is apt – the Advanced Packaging Tool used on Debian/Ubuntu Linux. While a great tool in itself, for some reason it provides a number of different user interfaces for different purposes.

To install/remove/upgrade/download a package there's the apt-get tool:

apt-get is a simple command line interface for downloading and
installing packages. The most frequently used commands are update
and install.

   update - Retrieve new lists of packages
   upgrade - Perform an upgrade
   install - Install new packages (pkg is libc6 not libc6.deb)
   remove - Remove packages
   autoremove - Remove automatically all unused packages
   purge - Remove packages and config files
   source - Download source archives
   build-dep - Configure build-dependencies for source packages
   dist-upgrade - Distribution upgrade, see apt-get(8)
   dselect-upgrade - Follow dselect selections
   clean - Erase downloaded archive files
   autoclean - Erase old downloaded archive files
   check - Verify that there are no broken dependencies
   changelog - Download and display the changelog for the given package
   download - Download the binary package into the current directory


But then if you want to search or query for packages you have to remember that a different utility is used – apt-cache:

apt-cache is a low-level tool used to query information
from APT's binary cache files

   gencaches - Build both the package and source cache
   showpkg - Show some general information for a single package
   showsrc - Show source records
   stats - Show some basic statistics
   dump - Show the entire file in a terse form
   dumpavail - Print an available file to stdout
   unmet - Show unmet dependencies
   search - Search the package list for a regex pattern
   show - Show a readable record for the package
   depends - Show raw dependency information for a package
   rdepends - Show reverse dependency information for a package
   pkgnames - List the names of all packages in the system
   dotty - Generate package graphs for GraphViz
   xvcg - Generate package graphs for xvcg
   policy - Show policy settings

And what if we want to list all the files installed by a specific package? Well we’re supposed to remember that there’s a special utility for that – apt-file. And it’s not installed by default…

Figures we weren’t the only ones puzzled by this multitude of interfaces. Wajig is targeted at exactly that – providing a unified interface to all package-related functionality on Debian/Ubuntu. Or as stated on the site:
“Wajig is a simplifed and more unified command-line interface for package management. It adds a more intuitive quality to the user interface.  Wajig commands are entered as the first argument to wajig. For example: “wajig install gnome”. Written in Python, Wajig uses traditional Debian administration and user tools including apt-get, dpkg, apt-cache, wget, and others. It is intended to unify and simplify common administrative tasks. … You will also love the fact that it logs what you do so you have a trail of bread crumbs to back track with if you install something that breaks things.”

Another nice thing – wajig knows when root privileges are needed and takes care of that, so we don’t need to rerun a command each time we forget to prepend it with sudo.

We still need to play with wajig a bit more to decide if it performs on all its promises but it definitely is going into a right direction.

Wishing you all user-friendly software and a good week.

  • -

User-friendly monitoring for your Jenkins server

We all love Jenkins. It’s flexible, scalable, has unbelievable community support (more than 1010 plugins available) and is very easy to get started with. No wonder Jenkins is the CI/CD server used in at least 70% of IT and R&D organisations around the globe.

Once you start using Jenkins you quickly get hooked. It’s so easy to automate any development or system task, add a button and let your users push it whenever needed.

And your Jenkins instance begins to grow. Very soon you have views, nested views, pipeline views, dozens of plugins for every little thing, jobs for dev, jobs for QA, jobs for project managers, an ever growing bunch of slave nodes, you name it.Everyone in the organisation is using Jenkins, everyone falls in love with it as much as you originally did.

But then the day comes and your Jenkins that was so lively and fast when you installed it and ran your first job suddenly starts showing signs of fatigue. The UI takes time to load, jobs get stuck for unclear reasons, plugins conflict with one another, nodes get lost, disks fill up…

But users still expect the same level of service they grew accustomed to. You – the Jenkins admin – start getting emails and phone calls – sometimes in very uncomfortable hours.

And that’s when the need for monitoring becomes evident. You realise that your users would be happier and your own life easier if you could get alerts before things get actually broken. Alerts about disk space, memory consumption, lost build slaves and application errors.

But we all know that #monitoring sucks. Moreover – if you’re a Jenkins admin in an enterprise – chances are that you don’t have the access to existing monitoring infrastructure. Instead of being able to configure things the way you want them you’ll have to explain your needs to sysadmins and they configure it for you. And you don’t always know all your needs at once. So it can take a lot of time and pain to get that Jenkins instance monitoring right.

But what if I told you that there is a tool that is laughably easy to configure, can run on your commodity Windows machine and is already configured to check all the basic metrics of your Jenkins server. Doesn’t this sound like any enterprise Jenkins admin’s wet dream?

I think it does. And the great thing – now there is such a tool on the market!

A few days ago I had the pleasure to meet with Tamir Gefen and David Cohen of ALMToolBox. What they presented to me was the new version of ALM Vitality tool with added Jenkins monitoring support.

ALM Vitality was originally built for application-aware monitoring of ClearCase and ClearQuest and it seems to be doing a great job for those two as well. God knows I’ve spent a couple of years managing these monsters and their performance bottleneck analysis and resolution can be a major pain in the butt.

But for this session we were specifically looking at ALM Vitality for Jenkins and it really seems a nice little tool that hits a sweet spot for hassle-free Jenkins monitoring.

It is very easy to configure. Basically all it needs is an access to your Jenkins server and the credentials to the application itself. After that you’re up and running. Your Jenkins is monitored for disk space, application availability and stuck jobs. More checks (like lost slaves and memory consumption) are coming soon according to Tamir. Beside having access to your system state through a clean and simple web UI (how about putting a screen on the wall for all to see?)  one can also configure email notifications for when things go wrong.

All in all, I certainly believe ALM Vitality is a great addition to a Jenkins admin toolbox.

You can watch a webcast on ALMToolox website for more details.

And if you decide to try the tool out  – tell them I sent you 😉

  • 0

What’s with the DevOps hype?

Tags :

Category : Tools

Someone asked at one of the forums if the DevOps hype is justified – after all “it’s something we’ve been doing for the last 20 years”…

It’s a good question and here’s what I have to say:

DevOps isn’t new, but the hype around it is all about the ever-growing amount and speed of change in the development process. We’ve seen large shifts in development methodologies and release strategies over the last 5-10 years – towards shorter cycles, continuous delivery, automated testing, etc. New tools and practices have been established to deal with these new requirements and organizations now clearly see the competitive advantage they provide.
So yes, the discipline itself isn’t new, but it’s role in the software manufacturing process is becoming more visible and acknowledged than ever. That’s what the hype is about.