Trimble is a leading provider of advanced positioning technology and mobile solutions whose products are used in over 141 countries. Founded in 1978, the company integrates global positioning software (GPS) and other technologies and services to provide commercial solutions for a variety of industries, including agriculture, engineering and construction, transportation and wireless communications infrastructure. Based in Sunnyvale, California, the company has offices in 35 countries and works with partners and dealers worldwide. Trimble reported $2.3 billion in revenue for fiscal year 2013.
In 2012, Trimble purchased SketchUp from Google to provide 3D models and tools to the architecture, engineering, and construction (AEC) community. Users can search and download models from the 3D Warehouse website or using SketchUp’s desktop application. Trimble planned to add 3D Warehouse to its Design Build Operate (DBO) platform, which would allow customers to use the 3D models with other Trimble tools to collect data, design, model, and collaborate on a single, web-based platform.
After the purchase, Trimble needed to move the website and application to its environment. SketchUp includes more than 2.5 million 3D images, which Trimble had to convert to a format compatible with its own software and applications. The Trimble team wasn’t sure how much storage the models would require or what the workload would be to run the website. Needing flexibility, the ability to scale, and storage capacity led Trimble to consider a cloud-based solution.
Why Amazon Web Services
Trimble’s DBO team manages the company’s hosted applications and was in charge of the migration. Clay Parker, Systems Engineering Manager for the DBO team, describes the decision to run on Amazon Web Services (AWS) this way: “The idea of moving to the cloud came from our developers. We reviewed several cloud hosting options and AWS was the best fit for Trimble overall because of its services, scalability and market share.”
Portability of applications was also important to Trimble. “Sometimes you have to move an application for business reasons,” says Parker. “Regulations can demand that the data exist physically within a country. With other cloud service providers, we would have to rewrite considerable amounts of code to port an application. The fact that AWS makes it easy to move applications was key in the selection process.”
Optimizing instance types to manage workloads
Trimble runs the 3D Warehouse website application using MySQL on Amazon Elastic Compute Cloud (Amazon EC2) instances. With the exception of rendering servers that use Microsoft Windows Server 2000 for a 32-bit application, Parker estimates that most instances are using Linux Amazon Machine Images (AMIs).
Trimble uses Elastic Load Balancing to distribute workloads across instances. 3D Warehouse is a CPU-intensive application that runs about 27,000 bits per minute, so the DBO team migrated the application in stages to check the workload.
During the third stage of the migration, Trimble realized that the Amazon EC2 instance size was too small for the workload. Trimble worked with AWS Support to identify the best instance size for their needs. “We were able to move from i2.4xlarge instances to c3.xlarge instances simply by shutting one instance down and choosing another from a pick list,” says Parker. “The ability to move to a different instance type in the middle of a cutover on AWS, in less than three minutes, is remarkable.”
“I can’t overstate the importance of this,” he continues. “If we were working in a physical environment, we wouldn’t have had the resources to take the load, which would have put us months behind. By increasing the instance size, we were able to reduce the CPU load from 75 percent to 10 percent.”
Trimble operates its primary environment out of the US West (Oregon) Region in a single Availability Zone. The DBO team replicates the environment in the US East (Northern Virginia) Region for disaster recovery. Trimble typically runs on two applications servers and two Solr servers, and scales to as many as five application servers when troubleshooting applications.
Trimble uses Amazon CloudFront for worldwide content delivery. “CloudFront has been effective in helping us handle our load,” says Parker. “We’re in every CloudFront edge location, which allows Trimble to operate in a single region and scale to meet worldwide demand.” Figure 1 demonstrates Trimble’s environment on AWS.
Figure 1. Trimble Environment on AWS.
AWS compute capacity speeds image processing
As Trimble has learned about AWS compute capacity, the team has been able to adjust instance types for their application and Solr servers. “Now that we understand the sizes that we need, we have two of each size in place on Reserved Instances,” says Parker. “We’re doing a lot of that. Our costs have been coming down based on AWS continuous price reductions and the cost-savings features of Amazon EC2 Reserved Instances.”
Trimble originally estimated that because of the amount of compute capacity needed, it would take about 36 months to convert the 3D model images to a standard format with on-premises servers. “We got really excited when we realized that we could use Spot Instances to render the images at a considerable cost savings. We stood up about 200 Spot Instances to convert and store all 2.5 million images in Amazon Simple Storage Service (Amazon S3) buckets in less than a month. Furthermore, we’re now saving about $20,000 per month by using Amazon S3 for storage instead of storage appliances.”
“The 3D Warehouse application is extremely flexible in the AWS Cloud,” says Parker. “Using Amazon EC2 Spot Instances, a developer just has to push a button to build the environment that he needs to get his work done for that day—at the end of the day, the instance disappears.”
One of the advantages of moving to AWS is that Trimble has been able to streamline operations and move to a DevOps model. “There are still divisions in the company that use the old model where developers write code that they pass on to an infrastructure team for deployment,” says Parker. “The developers on my team deploy in productions systems on AWS and it’s working extremely well. I have zero physical infrastructure.”
Running on AWS has also changed the way that Trimble approaches code updates. “It’s automatic,” says Parker. “Thanks to AWS, we can continuously release code updates and avoid downtime for code releases; in fact, we haven’t had downtime for a code release in months.”
The 3D warehouse application hasn’t had any downtime since moving to AWS, providing a robust environment for Trimble’s customers. “We’re planning to move to multiple Availability Zones to help us grow the way that we want,” Parker says.
Trimble has several divisions, many of which are also running their infrastructure on AWS. “We’re working on a shared platform as a service that will be available across all divisions. AWS is where our organization needs to be moving,” says Parker. “Running on the AWS Cloud would eliminate the need for hardware support contracts, end-of-life hardware, and the need to price hardware and going through the PO approval and order process for the entire organization. AWS would allow us to run infrastructure as a service (IaaS) as we need it and focus our currently limited IT resources on running our applications and supporting customers.”
For Trimble, the AWS Cloud gives the company the ability to be hugely flexible and accomplish its goals. Parker comments, “The flexibility of AWS is more than just auto-scaling your environment. We’ve shown that by using the AWS Cloud, you can lower costs and run economically in steady state.”