Shippable Case Study
2014
Shippable is a platform providing hosted continuous integration, testing, and deployment from repositories such as GitHub and Bitbucket. The company helps developers and operations teams deliver software from application creation all the way to the end user with full automation and complete control over the process. Shippable’s platform helps eliminate obstacles and challenges from a repeatable Continuous Integration/Continuous Delivery & workflow, so developers can focus on delivering high quality code.
The Shippable platform consists of two parts:
- Continuous Integration (CI), enabling developers to build and test their repositories for every code commit or pull request and get instant feedback.
- Continuous Delivery (CD) pipelines, automating the flow of an application from source control to production. Using these deployment pipelines, developers can easily deploy containerized applications to container services such as Amazon EC2 Container Service (Amazon ECS).
- Shippable integrates with popular tools and services, such as build/test tools, source control providers, Docker registries, cloud providers, and container services.
With Amazon ECS, we've practically eliminated the time our developers spent on ops-related tasks. Our senior developers used to spend 80% of their time on back-end infrastructure management features, whereas now they spend 80% of their time on customer features."
Avi Cavale
CEO & Co-founder, Shippable
The Challenge
- The company built its CICD platform with a microservices architecture using Docker containers on Amazon EC2, which they managed using a custom-made cluster management tool.
- The initial solution used a hardcoded service discovery solution, making it hard to scale and manage the configuration.
- The engineering team spent 60-80 percent of its time maintaining the infrastructure and orchestrating containers, taking time away from implementing and delivering features for the platform itself.
- Managing the monitoring infrastructure with an extensive set of log aggregators and Elasticsearch was another time consuming task.
- Shippable evaluated other open-source cluster management solutions such as Apache Mesos and Kubernetes, but found that these solutions would still require a significant amount of engineering time to operate and scale the cluster.
Why Amazon Web Services
- Started using Amazon ECS, a scalable, container management service that provides cluster management and container orchestration.
- Each microservice is defined as an ECS service with an Elastic Load Balancing load balancer; the Amazon ECS service scheduler manages multiple copies of each microservice across the ECS cluster.
- Amazon ECS and Amazon CloudWatch handle all of the infrastructure logging, with minimal effort from the engineering team.
- Shippable Docker images are stored on Amazon EC2 Container Registry (Amazon ECR), a fully-managed Docker container registry that makes it easy to store, manage, and deploy Docker container images.
The Benefits
- Amazon ECS eliminates the need to install software and operate servers; this reduces overall management needs for running containers at scale and helps speed time to market.
- The engineering team now spends only 20 percent of its time maintaining the infrastructure, and has much more time to focus on implementing new features.
- Using Amazon ECS enables Shippable to deliver features to its customers faster than before, increasing the number of deployments from once a week to multiple times a day.
- With AWS Identity Access Management (IAM) policies for Amazon ECR, the company is able to add a layer of security that ensures only approved individuals can push and pull production images in the production cluster.
About Shippable
Yelp was founded in 2004 with the main goal of helping people connect with great local businesses. The Yelp community is best known for sharing in-depth reviews and insights on local businesses of every sort.
AWS Services Used
Amazon ECS
Amazon Elastic Container Service (Amazon ECS) is a highly scalable, high-performance container orchestration service that supports Docker containers.
Elastic Load Balancing
Elastic Load Balancing automatically distributes incoming application traffic across multiple targets, such as Amazon EC2 instances, containers, IP addresses, and Lambda functions.
Amazon CloudWatch
Amazon CloudWatch is a monitoring and observability service built for DevOps engineers, developers, site reliability engineers (SREs), and IT managers.
Get Started
Companies of all sizes across all industries are transforming their businesses every day using AWS. Contact our experts and start your own AWS Cloud journey today.