Case Study

Using CI/CD and AWS Lambda to develop better booking systems

50.000+
Active Users
60+
Golf Courses
100%
AWS Serverless Platform
Introduction

Teevolution is an innovative Swedish technology company known for their golf-related products and services such as SmartGolfa. Read our case study highlighting the role that AWS Lambda played in creating an efficient solution for them.

About Teevolution AB

Teevolution is an innovative Swedish technology company known for their golf-related products and services such as SmartGolfa, a successful web and mobile platform that allows its users to play golf at their own pace, secure golf tees, and purchase packages. Smartgolfa is a 100% serverless application, serving over 50.000 active users playing golf on more than 60 golf courses.

The Challenge

Miracle Mill started the cooperation with Teevolution in 2016. When Miracle Mill took over the development, the site was created with WordPress. As the business model grew, it was time to build a custom platform that would allow for future scalability, mobile access, and more interactivity. The platform needed a significant investment, both in terms of features and infrastructure. An Agile, collaborative approach was established together with the client and a plan was created to gradually started using more cloud services.

We also wanted to showcase how AWS could help the SmartGolfa platform in terms of scalability, security, and cost savings. It was also important to validate how AWS could be used to solve some of the complex issues on the previous platform, while reusing the components that worked well.

Screenshot of Teevolution AppScreenshot of Teevolution App

Teevolution App

The Solution

The Role of AWS Lambda in the Teevolution Solution

The first thing that we, as a company, needed to do was to find a better environment for their old apps that were hard to maintain and scale. So, we started with migrating to AWS to have a better maintainable, stable, and scalable environment and to create a multi-tenant application that will make golfing easier for the customers. AWS LambdaExternal Link played a key part in each element of this solution.

The next stage was to create an AWS CodeCommitExternal Link repository and set up the pipeline workflow with the CI/CD model. AWS Lambda plays a central role in facilitating this pipeline, being used to merge the feature branch code into the master branch, and to trigger the creation of the feature pipeline when a pull request (PR) is created.

We needed to make sure that customers will have secure authentication, so we used Amazon CognitoExternal Link for that purpose. Also, as we built the Content Management System (CMS) that was used for all the tenants and we needed to restrict access between the tenant admins, it was easy to implement with Amazon Cognito groups and roles. Amazon Cognito interacts with AWS Lambda for authorization requests (such as requests going towards API) and for retrieving user info. Amazon Cognito triggers are also used with AWS Lambda for events such as new user creation, which are handled with custom logic.

The next challenge was for the app to have fast, secure and consistent booking functionality. For this purpose we needed to build complex functionality in the simplest way possible that can be easily maintained and scaled. To keep this process clean, and to ensure that all unplanned events trigger the appropriate alarms (while keeping those to a minimum), we built the solution using AWS Step FunctionsExternal Link in combination with AWS Lambda. This had steps and decisions that were monitored, and alarms set up to notify us of unwanted issues. We also use AWS Lambda functions for the REST API calls and Amazon API Gateway as a managed service.

AWS Services used as part of the solution

  • AWS Lambda
  • Amazon Cognito
  • AWS Step Functions
  • AWS API Gateway
  • AWS CodeCommit
  • AWS CodePipeline
  • AWS Pinpoint
  • AWS DynamoDB & DAX
Architecture diagram
Architectural diagram

Teevolution App Architecture Diagram

Results and Benefits

After approximately nine months of work, the forementioned AWS services had been implemented with all corresponding data migrated successfully. The project is utilizing multiple AWS services for development purposes and client interaction purposes.

AWS Lambda is being used for back-end API calls. AWS Step Functions are being used for functions that take longer than a few milliseconds to complete, and where transactional safety is required, such as bookings and purchases. Amazon Cognito has been extended with plugins for authentication for mobile and web.

The service currently services over 50,000 golfers with virtually no downtime. The AWS services are being used in a way that scalability will not be an issue and there is no limit to the number of users that can be added to the system. SmartGolfa and other brands can continue to acquire new users and virtually nothing will need to be adjusted. According to the lead engineer on the project:

Scalability has not been and will not be an issue, as none of the services used have any scalability limitations.

The migration improved platform security, reliability, cost, authentication process, and performance. The speed of the application has also been improved. There is a lot of activity on the platform and user optimization continues to exceed expectations. The platform is ready to be extended with new features that the golfers of tomorrow expect.

Andreas Jönsson, the CEO of Teevolution concluded by saying:

We are happy with our decition to migrate to AWS. Now, we have a robust, enterprise-grade soltuion.

About Miracle Mill

At Miracle Mill, we are passionate entrepreneurs and engineers, that work to utilise ​modern cutting-edge cloud technology. We are a cloud first company focused on building scalable applications utilising AWS cloud services.​

We provide cloud consulting services with an Agile iterative approach to software development using DevOps methodologies. ​

Services Used

Continue Reading