How can I help you?

Project Teasers –

 

AWS FSx

The client runs multiple instances of Adobe After Effects and wanted to use shared space to ensure uniformity of data, templates, and assets, including speed and security. We created a documented process around adding an FSx drive to any new server, including running scripts at the server to ensure mapping of the drive post a restart/starting up. The infrastructure has been running successfully for more than 18 months without much maintenance.

Services used

AWS FSx

AWS Active Directory

AWS EC2

Scaling nonscalable servers

The AWS Autoscaling feature is an absolute win-win situation in the majority of the cases, but in our use case, we were an edge case. There were third-party licensed tools on our servers, which required us to manually set up a server as they could not be automatically scaled up/down. In short automated scaling was not possible on these machines. We created a dynamic job queue that was maintained by the backend. Lambda functions were created to process this queue, and depending on the number of jobs, our servers were started/stopped. As we had tagged one server as primary and the rest as secondary, the primary was the first one to spring into action and then depending on the load, the rest of the servers would spring into action. As the machines that were being used were extra large instances, keeping them running 24*7 was very expensive, using this approach we were able to bring the costs drastically down (by 70%).

Services used –

AWS API Gateway

AWS Lambda’s

AWS Cloudwatch

AWS EC2

AWS Event Bridge

AWS Hibernate

This is in continuation of the above task. It was observed that despite the scale-up/scale-down process working fine, there was a delay when the machines were starting. This was due to the windows machine startup process and the starting up of Adobe After Effects. Post due diligence we found that AWS Hibernate is available for the windows machines that we were using. We leveraged this feature and set up new machines (strangely creating an image of an instance that supports hibernation to spring up new instances does not work). With this approach, our rendering process became much faster and our costs were further reduced owing to the efficiency of the system

Services used –

AWS EC2

Custom Integrations using Serverless (Marketing Automation)

Multiple integrations were created using AWS Lambda. The client was previously using Zapier for custom integrations, but the issues faced were –

Zapier is expensive. When trying to build a SAAS model, Zapier cannot be part of your stack.

Zapier integrations are limited, i.e. you would be able to connect A with B, but if you want to add custom items/workflows, then it is not possible.

The following integrations have been successfully created, deployed, and offered as SAAS to more than 8 customers of the client.

  1. Hubspot – Being able to change the status of the contact. Create a note and attach the note to the contact based on the activity
  2. Slack – Connecting to a webhook and sending real-time information to manage the Sales efforts and Sales reps.
  3. SmartReach – Manage the responses and integrate the responses with Slack to ensure maximum visibility
  4. GMASS – Ability to interrater the responses with Slack
  5. Pipedrive – Being able to change the status of the lead, and create attach the lead to a label along with recording the activity.
  6. Calendy – Record the meeting invite and share the same on a slack channel
  7. SavvyCal – Record the meeting invite and share the same on the slack channel

Technologies used –

AWS API Gateway

AWS Lambda (using AWS SAM)

AWS Cloudwatch

Apis of the following –

Hubspot

Slack

SmartReach

GMASS

Pipedrive

Calendy

Savvycal

Video Cropping using FFMPEG

The client had a requirement to crop a video and was using FFMPEG for the same, but on the file system i.e. the server. After monitoring the system and the CPU utilization over time, a decision was taken to take this process out of the files system and leverage serverless computing for the same. For this purpose, we used Lambda layers. The executable for  FFMPEG was compiled and added to the lambda layer. AWS SNS was used with 2 lambda’s to help process the videos (keeping in mind the hard timeout limit of API Gateway, and the very essence of a lambda function). The same was integrated with the current system of the client successfully.

Technologies used

FFMPEG

AWS Lambda (AWS SAM)

AWS SNS

AWS CloudWatch

Real-time Image transformation using Open CV

In this project, the client had a requirement that a dynamic background image, a dynamic foreground image, and dynamic text be passed to a URL with fonts, image type (jpg, png, webp), font sizes, and dynamic sizes of the images, and the resultant image is created on the fly. There were certain paid tools that the client was using like Cloudinary, but the service turned out to the expensive made the client think of an in-house solution for same.

The image was to be used for email marketing to help add personalization for each reader.

The solution was built using Python (OpenCV/Pillow) leveraging lambda layers for the libraries and the font files.

Technologies used –

AWS Lambda

AWS API Gateway

AWS Lambda Layers

Python (Open CV/Pillow)

Lambda@Edge/Cloudflare Workers

The client wanted to override certain parameters at the client browser’s end and wanted a JavaScript function to run at the worker level to help perform this translation. A JavaScript function was created that processed all HTML, updated the relevant tags, and the updated HTML was sent back to be rendered.

Technologies used –

Cloudflare Workers

JavaScript

Basic understanding of DNS/Routes etc.