I logged into my facebook account today
and see a different look and feel. Honestly I was quite happy the way
it was earlier , I hope facebook roles back. But as a Software
Developer myself what amazes me is the ease with which facebook is
able to roll such updates regularly and takes several decision based
on sentimental analyses of how the new features are perceived.
I thought of digging in more and
understand how do they do this.?
Just imagine a seasoned operations
engineer who does regular tasks of provisioning and managing the
plethora of environments.The tasks could be know all the admin
consoles . The engineer now exactly when the next application release
is due and also know when to expect the next update to the OS. The
engineer is the master of his domain. Is that good enough in today's
environment. With systems becoming virtualized and as developers
have started practising Continuous Integration (CI), things have
started to change. The number of environment and their instances you
have to deal with has gone up by several orders of magnitudes.
Developers now don’t release updates and new versions every few
months; they are pumping out CI builds daily. In fact, multiple
builds a day. All of them need to be tested and validated. That
requires new environment instances to be spun up, fast. These builds
also often come with configuration changes. Logging into consoles to
make each one of these changes individually is no longer a viable
option. Furthermore, the need for speed is critical.
So then how to deal with this situation
?
By modelling IT infrastructure and
application delivery as code. When soft wares work reliably on code
why not deployment and delivery.A code can Can Accelerate Time to
Market, Code Can Encourage Innovation since the time being consumed
in repetitive tasks can be taken care by the code.Code Can Scale.Code
is Consistent.
Code provides a way to describe and
automate infrastructure and processes. Infrastructure becomes
testable, versioned and repeatable. It becomes part of Agile
process.
By automating your application
deployment and delivery vehicle, it becomes easy to quickly roll out changes ..
FaceBook is great example of
successfully implementing infrastructure as code .
Coming posts we will try to do this .