nClouds Client StoryAppify

How nClouds helped Appify improve performance efficiency, elasticity, and scalability, and reduce AWS costs for their field services SaaS app.

About Appify

Appify’s no-code plug-and-play platform is for business process and IT stakeholders at field service businesses. Users can rapidly create field service apps in a safe and IT-compliant environment with a ready-to-use solution library.

The platform provides highly configurable modules to enable every aspect of the field service experience: calendars, maps, inventory, work orders, time cards, parts & returns, asset tracking, checklists, dynamic workflows, on-my-way, and much more. To learn more, go to https://appify.com/

Appify Logo
Industry

Software-as-a-Service (SaaS) and on-prem field service software

Location

Campbell, CA

Challenge

Improve performance efficiency, elasticity, scalability, the speed of communications between microservices, and cost optimization.

Featured Services

DevOps Services – Infrastructure Build-Out and Automation, Containers, Microservices

Download case study

Benefits Summary

icon

Improved performance efficiency, elasticity, and scalability

icon

Faster communication between microservices

icon

Reduced costs

Moving from ECS to EKS and VPC deployment is a major milestone for Appify. It's enhanced the scalability and high-availability required for our SaaS solution. The nClouds team came in at the right time and helped us achieve our goals. We appreciate all the great work that went into this project.”
Rangarajan Vaithyalingam,

Platform Architect, Appify

Challenge

Challenge: Improve performance efficiency, elasticity, scalability, the speed of communications between microservices, and cost optimization.

Appify wanted to migrate their existing compute workload on Amazon Elastic Container Service (Amazon ECS) to Amazon Elastic Container Service for Kubernetes (Amazon EKS). They wanted a uniform Kubernetes-based platform to enhance their ability to distribute and scale their field service software solution, improve the speed of communication between microservices, and save costs.

Why AWS and nClouds

Appify asked nClouds to help them create a new Amazon EKS platform for their application stack. The project included adding Amazon CloudWatch monitoring to the workload, and using HashiCorp Terraform to capture the configuration of the new infrastructure as code.

nClouds, a Premier Consulting Partner in the AWS Partner Network (APN), applied its expertise in building and managing infrastructure modernization projects. nClouds helped Appify build out their application cloud and operations cloud core infrastructure for a new Amazon EKS platform.


Appify leveraged several Amazon Web Services:

  • Amazon CloudWatch - Monitors applications, responds to system-wide performance changes, optimizes resource utilization, and presents a unified view of operational health.
  • Amazon Elastic Compute Cloud (Amazon EC2) - A web service that delivers secure, resizable compute capacity in the cloud.
  • Amazon Elastic Container Registry (Amazon ECR) - A fully managed Docker container registry integrated with Amazon ECS that makes it easy for Appify to store, manage, and deploy Docker container images.
  • Amazon Elastic Container Service for Kubernetes (Amazon EKS) - Makes it easy to deploy, manage, and scale containerized applications using Kubernetes on AWS.
  • Amazon Relational Database Service (Amazon RDS) - Enables Appify to easily set up, operate, and scale a relational database in the cloud.
  • Amazon Virtual Private Cloud (Amazon VPC) - Enables Appify to provision a logically isolated section of the AWS Cloud 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 App Mesh - A service mesh that provides application-level networking to better run applications at scale. It enables Appify’s services to communicate with each other across multiple types of compute infrastructure, providing end-to-end visibility and ensuring high-availability for Appify’s applications.

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

  • HashiCorp Terraform - An open source tool that codifies APIs into declarative configuration files to enable Appify to safely and predictably create, change, and improve infrastructure.
  • Helm - Charts to templatize all Kubernetes application deployments.

nClouds' Solution Architecture for Appify:

Appify engaged with nClouds to help them migrate their application stack from Amazon ECS to Amazon EKS, and to create an Amazon VPC. Amazon VPC provides advanced security features, such as security groups and network access control lists, to enable inbound and outbound filtering at the instance and subnet level.

Appify’s cloud infrastructure was comprised of an application cloud and an operations cloud. The application cloud was a single-tenant setup with 12 services (four admin, one client, seven web modules) running on an Amazon ECS cluster, with data stored in Amazon RDS. The setup was replicated for nine clients. The operations cloud was running three common services on a single Amazon ECS cluster.

nClouds began by reviewing containers and fixing any gaps in configuration in both the application and operations clouds. Next, Terraform core infrastructure buildout was performed for Amazon EKS, and AWS services were migrated to Amazon EKS platform version eks.1.14 in both clouds.

nClouds implemented Amazon CloudWatch for Amazon EKS container monitoring of all services, to ensure adequate performance for all tenants of the system. Amazon CloudWatch’s automated dashboards summarize the performance and health of Appify’s Amazon EKS and Kubernetes clusters by pod, node, namespace, task, container, and service. The dashboards reveal insights on key metrics such as CPU utilization, memory utilization over pod limits, container restarts, pod network insights, etc.

The new infrastructure includes AWS App Mesh in each private subnet for Appify’s applications running on Amazon EKS. AWS App Mesh supports services that use service discovery naming for their components. Its application-level networking improves the speed of communication between microservices that are mesh-enabled and provides end-to-end visibility.

There are three private subnets in the Amazon VPC — one in Availability Zone A and the other two in Availability Zones B and C. AWS Auto Scaling groups are used to spawn Amazon EC2 instances in these zones automatically depending on the services and resources needed for them. The pods running the application stack connect to the Amazon RDS database.

The Amazon VPC connects to the Internet through an attached Internet gateway. A network address translation (NAT) gateway enables instances in the private subnets to connect to the Internet or other AWS services, but prevents the Internet from initiating a connection with those instances. Application Load Balancers distribute incoming application traffic to the respective pod in the Availability Zones via App Mesh proxy, to increase the availability of Appify’s applications.

High-level architecture diagram:

Solution Architecture

The Benefits

Teaming with nClouds, Appify now has a uniform Kubernetes-based platform for their application stack. The project has yielded numerous benefits:

icon

Improved performance efficiency, elasticity, and scalability

Amazon EKS automatically manages scalable and high-availability control plane nodes that run across multiple availability zones, eliminating a single point of failure. Kubernetes control plane nodes perform tasks such as starting and stopping containers and storing cluster data.

icon

Faster communication between microservices

AWS App Mesh enables Appify to have more flexible, more reliable, and faster communication between microservices.

icon

Reduced costs

AWS App Mesh not only provides flexible, reliable, and faster communication between microservices, it also helps to reduce cost by avoiding unnecessary AWS ALBs that were previously used for inter-service communication in ECS. And, cost savings are also achieved in the new infrastructure by having shared resources for Dev and Staging residing in the same Kubernetes cluster, plus a shared database server and shared network resources.

Contact Us Now

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