Blog Company GitLab's 2018 Product Vision: Prototype demo
February 26, 2018
7 min read

GitLab's 2018 Product Vision: Prototype demo

Take an early look at where we're heading this year.

gitlab-live-event.png

At GitLab, we believe there's something magical about a video demo as a way to
convey strategic
vision
. We've
created this video to internally align where we're going; and since we're
transparent by
default
, you get to see
it as well!

So sit back, watch the video, follow
along with the
presentation
,
or read below for a lightly edited transcript of the video. You can also play
with the prototype
yourself (click the
header to move to the next page, click the left sidebar to move back) or
follow our progress.

Introduction

Today I’m going to talk about GitLab’s product vision for 2018. Specifically,
I’m going to show a prototype of what the product might look like.

As you can imagine with a product vision as extensive as ours, there’s a lot to
cover. So if you only remember three things from this presentation, know that:

  1. We’re going after the complete DevOps lifecycle, and specifically,
  2. we want Operations and Security to use GitLab as a primary interface, and
  3. a single application covering this entire scope brings emergent benefits, specifically that people can work concurrently, on the same data, with the same interface.

So hopefully it’s
obvious
by
now that we’re going
from covering the development lifecycle to covering the entire DevOps lifecycle.

Dev to DevOps{: .shadow}

From Dev to DevOps

But traditional DevOps tools only focus on the intersection between Dev and Ops,
and GitLab is going to deliver a complete scope for both Dev and Ops. In
particular, that means we’re not just looking at how Developers can get their
code into production, but how Operations can then monitor and manage those
applications and underlying infrastructure. A big milestone for GitLab will be
when Operations people log into GitLab every day and consider it their main
interface for getting work done.

But even that’s not really sufficient, as we’re redefining what the scope of
DevOps even is; we’re also covering Security and Business needs (such as project
managers). Rather than coming up with some crazy DevSecBizOps name, we’re just
calling it DevOps, and putting it all into a single application.

DevSecBizOps{: .shadow}

No DevSecBizOps; a single application for DevOps

And with that, each group gets an experience tailored to their needs, but shares
the same data and interface as everyone else, so collaboration is easy. Imagine
an Ops person finds an issue in production, drills down to find the application
with the problem, and sees that a recent deploy caused the problem.
Simultaneously, a dev gets alerted that their recent deploy triggered a change
in production, goes to the merge request and sees the performance change right
there. When Dev, Ops, and Security talk, they’re looking at the same data, but
from their own point of view.

Now the scope we’re going after is quite large, with a lot of new categories
being introduced this year. I won’t go into all of these today, but instead I
want to focus on a couple flows that paint a picture of how this could look.

Product categories{: .shadow}

New product categories in 2018

Interactive prototype

For this, I’ll switch over to an interactive
prototype
. [Note: if you want to try it for yourself, click the header to
move to the next page, click the left sidebar to move back.]
While this may
look like a fully functioning instance of GitLab, it is just a demo and many of
these features have not been implemented yet.

Development flow

I’ll start by showing a merge request.

Developer Flow{: .shadow}

Developer Flow: Merge Request

One of the new elements we see is a “Test summary” which shows a deeper
understanding of your test results. Using standard JUnit XML output, we can tell
exactly which tests fail, and provide that information in a nice summary format.

We also see links to the binary artifacts and container images associated with
this merge request.

As I scroll down, we see a lot of information about the extensive collection of
tests we’ve run on the code.

First we see the code quality section, which we’ve had for a while.

Then the relatively new Security section with static application security
testing
to find vulnerabilities in your code or your code's dependencies,
dynamic application security testing to find vulnerabilities while actually
running your app, and an analysis of any vulnerabilities in any of your
underlying Docker layers.

We’ll also show how your application performance has changed.

And lastly, we’ll check your dependencies for any violations of your company’s
license policy.

Now, this is a LOT to cover for every merge request, so we have separate issues
to redesign for all this new information, but I wanted to show it all to you now
to see how much we’re doing automatically for you.

Down below all of that is an enhanced code diff that highlights any code you
should pay attention to because of code quality concerns or missing test
coverage.

code coverage{: .shadow}

Code coverage and alerts

This is all part of the “shift left” movement, where important quality,
security, and performance tests that may have once been run manually, if at all,
and usually much later in the development lifecycle, are now being run
automatically as soon as the first code is written.

There’s a lot more planned, but this is a good idea of the direction we’re going
in to help Developers get their ideas into production faster.

Operations flow

But that only covers part of our vision, because there’s also
the Operations point of view. And a big milestone for our DevOps vision is when
Operations start using GitLab as their primary interface.

Operations health{: .shadow}

Operations flow: operations health dashboard

There’s a long way to go, but here we’re answering the question, “How is
production doing?” In this case we’re seeing a group with four projects in it, and
a quick green/yellow/red indicator of how those projects are doing. We’ve put a
graph of the Apdex score there to represent the one-metric-to-watch.

Below the projects is a view of the cluster, including CPU and memory usage,
possibly indicating when you need to scale up or down the cluster size.

Now, if there was an indication that something was wrong, you’d be able to drill
down and see more details and rectify the situation.

But that’s only the first-level understanding of operations. I mean, if we’ve
got the data about how things are doing, why not proactively alert you to the
problem? Well, that’s the second level, and a natural step. But we’re not going
to stop there. The third level is to automatically detect and resolve any
issues. If your app needs more resources, just autoscale it. If you then hit a
limit on the cluster, well, add a node to the cluster automatically. The
Operations experience then should really just be that I go to work in the morning
and see an email summary of what has happened, without me having to do anything.

But autoscaling is just scratching the surface, as Operations involves a lot
more, from application, infrastructure, and network monitoring, to security
patches. After we’ve got this breadth as a structure, we look forward to the
customer feature requests.

Security flow

So that covers Dev and Ops, but we’ve got a lot of security
features in the product now. How about treating Security folks as first-class
citizens and giving them their own Security Audit view?

Security audit{: .shadow}

Security flow: security audit

This is your one-stop-shop to see what security vulnerabilities have been
detected across the group, showing any automatic or manual actions taken to
address the vulnerabilities, and of course letting you click into details.

In the top left we’re reporting an overall success rate in hitting our own
internal SLAs for security vulnerabilities.

Full circle

Let’s drill down on one of these vulnerabilities.

Automatic updates{: .shadow}

Automatic updates for security vulnerabilities

We see that the GitLab Bot automatically created a merge request to upgrade one
of our dependencies because it noticed that a new version was released.

Since the tests all pass, and of course the merge request fixed the
vulnerability, the merge request was automatically merged by the Bot as well.

But, to bring it full circle, l’m showing here that after merging, the CI/CD
pipeline started deploying automatically to Production. I mean, why leave a
known, fixable security vulnerability live any longer than it needs to, right?

But, in this case, even though all tests passed, we still saw the error rate
jump to more than five percent, so we automatically stopped the rollout process, and
actually rolled back to the last-known good version immediately.

Then, the Bot detects this and automatically reverts the merge request so we can
leave master in a good state.

Phew.

Summary

So, wrapping it up:

  1. We’re going after the complete DevOps lifecycle,
  2. we want Operations and Security to be our new favorite users, and
  3. we want teams working concurrently.

And that’s the GitLab Product Vision for 2018!

We want to hear from you

Enjoyed reading this blog post or have questions or feedback? Share your thoughts by creating a new topic in the GitLab community forum. Share your feedback

Ready to get started?

See what your team could do with a unified DevSecOps Platform.

Get free trial

New to GitLab and not sure where to start?

Get started guide

Learn about what GitLab can do for your team

Talk to an expert