{"id":546,"date":"2026-09-06T01:10:49","date_gmt":"2026-09-06T04:10:49","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/2026\/09\/a-historia-do-gitlab\/"},"modified":"2026-09-08T07:57:21","modified_gmt":"2026-09-08T10:57:21","slug":"a-historia-do-gitlab","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/es\/2026\/09\/a-historia-do-gitlab\/","title":{"rendered":"A hist\u00f3ria do GitLab: o tanuki que saiu da Ucr\u00e2nia"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro empurrando a esteira da pipeline do GitLab, com a raposa do projeto acima\" src=\"\/wp-content\/uploads\/2026\/09\/gitlab-historia-v2.webp\" width=\"1052\" height=\"652\" \/><\/p>\n<p>Em 8 de outubro de 2011 Dmitriy Zaporozhets fez o primeiro commit do GitLab. A casa na Ucr\u00e2nia n\u00e3o tinha \u00e1gua encanada; o po\u00e7o comunit\u00e1rio era o problema menor \u2014 faltava uma ferramenta de Git que ele pudesse mudar. Ruby on Rails, inspirado no GitWeb, feito com Valeriy Sizov. Quinze anos depois o GitLab 19.3.1 (26 de agosto de 2026) ainda sai no ritmo de sempre: uma vers\u00e3o por m\u00eas, 177 seguidas at\u00e9 junho de 2026. Do po\u00e7o \u00e0 Nasdaq. O tanuki laranja no meio.<\/p>\n<p><!-- more --><\/p>\n<h2>Ucr\u00e2nia, 2011: um Rails contra o GitHub fechado<\/h2>\n<p>Dmitriy (Dmytro) Zaporozhets queria colaborar com o time sem o GitHub como dono do fluxo. Self-hosted, c\u00f3digo aberto, instala\u00e7\u00e3o que um humano aguenta. O nome veio do GitWeb e da fam\u00edlia \u201cgit alguma coisa\u201d. O commit inicial est\u00e1 no <code data-no-translation=\"\">gitlab-foss<\/code>: 9ba12248, 8 de outubro de 2011. N\u00e3o era empresa. Era fim de semana e noite.<\/p>\n<p>O <a href=\"\/es\/2026\/09\/a-historia-do-git\/\">Git<\/a> j\u00e1 era o disco. Faltava a forge: issue, merge request, wiki, permiss\u00e3o, web. Gitorious existia. GitHub j\u00e1 era o default social. O GitLab nasceu do lado self-hosted \u2014 o servidor que a empresa instala e n\u00e3o manda o c\u00f3digo para a Calif\u00f3rnia.<\/p>\n<h2>2012: panqueca, Hacker News e o CI<\/h2>\n<p>Sytse Sijbrandij \u2014 holand\u00eas, depois Sid para o investidor americano \u2014 viu o projeto, leu o Rails e gostou da qualidade depois de trezentos commits. Postou no Hacker News perguntando quem queria um GitLab.com. O post n\u00e3o subiu. Ele foi fazer panqueca. O telefone encheu. A mulher ficou com a frigideira; Sid passou o dia respondendo. Centenas na beta.<\/p>\n<p>Em novembro de 2012 Dmitriy commitou a primeira vers\u00e3o do GitLab CI. O resto das forges tratava CI como plugin. O GitLab tratou como o mesmo produto. Essa decis\u00e3o \u2014 um aplicativo, do issue ao deploy \u2014 \u00e9 o \u201cmaster plan\u201d que s\u00f3 ganharia nome em 2016. Runner, <code data-no-translation=\"\">.gitlab-ci.yml<\/code>, pipeline no merge request: tudo desce da\u00ed.<\/p>\n<h2>2013\u20132014: EE, empresa, dia 22<\/h2>\n<p>Organiza\u00e7\u00e3o grande pediu feature que o CE n\u00e3o tinha. Dmitriy tu\u00edtou que queria viver de GitLab. Sid e ele fecharam o GitLab Enterprise Edition em 22 de julho de 2013 \u2014 open core: CE MIT, EE com o que telco e banco pagam. Sid fez o commit inicial do site. GitLab B.V. em Utrecht; depois GitLab Inc. nos EUA, sem sede. O primeiro funcion\u00e1rio era da S\u00e9rvia. Dmitriy, Ucr\u00e2nia. Os holandeses que Sid contratou pararam de ir \u00e0 mesa extra da casa no terceiro dia. Remote n\u00e3o foi ideologia. Foi o que sobrou quando ningu\u00e9m aparecia e o Slack j\u00e1 resolvia.<\/p>\n<p>Em 2014 a empresa virou LLC. GitLab Cloud passou a se chamar GitLab.com. Release no dia 22 de cada m\u00eas \u2014 6.5 em janeiro, 7.6 em dezembro \u2014 e o calend\u00e1rio n\u00e3o quebrou desde ent\u00e3o. No fim do ano mandaram a aplica\u00e7\u00e3o para o Y Combinator.<\/p>\n<h2>2015\u20132016: YC, handbook, master plan<\/h2>\n<p>O winter batch de 2015 levou quase o time inteiro para o Vale. Nove pessoas na formatura, mar\u00e7o. O GitLab Handbook entrou no reposit\u00f3rio do site: valores, hiring, onboarding, sal\u00e1rio, tudo default p\u00fablico. CREDIT: Collaboration, Results, Efficiency, Diversity, Iteration, Transparency. A transpar\u00eancia era tamb\u00e9m defesa: comercializar open source costuma matar a comunidade; o handbook era o ant\u00eddoto que Sid descreveu.<\/p>\n<p>Compraram o Gitorious (2015) e migraram usu\u00e1rio. Khosla, seed. Em 2016 o master plan: n\u00e3o ser \u201cmais um GitHub\u201d, ser a plataforma DevOps inteira. S\u00e9rie B de US$ 20 milh\u00f5es. Mais de mil contribuintes, cem mil organiza\u00e7\u00f5es. O time passou de 140.<\/p>\n<h2>31 de janeiro de 2017: rm no banco errado<\/h2>\n<p>Spam de snippet derrubou o PostgreSQL do GitLab.com. No meio da recupera\u00e7\u00e3o de replica\u00e7\u00e3o, um sysadmin rodou <code data-no-translation=\"\">rm -rf<\/code> no diret\u00f3rio de dados achando que estava no secund\u00e1rio. Estava no prim\u00e1rio. 300 GB viraram 4,5 GB. O backup para o S3 estava vazio: <code data-no-translation=\"\">pg_dump<\/code> 9.2 contra Postgres 9.6, o job falhava em sil\u00eancio. Snapshot de disco do banco n\u00e3o existia. Restaura\u00e7\u00e3o de um staging de seis horas. Issues, MR e usu\u00e1rio da janela 17:20\u201300:00 UTC se foram; reposit\u00f3rio Git e wiki, n\u00e3o \u2014 vivem noutro disco. Self-hosted ningu\u00e9m tocou.<\/p>\n<p>O postmortem saiu p\u00fablico, com Google Doc ao vivo. A li\u00e7\u00e3o colou na cultura: backup que n\u00e3o restaura n\u00e3o \u00e9 backup; console de produ\u00e7\u00e3o precisa de guardrail; a transpar\u00eancia do handbook tamb\u00e9m vale quando o tanuki apanha. No mesmo ano compraram o Gitter.<\/p>\n<h2>O que o tanuki \u00e9, por baixo<\/h2>\n<p>N\u00e3o \u00e9 um Git daemon com pele. \u00c9 um stack:<\/p>\n<ul>\n<li><strong>Rails + Puma<\/strong> \u2014 a app. Issue, MR, CI, registry, package, wiki.<\/li>\n<li><strong>Gitaly<\/strong> \u2014 RPC na frente do reposit\u00f3rio Git. Sem isso o NFS antigo n\u00e3o escala.<\/li>\n<li><strong>Workhorse<\/strong> \u2014 o proxy Go que segura upload, git-http e o que o Rails n\u00e3o deve ver.<\/li>\n<li><strong>PostgreSQL + Redis<\/strong> (Valkey entra como op\u00e7\u00e3o no 18.9, porque o Redis mudou de licen\u00e7a) + Sidekiq.<\/li>\n<li><strong>Omnibus<\/strong> \u2014 um pacote, um <code data-no-translation=\"\">gitlab.rb<\/code>, <code data-no-translation=\"\">gitlab-ctl reconfigure<\/code>. Helm para Kubernetes.<\/li>\n<li><strong>Runner<\/strong> \u2014 o agente que pega job do CI. Shell, Docker, Kubernetes executor.<\/li>\n<\/ul>\n<p>CE MIT (e outras pe\u00e7as). EE source-available, pago. GNOME foi para o GitLab em maio de 2018; KDE, 2020. O self-hosted que o GitHub Enterprise cobrava caro o GitLab deu de gra\u00e7a no CE \u2014 e vendeu o resto no EE. O atalho de pipeline Terraform neste blog est\u00e1 em <a href=\"\/es\/2019\/12\/terraform-pipelines-in-gitlab\/\">Pipelines Terraform no GitLab<\/a>. Quem quer forge menor, em Go, olha o <a href=\"\/es\/2026\/09\/gitea-git-self-hosted-runner-tea\/\">Gitea<\/a>.<\/p>\n<h2>All-remote, IPO, o CEO que saiu<\/h2>\n<p>Antes da pandemia o GitLab j\u00e1 se vendia como a maior empresa all-remote do mundo: 1.200 pessoas, 65 pa\u00edses, zero escrit\u00f3rio da companhia. O de San Francisco, 15 lugares, repetiu o padr\u00e3o da mesa de Sid: o vendedor parou de ir. H\u00edbrido, diz o handbook, \u00e9 o pior dos dois mundos \u2014 dois jeitos de falar. WordPress e InVision eram os \u00fanicos pares que o investidor citava. Depois o investidor virou advogado do modelo: hiring mais r\u00e1pido, custo menor.<\/p>\n<p>Em 14 de outubro de 2021 o GitLab Inc. abriu na Nasdaq, ticker <strong>GTLB<\/strong>. Dez anos do primeiro commit. Pre\u00e7o US$ 77; abriu a 94, fechou a 103. Mais de um milh\u00e3o de seats licenciados, 30 milh\u00f5es de registrados na \u00e9poca. Em 2023 a Gartner criou o quadrante de DevOps Platforms e p\u00f4s o GitLab como Leader. No FY2024 veio o primeiro trimestre de lucro operacional non-GAAP.<\/p>\n<p>Em dezembro de 2024 Sid deixou o CEO por sa\u00fade. Bill Staples assumiu. Sid foi fazer o Kilo Code, agente de IA open source. O handbook continua o mesmo documento. O release do dia 22 (hoje numa quinta vari\u00e1vel, mas o m\u00eas n\u00e3o falha) tamb\u00e9m.<\/p>\n<h2>2026: 19.3, Duo, Valkey<\/h2>\n<p>O ano fiscal que fechou em 31 de janeiro de 2026: receita US$ 955,2 milh\u00f5es, +26% sobre o FY2025. 172 releases mensais seguidas naquela data; em junho o site da empresa j\u00e1 contava 177, 50 milh\u00f5es de usu\u00e1rios registrados, 2.500 no time, 5.500 contribuintes. GitLab 18 foi o ano do Duo Agent Platform (GA no 18.8). O 19.0 saiu em 21 de maio de 2026. O <strong>19.3<\/strong> em 20 de agosto; patch <strong>19.3.1<\/strong> em 26 de agosto. Redis AGPLv3 empurrou o Valkey (BSD) para o Omnibus, opt-in desde o 18.9.<\/p>\n<p>O posicionamento mudou o nome \u2014 DevOps, DevSecOps, \u201cintelligent orchestration\u201d \u2014 mas o disco \u00e9 o mesmo: um YAML, um runner, um MR. Self-hosted no Ubuntu ainda \u00e9 Omnibus ou Helm em cima de <a href=\"\/es\/2026\/09\/a-historia-do-kubernetes\/\">Kubernetes<\/a> e <a href=\"\/es\/2026\/09\/a-historia-do-docker\/\">Docker<\/a>. O Git embaixo n\u00e3o mudou: <a href=\"\/es\/2017\/04\/git-simples-e-rapido\/\">Git simples e r\u00e1pido<\/a>.<\/p>\n<h2>O que ficou<\/h2>\n<p>Um Rails na Ucr\u00e2nia, um holand\u00eas com panqueca e um mascote japon\u00eas (o tanuki, c\u00e3o-guaxinim, n\u00e3o \u00e9 raposa). Open core, handbook aberto, um m\u00eas sem furar o calend\u00e1rio. O GitHub ficou com a rede social do c\u00f3digo; o GitLab ficou com o servidor que a empresa instala e com a pipeline que o GitHub foi copiar. 19.3.1, Gitaly, runner, CE MIT. O po\u00e7o secou. O tanuki n\u00e3o.<\/p>\n<p>A hist\u00f3ria do disco: <a href=\"\/es\/2026\/09\/a-historia-do-git\/\">A hist\u00f3ria do Git<\/a>. A forge irm\u00e3, mais magra: <a href=\"\/es\/2026\/09\/gitea-git-self-hosted-runner-tea\/\">Gitea<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Em 8 de outubro de 2011 Dmitriy Zaporozhets fez o primeiro commit do GitLab. A casa na Ucr\u00e2nia n\u00e3o tinha \u00e1gua encanada; o po\u00e7o comunit\u00e1rio era o problema menor \u2014 faltava uma ferramenta de Git que ele pudesse mudar. Ruby on Rails, inspirado no GitWeb, feito com Valeriy Sizov. Quinze anos depois o GitLab 19.3.1 &#8230; <a title=\"A hist\u00f3ria do GitLab: o tanuki que saiu da Ucr\u00e2nia\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/es\/2026\/09\/a-historia-do-gitlab\/\" aria-label=\"Read more about A hist\u00f3ria do GitLab: o tanuki que saiu da Ucr\u00e2nia\">Read more<\/a><\/p>","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[103,46,2,111],"tags":[105,47,48,247,104,246],"class_list":["post-546","post","type-post","status-publish","format-standard","hentry","category-cloud","category-devops","category-linux","category-opensource","tag-ci-cd","tag-devops","tag-git","tag-gitaly","tag-gitlab","tag-tanuki"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/comments?post=546"}],"version-history":[{"count":3,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/546\/revisions"}],"predecessor-version":[{"id":1160,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/546\/revisions\/1160"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/media?parent=546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/categories?post=546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/tags?post=546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}