Preface

 

When we started to develop software, we didn’t care about operations. We wrote code, and someone else was responsible for deployment and operations. There was a huge gap between software development and IT operations. On top of that, releasing new features was a huge risk because it was impossible to test all the changes to software and infrastructure manually. Every six months, when new features needed to be deployed, we experienced a nightmare.

Time passed, and we became responsible for a product. Our goal was to iterate quickly and to be able to release new features to the product every week. Our software was responsible for managing money, so the quality of the software and infrastructure was as important as the ability to innovate. But the inflexible on-premises infrastructure and the outdated process of deploying software made that goal impossible to reach. We started to look for a better way.

Our search lead us to Amazon Web Services, which offered us a flexible and reliable way to build and operate our applications. The possibility of automating every part of our infrastructure was fascinating. Step by step, we dove into the different AWS services, from virtual servers to distributed message queues. Being able to outsource tasks like operating a SQL database or terminating HTTPS connections on a load balancer saved us a lot of time. We invested this time in automating testing and operations for our entire infrastructure.