DevOps is a term that often appears when thinking about effective software engineering practices, especially in the FinTech space. As with most buzzwords, DevOps is known to be important and needed, but not necessarily understood as to why. We’ve simplified that for you – here’s how DevOps can help your business.
Not only is ‘DevOps’ a buzzword, but there are plenty of buzzwords within DevOps as well. Configuration Management is one that seems complicated on the surface but is easily explained in reality. We’re going to take a deeper look at configuration management and how, if effectively implemented, it can be essential to a successful Fintech.
What Is DevOps?
DevOps brings together application Development and Operations.
Dev: Plan, code, build and test.
Ops: Release, Deploy, Operate and Monitor.
The Dev group is constantly pushing changes: they come up with new ideas, write the code, build out the new features and test these new features to fix any defects before production. On the Ops side, they deploy these new changes and are primarily concerned with system stability through managing servers, scaling, security and backups. So, one group is pushing changes and the other is saying we need to make this more stable – effectively saying “don’t push changes”. Unsurprisingly, this can cause friction between Dev and Ops which leads to slower building out and improvement of a platform.
This is what DevOps aims to solve. It is not a specific type of coding or a special kind of development; it’s more of a philosophy, mindset or ‘culture’ so that Dev and Ops can work in synchrony.
To give a more technical summary, a DevOps culture or ‘pipeline’ in your business means that you can have the process of Dev (Plan, code, build and test) and Ops (deploy, operate, monitor) as quickly as possible, with high quality and in a continuous process or ‘lifecycle’. People in a DevOps team know exactly what is going on between Dev and Ops – they see the bigger picture of the lifecycle and can change roles within it. A typical DevOps engineer might focus more on Dev one day and more on Ops another day; it’s a fluid role full of variety which is often why software engineers are attracted to it.
What Are The Benefits Of DevOps?
DevOps allows a business to be agile, because new developments and changes can be brought to production quickly and managed effectively. ‘Agile’, yet another buzzword, simply means a business can be responsive to consumer demands and changing market conditions – which is paramount in FinTech as competitors are constantly competing to stay ahead.
This agility is created because the DevOps lifecycle is continuous –
- Continuous development – Planning and coding
- Continuous integration – integrating the new code into the existing code through building and testing
- Continuous deployment – releasing and deploying the update to the systems
- Continuous monitoring – operating and monitoring through managing servers, scaling, security and backups
There are lots of different tools and techniques within these different stages of the lifecycle. Configuration management comes in at the end of the Continuous Deployment Stage of the lifecycle.
What Is Configuration Management And Why Is It Essential?
In short, a configuration management system (CMS) ensures that all software and hardware assets within a company are constantly known and tracked acting as a single source of truth for their configuration. This involves utilising an up-to-date and easily accessible inventory for these assets, known as a Version Control System (VCS), throughout their lifecycle. Using a CMS and VCS allows for easy roll back of development in case of problems and means that systems and software can be fully reproduced and maintained, often through an automated process. Once again this comes back to a business being agile – being able to make changes and develop constantly without any problems, saving time and money.
What Are The Tools? And Which Ones Are Most Popular?
As with many things in the Tech world, there isn’t an undisputed solution for conducting effective configuration management, and these solutions are constantly changing. However, there are distinct differences between tools and techniques that might be better suited to certain situations.
The main-stream configuration management tools are Puppet, Chef, Ansible and SaltStack. These codify the steps that are required to bring a new development to production and how that new development should look. For example, creating a Chef cookbook or Ansible playbook will codify the steps and, in turn, automate all of the X servers having Y installed into them.
Puppet
- Requires learning Ruby (programming language) and its own specific programming language
- Good performance and great support as it has been around the longest
- Available on the cloud
Chef
- Requires learning ruby
- High speed performance
- Available on the cloud
Ansible
- Easy to learn and become an expert as the language is YAML which is simpler than Ruby
- Performance speed is lower than chef and puppet
- Not available on the cloud
SaltStack
- Easy to use with multiple languages available once set up
- Harder to set up as the user interface is less intuitive
- High performance speed and very scalable
- Not available on the cloud
Ansible is the most popular mostly because of it’s ease of use but in terms of reliability and scalability SaltStack is great on-premise and Puppet / Chef are preferred on the cloud.
Another more recent development and widely popular technique for Configuration management is known as ‘Infrastructure as Code’ whereby infrastructure is built, altered and it’s versioning tracked on the cloud using code. The widely preferred tool for implementing infrastructure as code is Terraform, which can be utilised on any cloud platform. However, there are cloud-specific tools that are also available: AWS Cloudformation, Azure Resource Manager and Google Cloud Deployment Manager. Some of these tools are better suited in certain situations, however, Terraform is the industry standard for Infrastructure as Code across the board.
We hope this has given you a better insight into DevOps and why it’s an essential function for FinTech. Nat Sanderson is part of the DevOps & Engineering team at Storm2.