Consumer Goods and Amazon Web Services (AWS)

Jon Christian
Jon Christian
| Executive Vice President, Qvest.US
Published 11. April 2023

Updating the Lifeplus web, mobile and data processing stack to a modern infrastructure.

OnPrem is now Qvest! Providing technology and business solutions across five continents, we are proud to be the world’s largest media and entertainment focussed consulting firm.

Introduction

Lifeplus is one of the world’s top MLM businesses focused on high quality nutritional products that are distributed via a referral marketing model.  The company operates in 44 countries and has hundreds of thousands of active sales associates relying on their IT infrastructure to manage their business 24/7.  Lifeplus has engaged with OnPrem to update their web, Mobile and Data processing stack to a more modern infrastructure.  After careful analysis, OnPrem recommended that LifePlus build on Amazon Web Services (AWS) to cover 3 primary purposes:

  • Cloud Tranformation:  Initiate a cloud transformation to move targeted workloads from on premise to the cloud, using a mature CI/CD methodology.
  • Analytic Workload:  Re-implement analytic workloads to use modern technology and to yield better performance in terms of processing time.
  • Web/Mobile Application: Re-implement existing web/mobile applications to use modern technology and to provide better UX to their customers.

The primary motivations for selecting AWS as the principal cloud provider were:

  1. AWS having products and tools that fit the future state architecture envisioned by OnPrem and Lifeplus.
  2. AWS as the market leader to enable ease of training and hiring.
  3. AWS having a “builder” mindset of products and tools that can be used together.
  4. AWS’s proven infrastructure that is able to support Lifeplus’s global userbase.

Cloud Transformation

Lifeplus has established a multi-account to their technology organization using AWS Control Tower to ensure best practices are followed for each Account and Organizational Unit.  Accounts are segmented by build environment (SDLC vs. Production) and by workload (both those described here, but also workloads out of scope of this article).  As part of the cloud transformation, OnPrem is promoting an Infrastructure-as Code approach to provisioning and configuring accounts.  Terraform is being used as the technology to define infrastructure, and is triggered by a git-based workflow that is defined in Bitbucket and Bitbucket Pipelines.  An Okta integration allows Lifeplus employees to access AWS.

Analytic Workload

Lifeplus is a global company, so while the initial build out is being done in AWS East, the architecture will grow to multi-regional over the next 6 months.  The analytic workload is performed within Snowflake via analytics defined in DBT Cloud.  The analytic products produced by these workloads are persisted into a well-known Amazon S3 bucket (as parquet files) for disparate consumers to make use of.

Web/Mobile Application

One such consumer of these analytic workloads is a web/mobile application that provides sales insights to Lifeplus customers.  The application is made up of several bounded contexts, but for the purpose of this description, we break it into 2 main parts:

  1. Data Pipeline
    1. An AWS Glue job is triggered upon new analytic products arriving in S3, and performs ETL into a Postgres RDS instance.  The ingest is sharded by the analytic product to eliminate the impact on end-user performance while a new analytic product is being ingested.
    2. A series of AWS Step Functions/Lambdas are used to manage the lifecycle of analytic products as they stream into the application.
      • Recently ingested products are now the ones served to users.
      • Older products are deprecated and marked for eventual removal.
      • Problematic products are marked for inspection, and not shown to end-users.
      • A series of AWS Step Functions/Lambdas are used to manage the lifecycle of analytic products as they stream into the application.
    3. A suite of containers are served via AWS Elastic Container Service to provide compute for:
      • Application REST Services
      • Web Application
  2. General Functionality

A variety of other AWS products are used to support general aspects of the application, including:

  1. Global Performance
    • Cloudfront: CDN for static and data assets.
  2. Notifications:
    • AWS Simple Notification Service and Simple Queue Service are used to capture business events and company announcements to end-users.

More Insights