nClouds | AWS Case Studies Teamworks

How nClouds helped Teamworks modernize its infrastructure on AWS to improve performance efficiency and scalability.

About Teamworks

Teamworks is a VC-backed startup founded in 2004 that provides an engagement platform built by athletes for athletes. This worldwide collaboration software is designed to make everything easier for elite athletic teams to operate effectively and efficiently – from scheduling and communication, to sharing files and managing travel. It helps more than 3,000 elite athletic teams connect and collaborate so they can focus on winning. Learn more about Teamworks www.teamworks.com.

Industry

Software, Sports, Education

Location

Durham, NC

Challenge

Better integration with AWS services to improve performance efficiency and scalability.

Featured Services

Migration, DevOps — CI/CD

Download Case Study

Benefits Summary

icon

Improved performance efficiency

icon

Increased scalability

Want to achieve benefits like these? Schedule a free Application Modernization Assessment with nClouds to learn how to build sustainable systems for delivering better software faster.

To provide a superb collaboration platform to our customers, it’s critical for the Teamworks app to excel in performance efficiency and scalability. With nClouds’ expertise in migration and DevOps, we were able to optimize our app to deliver high availability, low latency, consistent performance, and scalable capacity.”
Bill Berzinskas,

Site Reliability Engineering (SRE) Manager, Teamworks

Challenge

Challenge: Infrastructure modernization to improve performance efficiency and scalability.

Teamworks was implementing continuous integration (CI) in their architecture and wanted better integration with AWS services to improve performance efficiency and scalability.

Why AWS and nClouds

Teamworks was introduced by their AWS Account Manager to nClouds, a Premier Consulting Partner in the AWS Partner Network (APN). After conducting a discovery meeting, the nClouds team identified several key ways that Teamworks could modernize its infrastructure. Teamworks was impressed with the pre-sales engagement and decided to move forward.

Teamworks leveraged several Amazon Web Services:

  • Amazon CloudFront (CloudFront) - A large-scale, global, and feature-rich CDN that provides Teamworks with secure, scalable, and intelligently integrated application delivery.
  • Amazon ElastiCache for Redis - An in-memory data structure service to enhance the ease-of-use and power of Redis, and improve availability, reliability, scalability, security, and performance.
AWS Partner
  • Amazon Elastic Container Service for Kubernetes (Amazon EKS) - Makes it easy for Teamworks to deploy, manage, and scale containerized applications using Kubernetes on AWS across multiple AWS availability zones to eliminate a single point of failure.
  • Amazon RDS for PostgreSQL - Makes it easy for Teamworks to set up, operate, and scale PostgreSQL deployments in the cloud.
  • Amazon Simple Storage Service (Amazon S3) - A flexible way to store and retrieve data, providing Teamworks with cost optimization, access control, and compliance.
  • Amazon Virtual Private Cloud (Amazon VPC) - Enables Teamworks to provision a logically isolated section on AWS where they can launch AWS resources in a virtual network that they define.
  • AWS Application Load Balancer (AWS ALB) - To support content-based routing and applications that run in containers.
  • AWS Auto Scaling group - Monitors Teamworks’ applications and automatically adjusts capacity to maintain steady, predictable performance at the lowest possible cost.
  • AWS Lambda (Lambda) - Enables Teamworks to run code without provisioning or managing servers. Pay only for the compute time consumed ‒ there is no charge when code is not running.

Teamworks’ solution stack also included additional, essential third-party tools:

  • Datadog - A monitoring service providing visibility into Teamworks’ entire environment.
  • Docker - An open-source container platform to build, ship, and run distributed applications.
  • GitLab - A complete DevOps platform for the entire software development and operations lifecycle, delivered as a single application.
  • HashiCorp Terraform - An infrastructure-as-code (IaC) tool that allows Teamworks to create, update, and version its AWS infrastructure. nClouds used nCodeLibrary modules for IaC.
  • Helm - Helps Teamworks manage Kubernetes applications.
  • Kubernetes Cluster Autoscaler - Automatically adjusts the number of nodes in a cluster when pods fail to launch due to lack of resources, or when nodes in the cluster are underutilized and their pods can be rescheduled onto other nodes in the cluster.
  • Kubernetes Horizontal Pod Autoscaler - Automatically scales the number of pods in a deployment, replication controller, or replica set based on that resource's CPU utilization. Applications can scale out to meet increased demand or scale in when resources are not needed, thus freeing up nodes for other applications.
  • Kubernetes Vertical Pod Autoscaler - Automatically adjusts the CPU and memory reservations for Teamworks’ pods to help rightsize applications. This adjustment can improve cluster resource utilization and free up CPU and memory for other pods.

nClouds' Solution Architecture for Teamworks

Teamworks required a modernized software architecture to improve performance efficiency and scalability.

nClouds partnered with Teamworks to build out an Amazon EKS cluster in the staging environment using Terraform, and perform infrastructure buildout and migration in the prod environment.

Teamworks’ existing application stack was migrated from Amazon Elastic Compute Cloud (Amazon EC2) to Amazon EKS, following best practices for migrating, configuring, and deploying applications to Kubernetes.

nClouds revamped Teamworks’ CI/CD by implementing new CI/CD pipelines in GitLab for all services in the stack (porting the functionalities formerly handled by Jenkins), migrating source code from Bitbucket to GitLab, and integrating the existing monitoring and log aggregation tools (Prometheus, Grafana, Greylog) with the new architecture. Kubernetes provides zero-downtime deployment. Helm simplifies deploying applications to Kubernetes.

Teamworks’ new architecture includes an Amazon VPC with three Availability Zone (AZs) on AWS within the Auto Scaling group. A private subnet resides in each AZ. The stateless services — Lambda and Amazon S3 — run on the Amazon EKS cluster. Load balancing is handled by AWS ALB in place of the existing HAProxy load balancer.

High-level architecture diagram:


Solution Architecture

The Benefits

Teaming with nClouds, Teamworks now has a modernized architecture on AWS. The project has yielded numerous benefits:

icon

Improved performance efficiency

Amazon S3’s features reduce latency and increase throughput. Cloudfront improves overall caching performance, reduces the load on the origin, and minimizes latency. Datadog monitors, troubleshoots, and optimizes end-to-end application performance.

icon

Increased scalability

Multiple AZs enable Teamworks’ production applications and databases to be highly available, fault-tolerant, and scalable. An AWS Auto Scaling group automatically adjusts capacity to maintain steady, predictable performance at the lowest possible cost.

As traffic to Teamworks’ application changes over time, AWS ALB scales workloads automatically. ElastiCache for Redis scales Teamworks’ cache to match demand. Amazon EKS automatically manages the availability and scalability of the Kubernetes control plane nodes that are responsible for starting and stopping containers, scheduling containers on virtual machines, storing cluster data, and other tasks. AWS uses advanced Ethernet networking technology, which is designed for scale, security, high availability, and low cost.

Within Kubernetes, a Cluster Autoscaler scales the size of the Kubernetes cluster up and down as needed based on different constraints, a Horizontal Pod Autoscaler scales the number of pods available in a cluster in response to the present computational needs, and a Vertical Pod Autoscaler allocates more (or less) CPUs and memory to existing pods.

Contact Us Now

You can also email us directly at sales@nclouds.com for your inquiries or use the form below