Monday, January 18, 2016

pmcli v1.1 realeased


I've realeased a new version of the marathon CLI 'pmcli' with the following major updates:

  • Attach to events stream with filter options
  • SSL support
  • Manage Subscriptions
  • Native proxy support
  • User defined timeout to API calls
  • Option to manually reset applications launch delay
  • Bug fixed and code cleaning

This new version, with an updated documentation can be downloaded from mygithub account

Tuesday, January 5, 2016

pmcli, a marathon CLI written in python


For those who need to deal with Marathon and prefer command line rather than graphical administration I've written a CLI in python. It's based on the marathon REST API and can be used for scripting by checking the exit status: 0 ok, 2 failed.

Despite the 'Marathonctl' CLI distributed by mesosphere team is good enough, this one doesn't need to be compiled and works in any architecture with python installed. Also I've been without using python for a long time and this has been a good opportunity to get in touch again.  

You can download freely from mi github account and follow the instructions to install it.

Friday, November 27, 2015

Logs and troubleshooting in mesos

One of the most important, and hated, tasks in systems is troubleshooting. Despite all we know, our experience, our knowledge... systems fails. That's why is so important we know were to look to know what's failing, because without this information it's very difficult to fix the problem.

This tutorial is focused in redhat/CentOS 7, so if you are using a different distro take care because some files can be placed in different paths and/or the naming may be different.

Thursday, November 26, 2015

Mesos DNS server

One of the most important, and difficult, tasks during an app deployment is knowing the IP and port the different services are using to their respective jobs. We have to balance requests to a bunch of web server nodes which have to access to a containerized database and all this services has to send their logs to an analytic server, and we don't know the IP and ports of all this stuff.
Ok, calm down, there are some solutions to manage all this dynamic information.
  • Distributed configuration systems as etcd or zookeeper let us know all the environment configuration, like IPs and ports of all services deployed. 
  • Technologies like kubernetes uses its own proxy solution for services: kubernetes says us there is a service in a fixed IP and port and all the different services behind it are automatically manage
  • We can even use haproxy in mesos to publish services in a fixed IP and port, such as kubernetes does with its proxy solution.
  • Finally we can use a dynamically generated DNS services: Mesos DNS. This is what we are going to talk about

Tuesday, November 24, 2015

Git commands list

This is a list of the most common used git commands I use to have on my side when I haven't use git during a few days

Get help
# git help
# git help <command>

Configure system
# git config --system : Configures file /etc/gitconfig

Configure global
# git config --global : Configures user’s file ~/.gitconfig

List config options
# git config [--system,--global] --list

Edit config from editor
# export EDITOR=[chosen editor]
# git config [--system,--global] -e