Saturday, October 20, 2018

Snappy Packages

Long time no post ....

In this post, I would like to mention a couple of very early and basic packages I have created recently while exploring the snappy package manager.

First things first, i.e "what is snappy?". As mention in the Wikipedia entry on Snappy package manager "Snappy is a software deployment and package management system originally designed and built by Canonical for the Ubuntu phone operating system. The packages, called 'snaps' and the tool for using them 'snapd', work across a range of Linux distributions and allow therefore distro-agnostic upstream software deployment. The system is designed to work for internet of things, cloud and desktop computing.[2]"

Snappy gains more and more attention in the community and for very good reasons. In my attempt to further explore snappy I have created packages for two favorite CLI tools i.e. bosh and bosh-bootloader.

You can find the source and some basic usage instructions in the links below:

 Your feedback would be more than welcome

Wednesday, November 1, 2017

Use Terraform to serve Azure Container Service (ACS) orchestration platforms

Azure Container Service (ACS), provides a unique approach to managing containers in the cloud by offering a simple way to scale containers in production through proven open source container orchestration technology. Combining Azure Container Service (ACS) with Terraform allows for greater flexibility and control of the infrastructure plane.

This post is all about this, introducing the terraform-azurerm-acs project.

The terraform-azurerm-acs project is a Terraform module to deploy ACS orchestration technologies  (i.e. DCOSKubernetesSwarm) while provisioning the minimal infrastructure required for them in a controlled and flexible way.

For more information on how to use it along with examples if you please the terraform-azurerm-acs repository.

Sunday, October 1, 2017

Enriching Cloud Foundry's marketplace with managed services!

 In today's world of cloud computing "as-a-Service" services has been made possible to minimize operational and infrastructural costs involved in business processes. The cloud services have been able to turn IT operations into an operational expense, instead of a capital expenditure as it used to be considered. These managed services, along with its challenges, introduce new dynamics and possibilities in low cost for a business, often considerably lower than in-house solutions.

Following the hype and the trend of managed services I would like to introduce three new proof-of-concept contributions exposing some of 84codes managed services in Cloud Foundry's marketplace i.e.

For further details please follow the links to access each project's repository.  

  The projects above at present state aim serve as proof-of-concepts and not intended to be used in production.


Sunday, February 26, 2017

Ansible-spiff !

 I would like to present and share with the community another weekend-long pet project ansible-spiff!

 Ansible-spiff is a binary module and is written in GoLang and aims to provide integration between ansible and cloudfoundry's declarative BOSH deployment-manifest builder spiff. The first objective is to act as a mechanism to further enable and improve ansible as the cloudfoundry deployment tool. The second objective is to explore golang as the language of choice for module development and further more to serve as a preliminary framework for golang based modules.

Source code can be found at

P.S contributions are more than welcome

Sunday, October 30, 2016

NullDaddy-DDNS a poor-man's DDNS!

I would like to proudly present NullDaddy-DDNS

 NullDaddy-DDNS is a weekend's long pet project attempting to provide a poor man'sDynamic-DNS using ipify and GoDaddy's - Developer APIs. It is written in Go and by default can be used as a CLI or daemon in any operating system that is supported by Go. A docker image is also available here.

The source code and documentation are available on GitHub.

Thursday, February 27, 2014

Apache Camel meets Kafka!

 LinkedIn engineers in their work in [1] have introduced Kafka, a distributed messaging system that was initially developed for collecting and delivering high volumes of log data with low latency, which was later on donated to Apache Software Foundation (ASF).

 Kafkadue to its architecture, performance and scalability characteristics, has proven to be revolutionary in today’s messaging technologies and has been used with success in several domains and projects - most notably among them the LinkedIn’s real-time activity data pipeline [2].

 It is the Kafka design (more details and background are given in the relevant paper[1]) along with benchmarks, comparisons and discussion found in the community, the reason that I wanted to get involved and learn more about this technology. In the process to learn more about Kafkahow it works and create some toy projetcs , I started also working on an Apache Camel component.

 Apache Camel is another ASF project, one of my most favourite ones, which I consider as an absolute must in many cases, especially when it comes to distributed systems and more over to integration projects.

 This way, I decided to bring together Apache Kafka with Apache Camel, in a similar way like I was doing in my previous work on Camel-Gora component for NoSQL databases.

 All in all, this post is about announcing camel-kafka and providing links to the source code and wiki  pages.  Camel-kafka component gives the ability to utilize Apache Kafka through camel and therefore integrate it in your stack.

Note: documentation and examples to come soon!


[1] Kreps, Jay, Neha Narkhede, and Jun Rao. "Kafka: A distributed messaging system for log processing.Proceedings of the NetDB. 2011.

[2] Goodhope, Ken, et al. "Building LinkedIn's Real-time Activity Data Pipeline."IEEE Data Eng. Bull. 35.2 (2012): 33-45.In 

Thursday, December 5, 2013

Apache Camel meets Gora!


 NoSQL and Big Data have definitely become two of the most popular buzzwords nowadays. And since one works with NoSQL databases can easily understand why this is. NoSQL databases come in different flavors that focus on specific areas and problems as it has been taught to us with the CAP theorem.

 This is also the reason we have ended up with so many of them already. Something that is both good and bad in the same time. From one point of view you have very specialized solutions to your problem but from another point of view, there are so many different servers and APIs that make your mind ready to blow-up some times.

And this is where Apache Gora comes into the rescue!

As described in the Apache Gora homepage :
The Apache Gora open source framework provides an in-memory data model and persistence for big data. Gora supports persisting to column stores, key value stores, document stores and RDBMSs, and analyzing the data with extensive Apache Hadoop™ MapReduce support. Gora uses the Apache Software License v2.0. Gora graduated from the Apache Incubator in January 2012 to become a top-level Apache project.
This description clearly points out, this extra step that I totally love in Gora, which is to integrate and support Apache Hadoop™ MapReduce. This feature from my point of view seems to combine in a beautiful way storage and processing under one library.

Exploring more Gora and trying to further learn the framework, I start working on an Apache Camel component for Gora. Trying this way to marry Apache Gora with another one of my ASF favorites.

Based on wikipedia entry :

Apache Camel is a rule-based routing and mediation engine which provides a Java object-based implementation of the Enterprise Integration Patterns using an API (or declarative Java Domain Specific Language) to configure routing and mediation rules. The domain-specific language means that Apache Camel can support type-safe smart completion of routing rules in an integrated development environment using regular Java code without large amounts of XML configuration files, though XML configuration inside Spring is also supported.
And from the marriage of the two, camel-gora component came in life!

Camel-Gora Component

Just the past week, or so, I have finished, and contributed back to the Apache community, the camel-gora component that I was working for a few days. The camel-gora component gives the ability to utilize Apache Gora through camel.

It is early work yet but you can get both the latest and the original source at the github repository while more informations about the contribution and its current state can be found at the CAMEL-4817 issue in Apache JIRA.

Finally as one can guess, documentation writing is not one of my favorites to do and yet is not ready. However this is a work in progress and I will try to finish as soon as possible. Therefore in the mean time you can refer for some usage examples in the form of tests here.

P.S I will try to keep examples updated to the reflect the latest changes and in a future post give some example uses and ideas for the component!