Infrastructure Automated, with AWS and Elementryx

How a leading loyalty technology platform improved the time to on-board new tenants to their B2B platform built on Amazon Web Services (AWS) by over 90%

Life-io is the world’s first web-based platform specifically designed to help Life Insurance Carriers enable their policyholders to make better decisions. The company’s B2B web application allows companies to interact and guide their customers through important life events with a personalized and fun experience.

Life-io’s systems interact with end user information that is highly sensitive and confidential. As such, the company must deploy their applications to a separate set of cloud infrastructure in customer specific networks.

Installing and configuring a monolithic software application can be a manual and error prone process. Additionally, to install and configure a fault-tolerant and distributed suite of self-healing microservices, load balancers, application frontends, and DNS settings in a secure cloud based virtual network can take weeks.

Life-io knew that in order to provide a truly customizable multi-tenant experience, they would need to perform this complex installation for each of their customers, ideally customizing each customer’s experience and infrastructure configuration.

Identifying the need to drastically reduce the cost of on-boarding new customers and maintaining the configuration for each existing customer, Life-io asked Elementryx to automate the process of installing, configuring, and modifying the installation and infrastructure configurations for each tenant.

Application Architecture

At 1000 feet, Life-io’s web application consists of a backend designed according to microservice architecture and a static website front-end.

The backend is comprised of a suite of microservices deployed to an Amazon ECS computing cluster as Docker containers. These microservices are coordinated by an API service, also running on the cluster. The cluster lies distributed across two AWS availability zones (geographically isolated data centers) with a private subnet in each availability zone, with the API service exposed over an Application Load Balancer. Incoming traffic to the load balancer is encrypted over SSL, as is traffic between the load balancer and API servers.

The frontend is a static website, hosted from an S3 Bucket and fronted by Amazon Cloudfront, a content distribution network.

Automation

Leveraging Hashicorp's Terraform, Elementryx developed custom scripts to enable Life-io to create, destroy, and update each tenant's stack. The scripts were designed to enable Life-io’s DevOps team to provision new clients and also to be integrated with their CI platform to enable automated testing and deployment of updates to their micro services.

AWS Services Used

➔ Amazon Cloudfront
➔ Amazon Simple Storage Service (S3)
➔ Amazon Certificate Manager (ACM)
➔ Amazon Elastic Compute Cloud (EC2)
➔ Amazon Virtual Private Cloud (VPC)
➔ Amazon Secrets Manager
➔ Amazon EC2 Container Service (ECS)
➔ Amazon DynamoDB
➔ Amazon CloudWatch
➔ Amazon EC2 Container Registry (ECR)
➔ Route53

The Benefits

With the scripts Elementryx created, Life-io is able to realize tremendous value including:

➔ All infrastructure deployed to clients adheres to a specification that has been tested, and is not prone to manual error or misconfiguration.
➔ Documentation through Terraform configurations files for which AWS services are in use.

“Having a secure infrastructure is table stakes for Life-io and its clients. The work Elementryx has done has been invaluable, allowing Life-io to provide its”

➔ Tagging, making it easier to allocate costs per client, and scripts support working within a single Life-io owned account, or client dedicated sub-accounts.
➔ When improvements are made to infrastructure or application, these improvements can bring ease and complexity of managing these deployments to a minimum.”
➔ Infrastructure changes and releases can be controlled with pull requests, approved by engineers, and rolled back with simple code commits, and every code commit is audited with git.