{"id":79844,"date":"2024-09-23T22:00:31","date_gmt":"2024-09-24T05:00:31","guid":{"rendered":"https:\/\/github.blog\/?p=79844"},"modified":"2024-09-26T09:15:01","modified_gmt":"2024-09-26T16:15:01","slug":"github-enterprise-cloud-with-data-residency","status":"publish","type":"post","link":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/","title":{"rendered":"GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><p>Today, <a href=\"https:\/\/github.com\/newsroom\/press-releases\/data-residency-in-the-eu\">we announced that GitHub Enterprise Cloud will offer data residency<\/a>, starting with the European Union (EU) on October 29, 2024, to address a critical desire from customers and enable an optimal, unified experience on GitHub for our customers.<\/p>\n<h2 id=\"data-residency-and-what-it-means-for-developers\" id=\"data-residency-and-what-it-means-for-developers\" ><a class=\"heading-link\" href=\"#data-residency-and-what-it-means-for-developers\">Data residency and what it means for developers<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>We&rsquo;ve heard for years from enterprises that being able to control where their data resides is critical for them. With data residency, organizations can now store their GitHub code and repository data in their preferred geographical region. With this need met, even more developers across the globe can build on the world&rsquo;s AI-powered developer platform.<\/p>\n<p>Enterprise Cloud with data residency provides enhanced user control and unique namespaces on ghe.com isolated from the open source cloud on github.com. It&rsquo;s built on the security, business continuity, and disaster recovery capabilities of Microsoft Azure.<\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image4_34012e.png?w=1024&#038;resize=1024%2C657\" alt=\"Image of a Contoso repository displaying a unique namespace which is magnified.\" width=\"1024\" height=\"657\" class=\"aligncenter size-large wp-image-79880 width-fit\" srcset=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image4_34012e.png?w=1999 1999w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image4_34012e.png?w=300 300w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image4_34012e.png?w=768 768w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image4_34012e.png?w=1024 1024w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image4_34012e.png?w=1536 1536w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p>This is a huge milestone for our customers and for GitHub&ndash;a multi-year effort that required extensive time, effort, and dedication across the company. We&rsquo;re excited to share a behind-the-scenes look at how we leveraged GitHub to develop the next evolution of Enterprise Cloud.<\/p>\n<h2 id=\"designing-the-architecture-for-the-next-evolution-of-github-enterprise\" id=\"designing-the-architecture-for-the-next-evolution-of-github-enterprise\" ><a class=\"heading-link\" href=\"#designing-the-architecture-for-the-next-evolution-of-github-enterprise\">Designing the architecture for the next evolution of GitHub Enterprise<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>This effort started in summer of 2022 with a proof of concept (PoC) and involved teams across GitHub. We carefully considered which architecture would enable us to be successful. After iterating with different approaches, we decided to build the new offering as a feature set that extends Enterprise Cloud. This approach would allow us to be consistently in sync with features on github.com and provide the performance, reliability, and security that our customers expect. For hosting, we effectively leveraged Microsoft Azure&rsquo;s scale, security, and regional footprint to produce a reliable and secured product with data residency built-in, without having to build new data centers ourselves.<\/p>\n<p>As the home for all developers, developer experience is critically important for us. We recognized early on that consistency was important, so we sought to minimize differences in developing for Enterprise Cloud and Enterprise Cloud with data residency. To this end, the architecture across both is very similar, reducing complexity, risk, and development costs. The deployment model is familiar to our developers: it builds off of GitHub Actions. Also, changes to github.com and Enterprise Cloud with data residency are deployed minutes apart as part of a unified pipeline.<\/p>\n<p>To accomplish this, we had to organize the work, modify our build and deployment systems, and validate the quality of the platform. We were able to do all three of these by using GitHub.<\/p>\n<h2 id=\"organizing-with-github-issues-and-projects\" id=\"organizing-with-github-issues-and-projects\" ><a class=\"heading-link\" href=\"#organizing-with-github-issues-and-projects\">Organizing with GitHub Issues and Projects<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>To organize the project, we used GitHub <a href=\"https:\/\/docs.github.com\/enterprise-cloud@latest\/issues\/tracking-your-work-with-issues\/about-issues\">Issues<\/a> and <a href=\"https:\/\/docs.github.com\/enterprise-cloud@latest\/issues\/planning-and-tracking-with-projects\/learning-about-projects\/about-projects\">Projects<\/a>, taking advantage of <a href=\"https:\/\/docs.github.com\/issues\/planning-and-tracking-with-projects\/customizing-views-in-your-project\/changing-the-layout-of-a-view\">multiple views<\/a> to effectively drive work across multiple projects, more than 100 teams, and over 2,000 issues. Different stakeholders and teams could take advantage of these views to focus on the information most relevant to them. Our talented technical project management team helped coordinate updates and used the filtering and <a href=\"https:\/\/docs.github.com\/issues\/planning-and-tracking-with-projects\/customizing-views-in-your-project\/customizing-the-table-layout#slicing-by-field-values\">slicing<\/a> capabilities of Projects to present continuously updated information for each milestone in an easily consumable way.<\/p>\n<p>We also used upcoming features like <a href=\"https:\/\/github.com\/github\/roadmap\/issues\/927\">issues hierarchy<\/a> to help us understand relationships between issues, and <a href=\"https:\/\/github.com\/github\/roadmap\/issues\/837\">issue types<\/a> to help clearly classify issues across repositories. As part of using these features internally we were able to give feedback to the teams working on them and refine the final product. Keep an eye out for future announcements for issues hierarchy and issue types coming soon!<\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image3_20df64.png?w=1024&#038;resize=1024%2C464\" alt=\"Image of hierarchies directly inside a GitHub project.\" width=\"1024\" height=\"464\" class=\"aligncenter size-large wp-image-79881 width-fit\" srcset=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image3_20df64.png?w=1999 1999w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image3_20df64.png?w=300 300w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image3_20df64.png?w=768 768w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image3_20df64.png?w=1024 1024w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image3_20df64.png?w=1536 1536w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image5_65b0fe.png?w=1024&#038;resize=1024%2C505\" alt=\"Image of issue types.\" width=\"1024\" height=\"505\" class=\"aligncenter size-large wp-image-79882 width-fit\" srcset=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image5_65b0fe.png?w=1999 1999w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image5_65b0fe.png?w=300 300w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image5_65b0fe.png?w=768 768w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image5_65b0fe.png?w=1024 1024w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image5_65b0fe.png?w=1536 1536w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p>All of these powerful features helped us keep the initiative on track. We were able to clearly understand potential risk areas and partner across multiple teams to resolve blockers and complex dependencies, keeping the project effectively moving forward across multiple years.<\/p>\n<h2 id=\"building-enterprise-cloud-with-data-residency-using-github\" id=\"building-enterprise-cloud-with-data-residency-using-github\" ><a class=\"heading-link\" href=\"#building-enterprise-cloud-with-data-residency-using-github\">Building Enterprise Cloud with data residency using GitHub<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=PMSoHPuD8G8\">GitHub has always been built using GitHub<\/a>. We wanted to continue this practice to set ourselves up for success with the new data residency feature. To this end, we continued leveraging <a href=\"https:\/\/docs.github.com\/codespaces\/overview\">GitHub Codespaces<\/a> for development and <a href=\"https:\/\/docs.github.com\/enterprise-cloud@latest\/actions\">GitHub Actions<\/a> for continuous integration (CI). In addition, we added deployment targets for new regions. This produced a development, testing, and CI model that required no changes for our developers and a deployment process that was tightly integrated into the existing flow.<\/p>\n<p>We have previously discussed our <a href=\"https:\/\/github.blog\/enterprise-software\/devops\/improving-how-we-deploy-github\/\">deploy then merge<\/a> model, where we deploy branches before merging into the main branch. We expanded this approach to include successful deployments to Enterprise Cloud data residency targets before changes could be merged and considered complete, continuing to use the existing <a href=\"https:\/\/github.blog\/engineering\/engineering-principles\/how-github-uses-merge-queue-to-ship-hundreds-of-changes-every-day\/\">GitHub merge queue<\/a>. A visualization of our monolithic deployment pipeline is shown in the figure below.<\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image2_d60746.png?w=1024&#038;resize=1024%2C529\" alt=\"Image showing a visualization of the deployment pipeline.\" width=\"1024\" height=\"529\" class=\"aligncenter size-large wp-image-79883 width-fit\" srcset=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image2_d60746.png?w=1999 1999w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image2_d60746.png?w=300 300w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image2_d60746.png?w=768 768w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image2_d60746.png?w=1024 1024w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image2_d60746.png?w=1536 1536w, https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image2_d60746.png?w=804 804w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p>We start by deploying to environments used by GitHub employees in parallel. This includes the internal environment for Enterprise Cloud with data residency discussed more in the next section. As we use GitHub every day to build GitHub, this step helps us catch issues as employees use the product before it impacts our customers. After automated and manual testing, we proceed to roll out to &ldquo;Canary.&rdquo; Canary is the name for the stage where we configure our load balancers to gradually direct an increasing percentage of github.com traffic to the updated version of the code in a staged manner. Additional testing occurs in between each stage. Once we successfully deploy the updated version of github.com to all users, we then deploy and validate Enterprise Cloud with data residency in the EU before finishing the process and merging the pull request.<\/p>\n<p>Ensuring all deployments are successful before we merge means changes are deployed in sync across all Enterprise Cloud environments and monitored effectively. Note that in addition to deployments, we also use feature flags to gradually roll out changes to groups of customers to reduce risk. If a deployment to any target fails, we roll back the change completely. Once we have understood the failure and are ready to deploy again, the entire process starts from the beginning with the merge queue.<\/p>\n<p>Finally, to maintain consistency across all teams and services, we created automation to generate deployment pipelines for over 100 services so, as new targets are introduced, each service automatically deploys to the new environment in a consistent order.<\/p>\n<h2 id=\"using-enterprise-cloud-with-data-residency-ourselves\" id=\"using-enterprise-cloud-with-data-residency-ourselves\" ><a class=\"heading-link\" href=\"#using-enterprise-cloud-with-data-residency-ourselves\">Using Enterprise Cloud with data residency ourselves<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>To create the best possible product, we also prioritized using it ourselves and stood up an isolated environment for this purpose. Using our <a href=\"https:\/\/docs.github.com\/migrations\/overview\/migration-paths-to-github\">GitHub migration tooling<\/a>, we moved the day-to-day development for the team working on <a href=\"https:\/\/docs.github.com\/migrations\/using-github-enterprise-importer\/understanding-github-enterprise-importer\/about-github-enterprise-importer\">GitHub Enterprise Importer<\/a> to that environment, and invested in updating our build, deploy, and development environments to support working from the data resident environment. Since its creation, we have deployed to this environment over 8,000 times. This gave us invaluable feedback about the experience of working in the product with issues, pull requests, and actions that we were able to address early in the development process. We were also able to iterate on our status page tooling and internal Service Level Objective (SLO) process with the new environment in mind. The team is continuing to work in this environment today and runs over 1,000 actions jobs a month. This is a testament to the stability and quality we&rsquo;ve been able to deliver and our commitment to this feature.<\/p>\n<h2 id=\"whats-next\" id=\"whats-next\" ><a class=\"heading-link\" href=\"#whats-next\">What&rsquo;s next<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>We are proud that we&rsquo;ve been able to evolve Enterprise Cloud to offer data residency while using GitHub to organize, build, deploy, and test it. We&rsquo;re excited to unlock GitHub for even more developers and for you to experience what we have built, starting on October 29, 2024 in the EU, with more regions on the way.<\/p>\n<div class=\"post-content-cta\"><p>If you&rsquo;re excited about Enterprise Cloud with data residency, <a href=\"https:\/\/githubuniverse.com\/?utm_source=Blog&amp;utm_medium=GitHub&amp;utm_campaign=proxima\">please join us at GitHub Universe 2024<\/a> to learn more and hear from other companies how they&rsquo;ve used this to accelerate software development and innovation.<\/p>\n<\/div>\n<\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>How we used GitHub to build GitHub Enterprise Cloud with data residency.<\/p>\n","protected":false},"author":2261,"featured_media":79879,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_gh_post_show_toc":"yes","_gh_post_is_no_robots":"no","_gh_post_is_featured":"yes","_gh_post_is_excluded":"no","_gh_post_is_unlisted":"no","_gh_post_related_link_1":"","_gh_post_related_link_2":"","_gh_post_related_link_3":"","_gh_post_sq_img":"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/Proxima-Square-Option-B.png","_gh_post_sq_img_id":"79890","_gh_post_cta_title":"","_gh_post_cta_text":"","_gh_post_cta_link":"","_gh_post_cta_button":"Click Here to Learn More","_gh_post_recirc_hide":"no","_gh_post_recirc_col_1":"78957","_gh_post_recirc_col_2":"78959","_gh_post_recirc_col_3":"78961","_gh_post_recirc_col_4":"77524","_featured_video":"","_gh_post_additional_query_params":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"_links_to":"","_links_to_target":""},"categories":[72,3308],"tags":[3446,2025],"coauthors":[3445],"class_list":["post-79844","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","category-engineering-principles","tag-data-residency","tag-github-enterprise-cloud"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub - The GitHub Blog<\/title>\n<meta name=\"description\" content=\"How we used GitHub to build GitHub Enterprise Cloud with data residency.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub\" \/>\n<meta property=\"og:description\" content=\"How we used GitHub to build GitHub Enterprise Cloud with data residency.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/\" \/>\n<meta property=\"og:site_name\" content=\"The GitHub Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-24T05:00:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-26T16:15:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image1_df4267.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1999\" \/>\n\t<meta property=\"og:image:height\" content=\"1050\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jim Wang\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jim Wang\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/\"},\"author\":{\"name\":\"Jim Wang\",\"@id\":\"https:\\\/\\\/github.blog\\\/#\\\/schema\\\/person\\\/a5bba477f5d2fb50c566f05138b9d2d9\"},\"headline\":\"GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub\",\"datePublished\":\"2024-09-24T05:00:31+00:00\",\"dateModified\":\"2024-09-26T16:15:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/\"},\"wordCount\":1306,\"image\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/image1_df4267.png?fit=1999%2C1050\",\"keywords\":[\"data residency\",\"GitHub Enterprise Cloud\"],\"articleSection\":[\"Engineering\",\"Engineering principles\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/\",\"url\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/\",\"name\":\"GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub - The GitHub Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/github.blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/image1_df4267.png?fit=1999%2C1050\",\"datePublished\":\"2024-09-24T05:00:31+00:00\",\"dateModified\":\"2024-09-26T16:15:01+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/github.blog\\\/#\\\/schema\\\/person\\\/a5bba477f5d2fb50c566f05138b9d2d9\"},\"description\":\"How we used GitHub to build GitHub Enterprise Cloud with data residency.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/#primaryimage\",\"url\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/image1_df4267.png?fit=1999%2C1050\",\"contentUrl\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/image1_df4267.png?fit=1999%2C1050\",\"width\":1999,\"height\":1050,\"caption\":\"Image of a globe with GitHub Enterprise Cloud Data residency overlaying in the title\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/github-enterprise-cloud-with-data-residency\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/github.blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Engineering\",\"item\":\"https:\\\/\\\/github.blog\\\/engineering\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Engineering principles\",\"item\":\"https:\\\/\\\/github.blog\\\/engineering\\\/engineering-principles\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/github.blog\\\/#website\",\"url\":\"https:\\\/\\\/github.blog\\\/\",\"name\":\"The GitHub Blog\",\"description\":\"Updates, ideas, and inspiration from GitHub to help developers build and design software.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/github.blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/github.blog\\\/#\\\/schema\\\/person\\\/a5bba477f5d2fb50c566f05138b9d2d9\",\"name\":\"Jim Wang\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3e335d130cbccae87da1f1cfe411b2f1321baa6acd15433051b513452a00acc1?s=96&d=mm&r=gfb0618e00e3b80394f862cf5dfc2a4d0\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3e335d130cbccae87da1f1cfe411b2f1321baa6acd15433051b513452a00acc1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3e335d130cbccae87da1f1cfe411b2f1321baa6acd15433051b513452a00acc1?s=96&d=mm&r=g\",\"caption\":\"Jim Wang\"},\"description\":\"VP of Engineering, GitHub\",\"url\":\"https:\\\/\\\/github.blog\\\/author\\\/turanuk\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub - The GitHub Blog","description":"How we used GitHub to build GitHub Enterprise Cloud with data residency.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/","og_locale":"en_US","og_type":"article","og_title":"GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub","og_description":"How we used GitHub to build GitHub Enterprise Cloud with data residency.","og_url":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/","og_site_name":"The GitHub Blog","article_published_time":"2024-09-24T05:00:31+00:00","article_modified_time":"2024-09-26T16:15:01+00:00","og_image":[{"width":1999,"height":1050,"url":"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image1_df4267.png","type":"image\/png"}],"author":"Jim Wang","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jim Wang","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/#article","isPartOf":{"@id":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/"},"author":{"name":"Jim Wang","@id":"https:\/\/github.blog\/#\/schema\/person\/a5bba477f5d2fb50c566f05138b9d2d9"},"headline":"GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub","datePublished":"2024-09-24T05:00:31+00:00","dateModified":"2024-09-26T16:15:01+00:00","mainEntityOfPage":{"@id":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/"},"wordCount":1306,"image":{"@id":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/#primaryimage"},"thumbnailUrl":"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image1_df4267.png?fit=1999%2C1050","keywords":["data residency","GitHub Enterprise Cloud"],"articleSection":["Engineering","Engineering principles"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/","url":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/","name":"GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub - The GitHub Blog","isPartOf":{"@id":"https:\/\/github.blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/#primaryimage"},"image":{"@id":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/#primaryimage"},"thumbnailUrl":"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image1_df4267.png?fit=1999%2C1050","datePublished":"2024-09-24T05:00:31+00:00","dateModified":"2024-09-26T16:15:01+00:00","author":{"@id":"https:\/\/github.blog\/#\/schema\/person\/a5bba477f5d2fb50c566f05138b9d2d9"},"description":"How we used GitHub to build GitHub Enterprise Cloud with data residency.","breadcrumb":{"@id":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/#primaryimage","url":"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image1_df4267.png?fit=1999%2C1050","contentUrl":"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image1_df4267.png?fit=1999%2C1050","width":1999,"height":1050,"caption":"Image of a globe with GitHub Enterprise Cloud Data residency overlaying in the title"},{"@type":"BreadcrumbList","@id":"https:\/\/github.blog\/engineering\/engineering-principles\/github-enterprise-cloud-with-data-residency\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/github.blog\/"},{"@type":"ListItem","position":2,"name":"Engineering","item":"https:\/\/github.blog\/engineering\/"},{"@type":"ListItem","position":3,"name":"Engineering principles","item":"https:\/\/github.blog\/engineering\/engineering-principles\/"},{"@type":"ListItem","position":4,"name":"GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub"}]},{"@type":"WebSite","@id":"https:\/\/github.blog\/#website","url":"https:\/\/github.blog\/","name":"The GitHub Blog","description":"Updates, ideas, and inspiration from GitHub to help developers build and design software.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/github.blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/github.blog\/#\/schema\/person\/a5bba477f5d2fb50c566f05138b9d2d9","name":"Jim Wang","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3e335d130cbccae87da1f1cfe411b2f1321baa6acd15433051b513452a00acc1?s=96&d=mm&r=gfb0618e00e3b80394f862cf5dfc2a4d0","url":"https:\/\/secure.gravatar.com\/avatar\/3e335d130cbccae87da1f1cfe411b2f1321baa6acd15433051b513452a00acc1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3e335d130cbccae87da1f1cfe411b2f1321baa6acd15433051b513452a00acc1?s=96&d=mm&r=g","caption":"Jim Wang"},"description":"VP of Engineering, GitHub","url":"https:\/\/github.blog\/author\/turanuk\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/github.blog\/wp-content\/uploads\/2024\/09\/image1_df4267.png?fit=1999%2C1050","jetpack_shortlink":"https:\/\/wp.me\/pamS32-kLO","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts\/79844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/users\/2261"}],"replies":[{"embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/comments?post=79844"}],"version-history":[{"count":8,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts\/79844\/revisions"}],"predecessor-version":[{"id":79889,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts\/79844\/revisions\/79889"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/media\/79879"}],"wp:attachment":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/media?parent=79844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/categories?post=79844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/tags?post=79844"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/coauthors?post=79844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}