►
From YouTube: How GitLab uses Gitpod – Michael Friedrich
Description
Modern development environments are not bound to a single application, oftentimes there are software dependencies to resolve and runtime limitations on operating systems to overcome. VMs and containers helped make this easier, recent times have moved development environments to the cloud. Everyone can contribute - no matter the hardware or software resources, operating systems, or runtime environments. Learn how GitLab uses Gitpod to onboard contributors with the GitLab Development Kit (GDK). The native integration into GitLab enables developers to apply best practices for their own projects. This talk shares use cases, best practices and hidden gems for the DevSecOps lifecycle.
A
Hello
everyone
today,
I
want
to
show
you
how
gitlab
uses
gitpod
and
how
everyone
can
contribute.
My
name
is
marty.
I'm
a
developer
evangelist
with
gitlab
since
14
months
now.
A
My
goal
is
to
make
it
easier
to
use
gitlab,
integrate,
gitlab
talk
about
cloud
native,
kubernetes,
monitoring,
ops,
automation,
everything
else,
I'm
currently
living
in
the
nuremberg
area,
and
if
you
don't
find
me
on
social
as
dns
mihi,
which
is
pronounced
or
spelled
as
m
dns
m-I-c-h-I,
you
will
find
me
around
like
building
lego
models
and
other
stuff,
so
totally
tweet
me
check
it
out
and
learn
what
we're
doing
at
gitlab.
A
A
What
are
typically
examples,
how
we
incorporate
git
port
when
developing
things
around
gitlab,
with
pages
with
learning
woochies
with
diving
into
the
gitlab
development
kit
and
further
gitpod
integrations.
The
thing
is
just
to
mention:
gitlab:
the
company
has
been
incorporated
in
2014
and
all
the
amazing
features
and
the
devops
live
cycle
set
aside.
A
We
have
an
have
an
amazing
open
source
community
around
it
with
many
contributors,
and
we
want
to
make
it
really
easy
to
contribute
and
not
wait
for
a
long
time
to
get
the
development
environment
started,
and
this
is
where
it
was
like
in
the
beginning.
Everyone
starts
fresh.
You
have
like
those
best
practices.
You
try
copy
paste
from
different
sources.
The
language
is
different,
the
application
is
different.
A
The
operating
systems
differ
so
like
you
started
creating
docker
environments
for
easy
development,
but
it's
not
the
same
as
on
windows,
as
in
linux,
the
dependencies
break.
There
is
different
behavior
involved
and
everything
else
feels
like
it
feels
a
little
unsafe
and
you
probably
need
to
do
pair
programming
to
teach
trainees
and
new
team
members
and
do
the
onboarding
stuff,
and
I
provided
an
example
from
my
past,
which
is
like
I
started
using.
A
I
started
compiling
things
with
cmake
and
like
gonna,
introduce
me
to
ninja,
and
I
was
like:
what's
that,
that's
a
better
make
okay,
then
I
need
to
update
the
def
development
documentation
for
contributing
and
making
our
lives
easier
and
make
future
developers
happy
or
even
more
happy.
So
it's
about
like
onboarding
should
be
easy,
but
we
also
want
to
provide
run
books.
So
you
have,
we
have
the
same
environment
for
everyone
we
have
reproducible
builds.
We
also
have
the
same
error
messages
or
the
same
triggered
errors
when
the
provisioning
fails.
A
We
want
to
really
make
it
easy
to
contribute,
and
sometimes
it's
also
the
problem
that
cicd
deployments
involve
certain
steps,
stages,
jobs
and
it's
not
fast
enough-
we're
working
on
making
fast
enough,
but
oftentimes.
You
really
would
just
want
to
see
something
or
test
it
out
and
like
have
a
development
environment
somewhere,
which
is
the
same
as
like
from
your
colleague
or
team
member.
A
The
thing
is:
sometimes
development
environments
are
really
hard
to
configure,
even
if
you
run
a
local
and
simple
script,
it
takes
you
30
minutes
to
60
minutes,
and
sometimes
it
just
breaks
and
it's
not
fun,
and
I
also
probably
don't
want
to
install
the
kubernetes
cluster
myself
to
just
start
contributing.
It
should
be
doing
something,
but
I
I
don't
want
to
link
you
when
it
is
just
for
that.
A
So
the
thing
is:
containers
we're
learning
that
and
we
kind
of
need
to
provide
that.
But
the
problem
is
here:
it's
a
docker
file.
We
need
best
practices.
There
is
maybe
a
docker
compose
yummy
to
learn.
We
probably
need
to
learn
about
the
builder
images.
Other
best
practices
do
we
need
kubernetes
to
run
it
creating
and
help
chart
things
might
get
over
engineered
docker
compose
is
an
extra
file.
You
need
an
extra
binary,
you
need
to
download
and
install.
A
A
We
won't
still
want
to
make
it
easier
for
onboarding.
We
want
to
have
on
demand
resources,
which
means
I
can
start
a
port
a
container
in
the
cloud
when
I
need
it
and
I
don't
need
to
click,
create
a
ticket
and
say
hey.
I
want
to
buy
a
new
hardware
for
our
new
team
member
and
also
don't
want
to
wait
for
any
like
licenses
and
the
local
ide
license
takes
eight
weeks
up
until
then.
You
cannot
start
coding.
A
A
A
I
just
want
to
develop
it
and
see
immediate
success,
so
we
found
out
hey,
there
is
git
pod,
sounds
super
cool
and
which
really
wanted
to
get
out,
dig
it
in
dig
into
it
and
try
it
out
and
figure
out
how
we
can
use
it
for
ourselves
and
like
for
our
projects,
making
it
easier
to
contribute
and
also
to
develop
our
own
applications.
A
The
first
steps
with
gitpod
are
conveniently
easy.
You
need
to
log
in
and
create
an
account
which
you
can
just
do
with
your
gitlab
account
using
it
as
an
oauth
application.
A
I've
done
it
already
just
to
prepare
it
for
this
session
and
the
other
thing
is
when
you're
navigating
into
a
project,
for
example,
to
learn
rust
for
the
first
time
or
python
or
golang
or
whatever,
whatever
you
want.
A
So,
in
this
specific
example,
I've
already
created
a
new
project
to
learn,
rust
and
navigate
it
into
the
gitlab
repository
and
instead
of
opening
up
the
web
ide,
I
just
launched
the
gitpod
environment.
This
is
basically
what
what
comes
up
when
I
launched
this
interface
and
for
the
demo
stuff,
which
I
already
prepared,
because
I
only
have
a
couple
of
minutes.
A
A
Yet
the
thing
is
cool
thing
is:
I
can
just
use
the
rust
compiler
in
the
terminal,
so
I
have
access
to
the
the
source
code
in
on
the
cli
in
this
container,
and
I
can
compile
just
with
top
top
the
hello
ros
file
and
this
created
something
called
a
binary
which
I
can
execute
now
and
I
can
see
that
it
prints
this
message
directly
to
the
output.
I
can
stop
this
container
now
this
this
workspace
and
continue
next
week.
A
Learning
the
next
steps
around
rust
or
whatever
whatever
comes
to
mind,
and
I
don't
need
to
learn
the
cli
over
here.
I
can
just
continue
continue
here
and
run
things
automatically
and
also
open
ports
for
running
a
web
application.
We
will
see
that
later
on.
A
The
cool
thing
is,
I
can
basically
start
simple
with
gitpod
but
extended
to
to
my
own
projects
and
even
more
than
one
cool
thing
is.
You
can
also
install
the
visual
studio
code,
extensions
into
getport
and
the
ide,
which
means
you
can
directly
push
to
gitlab.
You
can
use
the
merch
request
integration.
A
You
can
basically
benefit
from
everything
which
you
would
normally
install
into
visual
studio
code
on
your
local
environment,
directly
integrated
into
gitpod.
A
There
are
also
instructions
on
this
slide,
which
will
be
shared
later
on
how
to
like
add
your
personal
access
token
to
do
the
authorization,
dance
and
everything
else,
but
this
works
nicely
out
of
the
box
with
just
a
little
configuration
of
adding
the
access
token
and
then
you're
good
to
go.
You
can
also
install
it
globally,
so
you
don't
need
to
do
it
for
every
project
all
the
time
you
just
have
a
global
access
token
for
gitpod
and
that's
about
it.
A
The
other
thing
is
when
we
start
diving
into
the
web
apps
or
like
using
git
pod,
and
one
of
the
first
things
we
encounter.
That's
developed
by
bunch
lists
would
probably
want
to
integrate
it
with
hugo,
which
is
a
static
site,
generator
for
gitlab
pages,
for
example,
and
just
make
use
out
of
that
because
sometimes
you
want
to
have
a
sort
of
review
app,
and
this
is
currently
not
directly
possible
so
like
running
running
the
hugo
web
server,
which
is
basically
hugo
server
dash
large
d
or
capitalized
d.
A
This
should
be
possible
in
the
same
sense,
with
a
git
pod
environment,
because
I've
said
earlier,
you
can
just
expose
a
web
application
port
http,
and
then
it
should
be
running.
There's
a
certain
thing
needed
to
like
use
this
with
git
port,
but
mike
lightner
made
this
happen
a
while
ago
for
our
everyone
can
contribute.com
coffee
chat
round
which
is
actually
being
deployed
just
like
this.
A
It
started
out
the
port,
and
this
is
a
hugo
server
which
has
been
run
so
I
started
this
earlier
and
I
can
just
open
up
the
browser
and
see
a
preview
of
what
I
am
currently
developing
over
here
and,
for
example,
if
I
would
need
to
if
I
would
want
to
change
something
on
the
layout,
I
could
totally
do
that
now.
I
won't
do
it
now.
I
would
encourage
you
to
try
it
out
by
yourself
with
the
huge
template
and
just
reuse
the
content.
What's
what's
in
there
or
actually
what's
configured
in
there.
A
This
is
really
nice
and
convenient
the
other
thing
around.
This
is
a
while
ago.
I
wanted
to
learn
vouchers
to
contribute
myself
even
more
to
gitlab,
and
so
I
started
creating
a
fresh
voucher
project
and
wanted
to
deploy
it
using
the
five-minute
production
app
automatically
to
aws
and
speed
up
all
the
things
and
then
I
thought
about
well.
I
could
also
integrate
gitpod
because
it
makes
it
even
more
easy
to
contribute.
A
So
I
created
my
own
workspace
image,
which
is
possible
by
providing
this
as
an
image
configuration
for
the
inside
the
dotget.yaml
file
and
the
main
thing
is
it
just
imports?
What's
already
there?
So
there's
the
full
workspace
environment
available,
and
I
also
want
to
install
the
wu,
cli,
npm
or
node
module.
A
This
is
needed
for
going
further
and
the
other
things
are
basic
things.
You
can
run
tasks
in
in
the
workspace
in
this
initial
initialization,
which
means
you
run
yarn
in
store
and
then
the
answer.
So
this
is
basically
opening
up
the
web
browser.
It
runs
on
port
8080
and
if
you
open
it
up,
if
you
define
the
action
open,
the
port
means
open
a
new
browser
tab.
You
can
also
install
extensions
from
visuals
to
decode
automatically,
and
this
this
is
basically
what
is
shown
over
here
and
currently
it's
running
over.
A
At
this
point,
I
have
some
open
ports,
which
means
I
can
open
this
up
and
can
immediately
see
what
I
have
provisioned
and
what
I
can
change.
So
it's
not
it's
not
super
convenient.
Now
I
still
I'm
still
learning,
which
is
from
time
to
time
and
keep
using
this
project.
I
still
want
to
animate
this,
but
I
I'm
still
learning
how
to
animate
svgs
with
wooches.
A
That's
one
of
one
of
the
things
you
can
do.
The
most
interesting
part
is:
how
can
I
actually
develop
gitlab
with
gitpod?
What
is
the
most
benefit
like
gitlab
is
a
huge
project
and
we
have
so
many
dependencies
and
components
being
involved,
and
this
takes
a
while
to
install
so
oftentimes.
It's
like
more
than
one
hour.
A
You
need
to
like
install
the
ruby
dependencies,
golang
specific
other
things,
no
chest
for
voodoo
and
and
and
so
on.
We
need
to
run
service
demons
and
oftentimes.
You
don't
have
a
vagrant
environment
or
kubernetes
environment
available
for
everyone,
and
we
also
want
to
run
the
icd
and
have
the
runners
available
picking
up
the
jobs
so
depending
on
where
you
want
to
contribute
something.
You
probably
need
some
sort
of
like
huge
environment,
and
it's
also
sometimes
the
problem
that
the
local
resources
are
not
good
enough.
I'm
just
think
good
enough.
A
It's
not
powerful
enough
and
it's
everyone
should
be
able
to
contribute,
no
matter
if
you're
running
it.
If
you're
running
on
on
a
low-end
chromebook,
for
example,
or
if
you
haven't,
have
a
macbook
air
for
for
easier
traveling
or
something
else,
it
shouldn't
it
shouldn't
matter
where
you're
on
you
should
be
able
to
use
it
and
contribute.
A
The
gitlab
development
kit
combines
everything
around
this,
and
it
also
has
a
documentation
meanwhile,
and
we
also
have
community
blog
posts
and
blog
posts
around
this
topic,
how
to
actually
run
git
port
with
the
gitlab
development,
kit
and
gitlab
itself,
and
this
is
described
in
this
documentation
over
here
which
instructs
you
how
to
work
with
that.
As
a
gitlab
team
member,
I
can
immediately
start
it
out
of
the
repository,
because
I
have
the
permissions
to
do
so.
A
As
as
a
wider
community
contributor,
you
can
fork
the
repository
and
continue
starting
the
gitpod
environment.
This
takes
quite
a
while,
so
I
took
took
advantage
of
this
presentation
and
started
it
already,
so
you
can
see
that
we
have
something
over
here,
but
it
is
still
doing
something-
and
I
think
I've
run
into
a
problem
over
here
now,
but
it's
good
that
we
can
actually
do
something.
A
Maybe
I've
I've
hit
the
bug
while
creating
this.
The
thing
is,
I
can
jump
right
here
and
we
basically
I
did
all
the
steps.
The
thing
is:
all
services
have
been
shut
down,
it
did
something.
Migrations
have
been
run.
This
is
always
the
best
when
you're
doing
a
recording
and
then
it
something
is
broken.
A
The
main
exercise
would
be
now.
Okay,
we
have
a
running
or
we
should
be
having
a
running
gitlab
environment
now,
but
it
didn't
work
for
some
reason.
The
thing
what
you
can
see
actually
is:
it
did
a
lot
of
things,
so
it
started
the
back
end
did
all
the
things
and
the
gdk
is
now
over
here
and
has
been
run.
A
Maybe
let's
try
it
again.
It
did
something.
A
A
We
should
probably
do
that
live
next
week
or
when
this,
when
the
talk
is
being
presented
on
tuesday,
we
should
try
it
out.
The
thing
is,
I
I
don't
know
how
to
fix
this
yet,
but
I
probably
it's
more
authentic.
When
something
breaks
the
thing
we
can
do
and
the
thing
we
did
for
making
this
happen
doesn't
matter
on
on
the
error.
A
Now
we
have
the
development
environment
provisioned
with
workspace
image,
and
this
can
be
built
with
using
the
normal
ci
cd
workflow
for
building
docker
images,
push
it
to
the
gitlab
registry
and
then
use
it
as
an
image.
A
This
is
one
thing
which
has
been
prepared
and
it
also
runs
all
the
database,
migrations
and
dependency
installs
and
all
the
things
the
other
cool
thing
it
does.
Is
it
installs
the
extensions
which
we
need,
so
you
can
automatically
install
the
gitlab
workflow
as
an
extension
and
different
other
things
which
make
it
more
convenient
to
use,
and
you
have
everything
pre-installed
in
the
environment
so
set
aside,
that
something
is
not
working
right.
A
Now
we
have
immediate
access
to
all
the
things
which
gitlab
provides
and,
if
I
want
to,
for
example,
contribute
to
renaming
the
the
default
branch
from
from
master
to
main.
We
have
the
ci
cd
templates
available
somewhere
over
here
in
this
directory,
and
we
can
like
check
it
out
and
continue
contributing
and
then
test
it
later
on.
There
are
some
steps
involved
describing
how
to
register
the
the
gitlab
runner
now
this
needs
to
be
done
manually,
but
you
know
where
we
want
to
go.
A
I
recently
created
an
to
update
the
docker
and
docker
image
template
this
also
has
been
merged
already.
So
this
is
in
good
in
good
preparation,
but
I
I
think
there
are
some
there
could
be
some
templates
still
referring
to
a
different
branch
over
here.
This
has
been
done
already,
for
example,
but
yeah.
This
could
be
some
entry
point
to
continue
working
next
to
back
and
work
front
and
work
anything
else
around
contributing
to
gitlab.
A
If
you
want
to
dive
deeper
into
what's
coming
with
gitpod,
I
recommend
checking
out
the
other
talks.
There
is
a
feature
preview
around
which
gives
you
access
to
root
access
with,
which
provides
you
with
root
access
for
ports
and
containers
and
changing
the
default
ide,
which
should
be
done
with
visual
studio
code.
A
To
be
honest,
recommend
to
check
it
out.
I
didn't
try
it
myself.
Yet,
if
you
want
to
do
some
more
things
with
learning,
for
example,
golang
you
can
use
gitpod.
This
is
something
we
did
in
the
past
or
if
you
want
to
learn
python,
it's
also
possible
because
the
workspace
has
everything
pre-installed,
so
you
can
really
use
it
as
your
development
environment
for
learning
a
new
programming
language
and
continue
further
with
like
web
ad
development
and
more
things,
but
really
like
get
get
things
going.
A
We
should
totally
fix
the
problem
I've
encountered
now,
while
pres
doing
the
recording
and
probably
next
week
it
will
be
soft
already.
I
want
to
thank
you
for
your
attention.
I
hope
you've
learned
something
new
around
gitport
and
how
to
contribute
to
gitlab
and
how
to
make
your
life
easier
with
your
own
projects,
and
with
that,
I
wish
you
a
pleasant
day
and
thanks
for
your
attention.