By Doug Garaux, Infrastructure Architect
If the “iPhone phenomenon,” as I like to call it, has taught us anything, it’s that consumers expect faster and faster software updates with each passing day. And what people become accustomed to in their personal lives is only magnified in their professional lives. This puts even Fortune 1000 companies under extreme pressure to deliver services in the way their users expect to receive them – at a rapid pace that has most IT departments looking for faster development methods.
So, the question becomes, how do we help developers more rapidly deploy the infrastructure they need to support continuous integration/continuous delivery (CI/CD) development efforts? And, on a broader scale, how do we help the IT operations teams break down the legacy silos preventing them from gaining more efficiencies through automation? The answer: Infrastructure as code.
Infrastructure as code (IAC) is the software engine that enables DevOps. It is an automated infrastructure provisioning process that allows IT organizations to view and manage their infrastructure as software. This means they can write code to automatically allocate and reapportion their infrastructure – to build it, destroy it, expand it or shrink it with little to no human interaction – whether that infrastructure includes on-premise legacy hardware running on VMWare’s vSphere, Microsoft’s Hyper-V or another virtual platform or whether it resides in a cloud environment like Microsoft Azure or Amazon Web Services (AWS). And it also allows them to develop this kind of infrastructure-management code in ways that can be tested, proven and, therefore, can be safely repeated, something particularly important in highly regulated environments like financial and healthcare markets.
Because Coda has expertise in three very important areas – operational infrastructure, CI/CD DevOps processes, and the latest AppDev methodologies – we have a particular affinity for tying infrastructure code to faster application releases. Therefore, when we are called upon to develop an IAC solution for one of our clients, we act as their “expert on demand” by helping them break down internal barriers based on legacy systems and processes so they can achieve the agile lifecycle state they need for a more rapid development and deployment cycle.
As an example, one of our clients – an enterprise-level financial services and tax firm serving large retailers and other organizations – had created its own basic server configuration using Ansible, an open source software automation toolset. They knew they needed IAC to help them deliver faster, but it took collaboration between our two companies to both identify and then achieve their additional goals – things that were obscured by artificial silos that had previously hampered development efforts. Ultimately, in addition to an IAC solution, the client also needed to refactor a business-critical software application as cloud-native so they could move it from their on-premise data center to AWS and deploy it globally. Using IAC as the foundation, we worked together to transform their development cycle by delivering an efficient CI/CD service and rewriting components of the application to enable rapid deployment into new regions of the world via the cloud.
Five Important Reasons for Building Infrastructure as Code (IAC)
While the reasons that an organization might need infrastructure as code vary greatly depending on each business’ individual circumstances, most have five important reasons for building infrastructure as code in common.
- Speed: This is the single most common driver behind the IAC movement. When an organization needs to produce updates to its applications faster in order to be both innovative and to remain competitive, the pressure is on, and they start looking for new practices that will lead them down a more agile path. Those that fail to adopt an IAC methodology are in danger of becoming dinosaurs as the world’s demand for faster updates and continuous delivery overtake them.
- Removal of Silos: In order to adopt new agile methodologies, you first have to break down the silos that are keeping you mired in the processes of the past. One of our clients is a private equity firm that recently purchased a software provider focused on executive healthcare. The firm wanted to expand the software’s viability, scaling it to hundreds of thousands of additional users worldwide, but it was stuck in place by a legacy system that required manual management of the solution via an on-premise data center. By refactoring parts of the application’s code, we were able to move the application from on-prem to cloud and develop an IAC platform that will allow the app to auto-scale, thus helping the client dramatically – and quickly – expand its client base.
- Reliability of Service: In the previous example, because healthcare is a regulated industry, the fact that we can use IAC that is already tested and proven further speeds the delivery process. Responding to and maintaining audit requirements in regulated markets often drives the need for people to adopt this level of IAC so they don’t have to constantly validate things and can better manage configuration drift. In short, with a tested and repeatable IAC, they always know the state of the entire environment is being maintained to that gold standard.
- Open Source Tools: We’ve seen a number of clients who are interested in automation and orchestration of their infrastructure, yet are moving away from some of the bigger vendors and legacy virtualization products in favor of newer, more cost-effective open source platforms like Puppet, Salt, Chef, and Ansible. This move can be easily supported by infrastructure as code developments particularly since IAC is platform independent.
- Reallocating Manpower: When you automate tasks via IAC, you may also naturally reduce the number of people that must be involved in reallocating or reapportioning the infrastructure as the application needs to scale. With less human intervention required for these tasks, those valuable human resources can be reallocated to other assignments that result in better productivity for the business.
Want to learn more? Read a few of our expert blog posts to find out if your journey to the cloud is on the right track, why automation is the ‘secret sauce’ in successful apps, and what our 40+ AWS certifications mean to our clients. Then, explore the ways our RightStart strategy can help you launch your dream app in just a few short weeks. Finally, contact us to start a conversation and find out what Coda Global can do for you.