DevOps in an insurance startup
i, I’m Mike Scott, I’m responsible for the Infrastructure operations and DevOps practices at an insurance startup.”
When introducing myself, I’ll often get perplexed looks or questions about what I do. I can best describe my role in two parts: I look after infrastructure and software operations for our main product, and I’m an advocate and champion of DevOps practices within our engineering teams.
In this post I’ll explain what DevOps is, and how it’s been advantageous for us whilst creating, iterating and improving the Aventus Platform and its related software and services.
What is DevOps? Wikipedia helpfully informs us:
DevOps (a clipped compound of “development” and “operations”) is a software engineering culture and practice that aims at unifying software development (Dev) and software operation (Ops).
DevOps recognises the benefits of closer collaboration between software development and software operation, with an eye towards getting business goals and objectives completed faster.
It focuses on speed. “The goal of DevOps is to create a working environment in which building, testing and deploying software can occur rapidly, frequently and reliably,” wrote tech journalist Jason Hiner.
DevOps helps our teams collaborate better. While many professionals focus on a single specialty or skill, this new culture encourages them to put their heads together — a practice vital for success in virtually any startup or business.
Improved cybersecurity is another important benefit. In a world where breaches make headlines on a near-daily basis, DevOps empowers our engineering teams to better find, fix and respond to threats and active vulnerabilities faster and more succinctly.
DevOps + Aventus
As an insurance startup we’ve had to learn to quickly adjust, and adapt to produce something we’re proud of. In a notoriously slow moving industry, this is seen as a big advantage of the product we’re able to offer. We do this using a mixture of agile software development and DevOps principles.
We’ve freed up developer time by automating common, repetitive tasks. A good example of this is our mobile app build process. The process for producing our Android and iOS mobile apps used to take a single engineer two full days, through a process of progressive automation this process now takes 20–30 minutes and is completed without human input. We’ve been able to run this process much more regularly as a result and vastly improved the time to ship features. I’ll cover how we did this in greater detail in a future blog post.
We’ve improved the quality of our releases, by ensuring we do these tasks in a consistent way. Human error is one of the most prevalent reasons behind software failures, leading to lost time and money. By automating many of our software processes we greatly reduce this risk. Additional benefits is ensuring common checks are run in an automated way, this can include checks for errors using static analysis, regression testing and simple user acceptance testing.
As an added benefit, we’re also able to respond faster to outages and disasters. All this automation means that we have a defined, documented and consistent process to run our software. It takes less than an hour for us to start up (minutes to update) all the required software and infrastructure to run the full Aventus Platform, without very much human interaction, using technologies and services such as Terraform, Octopus Deploy and Microsoft Azure.
A key tenet for DevOps is to keep improving, and I believe we’ve only just started on the journey. We’re currently working on shortening our release cycles, improving our code branching and support strategy as well as adding automation to help us spot errors earlier and sooner.
I hope to cover more of this journey and where we started in future blog posts.