# Tuition.io Case Study - Managing Serverless Microservices
# How Tuition.io Manages a State of Art Serverless System with Commandeer
Tuition.io brings student loan repayment benefits to the nation’s best companies to free their employees from student debt. With the state of the art Serverless infrastructure running on AWS, the Tuition.io engineering team is able to move fast with a medium-size team and a minimal DevOps overhead.
"Commandeer gives us a clear view of our entire system. We can ramp up new engineers in no time using the live system and ER diagrams." - Manas Chaliha, VP of Engineering @ Tuition.io
While a serverless architecture is fundamentally sound, and amazing in terms of managing cost. It does cause several challenges.
# Low Visibility
Serverless systems are event-driven by nature. Each event can cause more events down the chain. Tracing down the whole chain of events across multiple Lambda invocations is a challenge.
With 4 different AWS environments and additional accounts for 3rd party services like Algolia, Sendgrid, Twilio, etc., deploying into the right environment quickly gets out of hand. Each Serverless deployment needs to have the exact set of keys for each environment to deploy flawlessly and repeatedly.
# Managing Data
Having a central place to see the data, deploy your Serverless infrastructure, and see the logs of Lambda invocations allows you to take back control of your serverless system. Commandeer solves these issues with a beautifully designed desktop app built by developers for developers. With a consistent and efficient user interface, developers can manage the Tuition.io system every day.
# Debug Serverless, Ansible, and Circle.CI IaC from a GUI
Commandeer’s multiple account concept simplifies the deployment into different environments. Once the Tuition.io dev ops and engineers set up their Commandeer accounts for local, development and possibly staging, all that needs to happen is switching the active account in Commandeer and hitting run to deploy Ansible, Serverless, or Circle.CI with the precise configuration needed. This is extremely handy for the DevOps team when they are attempting to debug their CI/CD (Continuous Integration/Continuous Deployment) system.
# Viewing and editing S3 Files, DynamoDB records and Algolia indexes
There is a lot of text-based data stored on AWS S3. Now, the team is able to edit S3 files in place without downloading, editing the file locally, and uploading it back to S3 the old way. This leads to iterative productivity gains every time an engineer needs to work with S3 data. The same applies to DynamoDB data, Algolia index data, and more.
# Debugging Lambda Invocations Faster
With the ability to see the exact lambda invocations tied to the logs, the Tuition.io engineering team is able to troubleshoot issues with AWS Lambda quickly and efficiently. In addition to it, the IaC testing suite makes it easier and more efficient to test the most common Lambda plumbing like connecting a Lambda to S3, SNS, SQS, DynamoDB, etc.
# Seeing The System Visually
With the use of live system diagrams in Commandeer, developers can connect the dots quickly, decreasing the ramp-up time. It’s easy to explain what’s going on in the system by sharing a diagram amongst colleagues. Any change to the infrastructure can now be seen visually.
# Developing with LocalStack Boosts Up Productivity
Seeing LocalStack data from a GUI allows the team to develop locally and iterate quickly. The team deploys the newest changes to LocalStack to run some automated tests against it preventing some unexpected bugs from going to a live environment.
Tuition.io is a prime example of how engineering teams can utilize Serverless for building efficient systems. With the use of Commandeer, the Tuition.io engineering team manages the data in multiple sources like S3, DynamoDB, PostgreSQL, Algolia, SNS, SQS, and more.
New engineers ramp up faster with the use of the live system diagrams. IAC testing tools for Lambda connections allows for quicker debugging of the most common issues with Serverless plumbing.
Business analysts have the access to all data from multiple sources enabling new business opportunities for future growth and prosperity of the company.