Automotive classifieds site Carsales has completed the migration of its website onto Amazon Web Services' public cloud to attain more flexibility and prepare itself for an active-active future.
The company is no stranger to public cloud services, having hosted its disaster recovery in AWS for some time and its image-serving infrastructure in Microsoft's Azure.
Until earlier this month, the Carsales website was hosted in a Hostworks facility.
But after being impressed with the performance of its disaster recovery environment in AWS, Carsales one year ago started plotting the move of its production environment onto the same setup.
"Carsales used to be a monolith, it was basically one large piece of code very tightly integrated, and we were deploying code once or twice a week," Carsales group operations manager Dmitry Kulshitsky said.
"In the last couple of years we've gone down the path of microservices and creating lots of components: the Carsales website now consists of several hundred moving parts, that run mostly independently but in concert with each other."
This meant the business needed to ensure that any new platform could handle all these moving pieces while being able to scale the way Carsales wanted.
Earlier this month, it effectively flipped its production and DR environments around; the first is now in AWS and DR is now in Hostworks.
While the actual migration happened in one day, Carsales' engineers spent a year planning and then testing and reproducing traffic to ensure the new infrastructure would be able to scale up and down and accept the amount of traffic the website receives at peak load.
Carsales decided to also host its testing infrastructure in AWS, freeing up around five or six servers hosted locally at the company's head office.
The move reduced testing time from almost an hour to just minutes.
"That was important because we had a lot to do in a short amount of time," quality assurance manager Scott Clements said.
The team was testing for production readiness in four areas: performance, network, scability and security.
Carsales mimicked the flow of production traffic back to the new environment, which showed an increase of 25 percent on current production volumes.
"This gave us a lot of confidence in the new platform," Clements said.
While the business has been one of the earlier adopters of public cloud, Kulshitsky stressed Carsales would only push workloads into such environments where it made sense.
"We realise some don't belong in the cloud, especially where there is no need for elasticity, we are very conscious of this," he said.
Any platforms that don't require elasticity will remain in Hostworks for the time being, he said, but Carsales' engineers have their eye on an active-active configuration within the next year.
"Our ultimate goal is to run an active-active setup to protect us from any issues at the regional or data centre level," Kulshitsky said.
Before it can do that, the business will need to decide whether it wants to retain its fierce vendor-agnostic mindset or whether standardising with one provider would be more effective.
"We have two schools of thought on this," Kulshitsky said.
"Staying with one provider is easier in terms of usability, but we don't like vendor lock-in, so should we make it cloud-agnostic and have more than one provider?
"We quite like the way we have Hostworks and AWS at the moment, but longer term there is the temptation to standardise on a particular vendor for simplicity. But then, we'd also like to be able to switch vendors if there's a better value proposition."
He noted building abstraction layers to allow its platforms to run in any hosting provider could be the answer.
"It's not that hard to run a Windows or Linux server in Hostworks or AWS or Azure, it's sill a Windows or Linux server so you can talk to it in the same way," Kulshitsky said.
"We want to architect our solution in a way that there is an abstraction layer so we don't directly talk to those components and minimise our vendor lock-in."