►
From YouTube: GitLab Runner Autoscaling - AWS
Description
Main Epic: https://gitlab.com/groups/gitlab-org/-/epics/2502
AWS Epic: https://gitlab.com/groups/gitlab-org/-/epics/5223
A
So
today
we
want
to
discuss
what
our
options
are
for
replacing
docker
machine.
A
To
give
a
bit
of
context,
we
started
looking
at
one
specific
scenario,
which
is
aws
autoscaling,
and
the
reason
for
this
is
those
are
pretty
much
our
mostly
high
risk
scenario
at
the
moment.
Just
because
most
people
are
using
the
docker
machine
version,
and
that
is
not
maintained
anymore
and
most
people
don't
use
our
fork
either.
Unless
we
tell
them
to
do
so,
and
we're
also
not
fully
aws
experts
with
docker
machine.
A
So
to
give
a
bit
more
context
to
grakash,
we
we
want
to
replace
our
machine
just
because
it's
a
maintenance
mode
and
we
don't
want
to
keep
maintaining
that
code
base
ourselves,
because
we
have
a
fork
to
fix
some
problems
and
we
don't
want
to
keep
maintaining
it,
because
it's
very,
very
costly
from
our
hand.
A
Okay,
perfect,
so
I
I
want
to,
if
you
have
any
questions,
don't
ask.
I
think
what
I'm
proposing
at
the
moment
would
be
to
provide
a
terraform
template
to
use
autoscaling
groups
for
aws
and
basically
what
this,
how
this
is
going
to
work.
Is
you
have
a
vm
with
gitlab
runner
installed
and
it
can
pick
up
jobs,
and
then
you
have
auto
scanning
groups
from
aws
configured,
so
it
will
scale
up
scale
out
and
scale
and
depending
on
some
metrics
right,
it
can
be
cpu
usage
memory
usage.
A
A
A
So
we
basically
are
migrating
the
auto
scaling
logic
to
the
cloud
provider
via
and
the
plan
is
to
implement
this
for
all
the
cloud
providers,
major
cloud
providers,
which
is
aws,
gcp
and
azure,
and
the
benefit
with
this.
We
also
got
auto
screening
for
windows
as
well
out
of
the
box,
without
integrating
with
more.
C
A
No,
no
gitlab.com,
we
first
started.
I
first
started
investigating
gitlab.com
and
the
poc
that
I
was
going
to
do
is
with
kubernetes
and
firecracker
vms
with
cutter
containers.
A
But
we
discussed
that
aws
autoscaling
for
vms
is
like
a
more
important
problem
for
us
to
solve,
because
right
now
for
gitlab.com,
we
own
the
docker
machine
fork
and
we
have
full
control
over
the
stack.
But
our
customers
don't
at
the
moment,
because
they
can't
modify
a
docker
machine
of
the
aws
api
is
broken
or
something
like
that,
but
with
gcp
we
can
because
we
have
the
knowledge
and
we
have
the
the
bandwidth
to
do
so,
but
for
aws
we
don't
now.
We
also
have
to
keep
in
mind.
A
This
is
strictly
solving
one
problem,
which
is
vm,
auto
scaling
like
the
cloud
provider
that
users
can
use
the
kubernetes
executor
for
autoscaling
as
well,
and
we
have
plans
to
improve
the
kubernetes
executor.
So
it's
more
stable
and
more.
It
has
feature
parity
with
all
the
other
executors,
but
some
people
are
like
they
don't
want
to
handle
a
kubernetes
cluster,
even
if
it's
managed
by
amazon
or
gcp
with
gke
right.
A
So
if
you
look
at
my
epic,
not
my
epic
at
the
epic,
let
me
share
my
screen
quickly,
so
we're
clear
on
what
we're
talking
about.
A
I
identified
deployment
methods,
so
some
of
them
are
self-hosted
like
on
the
data
center
surfaces,
running
manual,
kubernetes
and
self,
hosted
on
cloud
provider,
vms
and
then
gitlab.com,
which
is
privileged
containers
and
privileged
containers.
So
what
we're
trying
to
solve
with
this
specific
proposal
is
self-hosted
cloud
provider,
vms.
B
B
Okay,
the
last
question
that
I
have
is:
does
it
mean
that
a
user
who
basically
doesn't
want
to
use
kubernetes
will
need
to
instead
understand
how
to
use
terraform.
A
C
A
Just
like
authenticates
with
google
api
and
so
on
and
so
forth
for
you.
So
we
can
try
and
hide
it
as
much
as
possible,
but
then,
like
this
using
terraform,
we
can
instruct
users
using
infrastructure
of
code,
so
we
can
integrate
with
gitlab's
terraform
integration
and
so
on
and
so
forth.
So
we
can
have
the
club
manage
gitlab
runners,
so
yeah
we
will
be
exposing
users
to
terraform,
but
at
the
moment
what
we
are
exposing
users
to
is
documentation,
copy,
pasting
and
so
on
and
so
forth.
A
A
D
This
solution
is
built
outside
of
runner.
It's
built
around
the
runner,
which
makes
it
a
totally
different
experience
for
the
user
than
what
we
have
with
the
docker
machine
executor
where
you
just
install
the
runner,
but
the
only
requirement
for
auto
scaling
right
now
is
that
you
need
to
install
docker
machine
binary,
and
your
cloud
provider
needs
to
be
supported
by
docker
machines,
so
either
natively
or
by
a
plugin.
D
You
just
install
the
binary
optional
plugin
binary
then
put
a
configuration
copied
one
to
one
from
documentation
and
it
works.
You
have
one
runner
manager
that
you
need
to
care
about,
and
nothing
else
with
this
with
this.
We
we
change
this
experience,
because
the
user
doesn't
touch
the
runner
at
all.
So
they
need
to
know
how
to
use
terraform
or
maybe
not
know
how
to
use
we
may
we
may
have
it
as
you
said,
but
they
need
to
use
terraform.
D
This
server
form
will
then
inject
the
configuration,
so
the
configuration
form
is
way
way
different.
Now
you
could
just
install
the
runner
on
the
host
create
config.tom
by
hand,
and
it
just
works
here.
You
need
to
have
a
tool
that
will
magically
scale
this
up
and
down
and
and
put
into
the
place
so
so
this
is
my
first
course
in
consume
that
I
said
see.
D
Like
in
this
case,
I'm
only
concerned
about
the
selling
point-
okay,
it's
it's
it's
different.
When
you
have
a
user
that
already
uses
gitlab
runner
knows
how
gitlab
runner
works,
how
github
ci
works.
Now
he
wants
to
auto
scale,
and
you
say:
okay,
install
docker
machine
or
anything
else
that
we
will
switch
to
and
use
this
configuration
or
just
use
this
configuration
and
run
and
restart
auto
scaling.
D
So
you
don't
need
to
change
your
infrastructure
when
you
want
to
move
from
a
static
configuration
to
auto
scale
configuration
and-
and
this
was
what
we
did
with
docker
machine
like
you-
could
use
exactly
the
same
host.
You
just
changed
the
executor.
You
installed
one
binary
and
you
started
to
have
auto
scaling
with
exactly
the
same
runner
that
was
running
for
past
one
year
and
and
my
own
concern
is
that
it
is
a
way
different
experience
way.
B
Users
selling
interesting,
but
what
do
you
think
about
the
maintenance
point
because
maintaining
a
terraform
plus
a
custom
solution
for
aws
it
might
actually
get
extended
into
maintaining
the
same
or
similar
solution
for
gcp
many
other
like
providers
and
then
suddenly
you
need
to
maintain
terraform
compatibility
for
all
of
them.
Then
you
suddenly
need
to
maintain
the
complexity
related
with
the
differences
between
them
and
suddenly
you
can.
You
know,
have
this
proliferating,
complexity
and
maintenance,
valuable.
D
Yet
this
is
this
is
true,
but
I
would
not
be
as
afraid
when
it
goes
for
this,
because
with
docker
machine
or
with
any
other
existing
or
treated
by
us
solution
that
replace
docker
machine,
you
still
need
to
support
multiple
clouds.
So
if
we
need
to
support
it
by
ourselves,
I
don't
think
it's
a
big
difference.
If
these
are
terraform
templates
or
cloud
api
implementation
in
in
go
as
we
started
doing
with
autoscaler.
D
D
B
Okay,
so
my
question
is
like
it's
clear
to
me
like
why
docker
machine
was
a
great
solution,
but
it
feels
like
the
solution
suddenly
is
starting
to
decay
or
it's
basically
disappearing,
and
how
is
the
industry
solving
that
because
it
seems
like
that's
a
very
valuable
solution
that
is
no
longer
viable.
I
can
just
guess
that
industry
might
be
solving
that
with
kubernetes
these
days,
but
is
there
like
a
different
solution
that
people
that
want
to
use
the
cloud,
but
not
necessarily
kubernetes,
are
like
using
like
disappearing
and
there's
nothing
in
return.
E
E
So
gawker
actually
made
a
new
thing
called
intricate.
That
is
the
replacement
of
this.
Then
they
realized
the
problem.
Actually
wasn't
the
code
and
the
architecture
it's
having
all
these
apis
supported
in
one
place
is
just
unmanageable,
and
so
they
just
walked
away
from
it,
and
so
they've
deprecated
their
replacement
for
this,
and
no
one
has
stepped
in
to
provide
a
replacement,
because
I
think
it's
such
a
massive
maintenance
burden
to
provide
a
generic
multi-cloud
like
kind
of
general
purpose
cloud
agnostic,
orchestration
tool.
F
A
For
example,
and
aws
as
they
are
providing
their
own
kubernetes
solution
right
and
even
digital
ocean,
like
digital
ocean
for
the
longest
time
to
never
had
an
auto
scanning
solution,
but
with
kubernetes
they
provided
that
now,
they're
also
abstracting
kubernetes
away
with
the
container
runtime
as
a
service,
so,
for
example,
for
gcp
it's
cloud
run
and
functions
and
for
aws
it's
like
far
gate
and
now
forget
is
even
more
powerful
by
allowing
containers
and
also
lambda.
A
This
lambda
now
allows
you
to
build
your
own
containers
and
run
those
containers,
and
that's
somewhat
like
the
kubernetes
experience
right.
You
just
build
a
container
and
the
transit
and
you
don't
care
where
it's
running
kind
of
thing
and
the
re
now
I
know
the
question
comes
up
like.
Why
aren't
we
using
fargate
or
why
aren't
we
using
cloud
ram
for
these
cis
and
because
those
are
lockdown
platforms
built
for
handling
requests
or
http
requests
or
like
as
like
timed
applications?
A
It's
not
for
building
jobs,
for
example,
we
need
privileged
containers.
Sometimes
we
need
like
jobs
that
can
run
for
six
to
seven
hours
and
if
you
look
at
fargate
it
does
not
support
that
long
time
execution.
So
does
that
answer
your
question
in
regards,
or
is
it
still
not
clear.
B
It
kind
of
does,
but
it
feels
that
you
know
the
maintenance
burden
that
elliot
is
talking
about,
is
exactly
something
that
we
want
to
take
on
ourselves.
If
we
proceed
with
building
this
solution,
because
we
will
need
to
figure
it
out
how
to
model
that
on
other
platforms
and
then.
F
A
B
A
No,
I
I
agree,
and
that
is
a
real
concern
because,
for
example,
one
thing
that
is
an
issue
at
the
moment
is
aws
provides
timed
auto
scaling,
so
you
can
scale
up
at
8am,
for
example,
but
gcp
does
not,
and
that
is
a
real
feature.
Parity
difference
there.
So
and
you
don't
have
any
real
solution
for
that
at
the
moment.
Even
with
this
thing
that
I'm
proposing,
but
then
maybe
we
don't
really
need
time
to
auto
scaling
so
because,
for
example,
you
don't
scale
up
your
kubernetes
instance
on
time.
A
You
scale
up
your
kubernetes
instance
depending
on
the
load
and
that's
why
I'm
assuming
gcp
never
really
implemented
the
time
motor
scanning,
because
they
use
auto
scaling
behind
the
scenes
for
kubernetes,
so
they
just
exposed
it
as
its
own
service,
but
yeah
like
we're
still
gonna
end
up
integrating,
no
matter
what
it's
just
a
level
of
the
level
of
integration
we
want
to
achieve.
I
guess
as
well.
B
Yeah,
so
that's
that's
interesting
and
I
and
I
wonder
if
actually
there
is
a
way
to
simplify
this
somehow
like
of
course,
I
I've
been
not
thinking
about
it
a
lot
recently,
but
perhaps
we
could
restrict
ourselves
to
supporting
only
few
the
most
popular
platforms.
B
And
this
way
you
know
the
this
integration
scope
for
every
platform
would
be
much
smaller,
just
creating
and
removing
nodes
right
like
there
are
multiple
ways
of
actually
you
know
reducing
the
amount
of
integration,
work
and
expanding
the
amount
of
generic
work
and
yeah.
A
Adding
nodes
and
things
like
that-
that's
interesting
question
like
looking
at
just
aws
right,
for
example,
they
add
a
new
arm
cpu
like
a
new
instance
right
or
a
new
availability
group,
or
a
new
cpu
architecture
from
an
api
level.
If
we
want
to
add
nodes
and
things
like
that,
we
have
to
add
support
like
hey.
A
We
want
to
request
this
cpu
architecture
and
so
on
and
so
forth,
but
with
auto
scanning
it's
a
matter
of
just
pointing
to
an
ami
and
that
ami
is
configurable
right,
but
then
we
I
also
have
to
look
at
intricacies
like
this,
the
flags
that
we
need
to
pass.
For
example,
recently
we
added
gpu
support
for
gcp
on
our
docker
machine
and
that
required
us
adding
sending
some
new
data
to
the
api,
so
request,
the
accelerators
and
so
on
and
so
forth,
and
every
new
machine
type
that
comes
into
play.
B
A
B
On
the
other,
like
I'm
sorry
to
interrupt
you,
but
I
know
it's
like
we
don't
have
a
lot
of
time,
but
the
the
one
another
like
idea
of
mine
is
that
we
should
start
with
gitlab.com,
because
this
will
dictate
building
the
most
efficient
solution.
And
then
you
know
telling
our
users
that
you
need
to
use
this
method.
It
might
not
be
the
most
simple
one.
You
might
not
be
able
to
model
that
on
cloud
without
kubernetes,
but
we
decided
to
give
you
only
these,
because
this
will
make
everything
much
more
efficient
for
you.
B
We
are
running
this
on
gitlab.com
and
if
you
do
this,
our
way
you
are
going
to
save
a
huge
amount
of
money
for
cloud
like
kubernetes
has
been
designed
to
be
like
cheap,
because
it
provides
this.
You
know
better
utilization,
primitives
that
we
can
use,
and
it's
designed
for,
like
you,
know,
increasing
the
utilization
so
that
it's
more
efficient.
B
C
A
A
If
we
look
at
like
what
dimitri
dc
is
doing,
he's
creating
a
new
five-minute
deploy
application
on
aws
cc2,
because
some
people
find
the
other
devops
with
kubernetes
and
so
on
and
so
forth
way
too
complex
or
the
release
theme
is
adding
auto
deploy
to
ec2,
because
auto
deploy
to
kubernetes
is
complex
as
well,
and
they
can't
users
can
just
magically
migrate
from
ec2
to
kubernetes
as
well
their
applications.
So
it
feels
like
we
might
end
up
going
the
same
direction.
A
A
A
We
had
integrating
with
cloud
apis
with
gcp,
for
windows,
auto
scaling
and
for
orca,
which
spew
like
thomas,
had
a
lot
of
knowledge
with
gcp
api,
and
it
still
took
around
two
months
for
us
to
finalize
all
the
work
and
the
same
with
worker
like
it's
still
taking
two
months
to
integrate
each
cloud
provider.
So
we
also
have
to
think
about
that.
Like
yes,
it
needs
to
be
a
simple
solution,
but
a
simple
solution
needs
to
also
be
easily
maintained,
but
that
makes
sense.
B
Yeah,
I
think
it
makes
a
lot
of
sense,
but
we
we
just
need
to
be
mindful
about,
and
we
should
understand
that
it
actually
might
mean
that
we
are
going
to
spend
a
lot
of
time
on
maintenance
and
making
this
solution
available
for
on
on
no
bigger
amount
of
platforms.
It's
just
you
know
this
ratio
of
this
balance
between
the
you
know,
providing
the
most
simple
solution
for
users
and
maintaining
all
the
solutions
so
like
it
boils
down
to
like
not.
A
Yeah,
I
agree
to
keep
conscious
of
time.
Do
you
want
to
move
on
to
the
next
point
tomorrow?
Do
you
have
in
your
agenda
in
the
agenda.
D
If
we
think
we
told
all
what
is
to
say
well,
okay,
so
my
my
second,
my
second
concern
is
it's
way
more
technical
from
what
I
understand
from
what
you
are
telling
this
auto
screen
would
work
like
we
have
the
in
this
case,
aws
outer
scale
groups
that
are
basing
on
some
metrics
are
creating
vms,
with
gitlab
runner
installed,
and
this
gitlab
runner
is
registering
to
gitlab,
with
a
configuration
that
we
templated
in
terraform,
etc,
etc.
B
D
Yeah,
and-
and
this
is
what
I
started
thinking
about
like
looking
on
gitlab.comrunners-
they
are
running
up
to
around
3
000
jobs
peak
during
the
day.
So
with
with
that
architecture
in
in
in
a
bigger
installations-
and
I
know
that
at
least
some
of
our
customers
have
way
bigger
loads
than
what
we
see
on
github.com.
D
D
It
would
be
harder
to
look
in
the
ui
and
check
all
of
the
runners
in
in
the
table,
but
this
could
be
fixed,
but
our
scheduling
is
based
on
the
database
and
everything
starts
with
finding
the
runner
and
then
calculating
things
in
an
sql
query
and
having
thousands
of
new
runners
during
the
hour
means
that
the
complexity
and
weight
of
the
sql
query
grows
by
by
an
order
of
magnitude
which
will
become
a
technical
problem
that
will
be
very
very
hard
to
solve,
because
we
are
already
at
the
limits
of
what
we
can
do
with
this
scheduling.
D
A
That's
a
concern
I
never
thought
of,
and
that's
very
true
regarding
scheduling
and
so
on
and
so
forth,
but
we
also
have
to
keep
in
mind.
Probably
we
won't
see
thousands
of
runners
registered.
I
mean
these
machines
will
run
like
four
200
400
concurrent
jobs
on
the
same
machine,
so
it's
just
one
run
around
200
jobs
at
the
same
time
on
that
machine.
So
it's
just
one
earner.
A
So
if
you're
running
10
000
jobs
at
the
same
time,
it's
not
going
to
mean
10
000
runners
registered,
it
might
mean
a
thousand
runners
register
right.
But
again
I
don't
have
an
answer
to
that
and
that's
a
really
good
concern
that
I
never
thought
of.
So
thank
you
for
that.
D
Yeah
and
currently
with
the
runner
manager
approach.
This
is
this
is
quite
simple,
because
we
have
runner
manager
that
doesn't
do
much,
so
it
doesn't
need
a
huge
resources
for
for
the
instances,
but
what
handles
communication
with
gitlab
and
scheduling
all
of
the
jobs
and
auto-scaled
vms,
and
now
switching
to
the
model
where
every
runner
is
a
separate,
really
separate
runner.
D
D
D
Now,
if
you
want
to
handle
multiple
jobs
on
one
machine
with,
for
example,
docker
executor
for
100
400
jobs,
you
would
need
to
have
a
vm
that
have
thousands
of
cpus
to
to
make
it
efficient.
I
don't
think
it
will
work
so
so
so
the
numbers
of
concurrently
running
jobs
will
be
definitely
smaller
like
this
will
differ
between
environments,
because
if
someone
have
tests
that
are
running
for
50
seconds
and
and
are
not
using
cpu
and
ram
at
all,
they
can
put
probably
a
thousand
of
jobs
on
on
one
bigger
machine
and
it
will
work.
D
D
And
then
the
number
of
concurrent
jobs
that
we
can
use
on
a
single
vm
is
more
and
more
more
limited,
which
means
that
we'll
have
more
and
more
more
registered
rumors
and
we
are
back
with
the
sql
problems.
So
if
we
want
to
go
this
direction,
we
need
to
have
this
in
mind.
Think
how
we
can
resolve
this
when
this
will
become
a
problem,
because
it
will.
A
F
E
E
So
I
guess
what
I'm
really
trying
to
say
is:
what
are
we
trying
to
do
here?
Are
we
trying
to
figure
out
how
to
solve
this
in
the
generic
way
and
we're
trying
to
figure
out
how
to
solve
this
in
the
most
aws
ecosystem,
friendly
way
that,
like
people
that
manage
aws
resources
are
going
to
be
comfortable.
E
Or
are
we
trying
to
figure
out
what
we're
trying
to
do,
and
I
don't
mean
to
put
you
on
the
spot
to
even
like
kind
of
beat
you
up
on
that
one,
but
I
I
it
was
kind
of
it
comes
back
to
like
my
point
around
the
docker
machine
and
I
think
everyone
I.
A
Yes,
I
agree
on
what
kind
of
problem
we
want
to
I'm
just
laughing
at
aaron's
message.
Sorry
to
what
problem
we're
trying
to
solve,
and
I
would
say
this
specific
problem
with
aws
vs
gaming
is
only
for
this
small
developer
team
that
is
running
20
hundred
concurrent
jobs.
At
the
same
time,
if
users
really
want
scaling
like
at
what
thomas
was
saying
like
thousands
of
jobs
at
the
same
time,
then
we
probably
need
to
direct
them
to
use
kubernetes,
because
kubernetes
is
more
geared
towards
that.
B
Are
we
certain
that
a
small
team
of
developers
actually
do
need
autoscaling?
Perhaps
they
can
just
install
github
runner
on
multiple
instances
on
vms
and
that's
it
do
they
need
to
auto
scale
like
yeah?
I
cannot
understand
that
they
might
want
to
reduce
the
cost
and
especially
on
the
night
on
weekends,
but.
B
Like
I
feel
like
it's
a
lot
of
work
that
we
would
need
to
make
to
support
small
teams,
and
then
it
might
it's
divisible
if
we
would
be
able
to
solve
that
correctly
for
them
and
maybe
for
a
very
long
time.
D
And
and
I'm
having
this
in
mind,
moving
to
one
of
the
indentations
that
we've
made
in
this
point,
I
don't
think
we
should
like.
I,
like,
I
said
I
get
what
we
want
to
achieve
with
this
auto
scaling
in
aws
with
the
vms,
but
I
don't
think
we
should
name
that
this
is
docker
machine
replacement,
because.
D
We
are
targeting
different
cases
here
where
you,
when
you
really
need
auto
scaling
when
I,
when
I
hear
that
someone
needs
out
of
scaling
and
thinking
about
thousands
of
jobs
per
day,
because
it's
it's
not
only
about
costs,
it's
about
the
compute
resources
that
you
need
to
create
to
handle
that
load
when
you
need
to
scale
to
handle
hundreds
of
jobs
that
will
go
in
total
during
the
day
and
who
are
not
working
outside
of
the
working
hours.
D
Then
then,
what
you
hear
propose
to
have
these
few
vms
that
will
be
scaled
up,
install
the
runner
register,
start
handling
jobs
and
then,
when
the
company
is
is
going
off
the
day.
Everything
turns
down
yeah,
it
would
work,
but
it's
not
a
solution
for
the
problem
that
that
docker
executor,
docker
machine
executor
was
was
targeting
it's
not
this.
This
order
of
magnitude
and
and
and
when
we
were
discussing
this
in
the
agenda
document,
at
least
in
two
places.
We
we've
got
to
opposite
thinking
that
you
say
it's.
D
If
we
want
to
target
to
a
smaller
scale,
then,
let's
not
name
it
docker
machine
replacement.
It
will
make
our
discussion
easier,
at
least
for
me,
and
I
think
it
will
be
also
easier
to
to
to
the
customers
to
understand
what
we
are
talking
about,
because
if
we
want
to
propose
this
to
a
environment
like
cern
where
they
run
thousands
of
heavy
jobs
every
hour,
they
will
quickly
quickly
get
back
to
us
and
say
we
were
looking
for
something
different.
B
And
I
wonder
if
we
again
should
start
with
kubernetes
and
github.com
scale,
and
then
we
can
think
about
users
of
this.
This,
like
vast
landscape
of
cloud
providers,
and
I
can
imagine,
building
a
small
service
that
they
will
deploy
somewhere
with
the
requirement
that
they
need
to
write
two
simple
scripts:
to
create
a
machine
and
destroy
this
machine,
and
for
them
it
might
be
a
viable
investment
if
they
want
to
reduce
some
cost,
and
we
would
not
need
to
maintain.
B
You
know
this
part
of,
like
you
know,
integration
to
create
machine
or
destroy
machine.
We
just
tell
them
that
if
they
want
to
use
vms,
they
need
to
write
a
script
for
their
particle
infrastructure,
their
particular
cloud
provider
or
whatever
they
are
using
to
create
or
destroy
a
machine
or
perhaps
like
get
the
amount
of
machines
running
like
it
depends
on
how
the
this
thing
should
go.
Isn't.
B
Like
I
guess
that
you
know
the
the
scheduler
itself,
like
it's
99
percent
of
effort,
how
to
build
that
correctly,
then
creating
a
machine
and
destroying
it
might
be
like
one
or
one
percent
of
effort.
I
don't
know
perhaps
it's
like
90
to
10
because
as
far
as
I
know
that
how
you
know
runner
works
and
how
it
auto
scales
like
there
is
a
lot
of
business
rules
and
call
it
in
there.
E
So
one
thought
on
the
like:
let's
not
call
this
replacing
doctor
machine,
I
think
a
really
probably
a
really
helpful
way
to
look
at
this
whole
challenge.
E
E
E
What
I
think
we're
trying
to
do
and
what
I
think
steve's
getting
at
here
is
like
let's
make
more
attractive
solutions,
so
that
the
use
cases
that
are
currently
using
docker
machine
there's
a
more
attractive
thing
for
them
to
use
to
the
point
where
docker
machine
is
a
feature
that
nobody
uses
like
the
parallels
like
peter,
that
was
a
joke,
but
like
like,
let's
like,
can
we
solve
the
small
teams,
small
dev
teams
problem
in
a
way?
E
That's
not
using
docker
machine
works
better
for
them
in
some
capacity,
and
then
we've
got
still
going
to
solve.
Like
the
gitlab.com
use
case,
the
big
deployments
use
case,
like
all
these
reasons,
that
people
are
using
docker
machine,
we
have
to
kind
of
like
solve
them
and
give
them
options,
and
then
we
can
just
remove
docker
machines
and
like
no
one
notices
kind
of
thing.
You
know
what
I'm
saying
like
just
don't
think
of
it.
E
For
replacing
docker
machine
like
let's
provide
a
more
attractive
option
to
some
subset
of
users
and
then
we'll
keep
doing
that
until
there's
no
more
setup.
F
F
E
Wait
I
mean
like
maybe
that's
the
the
the
elephant
we
go
hunting
for
first,
like
let's
solve
it
with,
let's
solve
it,
for
the
big
user,
let's
solve
it
for
us,
and
then
we
have
a
case
study
on
like
why
that
works
and
like
then
we
can
do
in
a
bit
of
examination
like
what
sort
of
scale
does
it
become
impractical
for
right?
If
I'm,
if
I'm.
E
F
The
way
I
would
I'm
thinking
about
it
as
a
my
base
of
my
interactions
with
customers
is,
if
today,
I
have
a
very
solid
pattern
at
scale,
whatever
we
define
scale
to
be,
and
I'm
going
to
choose
new
scrolling
skill,
2
000
per
group,
2
000,
let's
call
it
scale,
that's
the
threshold.
If
I
had
that
pattern
today,
in
my
conversation
with
the
customers
and
then
the
customer
says:
well,
hey,
I'm
not
as
big
as
that.
I'm
only
the
small
shop
that
to
me.
I
want
the
big
pattern.
F
B
B
Like
that's,
there
are
probably
a
few
like
ways:
one
of
the
uber
tests,
another
one
might
be
an
in-house
build
service
that
will
do
scaling
on
gcp,
but
yeah.
E
F
G
Matter
what
we
do
we're
going
to
end
up
re-implementing,
something
that
already
exists
in
gitlab
runner,
because
it
solves
so
many
problems
like
so
it's
job
is
to
execute
a
task,
but
it's
also
an
auto
scaling
solution
and
even
though
we've
got
a
custom,
auto
scaler,
it
still
calls
that
auto
scaler.
It's
not
like
the
the
two
are
separate,
and
they
perhaps
should
be.
You
know
any
the
our
competitors.
They
seem
to
have
like
an
agent
right
so
and
that's
its
job
is
to
execute
a
task.
G
So
if
we
applied
that
to
runner
and
forgetting
about
it
being
a
manager,
it
would
accept
a
job.
It
would
be
able
to
maybe
support
running
services.
So
you
could
almost
join
runner
and
docker
together,
let's
just
say,
they're
a
unit
and
you
give
it
a
unit
of
work
and
that's
its
job,
and
then
you
deal
with
how
it
does
that
on
every
other
platform.
G
Without
so,
if
it
needs
to
be
auto
scale
that
binary
that
includes
docker
can
run.
Services
can
execute
that
job
needs
to
run
in
a
bunch
of
other
environments.
So
in
auto
scaling
groups,
it's
you
know.
That
instance
ready
to
accept
the
job
on
a
bunch
of
auto
scaling
instances
in
aws
in
kubernetes.
It's
the
same
thing.
It's
a
replica
set
that
you
can
scale
up.
That's
ready
to
accept
that
job,
because
at
the
moment
we
are
auto
scaling.
G
G
G
A
G
Screen
is
handled
by,
I
know,
but
get
lab
runner
itself
can
be
an
auto
scaler
right,
but
not
with
the
sputter.
I
know
you're
installing
it,
but
and
you're
not
using
it
as
an
auto
scaler
exactly,
but
it's
it's
a
really
difficult
story
to
tell,
because,
honestly,
I
think
a
lot
of
people
approach
this
organically.
They
just
want
to
say
this-
is
gitlab
runner
and
executes
task.
I'm
coming
from
a
different
background.
Where
there's
an
agent
that
you've
installed.
G
Let's
say
jenkins,
you
know
you
put
jenkins
in
a
container,
you
put
it
in
a
vm
when
you
come
from
places
like
that,
when
you
see
gitlab
runner,
your
first
reaction
is
just
oh.
This
is
just
a
replica
set
I'll
just
scale
this
up
to
100,
and
then
it
will
accept
jobs.
That's
fine,
and
then
you
start
reading
the
documentation
and
it's
very
confusing
coming
from
that
background,
because
it
is
also
an
auto
scaler.
B
Yeah,
I
think
I
understand
what
you're
saying
you're
saying
that
we
should
have
a
separate
product
that
would
be
used
to
auto
scale
runners,
whatever
platform
you
install
them
on,
but
I
feel
like
it's
an
orthogonal
problem,
because,
basically
it's
you
know
how
the
auto
scaler.
However,
we
call
it
it's
going
to
work.
We
still
need
to
know
what
platform
it's
going
to
run
against
and
you
know
on
which
platform
is
going
to
scale.
The
runners.
G
I
I
think
that
what
I'm
trying
to
get
is
that
I
would
prefer
if
we
pushed
that
problem
a
lot
more
onto
the
customers
so
that
we
just
provide,
I
mean
I.
I
definitely
think
we
should
also
provide
an
auto
scaling
solution
and
we
need
one
for
ourselves
but
get
lab
runners
job
of
just
you,
give
it
a
job,
and
it
supports
that
the
feature
set
of
services
running
anywhere
and
executing
a
job
anywhere.
G
So
sometimes
people
will
do
what
steve
has
done.
They'll
create
auto
scaling
groups,
and
it
just
contains
gitlab
the
sort
of
executor
side
of
it
to
execute
the
job.
Some
people
will
create
replica
sets
in
kubernetes
and
they'll
just
scale
it
to
100
and
they'll.
G
Have
it
except
those
jobs,
are
other
solutions
of
auto
scaling
like
I
thought,
the
sort
of
custom
auto
scaler
would
be
a
separate
prod
product
that
pushes
that
get
lab
executed
binary
onto
remote
machines
it
it's
it's
really
similar
to
what
we
have,
because
it
is
what
we
have,
because
yet
lab
runner
currently
does
everything
it's
an
auto
scaler,
and
this
executor
so
approaching
this
is,
is
really
difficult.
B
G
I
I
think
it's
just
difficult
to
explain:
I'm
explaining
it
badly.
Steve's
also
scared.
G
Yeah
and
I
think
that
the
or
the
custom
auto
scaler
was
like
the
wrong
solution,
because
it's
still
get
lab
runner
executing
that
auto
that
custom,
auto
scaler,
ideally
gitlab
runner.
That
would
be
just
concerned
with
the
execution
of
the
of
the
unit
of
job.
That's
in
the
script,
the
services
that
it
runs
and
we
try
to
get
that
repeatable
in
a
bunch
of
different
environments,
whether
that's
using
docker,
locally
micro,
vms
or
whatever,
even
inside
of
kubernetes.
D
G
D
Okay,
okay,
so
like
docker
machine
right,
it's
it's
an
auto
scaler
inside
of
the
runner.
Runner
keeps
track
on
how
much
machines
it
have
should
it
create
one
or
destroy
one,
and
and-
and
this
is
something
that
we
wanted
to
remove
with
the
autoscaler
custom
executor.
The
plan
was
that
autoscaler
will
have
the
scalar
and
runner
will
just
talk
with
it.
D
Execute
me
this
job
and
and
what's
happening
with
auto
scaling
is
outside
of
it,
and
and
if
we,
if
we
want
to
look
on
how
to
resolve
gitlab.com
scale
problem,
my
question
would
be
what
execution
environments
we
would
like
to
target
because
for
now
gitlab
runner.
If
we
look
on
it
as
a
binary
that
runs
locally,
we
have
shell,
we
have
virtualbox
and
parallels.
We
have
ssh,
we
have
docker,
I'm
leaving
kubernetes
and
docker
machine
executor
outside
because
they
are
sort
of
auto
scalers
themselves.
D
Do
we
want
to
support
all
of
these
environments,
or
do
we
want
to
focus
on
one
of
them
like
shell
or
like
container,
maybe
even
not
naming
it
docker,
but
container?
Because
with
that,
I
I
would
still.
I
would
still
push
us
to
the
concept
of
custom
executor
and
custom
docker
provider
or
container
provider.
D
Solution
also
for
both
the
big
and
the
in
the
smaller
scale,
because
because
we
could
use
what
steve
now
is
working
on
a
simple
aws,
auto
scaling
groups
to
create,
for
example,
docker
environments
that
single
runner
can
attack
with,
or
we
can
work
on
something
more
powerful.
That
will
create
even
more
things
or
maybe
we
will
end
with
the
fact
that
that
aws,
auto
scaling
group
is
enough
to
to
to
work
for
both
10
concurrent
jobs
and
10
000,
concurring
jobs
and,
and-
and
I
I
would
really
really
look
in
this
direction.
B
So
I
I
don't
know
how
much
time
we
have
in
this
meeting,
just
just
one,
just
one
idea
occurred
to
me
and
I
I
think
that
in
this
particular
case
we
should
in
invoke
the
architectural
workflow.
We
should
create
a
blueprint
and
what
it
gives
us
is
that
it
will
like
the
architectural
workflow,
requires
an
architectural
evolution
coach
to
be
assigned
that.
B
Currently
it's
a
distinguished
engineer
on
engineering
fellow
and
I
wonder
if
we
would
actually
see
the
valuable
to
have
an
input
from
an
engineering,
fellow
or
distinguished
engineer
in
this
case,
because
I
feel
like
a
bit.
We
are
working
in
circles
and
it
we
might
benefit
from
a
decision
made
and
like
it's
better
to
move
forward
to.
You
know,
learn
more
get
inside
like
because
I
I
think
it's
extremely
difficult
problem.
A
Up
a
blueprint
because
I
was
going
through
learning
this
process
this
morning-
actually
yeah.
We
need
to
take
a
decision
at
some
point
and,
like
a
blueprint,
might
give
us
a
good
way
forward.
But
my
question,
like
my
goal
from
this
meeting,
was
like:
what
are
we
actually
writing
in
the
blueprint?
Are
we
writing
auto
scaling
groups
or
are
we
writing
kubernetes
that
that
was
the
idea
behind
this
meeting
and
race
yeah.
B
So
I
I
think
it's
like
a
blueprint
starts
with
an
issue
in
the
gitlab
architecture
tasks
and
that's
the
moment
when
I
can
help
you
with
finding
an
architecture.
Evolution,
coach,
okay,
help
with
defining,
what's
the
scope
of
the
blueprint,
how
to
do
that.
Perhaps
this
this
will
help.
E
E
E
E
Yeah,
like,
as
I
say,
those
words,
I
need
to
put
them
back
in
my
mouth.
I
think
it's
a
good
idea
like.
Let's
do
that,
the
creating
the
blueprint
I
keep,
forgetting
that
that's
actually
an
official
process
and
not
just
like
a
word
we
use
for
sending
like
here's
our
plan.
E
This
actually
might,
if
we
think
about
this
as
like,
if
we
pivot
this
a
bit
and
like
how
do
we
solve
this
for
gala.com,
this
might
become
relevant
for
the
call
we
have
coming
up
in
like
another
half
hour,
we
might
be
able
to
like
merge
a
couple
of
thoughts
there
and,
like
a
couple,
visions
sure,
if
you're
welcome
to
join
that
too.
If
you
want
it's
around
the
like
job
scheduling,
side
of
of
ci
job
scheduling,
just.
E
Yeah
otherwise,
I
think,
let's,
let's
wrap
this
up
thanks
steve
for
setting
us
up,
I'm
sorry.
We
ended
up
just
ganging
up
on
you.
C
Well,
more
questions
is
better
like
if
it's
just
a
bunch
of
yes
moments.
It's.
A
Not
a
good
solution,
so
thank
you,
so
I
guess
the
next
action
point
for
us
would
be
opening
up
a
blueprint
issue
and
start
talking
to
an
evolution
coach.
So
we
can
discuss
this
further.
Does
that
sound
good.