Friday, 29 June 2012

OpenStack : An Introduction


OpenStack is a collection of open source projects that can be used for creating and running private/public clouds. It comes under IaaS (Infrastructure as a Service) category of cloud computing. In IaaS model, resources related to computing, network, storage and other infrastructure components are abstracted and provided as a service. 

OpenStack project was founded by Rackspace Hosting and NASA. Rackspace contribted for the Object Storage part while NASA contributed for the Compute part.

Latest (version 5) OpenStack is called ESSEX. It was released on 4/5/2012.

OpenStack services have beed divided into 5 main categories:

Nova - Compute Service

It handles/manages the lifecycle of instances created/running withing OpenStack cloud. Nova features are exposed as web services. It manages compute power, network, authorization, scalability etc.

If you have openstack installed then you can run the following command and check the status of various nova services:

nova-manage service list

Binary                 Host              Zone             Status     State Updated_At
nova-network      ranjank           nova             enabled    :-)   2012-06-11 19:53:03
nova-scheduler    ranjank           nova             enabled    :-)   2012-06-11 19:53:03
nova-volume       ranjank           nova             enabled    :-)   2012-06-11 19:53:03
nova-compute     ranjank           nova             enabled    :-)   2012-06-11 19:53:03
nova-cert             ranjank           nova             enabled    :-)   2012-06-11 19:53:03
nova-compute     ranjank           nova             enabled    :-)   2012-06-11 19:53:03

Swift - Storage Service

Swift is a distributed virtual object store for OpenStack. It can be used to store large number of objects of any size. It is similar to Amazon S3 (the popular Simple Storage Service from Amazon). It can also be used for backup and archiving of objects.

Glance - Imaging Service

Glance is an OpenStack service for adding, retrieving and deleting VM (Virtual Machine) images.

Running the following command will show me what all the VM images I have added:

glance index

ID                                                                 Name                Disk Format   Container Format    Size
------------------------------------ ------------------------------ -------------------- --------------------
e3ef93d0-efd0-4254-bfc8-575b0894049f     win_server_1                 raw        ovf          21474836480
d61fbaea-de34-45a5-a309-d6b0c3806bf4    win_server_2                 raw        ovf          21474836480
e3f2a4b4-f653-42a2-8742-1b32a55caea3    cirros                              qcow2   bare         9761280
67eb5530-dadb-4ad6-8d15-21f6bc34568a   tty                                  ami         ami         25165824
0c454b27-5c7e-4ec3-a524-33fffad873a2     tty-ramdisk                     ari          ari           5882349
0bbdd345-2200-40eb-b49d-9933b34b2b62 tty-kernel                        aki         aki          4404752

Keystone - Identity Service

Keystone provides authentication and authorization for various OpenStack components like Swift, Glance, Nova etc. There are two ways it can authenticate:

1. Username/Password
2. Auth-Token

Running the following command show the list of keystone users:

keystone user-list

+-----------------------------------------------------------------------------------------------------------+
|                id                                             | enabled |          email                        |    name  
+-----------------------------------------------------------------------------------------------------------+
| eb69c5901d4b4b4aaa8ce0192a1546c2  | True    | rkumar@example.com       | rkumar    
| f13904ef8af5473788bb665bde5a72cc    | True    | akumar@example.com      | akumar    
| fb701ad1cf7f4aa2a8613cbae2066d7a     | False   | skumar@example.com      | skumar    
| 1a737cfa16224cf8be1abdadb334326f    | True    | None                                  | ec2      
| 2ebdab8c9a6c403cb534c4efb12a4013   | True    | None                                  | swift    
| ac921326ac0b42c4b4d000b988d7911a | True    | None                                   | user      
| acf9eca7ded441ed9dea4caaf16aa055     | True    | None                                   | admin    
| ad3da366b4c0463e967a197c868504f0  | True    | None                                   | nova      
| deed0e9553674db299668f8fd0256eb3  | True    | None                                   | glance    
+----------------------------------+---------+--------------------------+------------+

Horizon - UI Service

It is web-based dashboard for managing OpenStack services. It can be used to manage VM-instances, images, users, volumes, object-store etc. You can connect to any instance though VNC from Horizon.

I will cover each of these components in detail in upcoming posts. Keep watching this space.

Monday, 25 June 2012

What is (in) experience?


A girl in my neighborhood has been searching for job since quite some time. She frequently updates me about the interviews attended. Many a times I've heard from her that she was not considered eligible for interview. Reason- She was falling short of number of years of experience in the particular technology she applied for.

Just to apply some filter at events like walk-in, I agree that having some criteria is a must. But otherwise I often feel that company should not be stringent about the number of years of experience in a technology. Suppose a candidate has prior experience in X technology and does not fit in experience criterion for currently applied Y technology. It indirectly means that the candidate's prior experience is waste. Is it really waste, useless? Not actually. While working earlier, the candidate has got familiar to so many things- processes/methodologies followed, team work (this is the most important one I feel!). Leave aside technology. Look at the corporate learning and adopting it. Not everyone adopts, true. But then those who did, should not get rejected merely because of some 'number'!

Looking at the fact that we are in a city where every third person is an IT professional, companies have got ample choice to select a candidate. Companies can keep interviewing till they get a perfect match for their requirements. Why should then one compromise for experience? It is also very likely that a person fitting in the experience criterion will meet the performance expectations. There might arise a tight situation where if a company does not hire required number of candidates in a short period of time, company might lose a client. In that case candidates might be hired who are not actually the right match for project/team/company.

But yeah, if I were to hire a person for my team, I'd have looked for a candidate no less than my set criteria :) At the same time I'd not want to miss hiring a bright person just because of shortage of experience! Anyway, there is no foolproof approach of selecting a candidate. After all, good judgment comes from experience and experience comes from bad judgment!! Agree??

Monday, 18 June 2012

Repeated Mistakes


Sometimes I learn things by difficult ways. Reason- I ignore/skip a step....that step is seemingly undue, unimportant. I've been preparing images and promotional banners since long. Many a times the thought of jotting down the font and size of text that I put in an image had invaded my mind. Every time I thought 'next time, not now'. Even while preparing cover page of my ebook, I skipped writing notes about font details. My laziness-cum-ignorance slapped me hard when I'd to prepare cover image for printed version of the same ebook of mine. I could neither recollect the font nor could I find a perfect match by trying various fonts. I was relieved to find an online app which tells us font from the uploaded image. I did upload the cover image of ebook. But since different texts were styled differently, the app couldn't give me any result :(

Lesson- Now every time I work with images, I take no time to create a notes.txt file in the same folder. A consciously adopted habit! It reminds me of the saying that we were being told during childhood days (Just extracting the gist, I'm not good at translating anything from my mothertongue to English;) )- 'Punish by beating with a rod and intelligence comes in bulk'!!

Wednesday, 13 June 2012

Java Populars Crossed 20K!


Finally overcoming the 'nervous nineteen thousands', the Chrome extension Java Populars has 20K+ active users! And yes, it has also maintained its 5 star rating!! Thanks to all the users.

Since last few months I daily used to visit Java Populars page at least once a day....with high hopes of crossing the benchmark of 20K. I recently added a task to my ToDo list- adding promotional banners to all my extensions. I'd been planning to add them since long but kept on postponing it. And I could see very clearly that banner was the magical wand! Within a few days after adding banner, the number of users crossed this milestone. So there I learn a lesson- not to ignore such tasks, in fact take them to higher priority.


For those Java folks who have not yet tried this extension yet, here is the link:
https://chrome.google.com/webstore/detail/oapojegdcjjaeehmicinhimakliedchj