We are glad to bring you our very first blog post. I am Arun Kumar, started my career as a Software Engineer in 1987 and you can view my full profile here.
Mehar, who is my colleague, partner and co-founder of hudku is going to be another contributor for this blog and you could view his full profile here.
Our website hudku.com may not look the prettiest as we have been completely concentrating on the backend code powering our business search website www.hudku.com. Now we are taking steps to work on improving our front end and to enhance the experience of our users.
We were running our website from a dedicated server. We recently moved to Amazon Web Services AWS and EC2 (Elastic Compute Cloud) and the experience has been terrific. We are using quite a good number of services offered by Amazon such as EC2, RDS, S3, Elastic Bean Stalk, Route53, etc. and are extremely pleased with them.
After moving to AWS, the same application which used to take 3.2 seconds to render on a browser got reduced to 1.2 seconds. We were very much thrilled by it and started implementing further optimizations that we could think of to bring it under 1 second. After that we asked our friends around the world to test the speed of our website and we have found that currently on an average our server running in EC2 responds to any search query or pagination request within 0.40 seconds, the lowest time being 0.17 seconds and the highest around 0.68 seconds. Definitely in this blog site we shall share the information on what optimizations we did to achieve this performance.
We have started our business search site when there are already plenty of established players and even greater number of websites offering the same services because we felt that this business search segment needs several innovative services and facilities which have not been offered so far by any website. We have identified several such features and we have been working tirelessly to provide them. When so much work is there to be addressed then why start writing this blog?
Following are the reasons for starting this blog.
Though Amazon AWS is quite powerful, it has quite a bit of learning curve and takes time for anybody to understand all their important services going through loads of documentation available on their website. We also needed to implement quite a bit of automation scripts as we could not afford to run our production website all through AWS management consoles. We invested 5 man months and have successfully automated management of our website which runs as an Amazon Elastic Beanstalk application. The automation completely takes care of deployment of newer versions of our application, zero downtime deployment, daily backup, log files management, adjustment of DNS records and so on. We felt that by making those automation scripts available, somebody who is interested could get their applications up and running within weeks instead of months by making use of our scripts. Keeping this in mind we have made our automation scripts as general as possible so that anybody could use them and the scripts are not tied to our hudku.com website.
Why are we sharing our hard work?
We very much liked Amazon's gesture of providing free tier for one year so that all their AWS services could be used and evaluated freely by anybody. If you are a software enthusiast or a student of software then you MUST open an account with Amazon AWS by going to AWS Management Console and give their free usage tier a spin. You would learn a lot and it is a crime if anybody interested in software does not make use of such an opportunity. By making our automation scripts available to everybody and helping to get started with AWS quickly, it is our way of saying thanks to Amazon AWS and appreciating their efforts behind providing such useful and powerful AWS services.
I used to work in UNIX and used to write several shell scripts as part of my work during 1987-1989. After that for the last 24 years it has been completely Microsoft operating systems such as MSDOS 3.1, Windows 3.0, Windows for Workgroups, Windows NT, Windows XP, Windows Server 2003 and now currently using Windows 7. Programming IDE have been Microsoft Visual Studio for development in C, C++, C# and for Java programming I have been using Eclipse and IntelliJ Idea. Currently we are using Eclipse as we found its AWS integration to be better. With AWS EC2 and Linux I had to start using bash scripts, try recollecting my very old UNIX experience and within a week slowly I started to get a grip. It was also quite nostalgic to use the good old, time tested "vi" editor. But for every Linux command and every different bash script statement, apart from the help and man pages of Linux, I had to search around for more information and that's where sites like StackOverflow, ServerFault, etc. were extremely useful. After finding solutions from them for my various requirements I feel highly obligated to make our efforts available for others benefit.
Apart from StackOverflow and ServerFault I got help from various public Git repositories, Gists and several individual blogs and source snippets. It would be extremely shameful if we hide our work after benefitting from those who have spent their valuable time, put in great efforts and made their work publicly available.
Finally, having pursued software with passion I have had a wonderful career, obtained 5 patents so far and I do believe that I have gained and accumulated some useful stuff. It is time that I give something back to the software world which has given me so much in my life so that when the time arrives only my body gets buried and not any of my thoughts or ideas that might be useful to somebody.
I have two sons and both have happened to develop interest in studying software. Elder one is in second year of his college studying computer science degree and the younger one is about to join college this year. I can't teach them like their Mom did sitting by their side during their primary school days. I intend to use this blog site as a medium to try to ignite spark and kindle their passion about software. If that effort benefits not only my sons but also just few more who are interested in software, that is sufficient for me to rest in peace when my call arrives. Folks, IMHO it is all about knowledge. Knowledge is Power. What I happened to know when I crossed 40, if you can know well before you cross your age of 28 years, that's it, you would have a much more glorious career and a wonderful life. With this blog site I am going to try my bit to help you achieve that if you are genuinely interested in software.
Enough of my ranting. Its time to get started. As mentioned earlier we shall dive into automating Amazon Elastic Benstalk application as this has been my most recent work and also hope several software personnel could get benefitted whether they are new to EC2 or already been using EC2.
Before getting into complete automation let us quickly try to cover the topic "Zero Downtime with Amazon Elastic Beanstalk". This is what we were also interested in before anything else when we started contemplating our move to EC2. When we searched around including AWS forums, StackOverflow, etc. we did not find any comprehensive and acceptable solutions. So let us try covering it first. On to our next blog post.