Originally founded in 1999 as a joint venture between Volvo, Telia, and Ericsson, WirelessCar has been the world’s leading telematics service provider since 2000. It provides technology to link cars to the wider world of connected devices, enabling vehicles to respond to remote user commands, intelligently plot routes, communicate with the manufacturer about service requirements, and even tell it which parts to order. WirelessCar develops these systems for such brands as Rolls-Royce, BMW, Volvo, Toyota, and Renault, and it has operational services in more than 50 countries, supported by teams based in Brazil, China, India, Japan, Sweden, and the US.
Tomas Riha is a domain architect at WirelessCar. His team is responsible for building and maintaining the WirelessCar delivery engine, a test environment for WirelessCar software. Until recently, this was done in an on-premises data center environment, but the team identified the need for a more flexible approach. Riha says, “We had a growing IT infrastructure and a static test environment couldn’t scale to match our needs. In addition, test environments are short-lived and it’s actually preferable if they can disappear and come back as new. In our old static environment, we had to reuse test environments, and it’s quite hard to make sure the initial state is clean.” Furthermore, the team had to dedicate a lot of time to maintaining the environment, and it was difficult to plan capacity to meet the needs of the developers.
WirelessCar chose Amazon Web Services (AWS) to host its delivery engine to provide developers with instant access to clean test and development environments according to their needs, without being constrained by a physical infrastructure. “We decided to shift to a cloud environment so we could have what we need, when we need it, and not have to plan in advance,” says Riha. “We also wanted to reduce maintenance.”
Before moving the delivery engine to AWS, Riha and his team investigated the features of AWS and did some initial testing. They then scripted everything to avoid having to use the AWS console to provision services. “From the start, we decided to automate everything,” says Riha. “We built the automation tooling to make everything reproducible and have it based on AWS CloudFormation.” With AWS CloudFormation, WirelessCar can create and manage clusters of AWS services like Amazon Elastic Compute Cloud (Amazon EC2) and Amazon Simple Storage Service (Amazon S3) using templates, effectively making provisioning and updating much easier. “We then put our own abstraction layer on top of AWS CloudFormation. That’s important to us because it minimizes the amount of additional configuration the developers have to do.”
Riha explains how the delivery engine currently works: “We have come to a state where the test environments are crated on the fly when they’re needed. As soon as a developer commits his or her code, a new, clean test environment is created instantly and automatically with the correct parameters, which can be used as needed and then deleted.”
By running its delivery engine on AWS, WirelessCar has been able to drastically increase the productivity of its staff who maintain and continuously improve the delivery engine for its developers. Riha says, “We’ve lowered the amount of maintenance our team has to do, and freed them up to work on developing features much faster than before. As a result, we’ve been able to drastically increase the amount of development we can do. Before we moved to AWS, we added maybe one major feature every six months; now it’s one every month.”
In addition to being able to decrease the time to get new features out, the team is able to offer developers a much larger environment without adding staff. “The team that was delivering the static delivery engine is the same team we have now, but we’re much more productive,” says Riha. “Our scalability has increased in that we can run about four times as many servers in a day compared to before, supporting about twice as many users and repositories. Now the team can work on tasks like improving stability. For example, we’ve changed the way we set up environments so we can roll out changes and bug fixes seamlessly without the developers noticing.” Riha estimates that maintenance of the environment now takes up about 5–10 percent of his team’s time, as opposed to 80 percent before.
Riha also values the help WirelessCar has received from its AWS account team, especially as it looks to move some production environments to the cloud. “It was very easy to start working with AWS with so much good documentation online. Moving toward a production environment has been made a lot easier by our account manager. Plus the technical help that AWS provides is invaluable. I can’t teach everyone—it doesn’t scale—so AWS lends credibility to any advice I have to give.”
Moving to AWS has also brought greater transparency to WirelessCar’s operations, meaning Riha can look at the precise costs of each service and make better-informed decisions as a result. “For example, we always had problems with disk space on our old servers, and they required a lot of cleaning and maintenance. We had to put a lot of time into working out complex retention policies. Since we moved the back end of those repositories to an Amazon S3 bucket, we haven’t had to clean it up once, and it costs us just a few dollars a day.” Riha estimates that a day of internal meetings to establish retention policies would cost more than having an Amazon S3 bucket that doesn’t need emptying. “It’s such a small thing, but it shows how you can measure cost in an accurate way. Using AWS helps us make better-informed technical decisions, which I think is quite powerful.”
To learn more about how AWS can power testing and development environments, visit our Development and Test details page.