DevOps best practices Q&A: Automated deployments at GitHub
Blog post from GitHub
Nina Kaufman, a Senior Software Engineer on GitHub's Deploy Team, highlights the importance of automation and trust in ensuring safe and reliable code deployment to GitHub's platform. The team, comprising engineers and managers, focuses on enabling high-velocity, secure deployments by supporting numerous engineers and applications, with hundreds of production deploys weekly. Automation is facilitated through ChatOps, which simplifies the deployment process using GitHub's UI and API, while canary deployments allow for gradual rollouts to minimize impact from potential errors. The team measures success through service level objectives, developer satisfaction surveys, and rollback rates, emphasizing a culture of trust where developers are confident in their tested code. Kaufman recommends treating infrastructure as a product, with internal users as customers, promoting empathy and collaboration across teams to enhance the developer experience and improve deployment processes. GitHub employs its own platform for various operational processes, ensuring access and project management, while fostering global team connectivity through regular virtual interactions.