Canva is an online graphic design platform that makes it simple to create graphics for anything from websites and blogs to printed marketing materials. The company provides drag-and-drop tools, graphics, fonts, and more than a million photographs so that non-designers can create graphics on their own or collaborate with professionals on a project. Guy Kawasaki, chief evangelist at Apple during the late nineties, joined Canva in 2014 to help the design startup company expand globally. Launched in March 2013, Canva is based in Sydney, Australia and has 26 employees.
The idea for Canva came about in 2007 when co-founder and chief executive Melanie Perkins was teaching university students software design applications. She recognized that many people found graphic applications difficult to learn and wanted a simple way to create designs. “We founded Canva on the belief that by using an Internet-based, intuitive design platform, more people would be able to quickly and easily create good-looking content,” says Perkins.
From the outset, Canva decided that a cloud-based infrastructure was its best option. "To support what we believed would be a rapidly expanding business, we wanted an infrastructure that could scale along with the growth in our user numbers," says Perkins. “Adopting an on-demand approach would allow us to manage our forecasted rise in user numbers while also keeping operational costs under control.”
Canva’s web platform includes a catalog of images and portfolios by professional designers and photographers. "We knew we would be dealing with many images that would take up a lot of storage space, so we needed a cloud provider with a very scalable storage solution," says David Hearnden, Development Lead. Canva also needed to support image processing – as user numbers increased, the volume of processing would rise quickly. The company had to be able to manage increased demand while making sure that application availability and performance were consistent.
Why Amazon Web Services
After reviewing a number of cloud providers, Canva decided to adopt Amazon Web Services (AWS) to take advantage of the graphics power available with Amazon Elastic Compute Cloud (Amazon EC2) using g2.2xlarge instances. “Using G2 instance types allows image processing to occur much faster than traditional virtual machines," says Hearnden.
Canva provisioned an Amazon Virtual Private Cloud (Amazon VPC), mostly in the US East (Northern Virginia) Region, to run the graphics platform. The company uses AWS Identity and Access Management (IAM) to manage user identities and access. "The security tools are powerful and simple to use," Hearnden says. "It allows us to build layers of risk mitigation so that if one component of the service is compromised it can be contained."
By November 2014, Canva’s customer base increased by one million users over the previous 13 months. Using AWS gives Canva with the ability to scale capacity as user numbers grow with the agility to access compute resources quickly. Hearnden describes it this way: "Using AWS means that we have an Infrastructure-as-a-Service (IaaS) to run custom applications or spin up environments easily. The Platform-as-a-Service (PaaS) offered by some other cloud providers is great for getting up and running quickly, but it means you don't have the flexibility to add any customization you might need afterwards."
The Canva team develops new features locally, tests them in a staging environment on AWS, and then deploys the code to the production environment. According to Canva, the time between testing and deployment is almost zero. The company runs the platform on 22 Amazon EC2 instances on average and scales up to 33 instances at peak usage times. "We’re able to scale our infrastructure to match changes in user demand," says Hearnden. "Being able to do this is the biggest benefit of AWS."
The Canva application runs completely on the AWS Cloud, using the Heroku platform on AWS as its front end. Amazon Simple Storage Service (Amazon S3) stores more than 15 million images and Amazon Simple Workflow Service (Amazon SWF) coordinates workflows between different application components. Canva receives millions of requests daily for images. In January 2015, more than 400 million user requested images, peaking at over 22 million per day. Amazon CloudFront is used for content delivery.
Canva launched in early 2013. “We were able to deploy and start iterating on AWS within just one day," says Hearnden. Since launching the graphic design platform, the company has attracted more than one million users who have created more than 12 million designs. "Using AWS has allowed us increase the capability of our customer offerings in step with rapid user growth."
The graphics platform is a 24/7 consumer-facing service and availability is critical to Canva. “The service has had 100 percent uptime over the last six months, and managing the infrastructure only takes one team member about two hours each week to complete,” says Hearnden. “We would need a full-time position, costing around $80,000, to manage an on-premises or hosted environment.”
"On AWS, our infrastructure costs have been more than 40 percent under budget," says Hearnden. "The AWS Cloud has proven to be the right choice for the company."