Lessons learned while automating MySQL deployments in the AWS Cloud
Automating deployments is a key success factor in the cloud. It is actually a great way to leverage the flexibility of the cloud. But as often, while automation is not too difficult for application code, it is much harder for databases. When we started automating our MySQL servers at Slice, we chose simple and production-proven components: Chef to deploy files, MHA for high availability, Percona XtraBackup for backups. But we faced several problems very quickly: - How do you maintain an updated list of MySQL servers in the MHA configuration when servers can be automatically stopped or started? - How can you coordinate your servers for them to know that they need to be configured as a master or as a replica? - How do you write complex logic with Chef without being trapped with Chef's two pass model? - How can you handle clusters with different MySQL versions, or a single cluster where all members do not use the same MySQL version? - How can you get reasonable backup and restore time when the dataset is over 1TB and the backups are stored on S3? This session is all about the errors we made and the solutions we found while tackling MySQL automation. Come and share your own war stories!
Database Engineer, Slice Technologies
Stephane has worked for almost 15 years in open source environments, and has spent most of the last 10 years solving performance or high-availability problems with MySQL and more recently MongoDB. He is now working for Slice Technologies, a company that helps you keep track of your online purchases. His main role is to automate MySQL and MongoDB operations, and from time to time, he is also very excited to kill a nasty query or add a missing index on a 500GB table. When not in front of a computer, Stéphane likes spending time with his family. He also hopes to become a decent chess player someday.