How we used GitHub to build GitHub Enterprise Cloud with data residency.
Overview
The article discusses the introduction of data residency for GitHub Enterprise Cloud, starting on October 29, 2024, in the European Union. It highlights the architectural design, project organization, and deployment strategies used to enhance user control and security for enterprises.
What You'll Learn
1
How to implement data residency for GitHub Enterprise Cloud
2
Why using GitHub Issues and Projects can enhance project organization
3
How to leverage Microsoft Azure for secure data residency
Prerequisites & Requirements
- Understanding of data residency concepts
- Familiarity with GitHub Actions and GitHub Issues(optional)
Key Questions Answered
What is the significance of data residency for GitHub Enterprise Cloud?
Data residency allows organizations to control where their GitHub code and repository data is stored, addressing critical customer needs for compliance and security. This feature enhances the overall user experience by ensuring data is kept within preferred geographical regions.
How did GitHub organize the development of Enterprise Cloud with data residency?
GitHub utilized GitHub Issues and Projects to manage over 2,000 issues across more than 100 teams. This organization facilitated effective collaboration and tracking of project milestones, ensuring that all stakeholders had access to relevant information.
What deployment strategies were used for GitHub Enterprise Cloud with data residency?
The deployment strategy involved a 'deploy then merge' model, where branches are deployed to internal environments before merging into the main branch. This approach includes Canary deployments to gradually direct traffic to updated versions, ensuring stability and reliability.
What feedback mechanisms were implemented during the development process?
GitHub prioritized using the new data residency environment internally, allowing for over 8,000 deployments and continuous feedback on issues, pull requests, and actions. This iterative process helped refine the product before its public release.
Key Statistics & Figures
Number of teams involved in the project
over 100
This collaboration was crucial for managing the complexity of the project and ensuring diverse input.
Total deployments to the isolated environment
over 8,000
This high number of deployments demonstrates the commitment to testing and refining the product before its public launch.
Monthly actions jobs run in the new environment
over 1,000
This indicates the active use and testing of the new features within the GitHub team.
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Cloud Platform
Microsoft Azure
Used for hosting GitHub Enterprise Cloud with built-in data residency features.
CI/CD
Github Actions
Utilized for continuous integration and deployment processes.
Project Management
Github Issues
Employed for tracking project progress and managing tasks across teams.
Project Management
Github Projects
Used for organizing work and visualizing project milestones.
Key Actionable Insights
1Utilize GitHub Issues and Projects for effective project management.By leveraging these tools, teams can enhance visibility and collaboration across multiple projects, ensuring that all stakeholders are aligned and informed about progress and potential blockers.
2Adopt a 'deploy then merge' strategy to improve deployment reliability.This approach allows teams to catch issues early by testing in internal environments before affecting customers, thereby reducing the risk of deployment failures.
3Incorporate feedback loops during development to enhance product quality.Using the product internally allows teams to identify and resolve issues quickly, leading to a more stable and user-friendly final product.
Common Pitfalls
1
Failing to establish clear communication among teams can lead to project delays.
Without effective communication, teams may work in silos, causing misunderstandings and misalignment on project goals.
2
Neglecting to test deployments in internal environments can result in customer-facing issues.
Skipping internal testing increases the risk of bugs and failures in production, which can harm user experience and trust.
Related Concepts
Data Residency
Github Enterprise Cloud Features
Project Management With Github
Continuous Integration And Deployment Strategies