Why Serverless & DevOps makes a (big) difference

By: Morten Jensen, Aug 19 2019

Background

We have recently completed a Serverless & DevOps transformation project with one of our clients, CitizenMe. CitizenMe presently has more than 200.000 global end-users and has processed millions of transactions since inception.

CitizenMe uses AWS and mobile apps almost exclusively for its product and service offerings. Most of the components are built and maintained in-house by a small team of developers and testers.

Development of the offerings started in 2013 on AWS and the platform architecture was based on EC2 and Elastic Beanstalk. Over the previous 5 years infrastructure and services were built and configured by hand and the development team would do infrequent, release-based software deployments manually.

CitizenMe’s challenges included considerable problems with quality, availability, scale and consistency. Additionally, few actionable metrics existed and logging didn’t provide the necessary insights to derive more actionable metrics or to troubleshoot issues quickly.

Scope

The transformation project initially focused on the platform API. However, the project quickly expanded in scope to encompass virtually all other components including web services, web apps, reporting services and website. The transformation led to adoption of the following AWS Serverless components:

Developers transitioned over time from releases to adopt a feature-based release cycle to improve testing, quality and velocity. AWS Codepipeline was adopted for each component to automate the development workflow from GitHub commit, through build & test and to rollout to production using Continuous Delivery. Each pipeline has development, test and production stages.

Peer reviews were successfully implemented in order to improve code quality and documentation. Frameworks to identify code dependency security vulnerabilities were introduced through npm audit and Maven Dependency-Check.

In addition the following non-functional areas were addressed:

Impact

The resulting impact of all of the changes has been profound to CitizenMe. The key performance indicators of the changes are:

As a result cultural changes across the organisation have also been observed.

The technical team now alerts the business of encountered issues in advance of end-users contacting CitizenMe. This has improved the business proposition considerably and as a result it has meant much happier customers.

Furthermore, the business now has a much better understanding of the backlog and outstanding issues in the pipeline. Agile practices and the JIRA board have also been much simplified.