By: Venu Murthy, Cloud Lead, ThoughtWorks
“Success is when you design for failure”
And so are all aircrafts designed. However, does the same hold true for the IT infrastructure that lies at the base of a solution, which empowers passengers to interact with an airport efficiently?
This is the IT infra-narrative of Bengaluru International Airport or BIAL’s intuitive and data-driven digital platform. Incidentally, the airport recently announced the launch of the BLR Airport App, which is a key milestone in the evolution of the airport’s digital journey.
BIAL’s digital platform focuses on providing passengers with a seamless travel experience while leveraging state of the art technologies and also quickly adapting to the airport’s business model changes. This is a clear deliverable of the holistic vision of a ‘Naturally, Easy Experience’ for all BIAL’s customers – making it a reality at the latter’s fingertips.
For an airline passenger, this translates into not only receiving real-time flight information but geo-location services, as well. The Beacon technology provides in-airport navigation through the Google Indoor Maps (a first for an Indian airport) and information on latest offers from nearby restaurants and shopping outlets, which are pushed to passenger devices.
This is apart from the expected facilities at BIAL like the childcare support, medical help, baggage information or help desks, parking infrastructure and special assistance amongst others.
What this leads to is the infrastructure powering such a dynamic digital platform which will have to be robust and always available. It should also intelligently scale up and down to provide a fast and responsive experience to passengers, while making efficient use of all the available IT infrastructural resources.
Being resilient is the name of the game when it comes to designing such a critical system.
For instance, it wasn’t a few days ago when due to a tiny technical snag in the data centers of a major American airline company, flights were grounded for more than six hours. I will leave it to your imagination to visualize how dramatic the situation would have been.
However, for the purpose of this article, I bring up a rather perceptive question from a recent BGR write-up that discussed the unplanned outage, “Why did a computer failure in Atlanta stop planes from flying in London?” The problem escalated because even though the outage only lasted a few hours, the knock-on effects on the airline’s service were huge.
This goes on to show that a resiliently designed system, which scales at speed, needs its infrastructure to be smart and repeatable. And for this reason, for BIAL, we went down with the micro-services approach. We chose one of the best cloud platforms in the market that allowed us to abstract or generate the virtual version of the infrastructure. This quite obviously led us to the Infrastructure as Code (IaC) approach.
By definition, Infrastructure as Code are techniques, practices and tools from software development applied to creating reusable, maintainable, extensible and testable infrastructure.
On the BIAL journey, the recently launched BLR Airport App has been ‘cloud burnt’ or ‘cloud ready’ from the beginning of its development lifecycle. The app is stateless, where, data and app infrastructure are kept separate enabling exhaustive storage and when pushed to the care of managed database service, ensures high availability and integrity of data.
Additionally, for the platform to be agile, the infrastructure should be smart enough to be app-aware. This means, the infrastructure can, as earlier mentioned, scale up or scale down while automatically sensing load on the app. This was possible by first defining the infrastructure in the form of code, so that the success of the repetitive process can be reproduced at one click. Also, IaC reduces the reliance on an overworked central team and ensures continuous improvement to support the application, as effectively as possible.
The configuration management tools like Ansible, which is what we went with for BIAL, has modules for prominent cloud platforms. In case new releases break the application (raising an exception that bypassed all tests), the environment could be destroyed and rolled back to an earlier version at the click of a button.
How would this be possible? The infrastructure on the cloud platform when triggered, improvises the Continuous Delivery/Integration tool, which can fetch the environment definition, from the Version Control System or VCS, that is being used for the code. This implies that the advantages of versioning can be enjoyed by the infrastructure similar to code.
To save time on configuring, provisioned Virtual Machines or VM’s and Images can be created using tools like Packer and Ansible. So, Auto Scaling Groups can add VM’s using these images upon reaching a particular threshold of utilization and purge them when the utilization is low. This matter because one pays only for what is being used, hence optimizing costs.
I like how my colleague at ThoughtWorks, Keif Morris, Head of Continuous Delivery put it, “Infrastructure as code is an approach to managing IT infrastructure…(where) the basic idea is that you make changes rapidly and easily, at the same time safely and reliably.” It makes perfect sense that BIAL’s digital platform and larger vision leverages IaC as it is in line with the growing technological trend of increased automation with a lesser and lesser need for manual intervention.