Hitesh Bhatia

I am tech-enthusiast who likes to get his hands dirty with the latest technologies.


EC2 Backup Manager : Python Scripts

EC2 Backup Manager : Python Scripts One of the most important requirements in any projects is regular backups. On one of our projects we were using Netflix's backup monkey and graffiti monkey combined to take snapshots of all the volumes in the account. But this deviated slightly from our requirement, we only required the backups of...



Getting started with Nagios

Monitoring lies at very heart of the Production application. Its absolutely necessary that each and every aspect of application is monitored be it application itself any helper services that run on the server like SSH, FTP, NFS etc and the server resources like CPU usage, disk usage. Even the slightest deviation from the regular usage...



Adaptive Bitrate Streaming Using AWS

Adaptive Bitrate streaming is a technique employed in video streaming which detects end user's bandwidth and calibrates the video bitrate accordingly to guarantee the best viewing experience. This works by encoding source into streams of different bitrates and then each stream is fragmented into smaller multi-second chunks. A manifest...



Blue-Green Deployment with AWS OpsWorks

Blue-Green deployment is a technique in which a new parallel "green" environment is brought up, tested and then its switched with current "blue" Production environment. Which basically means all user traffic is now routed to new parallel "green" environment from current "blue" Production. This technique is often followed to ensure zero...



Mapping multiple Route53 record sets to a record set

Lets take an example where we need to point somedns.com, www.somedns.com to anotherdns.com using AWS' Route53. Creating a record set to point www.somedns.com to anotherdns.com is easy, where www.somedns.com would be a CNAME type record with value "anotherdns.com". But mapping somedns.com to anotherdns.com is not that trivial as R53 does...



IAM Role based access to S3 bucket.

In one of our projects, we came across a requirement where we were required to fetch a file containing important data from S3 in order to use it. Due to Security concerns we were not keen on storing access keys on the EC2 instance. Which basically meant that we could not configure S3 on that very system as configuring S3 would create a...



IAM Basic (Amazon Web Services)

IAM stands for Identity access management, and it's used to control access to AWS resources, in other words it defines "who can do what". If you have been using AWS for long and are not aware of IAM, here's how it can help you. Let’s consider a scenario where an organization has one AWS for all their needs and multiple users use that...



Git – No Branch

Recently one of my colleagues went nuts over Git, he was trying to do a git commit through his IDE, and he encountered this "detached HEAD" warning. But he ultimately did that, and when he switched to master branch, there was no other branch and his commits were not on master branch either. This is where he thougt of redoing all his...



Modify promt to make it GIT specific.

We use git a lot, and one of the most used commands is "git branch". Few Months back we found a script that enabled us to modify our prompt so that it shows our current branch. We have modified it further to add extra functionality, and our modified script enables prompt to show number of files modified, number untracked files, and also...



Migrating a Git repository from one server to another.

Recently, I had to migrate one of the git repository from our local git server to Github along with all the branches, tags etc. Since ours is a big project and with many branches, adding second remote and pushing master branch was not an option. And with Git it's a very simple three step process. 1) Clone bare structure of an existing...



Grails : login fails on upgrading shiro plugin.

We are in the process of upgrading our pre 2.0 Grails app to version 2.1.0. This propelled us to update many of the used plugins. One of them was Shiro plugin. We upgraded it from 1.0.1 to 1.1.4. On upgrading the plugin our login attempts were consistently failing, the reason being, this version uses Sha512Hash and with older version...



Grails Console, execute from file.

Grails Console is one of the most useful plugins available, it provides a console to application to which it's installed. This plugin can be used to test code snippets amazingly fast, debug app, create patches and scripts. And the latest update has made it even more fantastic. Now it has an option to execute code from a file. All one...