Skip to main content

Posts

Rancher for Microservices : Upgrades and Rollback.

So far we've checked how easy it is to get up and running with Rancher. We also deployed a very simple HTTP service on our Rancher Cluster, attached an L7 Load balancer and successfully scaled up containers running this service.

In this post, I'll use the same service with a slight modification which is version number now return as  2.0 in HTTP response. So far our service is on v1.0, let's say we've worked very hard and released a new version with latest features. We want to release it to our users while ensuring there is no downtime during deployment. At this stage, our docker image of service 2.0 is pushed to docker repository (ravirdv/app:2.0).

In the world without container orchestration platforms, we'd have to write scripts to spawn up compute resource (EC2, VM etc) and then use something like Ansible/Chef/Farbic scripts to provision required services and dependencies. Once that is done, we'd push our package and hope there is no dependency/version misma…
Recent posts

Rancher for Microservices : Load Balancing and Scaling Containers.

In my previous post, we saw how easy it is to set up Kubernetes cluster using Rancher. Once you have a cluster up and running, next step is to deploy your microservices on the cluster. In this post, we’ll look at how to deploy, run and scale a docker image on your cluster. We’ll also look at setting up an L7 load balancer to distribute traffic between multiple instances of your app.

Let’s create a simple HTTP service which returns server hostname & current version of the binary (hardcoded). I’ve used go-lang for this, below is code snippet which returns hostname and service version.

All it does is, returns a string "App Version 2.0 running on host: <hostname>", once deployed it will return container hostname.

Next step is to dockerize our service by generating a docker image and push it to DockerHub (or your private Docker registry), below is Dockerfile I used to dockerize this service.


Running this will compile our service and generate a docker image on local mac…

Getting Started with Rancher & Kubernetes

During my time working at Azoi (a startup), I was responsible for maintaining Gitlab for my team along with various other self-hosted internal services. When I first setup Gitlab in 2013, it was quite a task, as setting it up would involve configuring various services using provided scripts and a lot of luck. Fortunately, I found Bitnami Gitlab package to make that process easier. However initial setup is one thing and keeping up with the latest releases was a nightmare.

Fast forward to 2016, I joined eInfochips as Solutions Consultant. Where one of my responsibilities was to modernize development workflow and encourage DevOps culture. It made sense to use Gitlab specially for Gitlab-runner and since this was a fresh setup, I explored few options to setup Gitlab, I found that Gitlab monthly releases were now published as Docker images. So I decided to use Gitlab docker image to host gitlab-ce internally. This time around, the experience was very different, initial setup and upgrading…

EuroPython 2015 - Python and Internet of Things

I've been working in area of IoT for quite some time, and at Azoi we use Python extensively. Looking at usage of Python on micro-controller, I realised that it's not used as much as in other areas. I've had very good experience going with Python. I've got some exposure with micro controller and think it assists you to rapidly build prototype involving hardware.

I applied for a talk on Internet of Things with Python to spread some awareness around this and it was selected along with another talk by my colleague Bhaumik Shukla and one more by Hitul Mistry. Out of all all submissions, there were total 4 selection out of which 3 were from my team at Azoi. It was also my first major talk at a large conference like EuroPython. I was both nervous and excited as the same time and since I was going to Bilbao, Spain for conference, I thought its a great opportunity to explore other cities as well :-)

Bhaumik's topic was "Python for Cloud Services and Infrastructure Man…

Reliance Jio: a revolution in India's broadband scene?

Reliance Jio Infocomm acquired pan India 4G spectrum in 2010, now is the time when they're obliged to utilize spectrum and launch their services. I'm closely following developments related to Jio from quite some time.

RJIL is aggressively laying fibre almost everywhere. They've also started public WiFi hotspots in few cities of Gujarat with Jionet branding and I'm actively using it. It was started on 26th Jan 2014 in Ahmedabad and was supposed to be free for first 3 months however it's Feb 15 2015 and the service is still freely available. Based on my experience with Jionet, I've seen speeds upto 11 Mbps however most of time it is around 3-8 Mbps, which is good considering that the service is free of cost.
I think there is a big push towards data driven applications, they're also working on apps like 
Jio Drive (Service like Dropbox, 100 GB Storage!)Jio Play (Live TV, with 7 days of content, more than 300 channels)Jio Beats (Similar to Spotify, Gaana, Saavn…

iOS Notifications with ANCS Bluetooth Low Energy Profile.

So I got my hands on this TI CC2540 development board, which is a Bluetooth Low Energy boarding with MCU running OSAL. I was reading about BLE profiles and came across a profile called ANCS Bluetooth profile. ANCS stands for Apple Notification Center Service, this profile allows you to subscribe to notifications on iOS devices.

I came across interesting demo on Github repo which shows Mac working as BLE peripheral device and iOS working as BLE central device. This app shows how you can subscribe to notifications on iOS device and show them on your Mac. I'm a big fan of Pebble Watch which uses same profile to show notifications on watch via BLE.

Having a development board like CC2540 allowed me to build a very simple custom firmware which would have a ANCS profile and LEDs on board reacting to notifications. It turns out that that there's amazing blog with explain how to implement this in details

Introducing Kito (formerly Wello)!

I'm fortunate to be part of team unveiling Kito (formerly Wello) at SXSW 2012, I've been working hard along with my team on this for last few months and it feels so good to finally show it to the world. Kito is health tracker device which is in form of a smartphone case, it talks to the phone using Bluetooth Low Energy and has its own battery which can last couple of months on a single charge.

It was a very hectic week with all of us working around the clock on setting up pre-order website and preparing for launch. I went to Delhi for a local release event before heading towards Austin. By the time I left for Austin, Kito launch was covered all major tech publications, below is list of few links which covers Kito launch
engadget - 'Wello' iPhone case can track your blood pressure, temperature and morePocketNow - “Wello” case tracks your health with your current iPhoneMacrumors - Azoi Unveils 'Wello' Health Tracking Case for iPhoneTechcrunch - Hands On With Well…

How will Samsung succeed where Nokia failed?

Anyone who's following Tizen project knows developing apps is mostly using HTML5, CSS & JavaScript. While I like the idea of HTML apps on mobile and all the portability advantages of it, what I don't like is how limited access you have when it comes to build apps which are CPU intensive. In general, it doesn't give a good UX and it feels sluggish in comparison to BB10 Qt/QML, iOS with Swift, heck even Android with Java is better.

Looks like every new platform wants to quickly gain maximum app developers, due to which they end target people who are familiar with web technologies. With BB10's fluid UI and good set of native apps, they are struggling to survive, and then there is Jolla Sailfish (by ex-Nokia team) which looks like more of a hobby project. 
As a developer, having experienced Tizen OS (which is no different in terms of features than Android) I see no reason to believe Tizen to succeed where Nokia & Blackberry failed. Which is bringing high end apps …

Ubuntu Touch SDK, Core Apps & Mac OSX

I have started working on Ubuntu Touch core apps, this involves using Ubuntu UI Toolkit which is basically QML Components designed for Ubuntu Touch OS. Unfortunately Ubuntu UI Toolkit is not available for Mac OS. In order to develop Ubuntu Touch core apps I have to get Ubuntu UI components running on Mac.

So this has shifted my focus from Ubuntu Touch core apps to ubuntu ui sdk. Once I get it, I can start working on Ubuntu Touch core apps.


Coming back to the SDK, it is a straightforward package which contains QML building block for application developers. Now compiling this on Mac should not be diffcult.

I have identified following dependencies causing compilation to fail.


QtDbus:

This is the first error message i got when trying to compile Ubuntu UI Toolkit.
it says Unknown Module : dbus  when I run QMake.

I have no clue why this is coming, as I think I have qtdbus installed. will come back to this point once I have a solution

libintl includes:

Ubuntu Touch SDK seems to be using lib…