How Cloud-Based Development Makes AutoScout24 More Agile
Erik Doernenburg and Philipp Garbe gave a talk at the GOTO Berlin 2015 conference in which they explained how cloud-based development makes AutoScout24 more agile. InfoQ interviewed them about what made them decide to switch to the cloud and which benefits they expected, and how they manage computing resources using the cloud. InfoQ also asked them to give some examples showing how the cloud helps to deploy DevOps, and to explain why teams at AutoScout24 are interested in working in an agile way and are eager to try new things.
InfoQ: What made you decide to switch to the cloud for development activities? Which benefits did you expect when you started this?
Philipp Garbe: The transition to the cloud is part of a larger technological change at AutoScout24, which we call "Tatsu". One reason is that we didn’t want to reinvent the wheel. Public cloud providers have already solved a lot of problems, particularly problems that teams face when they adopt an architecture based on microservices at scale. Using Cloud technologies helps us to focus on providing value to our core business and to reduce our time to market.
Another reason is that we want to take DevOps to the next level, meaning: You-build-it-you-run-it teams. We felt that operating almost 2000 physical servers and associated networks in our own datacenters required too much specialization and effort to bring a true DevOps culture to live.
InfoQ: Using cloud based services makes it easier to get more computing power when you need it, and reduce computing resources and costs when there is no need anymore. Can you give an example how you use this at AutoScout24?
Erik Doernenburg: The obvious case is elastic scaling in response to traffic from customers. For a platform like AutoScout24 traffic is not uniformly distributed and by deploying all customer-facing systems using Elastic Load Balancers (ELB) and Auto-Scaling Groups (ASG), the system always allocates the right amount of server instances without manual interaction.
We’ve also found several use cases in the development process where rapid elasticity provided benefits to the team. For example, we ramp up the number of build agents in our continuous delivery pipeline during the day to provide faster builds and more timely feedback to the development teams. We’re also using some of the largest servers available at AWS to create analytical models, but obviously only pay for these servers for the few hours per week that we actually need them.
Philipp Garbe: The cloud makes it easy for a team to define how much resources they need. But it also provides immediate feedback how many resources are really used. This feedback helps the team to make the right decisions.
It’s really cool to see that teams use calculators to see how much it costs to implement a feature.
InfoQ: Can you give some examples showing how the cloud helps you to deploy DevOps?
Philipp Garbe: Like many other companies AutoScout24 had different departments for Development and Operations with different responsibilities: Devs were supposed to built the platform and Ops should run it.
We realized that, the closer we work together, the more successful we are. However, we could not ignore Conway’s Law. Since people were in different departments, working together was sometimes difficult. There were numerous different interests that had to be dealt with.
In Tatsu we wanted to create You-build-it-you-run-it-teams. This means, our cross-functional teams are now not only staffed with people from development, QA and Product but also with people from operations.
One nice thing that happened is that people stopped calling each other "Dev" or "Ops". We’re now engineers. Still with different skills and interests, but as a team - a team of engineers.
Erik Doernenburg: Often there is a conflict between development and operations teams when it comes to capacity planning. The operations team needs to know how many servers to procure and deploy but the development team finds it difficult and time-consuming to answer this question. Predictions from a "production-like" environment in which load tests are run aren’t always accurate.
Self-provisioning and elasticity allowed us to route live traffic to "dark" servers, servers in the production environment that receive traffic but do not contribute to the response to the site’s visitors. This way we could gain an early and accurate understanding of how new software would perform in the real live environment. The wide variety of available servers allowed us to experiment with different setups and choose the most appropriate solution, all without impacting the level of service offered to the visitors of the website.
InfoQ: You mentioned that teams at AutoScout24 are interested in working in an agile way and are eager to try new things, can you elaborate why they feel this way?
Philipp Garbe: This is part of the spirit at AutoScout24 and it is something we really like. We started using agile development practices many years ago and it proved to be beneficial for us in several ways, enabling improved collaboration with the business while improving the quality of our software.
Erik Doernenburg: The cloud is important for AutoScout24, but the success of the Tatsu program hinges on the people. The open, positive, and collaborative culture at AutoScout24 feels absolutely necessary to make the most out of the new technology.
InfoQ: How has doing development in the cloud made AutoScout24 more agile?
Philipp Garbe: It helped us to improve our understanding of DevOps and with that we could empower our teams to work more autonomous.
Erik Doernenburg: It also allowed us to deploy cost-effective solutions to shorten essential feedback loops.