►
From YouTube: 2020-12-03 5 minute production app sync
Description
Direction: https://about.gitlab.com/direction/5-min-production/
A
B
A
You
are
going
to
kick
us
off
with
a
demo.
I
think
of
the
latest
developments
in
the
five-minute
production
app.
C
Is
it
yeah?
That's
right,
it
becomes
a
tradition.
I
just
do
a
short
demo
on
each
power
call
and
yeah.
Let's
start!
First
of
all,
let
me
share
my
screen,
and
here
we
go
okay.
So
during
our
last
time
we
see
that
we
have
ec2
and
rds
infrastructure
created
with
server
form
and
we
were
able
to
deploy
a
rails
application
and
we
also
able
to
have
debian
initialize,
and
we
migrated
so
now
that
we
have
database
and
we
have
a
web
server.
C
There
is
only
one
scene
left
and
it's
to
store
your
files
somewhere.
C
So
with
that
demo
we
introduced
s3
support,
which
is
also
included
in
free
tier
for
aws,
and
I'm
gonna
use
the
rails
application
that
they
use
on
previous
demo.
It's
already
have
carrier
wave
support
for
file
storage
to
save
the
time
during
the
demo,
gitlab
say
yaml.
First,
let
me
introduce
it.
C
This
is
a
line
that
was
on
the
previous
demo,
which
basically
includes
five
minute
production.
App
template
line,
number
three
and
number
six
are
the
comments
that
we
used
during
previous
demo
for
executing
db
setup
and
dbmi
grade
now.
This
rails
application
has
also
carrier
waves,
config
now,
which
is
pretty
simple.
It
says
that
it's
going
to
use
aws
library
and
it
takes
environmental
variables
for
access
to
it,
like
aws
success,
key
secret,
key
region
and
s3
bucket.
C
A
D
C
C
So
if
we
go
to
the
deploy
template
project
which
we're
currently
using
for
developing
five
minute
production
app,
it
says
down
that
we
are
going
to
expose
some
s3
variables
to
you
during
ci
job,
and
we
got
those
variables
during
terraform.
Apply
command
when
we
create
infrastructure
and
s3
bucket
is
created.
A
C
Exactly
yeah,
so
for
that,
like
we
have
those
variables
were
here
before
those
variables
we
provide
to
the
project
initially
to
make
all
the
terraform
jobs
working
correctly,
and
we
just
passed
those
further
to
your
application
back
and
those
as
three
variables
we
receive
your
entire
form
create
an
s3
bucket.
A
Yeah
would
be
probably
pretty
pretty
nice
to
kind
of
say,
which
ones
are
you
set
as
a
user
which
ones
terraform
set
sets
automatically
making
that
distinction?
Clear
is
probably
helpful
to
the
user.
C
Okay,
so
those
variables
you
know
that
you
need
to
set
them
because
it's
like
number
one
before
you're
going
anywhere,
it's
like
number
one
step
so
you're
familiar
with
them.
Now
you
have
a
rails
project.
You
set
up
carrier
wave,
you
create
a
file
where
you
read
those
environmental
variables,
and
now
you
simply
rely
on
five
new
production
app
to
provide
you
with
those.
C
So
if
we
open
environment,
I
have
a
rail
sample
rails
project
that
I
created
and
developed
while
testing
all
the
new
feature
of
five
minute
production,
app
and
planning,
and
I'm
going
to
show
you
that
uploading
actually
creates
a
file
from
history
bucket.
Let's
create
some
report
on
this
website.
C
C
So
every
every
deploys
a
web
server
changes
like
the
the
docker
container
we
deployed,
but
since
this
three
bucket
is
persistent,
you
can
always
have
your
attachments
available
now.
Another
nice
addition
is:
we
persist
the
ip
address
for
environment
between
deployments.
So
if
I
run
pipeline
over
and
over
and
over
again,
I
will
get
the
same
ip
address
for
my
master
deployment,
which
gives
me
ability
simply
to
point
dns
toward
it
and
get
a
domain
name
attached
to
it.
C
Now
this
is
yeah
edition
number
two
is
being
able
to
attach
domain
names.
Now
addition
number
three
is
okay:
we
have
we're
talking
about
production
application
even
like
a
simple
one,
to
get
things
starting,
but
we
have
database.
We
have
ip
address.
We
have
ec2
instance.
C
We
have
s3
bucket
now,
once
you
get
some
use
when
it
gets
unload,
you
probably
want
to
move
from
three
tier
to
some
bigger
instances,
and
for
that
we
introduced
variables
that
allow
you
to
specify
exactly
what
instant
size
you
want
and
I'm
going
to
show
that
ci
yamo
get
two
new
lines
from
last
demo.
It's
ec2
instance
type
and
postgres
instance
size,
and
we
can
actually
change
those
to
something
bigger
like
small
and
commit
those.
C
C
And
one
will,
while
we
are
waiting
for
the
pipeline
to
run
this
change,
will
increase
the
instance
size
for
for
easy,
two
and
four
dns
used
for
your
deployment.
C
C
C
Yes,
so
here
I
had
a
pipeline
that
increased
instant
size
from
micro
to
small
and
it
does
modifying
of
instances,
so
it's
not
destroying
it,
but
modifying
which
means
like
that.
If
you
have
data
in
your
rds
instance,
after
modifying
you
still
have
them
and
then
on
the
same
application
I
did
downgrade
to
so
I
went
from
micro
to
small,
and
then
I
went
from
a
small
to
micro
again
again
by
reverting
the
commit
and
it
went
modifying
down
now
here
comes
another
nice
thing
that
we
didn't
do
but
come
out.
C
C
Another
thing
that
we
changed
lately
is
because
it's
production,
we
removed
the
destroy
job,
the
terraform
destroyed
from
protected
branches.
So
if
you
push
your
code
to
the
master,
you
don't
have
a
destructive
action
in
your
pipeline.
So
no
one
accidentally
runs
a
pipeline
and
you
know
and
destroys
a
production
instance.
Well,
we
keep
it
on
the
feature
branches.
So
if
you
look
at
the
pipeline
on
the
feature
branch
it
has
terraform
destroy,
which
will
automatically
run
once
you
merge
the
branch,
so
normal
branches
merge
them,
they
run
there
from
destroys.
C
They
destroy
all
the
infrastructure
created
for
the
for
the
regular
branches,
but
protected
branches
doesn't
have
a
destroy
action.
However,
you
can
add
one
simply
by
running
a
new
pipeline
with
special
environment
flag.
In
case
you
mess
up
with
environment
and
you
you
really
want
to
delay
your
infrastructure
master
branch.
C
Okay,
this
yeah
this
pipeline
is
almost
ready
and
yeah.
I
suggest
we
spend
a
few
more
minutes
see
if
it
can
modify
it
in
time.
Meantime,
I'm
ready
to
answer
your
questions.
If
you
have
one.
D
C
It
depends
what
strategy
you
use
so
for
current
development
process.
We
use
apply
immediate
flag
in
aws,
because
we
can't
wait
for,
like
you
know,
for
for
edwards
to
decide
when
it's
best
to
apply
the
changes,
so
it
costs
minor
downtime
when
we
are
talking
about.
You
know
like
feature
being
more
mature
and
further
in
production.
We
can
make
this
option
optional.
C
You
know
like
so,
for
example,
use
default
strategy
without
the
downtime,
but
provides
a
variable
environmental
variables
that
will
sounds
like
apply
immediately
flags
that
you
can
set
to
true,
and
then
it
affect
it
immediately.
So
right
now,
this
five
minute
production
up
template
is
optimized
for
our
speed
of
development
and
for
ease
of
testing
and
finding
out,
like
you
know,
bugs
and
everything,
but
it
can
easily
be
transferred
into
more.
You
know
like
more
yeah,
reliable,
okay.
D
That's
that's
cool.
I
wasn't.
I
wasn't
sure
if
terraform
had
a
way
of
handling
that
like
in
the
terraform
implementation
or
if
that
is,
I
guess,
that's
probably
more
of
an
aws
thing.
So.
C
Yes,
yes,
you're
right,
it's
it's
managed
by
aws.
It's
not
it's!
A
terraform
just
provide
you
with
a
flag
because
aws
api
has
one
right,
so
they
just
you
know,
transfer
the
possibility
to
you
like
when
you
go
to
aws
console
and
if
you
modify
an
instance,
they
have.
This
apply
immediately
flag
that
you
can
take
through
ui.
So
the
terraform
simply
does
the
same
thing.
C
Let
me
well,
we
are
waiting
anyway.
Let
me
see
if
we
have
anything
interesting
here.
C
So,
yes,
those
are
ci
jobs
for
deployment
that
happened
today
and,
as
you
see,
there's
like
quite
a
few
of
them
and
yeah,
it
worked
pretty
pretty
reliable.
So
that's
a
good
scene.
I
also
want
to
highlight
that
gitlab
is
moving
forward
toward
into
like
having
terraform
related
features
like
with
under
operations.
We
finally
have
a
terraform
sub
navigation
that
shows
user
states
that
gitlab
falls.
So
when
you
use
five
minute,
production
app
and
terraform
does
apply
destroy.
C
C
Okay,
it's
taken
quite
some
time
modifying
like
precise
and
sentences,
so
I
suggest
I
stop
sharing
my
screen
and
you
can
just
if
you
don't
don't
believe
me
or
you
want
to
try
it
out,
just
just
go
ahead
and
use
it
with
your
own
application
and
if
you
run
in
any
issues,
just
let
me
know
a
few
more
things
now
that
we
have
persistent,
ap
and
s3
and
rds
and
ec2
instances
our
first
implants.
We
need
to.
C
And
after
that
I
think
we
can
move
forward
toward
contributing
some
of
this
code
back
to
the
gitlab
as
a
as
a
template.
So
then,
when
you
create
a
new
project
and
go
to
the
gitlab
say
yaml,
for
example,
in
ui,
when
you
apply
the
template,
I
hope
that
in
in
some
reasonable
amount
time
we
can
type
five
minute
production
app
and
see
our
template
and
you
press
it
and
you
get
the
corresponding
template
in
your
project.
C
So
you
don't
need
to
actually
go
to
to
our
project
and
copy
paste
cell
signs
by
yourself.
D
All
right,
I
think
I
have
the
next
item
on
here,
so
I
talked
with
dzn3
in
the
last
couple
weeks
and
we're
talking
about
the
aws
account,
and
so
I
did
a
little
research
and
found
that
the
infrastructure
team
has
a
system
for
spinning
up
sandboxes.
D
If
we
want
to
use
them
and
sorry
I
tested
it
out
and
the
the
first
bug
that
I
ran
into
was
that
the
s3
bucket
names
get
they
don't
get
reset
for
48
hours.
So
if
you
try
doing
this
and
you
run
into
that
problem,
that's
why
so
and
and
then
sit
on
your
question
there.
So
I
looked
into
this
and
this
all
runs
through
consolidated
billing,
so
the
free
tier
doesn't
apply
to
each
sandbox.
It's
just
at
like
the
organization
level.
A
Cool
and
consider
that
48
hour
hint
is
useful.
Consider
adding
that
to
the
page.
D
B
Okay
yeah,
I
had
a
sync
with
darby
on
monday
about
writing
a
blog
post
and
we
kind
of
figured
out
that
we
have
different
storylines
to
tell
and
we
we
said
we
want
to
like
share
our
stories
on
our
own
I've
linked
my
draft
in
in
the
agenda.
B
B
A
B
A
A
B
A
And
then,
when
we're
done
at
the
end
of
the
quarter,
then
we
can
look
at
all
the
content
and
make
the
the
super
superb
article,
but
we're
gonna
get
there
by
having
a
lot
of
content
to
pick
from
and
a
lot
of
work.
It's
I
don't
know,
there's
a
there's,
a
fable
that,
like
two
a
big
group
of
people,
were
split
into
two
groups
and
it
was
like
this
group
is
going
to
try
to
make
as
much
pottery
as
possible.
This
group
is
going
to
make
pottery.
That
is
perfect.
A
That
is,
that
is
very
well
made
and
turns
out
that
the
group
that
was
assigned
to
make
the
most
pottery
also
made
the
best
one,
because
they
got
lots
of
practice.
The
people
that
wanted
to
make
the
perfect
one
they
just
talked
the
entire
time
about
how
to
do
it
and
they
didn't
get
a
lot
of
practice.
So,
let's,
let's,
let's
start
writing
things
and
then
at
the
end
of
the
project
we
can.
We
can
look
to
consolidate
but
right
now,
let's,
let's
keep
going
and
do
frequent
and
polished
articles.
B
A
Thanks
cool
yeah,
I
just
looked
at
the
upcoming
stuff
and
it
all
looks
super
nice.
Everything
is
there.
The
only
thing
I
saw
was
that
with
the
email
thing
there
was
an
scs
question
mark
I
removed
the
question
mark.
I
think
we
use
should
use
a
simple
email
service.
I
don't
know
an
alternative.
So
if
someone.
B
A
And
there's
no
more
items
I
want
to
revisit
1b,
I
think
dimitri,
considering
for
every
end
variable
making
a
table.
What
is
the
name
of
the
variable?
What
does
it
do?
How
is
it
set?
Is
it
set
by
the
user?
Is
it
set
by
terraform
and
then
that
can
be
a
link
to
like
how
to
set
variables
in
ci
or
where
it's
set
in
the
terraform
code?