
What’s Next for Gitlab CI: Auto DevOps - hardwaresofton
https://about.gitlab.com/2017/06/29/whats-next-for-gitlab-ci
======
knownothing
"Gitlab dominates" 5% of the hosted market vs 95% of the SaaS market. And
their reported popularity is based on data from a single CI company. This is
further skewed since it's one of a few CI tools that actually supports Gitlab
as an OAuth provider.

There's no way this claim would stand up to any scrutiny or more data-
gathering. It's just marketing fluff.

EDIT: More on what upset me about this claim.

First, we have no idea of what the composition of the 10,000 applications
Bitrise surveyed are like. There could be a single company that uses Gitlab to
test thousands of applications that completely invalidate this result.

Second, this insults my (and every other competent readers') intelligence.
This is badly done marketing. And their audience is developers. So they know
they're misleading us but I guess they don't care.

~~~
zxcmx
Stats don't make much sense. Self hosted bitbucket is huge.

I've worked for Atlassian companies lately but none of their crap calls out to
the Internet and tells the mothership what they're up to. Well I guess they
do. But not in a way that other people can tell. Totally not an Atlassian
shill (often I wish we had gitlab) but their stuff works self hosted real
well.

There's no way a third party could know what the numbers are, because when you
use software which doesn't sell you out, well, you're not sold out.

------
bartvanH
I really like the core of gitlab. It's a really good git hosting system that
is easy to maintain and work with. My self hosted instance has broken only
twice in the last 1.5 years and it was always because of an upgrade and it was
always easily fixed.

But now i have to say i'm afraid gitlab is getting bloated. Why not keep the
core product as a seperate thing from things like CI? a simple plugin style
system would be enough for it to not feel like bloat but feel like extra
options.

~~~
roblabla
I just updated the NixOS gitlab package from 8 to 9[0]. It was a nightmarish
experience. There are 5 microservices :

\- gitlab (the core)

\- gitlab-sidekiq (a work queue)

\- gitlab-workhorse (provides the frontend)

\- gitaly (a git wrapper that caches stuff)

\- gitlab-shell (a shell spawned when doing your git clone)

Those are written in either go or ruby. Sometimes mixing the two in the same
repository. In the main gitlab repo, there is also some unvendored js
dependencies for the frontend, necessitating to jump through some more hoops.

Gitlab has a bunch of hardcoded paths to logfiles and config files. Some
config files are toml, others are yaml. Different services need different
configs, sometimes duplicating the config entries in a different format.

I love gitlab as a product. But as a sysadmin, it's one of the worst thing
I've ever had to deploy.

[0]: Well, it's not pulled there, but it's at
[https://github.com/NixOS/nixpkgs/pull/27159](https://github.com/NixOS/nixpkgs/pull/27159)
if you're interested.

~~~
sytse
Please use the official Omnibus packages to ensure that upgrades are less
likely to break.

I think we use toml for the Runner since it is written in Go and should be
deployed on another server. The rest is mostly in yml files although we trying
to move as much as possible to the UI to make it more user friendly.

~~~
eropple
_> Please use the official Omnibus packages to ensure that upgrades are less
likely to break._

That would be almost precisely against the whole idea of NixOS.

------
flipp3r
"Gitlab dominates self-hosted git"

Dont you mean, Gitlab,

"2/3 of people surveyed by Bitrise, a CI service you may have never heard of,
which is free, are using Gitlab, which is also free"

~~~
philtar
The two statements are not mutually exclusive.

~~~
madez
Neither implies the latter the former.

------
hardwaresofton
OP here, just to note - I'm not an employee or affiliated with Gitlab in any
way (outside of considering working for them once) -- just a rabid fan.

I've been at companies where I've tried (and failed) to convince other
developers/higher ups that something like automatically creating an instance
of an app based on the feature branch (what Gitlab/others are calling a
"review-app"), is the best way to test individual features with high velocity
(of course, this requires one more integration level test in the staging
environment to make sure everything works together well). I'm
impressed/awed/grateful that Gitlab is pulling these features into their 100%
open source solution.

The most common complaints against gitlab are:

\- Gitlab's UI is bad-ish (this is what made me consider going to work
there/contributing and helping fix that)

\- Gitlab is slow

And I think they're dumb. If you think UI on your code hosting tool and slow
file operations (on the order of minutes, not hours) to be what would slow
their org down, instead of the fact that you haven't automated things that
Gitlab wants to automate for free for you (like test deployments actual
deployments, build steps), in one coherent place (no juggling github, jenkins,
jira, whatever else) then I think you're wrong.

~~~
jmiserez
I work with self-hosted Gitlab daily and I’ve never thought the UI was bad or
slow. In fact, I think it works pretty well.

To the other commenters: Do you have any examples?

Also, I’m excited about auto deployment. The less tools one needs to get
software shipped, the better.

~~~
foepys
To see that the UI design is bad at times, take the design of merge requests
and issues for example.

On Github you can easily see what happens, comments are surrounded by a black
border, the name of the comment author and the date are clearly visible and
have a different background color from the comment text. Actions like closing
and re-opening are distinctly different from comments and are color coded
(green -> re-opened, red -> closed, purple -> merged). Emoticons are part of
the comment box and don't visually drift into the next one.

Gitlab on the other hand separates comments by a thin (1px) light-grey line
that is hardly visible on low contrast monitors like TN displays. Closing and
re-opening is also displayed as a light-grey icon on a white background. The
author's name has the same color as the comment text, with the date being,
again, light-grey. Nothing keeps the contents of a comment together, it's all
just text on a white background. The emoticons are just floating around the
comments, with the same margin to the next comment as to the comment they are
belonging to. So you have to _know_ that emoticons are always below a comment.

Github's design is far, far superior to Gitlab's design because it allows
skimming instead of concentrating on finding where each comment begins and
ends.

~~~
svesselov
I appreciate the thoughtful and specific feedback. We are working hard to make
merge requests and issues intuitive and easy to work with. Many of your
observations regarding merge requests are being worked on as part of this
issue: [https://gitlab.com/gitlab-org/gitlab-
ce/issues/33095](https://gitlab.com/gitlab-org/gitlab-ce/issues/33095)

~~~
foepys
I'm really sorry that I cannot help by posting this on your issue tracker but
I don't have the time right now to sift through all relevant issues on Gitlab
to find out where to post and what already has been posted.

My biggest gripe is just that the issue elements (comments, actions, label
changes, description edits) are looking too similar for a quick glance. The
light-grey font on a white background makes it pretty hard. My suggestion
would be to do it a bit like Gihub and to add a black border around stuff,
take another background color for actions, and get rid of the grey font and
replace it with black throughout.

------
willvarfar
I would imagine that git dominates self-hosted git.

I just have bare repos on servers I can ssh into. End of problem.

~~~
wonko1
Of the 2 employers I've had who self-hosted, they both did this. I've also
done this when self hosting, it's super easy.

I guess there are probably no surveys of this though...

~~~
corobo
It's super easy for you. I tried to set this up but it's such a pain in the
backside to tell people how to pull the latest code. Ended up with Gitlab and
haven't looked back.

I didn't even realise Gitlab doesn't have auto-deploy yet.. We set up a
.gitlab-ci.yml script that deploys the code.

------
wickchuck
We've been on Gitlab since version 5 and for the most part it's been a
pleasure to work with. The omnibus version has made things way easier to
install/upgrade, so not sure what the fluff is about being hard to maintain.
The UI is adequate and they are working on improvements to smooth out the
rough edges a bit. Looking forward to the improvements and new features to
come. Just wanted to post something positive instead of the nit picky hate
I've been seeing lately about Gitlab...

------
dehef
I always use [http://gitolite.com](http://gitolite.com), thats enough.

nb: I dont see the point of the graph about numbers of questions on SO. A high
level of questions = A lot of problem, no :)?

~~~
raziel2p
I really like gitolite, except how you need to add users and SSH keys through
a git repository. I'd prefer just plain configuration files that I could
manage with my configuration manager.

~~~
lazarus101
I've wasted so many hours trying to convince Windows user that they don't need
any passwords for gitolite, they just need to check that Pageant is running
and has the right key loaded :D

------
kondro
Pretty sure both GitHub Enterprise and BitBucket Server are the dominant self-
hosted Git solutions.

~~~
cyphar
As mentioned in TFA, that was based on this source[1] which surveyed what "app
developers" used. If you have alternative statistics, I'd be happy to see
them, but GitLab did provide a source for their claim.

[1]: [http://blog.bitrise.io/2017/01/27/state-of-app-
development-i...](http://blog.bitrise.io/2017/01/27/state-of-app-development-
in-2016.html#self-hosted)

------
Top19
I really like Gitlab.

It allows you to organize your repos, and do things like nesting them in
categories.

Why Github won't add this feature is beyond my understanding, and I really
appreciate Gitlab stepping up and adding this into their platform.

They also have a great system for migrating your repos over from Github.

~~~
claytonjy
This! I'm at a small consulting shop (< 5 ppl), so it's really, really nice to
have one subgroup per client; I'd hate having pages and pages of
"client1-project1", "client1-project2", ... in a Github setup.

------
jancsika
For some reason, different parts of the Gitlab CI software expect different
names for the runner binary-- possible names are gitlab-ci-multi-runner and
gitlab-runner.

If you set up a runner in a VM and want to upload artifacts, for some reason
Gitlab CI requires you to install gitlab-ci-multi-runner on the VM guest (even
though it is the host that is actually the runner). But when you do that, you
have to actually go through the entire build process before seeing a non-
terminal error that gitlab "couldn't find gitlab-runner". So now you have to
go in on the VM guest, manually create a symlink from gitlab-ci-multi-runner
to gitlab-runner, take a new snapshot of the VM state, and artifact upload
will now work.

I say "non-terminal" above because a failure to upload the artifact doesn't
fail the build. So you can be looking at all checkmarks for everything in your
pipeline and have no idea for which of those jobs you actually got artifacts.

Also, every once in awhile I'll get failed builds where there is nothing at
all in the build log. Typically, clicking "Retry" will successfully start a
new build and complete successfully.

Also, there is no way to specify to gitlab to keep only the last N artifacts.

On the positive front, I finally figured out a way to set up an ssh server
from _within_ the msys2 environment in Windows, which requires no development
whatsoever on the gitlab-ci infrastructure. That means gitlab-ci will ssh into
msys2 on the runner, giving me a POSIX-y build environment on all my
platforms. So that's nice.

Sorry if this sounds overly negative and like a poor substitute for actually
filing bugs. But the last time I worked on fixing a bug it took months for the
maintainer just to click a button. This seems to be the only place I get
timely response.

~~~
bikebilly
Thanks for your feedback, we're seriously considering all the input from the
community, wherever it is coming from.

Talking about artifacts retention policy, we actually support defining an
expiration date and we're also considering to add a maximum number in the
future. You can find discussions about this topic in
[https://gitlab.com/gitlab-org/gitlab-
ce/issues/23777](https://gitlab.com/gitlab-org/gitlab-ce/issues/23777) and
[https://gitlab.com/gitlab-org/gitlab-
ce/issues/19208](https://gitlab.com/gitlab-org/gitlab-ce/issues/19208): in
these issues there are also problems and consideration about having this
feature implemented.

Feel free to jump in and push your ideas!

------
throwaway91111
You know, this feature looks really cool, but the branding "Auto DevOps" seems
like word-cloud clickbait and does not actually describe any distinguishing
characteristics of the feature. DevOps is already a fuzzy area; what is Auto
DevOps? It's at least another order of magnitude of semantic ambiguity.

~~~
alchemism
The origin of "Auto DevOps" does seem to be a product branding creation:

[https://gitlab.com/gitlab-org/gitlab-
ee/issues/2517](https://gitlab.com/gitlab-org/gitlab-ee/issues/2517)

~~~
throwaway91111
That issue should have basically been in the press release; it's a lot clearer
when they dump the branding and focus on actual concrete features they
provide.

~~~
Snappy
Thanks for the feedback. Maybe next time we talk about it, we'll be more clear
about the features.

------
calafrax
Gitlab is great. It took 5 minutes to install and has run flawlessly since.

I was blown away by how complete, fully featured, and easy to use it is for a
free product.

~~~
Snappy
That's great to hear; thanks for the feedback!

------
anomie31
Huh, I thought gogs and its forks dominated self hosted git, because it's just
so easy to set up and use.

------
jpkeisala
Does Gitlab have equivalent for Github Team account (5 users)?

~~~
cmatija
We have free private repositories for all users and you can organize users
into groups. Is this what you're looking for? If not, could you provide more
context into what you're looking for?

------
juiyout
I can no longer imagine using a CI system without job scripts committed. Could
someone let me know why jenkins is still more popular?

