Continuous Deployment

Keith and Mario's Guide to Continuous Deployment with Rails

Keith and Mario's Guide to Continuous Deployment with Rails

by Keith Pitt and Mario Visic

In the video titled Keith and Mario's Guide to Continuous Deployment with Rails, Keith Pitt and Mario Visic present a comprehensive guide on the principles and practices of continuous deployment tailored for Ruby on Rails applications. The speakers emphasize how automating the deployment of the master branch can significantly enhance the development workflow, allowing teams to deploy updates effectively and continuously.

The key points discussed throughout the session include:

  • Definition of Continuous Deployment: The distinction between continuous delivery and continuous deployment is explained, outlining that continuous deployment automates the release process whenever changes occur in the master branch.
  • Benefits of Continuous Deployment: Participants are introduced to various benefits such as fast feedback cycles, operational predictability, and a higher level of confidence in the deployment process.
  • Feature Planning and Development: The importance of breaking down larger features into smaller, manageable updates is highlighted. This approach allows for rapid iteration and testing.
  • Automated Testing: The speakers stress the need for robust automated testing to ensure that only quality code is deployed. They discuss the balance needed in writing sufficient tests without overwhelming the deployment pipeline.
  • Feature Toggles: To mitigate risk when deploying new features, the concept of feature toggles is introduced. This allows developers to enable or disable specific features without needing to redeploy the application.
  • Zero Downtime Deployments: Keith and Mario explain how achieving zero downtime during deployments is crucial for maintaining user experience. They share strategies to implement this effectively.
  • Database Migrations: Key challenges associated with database schema changes during deployments are acknowledged, with examples provided on how to manage those changes carefully.
  • Monitoring and Rollback Strategies: The importance of application monitoring is addressed, along with various strategies for handling failed deployments. The recommendation is to adopt a 'roll forward' attitude rather than reverting deployments.

Some significant examples include how Keith's and Mario's experiences with environments like Envato and Buildbox have shaped their understanding of these practices. They share practical tools and tips to implement continuous deployment successfully, highlighting their experience with A/B testing and performance metrics to further drive confidence and predictability in the deployment process.

The primary conclusion emphasized by the speakers is that teams should actively pursue continuous deployment as a critical practice. By doing so, they can reduce deployment frequency, improve feedback loops, enhance code quality, and deliver features to customers more rapidly than traditional deployment methods would allow.

00:00:16.860 Great! Are we live? Can anyone hear me? Hello?
00:00:23.890 Hello everyone! Sorry about the late start. There was a problem with the computer at the front.
00:00:29.619 My name is Keith, and this is Mario. Welcome to Keith and Mario's Guide to Continuous Deployment, or as we like to call it, a slightly longer version: 'Why Automatically Deploying Your Master Branch to Production is a Good Idea.' This is, in fact, a really safe and great idea!
00:00:41.890 So, this is my friend Mario, the man to my right (or to your left). He works at a place called Envato. You may have heard of them; they operate products like ThemeForest and Tuts+.
00:00:55.120 Some fun facts about Mario: if you google 'How Good is Cheese' you'll see he's the CEO, CFO, CTO, CMO, and whatever else of 'How Good is Cheese.' Check that site out; it's a really great one!
00:01:08.229 Mario also hopes to become a millionaire with Bitcoin and Dogecoin. By the way, I'm presenting with Keith today.
00:01:24.460 Now, let me tell you a bit about Keith: he actually works at a startup called Buildbox. Buildbox is a semi-hosted continuous integration service—sort of like Jenkins, but with a hosted UI. Jenkins can’t read any of your data, and you use your own workers.
00:01:49.229 Some fun facts about Keith: every picture I could find of him, apart from the one he provided earlier, features him with a different Apple product. As you can see, in this picture, he has an iPad.
00:02:08.259 Keith was also awarded the South Australian Magician of the Year in 2007. Yes, those pigeons weren't there; I’m not sure how I managed to pull that off.
00:02:25.109 Keith and I have collaborated on a few products, and today we're going to show you some of the lessons we've learned while working together.
00:02:39.660 We worked together on a project called Envato Studio, which is an online marketplace for freelancers to sell their digital services. Many techniques we'll be discussing today began with those experiences.
00:02:51.560 Additionally, we've worked on Desktoppr, a wallpaper-sharing site with Dropbox as the backend. So all the insights we will share with you are based on real, practical experiences.
00:03:16.110 Now, you may have noticed we have a bit of an accent. We are from Australia, which is often just called 'Straya' by locals. We're a small island off the coast of New Zealand. Mario lives in the bottom right-hand corner, not in Tasmania.
00:03:36.800 He hails from Melbourne, a city famous for its nice laneways. Interestingly enough, Melbourne was voted the most livable city in the world.
00:03:52.560 So, back to the map: I currently live about 2,500 miles away from Mario, around a four-hour flight. Australia is indeed very large.
00:04:05.900 Perth, where Keith resides, looks beautiful with scenic beaches, and all of our presentations require us to share some fun facts.
00:04:30.050 By law, we have some trivia to share! For example, in 1954, Bob Hawke drank two and a half pints of beer in just 11 seconds, making it into the Guinness Book of World Records.