Customer Success Story
Rightster Slashes App Deployment Overhead and Readies for Hyper-Growth with ElasticBox
As Rightster prepared to expand its offerings in Asia and North America, it needed to scale for hyper-growth. So how could Rightster achieve frequent deployment capabilities with zero downtime and minimal errors? And do so while growing their engineering efforts? Achieving these goals required a less monolithic and more automated way to deploy the Rightster application platform. Rightster looked for a deployment solution that bridged multiple systems: AWS that hosts the application platform, Jenkins for CI/CD, and SaltStack for managing the configuration.
Managing infrastructure and app services at scale
In AWS, the Rightster application platform was historically deployed and managed as several AWS services in CloudFormation templates. Over time, the CloudFormation templates became so long and nested that they were hard to maintain or even make small updates to because everything was contained within a single template. It was monolithic. But to model hyper-growth companies and make it easy to update any one service at a time without affecting them all, Rightster wanted to break up the design pattern into microservices. Now the IT operations team manage the application platform as easy-to-manage, modular CloudFormation templates using the box model in ElasticBox. CloudFormation boxes allow operations engineers to roll out and maintain all the application service dependencies and connect them together using bindings at deploy time.
Faster application updates
Hyper-growth is also about speed. As the way to speed up production application updates, Rightster wanted to expand Jenkins continuous integration and delivery to continuous deployments. “Using the ElasticBox API and Jenkins plugin, we are trying to achieve continuous deployments at scale. This setup allows us to pass the AWS AMIs built by Jenkins continuous integration onto ElasticBox, which can deploy to EC2 via CloudFormation. Essentially, we pull down the latest AMI and update a running instance using ElasticBox API calls,” says Veselin Kantsev, Lead Linux Systems Administrator at Rightster.
Managing application dependencies centrally
When they update the application platform across multiple testing, staging, and production environments multiple integration points, tools, and scripts are involved. The Rightster engineering team experienced a huge overhead with manual integrations and spent hours maintaining things in different places. To slash the overhead, Rightster used ElasticBox, which integrates a plethora of AWS services centrally. Such AWS services include EC2, Elastic Loadbalancing, Autoscaling, S3, Elastic Block Storage, RDS, RedShift, SQS, Kinesis, VPC, CloudFront, and CloudWatch. As Veselin says, “With ElasticBox we integrate all the AWS services via API calls, which save us from writing and maintaining integration scripts manually.”
Supporting engineering operations at scale
At Rightster, driving collaboration between different functions is pivotal to being agile. A team of three IT operations engineers can’t do it all. Where possible, developers and QA help with operational tasks. “At Rightster, we truly practice the DevOps philosophy. People in development, QA, and IT ops roles work together in a complementary fashion. ElasticBox access control features provide the right level of visibility for people in different roles to help us automate tasks,” says Veselin.
Minimizing application delivery errors
“The majority of the Rightster application platform stack runs on AWS EC2 as a collection of PHP web apps, AngularJS front-end, Scala and Java services,” says Henri Cook, Engineering Manager at Rightster. You can imagine how environments across test, staging, production can quickly grow inconsistent because of several version or dependency variances in parts of the stack. It was manual and painstaking to update and maintain the entire stack in different places simultaneously. Plus, it was important to maintain environments that match the production stack to minimize application delivery errors in production. “We reduce errors because ElasticBox helps us maintain dependencies consistently with a single source of management. From one place in ElasticBox, we provision the frontend and backend services,” he added.
Monthly deployment speed increased by 7x
Rightster has been deploying application workloads with ElasticBox for some time now. Can you guess their deployment speed? Compared to 100 deployments per month before ElasticBox, they now average about 700 deployments. That’s over a seven-fold increase.
Minutes rather weeks to update environments
By reusing the same application templates (or boxes) from ElasticBox, the Rightster QA and operations teams configure and update testing, staging, and production environments in minutes rather than weeks. Paul Sellars, Applications Engineer at Rightster, says, “These environments are really useful for our QA engineers. Because they’re on the same cloud infrastructure, they can take a lot of traffic from our automated tests - with autoscaling turned on - we can go on to test how key components perform under load; having all the same libraries, services and configuration reduces bugs as there are no surprises when we release changes.”
Production errors slashed by 50% with reusable templates
Because Rightster manages all the AWS services for its application needs from a central place in ElasticBox, IT Ops can consistently launch new or updated environments, and thereby reduce deployment errors by 50%. A central place to manage all infrastructure dependencies and scripts means it’s easy to troubleshoot machine and application lifecycle states. “Thanks to ElasticBox, we easily deploy infrastructure changes across our environments and ensure consistency,” says Veselin.
ElasticBox APIs save weeks of integration with AWS, Jenkins, and SaltStack
ElasticBox integration with Jenkins, AWS, and SaltStack enables IT operations engineers to deploy and shut down environments in AWS automatically. Updates that previously took days now take only a few minutes. Says Paul, “We power continuous integration and continuous delivery through the ElasticBox Jenkins Plugin and its APIs. Next up we’re building the test confidence to take us to that level of continuous deployment.”