This website uses cookies

We use cookies to personalize content and ads, to provide social media features and to analyze our traffic. You consent to our cookies if you continue to use our website. 

These cookies are necessary for the Website to function and cannot be turned off in our systems. They are usually only set in response to actions made by you which amount to a request for information or services, such as logging in or filling in forms on our Website. You can set your browser to block or alert you about these cookies, but some parts of the Website will not then work. These cookies do not store any personally identifiable information.
NameProviderPurposeExpiryType
BIGipServer# [x2]194-vvc-221.mktoresp.com
app-ab13.marketo.com
Used to distribute traffic to the website on several servers in order to optimise response times.SessionHTTP
CookieConsentabout.gitlab.comStores the user's cookie consent state for the current domain1 yearHTTP
__cfduid [x4]codepen.io
embedly.com
medium.com
puu.sh
Used by the content network, Cloudflare, to identify trusted web traffic.1 yearHTTP
JSESSIONIDlinkedin.comPreserves users states across page requests.SessionHTTP
These cookies enable us to provide enhanced functionality and personalization for our website. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly
NameProviderPurposeExpiryType
lang [x3]ads.linkedin.com
cdn.syndication.twimg.com
linkedin.com
Remembers the user's selected language version of a websiteSessionHTTP
_BUIDbizible.comBizible - Universal user id to identity the same user across multiple clients' domains1 yearHTTP
languageslideshare.netSaves the user's preferred language on the website.SessionHTTP
These cookies collect information about how visitors use our Website, for instance, the number of visits, which pages visitors go to most often, and if they get error messages from web pages. These cookies don’t collect information that identifies a visitor.  These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
NameProviderPurposeExpiryType
_dc_gtm_UA-#about.gitlab.comUsed by Google Tag Manager to control the loading of a Google Analytics script tag.SessionHTTP
_gaabout.gitlab.comRegisters a unique ID that is used to generate statistical data on how the visitor uses the website.2 yearsHTTP
_gidabout.gitlab.comRegisters a unique ID that is used to generate statistical data on how the visitor uses the website.SessionHTTP
driftt_aidabout.gitlab.comAnonymous identifier token2 yearsHTTP
_mkto_trkgitlab.comAnonymous web activity in browser for Marketo2 yearsHTTP
optimizelyEndUserIdgitlab.comUsed to measure how selected users react to targeted changes to the website's content and functionality, in order to determine what variation is most efficacious in terms of converting users to customers.179 daysHTTP
collectgoogle-analytics.comUsed to send data to Google Analytics about the visitor's device and behaviour. Tracks the visitor across devices and marketing channels.SessionPixel
__utma [x2]slideshare.net
speakerdeck.com
Collects data on the number of times a user has visited the website as well as dates for the first and most recent visit. Used by Google Analytics.2 yearsHTTP
__utmb [x2]slideshare.net
speakerdeck.com
Registers a timestamp with the exact time of when the user accessed the website. Used by Google Analytics to calculate the duration of a website visit.SessionHTTP
__utmc [x2]slideshare.net
speakerdeck.com
Registers a timestamp with the exact time of when the user leaves the website. Used by Google Analytics to calculate the duration of a website visit.SessionHTTP
__utmt [x2]slideshare.net
speakerdeck.com
Used to throttle the speed of requests to the server.SessionHTTP
__utmz [x2]slideshare.net
speakerdeck.com
Collects data on where the user came from, what search engine was used, what link was clicked and what search term was used. Used by Google Analytics.6 monthsHTTP
_uv_idslideshare.netCollects data on the user's visits to the website, such as which pages have been read.2 yearsHTTP
vuidvimeo.comCollects data on the user's visits to the website, such as which pages have been read.2 yearsHTTP
@@History/@@scroll|# [x8]about.gitlab.com
disqus.com
docs.google.com
facebook.com
optimizely.com
slideshare.net
twitter.com
youtube.com
PendingPersistentHTML
These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other websites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising.
NameProviderPurposeExpiryType
driftt_sidabout.gitlab.comIdentifier token for a specific browser session.SessionHTTP
BizoIDads.linkedin.comRegisters anonymised user data, such as IP address, geographical location and what ads the user has clicked with the pupose of optimising ad display based on user's movements on website directly related to displaying ads from LinkedIn. 179 daysHTTP
UserMatchHistoryads.linkedin.comCollects anonymous data related to user's visits to the website with the purpose of displaying targeting ads from LinkedIn. 179 daysHTTP
CMDDcasalemedia.comCollects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded, with the purpose of displaying targeted ads.SessionHTTP
CMIDcasalemedia.comCollects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded, with the purpose of displaying targeted ads.1 yearHTTP
CMPROcasalemedia.comCollects anonymous data related to the user's visits to the website with the purpose of displaying targeted ads. 3 monthsHTTP
CMPScasalemedia.comCollects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded, with the purpose of displaying targeted ads.3 monthsHTTP
CMRUM3casalemedia.comCollects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded, with the purpose of displaying targeted ads.1 yearHTTP
CMSCcasalemedia.comCollects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded, with the purpose of displaying targeted ads.SessionHTTP
CMSTcasalemedia.comCollects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded, with the purpose of displaying targeted ads.SessionHTTP
m/ipvcdn.bizible.comBizible cookie - requested information from BizibleSessionPixel
em_cdn_uidcdn.embedly.comMeasures the number of times an embedded element from a third party service has been used.1 yearHTTP
disqusauthdisqus.comAllow users to comment in section via third-party software ‘Disqus’.SessionHTTP
GFE_RTTdocs.google.comRelated to Google docsSessionHTTP
Sdocs.google.comRelated to Google SheetsSessionHTTP
IDEdoubleclick.netUsed by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.2 yearsHTTP
test_cookiedoubleclick.netUsed to check if the user's browser supports cookies.SessionHTTP
DRIVE_STREAMdrive.google.comGoogle DriverSessionHTTP
frfacebook.comUsed by Facebook to deliver a series of advertisement products such as real time bidding from third party advertisers.3 monthsHTTP
trfacebook.comUsed by Facebook to deliver a series of advertisement products such as real time bidding from third party advertisers.SessionPixel
_biz_dfsAgitlab.comBizible - temporarily stores form submission data that happens before bizible.js received a configuration JS to determine whether or not tracking form on HTTPS is enabled, 1 yearHTTP
_biz_flagsAgitlab.comBizible - A single cookie that stores multiple information, such as whether or not the user has submitted a form, performed a crossdomain migration, sent a viewthrough pixel, opted out from tracking, etc, 1 yearHTTP
_biz_nAgitlab.comBizible - sequence number that bizible includes for all requests, for internal diagnostics purpose1 yearHTTP
_biz_pendingAgitlab.comBizible - temporarily stores analytics data that has not been successfully sent to bizible server yet. 1 yearHTTP
_biz_sidgitlab.comBizible - session id of the userSessionHTTP
_biz_uidgitlab.comBizible - User id on the current domain1 yearHTTP
optimizelyDomainTestCookiegitlab.comUsed to check if the user's browser supports cookies.179 daysHTTP
ads/ga-audiencesgoogle.comUsed by Google AdWords to re-engage visitors that are likely to convert to customers based on the visitor's online behaviour across websites.SessionPixel
ads/user-lists/#google.comUsed by Google AdWords to re-engage visitors across the web in ad groupsSessionPixel
NIDgoogle.comRegisters a unique ID that identifies a returning user's device. The ID is used for targeted ads.6 monthsHTTP
bcookie [x2]linkedin.com
slideshare.net
Used by the social networking service, LinkedIn, for tracking the use of embedded services.2 yearsHTTP
bscookielinkedin.comUsed by the social networking service, LinkedIn, for tracking the use of embedded services.2 yearsHTTP
leo_auth_tokenlinkedin.comUsed by the social networking service, LinkedIn, for tracking the use of embedded services.SessionHTTP
lidclinkedin.comUsed by the social networking service, LinkedIn, for tracking the use of embedded services.SessionHTTP
visitlinkedin.comUsed by the social networking service, LinkedIn, for tracking the use of embedded services.2 yearsHTTP
iopenx.netRegisters anonymised user data, such as IP address, geographical location, visited websites, and what ads the user has clicked, with the purpose of optimising ad display based on the user's movement on websites that use the same ad network.1 yearHTTP
KRTBCOOKIE_#pubmatic.comRegisters a unique ID that identifies the user's device during return visits across websites that use the same ad network. The ID is used to allow targeted ads.3 monthsHTTP
PUBMDCIDpubmatic.comRegisters a unique ID that identifies the user's device during return visits across websites that use the same ad network. The ID is used to allow targeted ads.3 monthsHTTP
UIDscorecardresearch.comCollects information of the user and his/her movement, such as timestamp for visits, most recently loaded pages and IP address. The data is used by the marketing research network, Scorecard Research, to analyse traffic patterns and carry out surveys to help their clients better understand the customer's preferences.2 yearsHTTP
UIDRscorecardresearch.comCollects information of the user and his/her movement, such as timestamp for visits, most recently loaded pages and IP address. The data is used by the marketing research network, Scorecard Research, to analyse traffic patterns and carry out surveys to help their clients better understand the customer's preferences.2 yearsHTTP
GPSyoutube.comRegisters a unique ID on mobile devices to enable tracking based on geographical GPS location.SessionHTTP
VISITOR_INFO1_LIVEyoutube.comTries to estimate the users' bandwidth on pages with integrated YouTube videos.179 daysHTTP
YSCyoutube.comRegisters a unique ID to keep statistics of what videos from YouTube the user has seen.SessionHTTP
webevents/visitWebPage194-vvc-221.mktoresp.comPendingSessionPixel
tuuid360yield.comPending3 monthsHTTP
tuuid_last_update360yield.comPending3 monthsHTTP
um360yield.comPending3 monthsHTTP
umeh360yield.comPending3 monthsHTTP
optimizely_data$#$event_queueabout.gitlab.comPendingPersistentHTML
optimizely_data$#$eventsabout.gitlab.comPendingPersistentHTML
optimizely_data$#$layer_statesabout.gitlab.comPendingPersistentHTML
optimizely_data$#$session_stateabout.gitlab.comPendingPersistentHTML
optimizely_data$#$tracker_optimizelyabout.gitlab.comPendingPersistentHTML
optimizely_data$#$variation_mapabout.gitlab.comPendingPersistentHTML
optimizely_data$#$visitor_profileabout.gitlab.comPendingPersistentHTML
cc.jscc.swiftype.comPendingSessionPixel
ahoy_track [x2]codepen.io
s.codepen.io
PendingSessionHTTP
ahoy_visit [x2]codepen.io
s.codepen.io
PendingSessionHTTP
ahoy_visitor [x2]codepen.io
s.codepen.io
Pending2 yearsHTTP
codepen_sessioncodepen.ioPending29 daysHTTP
juggler/event.gifdisqus.comPendingSessionPixel
dcgitlab.comPendingSessionHTTP
PugTpubmatic.comPending29 daysHTTP
RTslideshare.netPendingSessionHTTP
SERVERIDslideshare.netPendingSessionHTTP
_secure_speakerd_sessionspeakerdeck.comPending13 daysHTTP
i/jot/syndicationtwitter.comPendingSessionPixel
apps/app-event-trackerzapier.comPendingSessionPixel
apps/embed/widget/beacon.gifzapier.comPendingSessionPixel
zapforeversessionzapier.comPending1 yearHTTP
zapsessionzapier.comPending6 daysHTTP
Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
NameProviderPurposeExpiryType
m/ucdn.bizible.comPendingSessionPixel
Cookies are small text files that can be used by websites to make a user's experience more efficient.

The law states that we can store cookies on your device if they are strictly necessary for the operation of this site. For all other types of cookies we need your permission.

This site uses different types of cookies. Some cookies are placed by third party services that appear on our pages.

You can at any time change or withdraw your consent from the Cookie Declaration on our website.

Learn more about who we are, how you can contact us and how we process personal data in our Privacy Policy.
Cookie declaration last updated on 21/06/2018 by Cookiebot
Jun 25, 2018 - Andrew Newdigate    

We’re moving from Azure to Google Cloud Platform

GitLab.com is migrating to Google Cloud Platform – here’s what this means for you now and in the future.

Improving the performance and reliability of GitLab.com has been a top priority for us. On this front we've made some incremental gains while we've been planning for a large change with the potential to net significant results: moving from Azure to Google Cloud Platform (GCP).

We believe Kubernetes is the future. It's a technology that makes reliability at massive scale possible. This is why earlier this year we shipped native integration with Google Kubernetes Engine (GKE) to give GitLab users a simple way to use Kubernetes. Similarly, we've chosen GCP as our cloud provider because of our desire to run GitLab on Kubernetes. Google invented Kubernetes, and GKE has the most robust and mature Kubernetes support. Migrating to GCP is the next step in our plan to make GitLab.com ready for your mission-critical workloads.

Once the migration has taken place, we’ll continue to focus on bumping up the stability and scalability of GitLab.com, by moving our worker fleet across to Kubernetes using GKE. This move will leverage our Cloud Native charts, which with GitLab 11.0 are now in beta.

How we’re preparing for the migration

Geo

One GitLab feature we are utilizing for the GCP migration is our Geo product. Geo allows for full, read-only mirrors of GitLab instances. Besides browsing the GitLab UI, Geo instances can be used for cloning and fetching projects, allowing geographically distributed teams to collaborate more efficiently.

Not only does that allow for disaster recovery in case of an unplanned outage, Geo can also be used for a planned failover to migrate GitLab instances.

GitLab Geo - Migration

Following our mantra of dogfooding everything of our product, we are using Geo to move GitLab.com from Microsoft Azure to Google Cloud Platform. Geo is working well and scales because it's been used by many customers reliably since going GA. We believe Geo will perform well during the migration and plan this event as another proof point for its value.

Read more about Disaster Recovery with Geo in our Documentation.

The Geo transfer

For the past few months, we have maintained a Geo secondary site of GitLab.com, called gprd.gitlab.com, running on Google Cloud Platform. This secondary keeps an up-to-date synchronized copy of about 200TB of Git data and 2TB of relational data in PostgreSQL. Originally we also replicated Git LFS, File Uploads and other files, but this has since been migrated to Google Cloud Storage object storage, in a parallel effort.

For logistical reasons, we selected GCP's us-east1 site in the US state of South Carolina. Our current Azure datacenter is in US East 2, located in Virginia. This is a round-trip distance of 800km, or 3 light-milliseconds. In reality, this translates into a 30ms ping time between the two sites.

Because of the huge amount of data we need to synchronize between Azure and GCP, we were initially concerned about this additional latency and the risk it might have on our Geo transfer. However, after our initial testing, we realized that network latency and bandwidth were not bottlenecks in the transfer.

Object storage

In parallel to the Geo transfer, we are also migrating all file artifacts, including CI Artifacts, Traces (CI log files), file attachments, LFS objects and other file uploads to Google Cloud Storage (GCS), Google's managed object storage implementation. This has involved moving about 200TB of data off our Azure-based file servers into GCS.

Until recently, GitLab.com stored these files on NFS servers, with NFS volumes mounted onto each web and API worker in the fleet. NFS is a single-point-of-failure and can be difficult to scale. Switching to GCS allows us to leverage its built-in redundancy and multi-region capabilities. This in turn will help to improve our own availability and remove single-points-of-failure from our stack. The object storage effort is part of our longer-term strategy of lifting GitLab.com infrastructure off NFS. The Gitaly project, a Git RPC service for GitLab, is part of the same initiative. This effort to migrate GitLab.com off NFS is also a prerequisite for our plans to move GitLab.com over to Kubernetes.

How we're working to ensure a smooth failover

Once or twice a week, several teams, including Geo, Production, and Quality, get together to jump onto a video call and conduct a rehearsal of the failover in our staging environment.

Like the production event, the rehearsal takes place from Azure across to GCP. We timebox this event, and carefully monitor how long each phase takes, looking to cut time off wherever possible. The failover currently takes two hours, including quality assurance of the failover environment.

This involves four steps:

Since these documents are stored as issue templates on GitLab, we can use them to create issues on each successive failover attempt.

As we run through each rehearsal, new bugs, edge-cases and issues are discovered. We track these issues in the GitLab Migration tracker. Any changes to the failover procedure are then made as merge requests into the issue templates.

This process allows us to iterate rapidly on the failover procedure, improving the failover documentation and helping the team build confidence in the procedure.

When will the migration take place?

Our absolute top priority for the failover is to ensure that we protect the integrity of our users' data. We will only conduct the failover once we are completely satisfied that all serious issues have been ironed out, that there is no risk of data loss, and that our new environment on Google Cloud Platform is ready for production workloads.

The failover is currently scheduled for Saturday, July 28, 2018. We will follow this post up shortly with further information on the event and will provide plenty of advance notice.

Install GitLab in 2 minutes

With Ubuntu, Debian, CentOS, openSUSE, and Raspbian packages or from source

Install GitLab Now