►
Description
Cephalocon APAC 2018
March 22-23, 2018 - Beijing, China
Joshua Schmid, SUSE Software Engineer
A
So
what
is
deep-sea
deep
sea
is
basically
an
accumulation
of
type
of
modules.
Salt
files,
state
finals,
Isola
restorations
I'll,
come
to
that
in
a
second,
what
it
actually
means
for
us
and
which
are
meant
to
manage
staff
at
scale.
So
the
project
itself
was
managed
and
was
started
by
Souza
an
Isuzu
and
it
had
in
mind
to
make
the
deployment
offset
very
easy
and
also
scalable
and
also
customizable.
A
There
are
also
lots
of
management
tasks
that
you
will
have
after
the
deployment
and
also
trying
to
take
care
of
them.
So
I
said
that
we
built
our
product
on
top
of
salt,
so
you
might
not
notice.
Also
salt
is
a
open
source
configuration
management
tool.
Maybe
she
is
also,
and
also
a
remote
execution
engine,
and
you
can
do
the
infrastructure
is
what
approach
and
it
Gerry
Gerry
competes
with
things
like
ansible
puppet
chef,
who
you
might
know
those
kind
of,
and
as
six
years
old
by
now
it
has
a
minion
and
master
architecture.
A
I've
come
to
death,
so
that
helps
with
concurrency
and
it's
based
on
the
0fq
messaging
transport
protocol,
and
it
is
also
highly
scaleable
and
extensible.
So
that
allows
us
to
actually
write
our
mantras,
and
so
we
all
heard
by
now
whatsapp
is
and
what
it
consists
off.
So
just
to
get
the
basic
is
very
straight
and
we
have
basically
a
cluster
which
consists
of
notes
and
all
these
notes
have
where
it
can
have
one
or
multiple
roles,
and
so
typically
one
of
them
is
like
an
OSD
one
as
a
manager.
A
One
is
the
monitor
and
they
can
have,
of
course,
different
kind
of
rules
and
of
course,
they
have
also
different
kind
of
requirements,
and/or
restrictions,
and
they
also
need
to
be
configured,
that's
employment
part,
and
they
also
need
to
be
managed,
as
have
adults,
deployment
tasks.
So
how
does
it
actually
work,
as
I
told
you
before?
We
have
now
the
minion
and
Master
of
Architecture,
and
you
can
issue
out
here
a
command,
for
example
this
year.
A
So
we
would
be
mystified
so
that
asterisk
says
just
target
everything,
and
that's
just
the
call
to
be
negative
in
cluster
and
that's
being
issued
out
by
the
master
to
the
minions
and
you
see
in
send
a
command
and
the
minion
returns
it.
And
here
it's
also
important
to
to
mention
that
it's
as
in
the
most
configuration
management
systems,
it's
not
actually
relieved.
A
So
it's
it's!
You
can
do
it
a
regardless
of
the
underlying
operating
system,
so
they
can
be
either
a
hilarious,
a
Linux,
a
window
I
will
say
OSX
FreeBSD,
whatever
it
doesn't
matter,
and
you
will
still
have
to
understand
that
there
is
this
disk
part
here
is
actually
a
Python
file
and
the
usage
one
is
a
method
within
it.
So
that
allows
us
to
provide
or
write
our
own
modules
that
helps
us
to
write
to
deploy,
manage
staff
and.
A
So
I
also
mentioned
infrastructure
is
called,
so
you
could
theoretically
write
something
I
have
to
write
if
your
disk
usage,
all
these
servers
is
below
100
petabyte
to
70,
but
that
doesn't
work
like
that.
It
is
more
so
salt
structures
in
solid
structures
that,
in
a
so-called
salt
state
file
a
short
for
SNS,
and
it
looks
like
that.
So
that's
did
ginger
syntax
and
you
have
to
define
that
ideas
must
be,
which
must
be
unique.
A
Some
it
can
be
identified
internally
and
then
you
can
specify
which
kind
of
which
kind
of
and
what
we
ever
think
woke.
You
can
give
it
a
name,
and
you
know
to
pass
it
or
not.
So
you
have
to
pass
our
events,
of
course,
because
it
when
you,
you
have
multiple
disks
as
an
example
that
the
disk
usage
you
can
pass
any
disk
in.
A
You
can
see
that,
and
it's
actually
now
a
state
which
you'd
apply,
and
then
it
is
your
state
that
you
just
defined
so
I
just
said
that
it
can
be
extended
with
so
these
these
state
cells
can
be
extended
with
ginger,
so
ginger
is
a
a
templating
engine
which
can
inject
data
at
runtime
into
your
SSS
file
so
that
they
can
be
dynamic
and
that
you
can
basically
react
with
your
environment,
but
there
are
some
questions,
of
course,
which
I'll
answer
in
a
second.
What
that
is.
Where
did
these
values
come
from?
A
How
do
we
actually
store
the
data?
And
where
do
we
get
this
information
about
notes,
and
so
there
are
two
key
principles
that
we
get
from
salt.
This
is
not
something
that
the
amenities
cut.
This
also
comes
from
salt.
First,
one
is
the
grains
which
is
the
D,
which
is
dynamic
information
that
is
being
stored
on
on
the
minions.
As
you
can
see
here,
that
is
typically
something
like
what
Carla
am
I
running?
A
That's
important
to
know,
and
the
second
part
is,
is
purely
done,
which
is
static
and
user-defined
data
that
it's
in
the
masker
and
you
can
modify
it
and
you
can
enter
it
or
whatever
data
you
want
to
have
so,
for
example,
we
store
the
SEF
cluster
fs:I
TVB
store
at
rolls
data,
and
instance,
but
I
will
come
to
that
and
we'll
see
how
we
use
it
in
order
to
to
make
things
work.
But
first,
let's
recap,
because
it
was
some
kind
of
information
right
now,
so
we
need.
A
We
need
to
map
rolls
to
certain
notes
in
order
to
to
meet
our
requirements,
and
we
have
grains
that
provide
us
information
about
different
notes,
and
it
also
allows
us
to
objective
requirements.
You
know
if
we
have
to
cradle
running
and
stuff
like
that,
and
we
can
provide
no
user
data
pillar.
We
can
now
execute
commands
and
coaxial
can
execute
them
on
different
kind
of
nodes.
We
can
target
them
and
we
have
states
where
we
can
group
logically
group
lots
of
different
functions
that
we
can
write
ourselves.
A
So
we
can
now
have
a
pretty
good
tool
box
and
but
now
you
know,
but
when
you
come
to
the
preparation
phase
and
you
enter
your
data
center
and
you
want
to
build
a
really
really
huge
cluster
with
like
2,500
nodes
and
the
only
information
is
post
names.
How
do
you
actually
map
any
type
of
hostname
to
a
certain
role?
A
So
additional
answer
is
it's.
You
can
write
that
in
the
pillar,
because
that's
a
static
data,
that's
provided
by
the
user.
The
long
answer
is
that
we
came
up
with
a
with
a
with
a
file
called
that
we
call
the
policy
CFG
and
what
that's
that?
What
that
does?
Is
we
try
to
write
a
a
directory
structure?
You
can
see
here.
A
So
that's
a
directory
structure
called
role
as
master
province,
admin,
type,
W
and
so
on
and
so
forth,
and
under
that
we
write
a
file
right,
so
every
post
name
is
represented
as
a
file
within
that
directory
and
what
that
allows.
You,
then,
is
to
block
or
do
slicing
or
to
just
to
hear
a
selection
of
different
kind
of
files
which
are
represented
as
host
names,
and
so
when
that
is
evaluated
by
Python,
it
can
actually
give
you
a
dictionary
which
represents
them.
A
Rolls
map
to
the
man
went
to
the
AP
host
names,
so
that's
kind
of
neat
and
you
can
do
for
some
of
your
also
like
fancier
things
it's
licensed
and
that
would
that
would,
for
example,
select
always
the
last
ones.
Apparently
we
have
in
our
cluster
for
notes,
which
is
not
1,
node,
2,
node,
3,
node
4,
and
that
one
then,
what
resolved
to
of
we
can
also
do
rep
Xing.
A
A
It
would
be
a
monitor,
it
would
not
be
an
NES
and
it
would
have
a
manager.
So
if
we
then-
and
if
we
didn't
check
that
because
we
can
also
query
for
it,
it
returns
a
structure
and
then
it
will
give
you
the
name
of
the
roles,
so
that
now
gives
us
one
more
one,
more
feature
that
we
can
actually
use.
So
we
can
now
abstract
the
target
here.
So
we
don't
have
to
care
about
closeness
anymore.
We
can
write
very
instead
of
of
providing
any
actual
static
post
name.
A
You
can
write
very
deep
inner
and
give
me
everything
that
has
these
two
there's,
these
key
value
pair
of
roads
and
mom,
and
apply
a
state
on
it.
So
that
allows
us
to
not
think
about
positives
anymore,
but
to
think
about
in
in
a
more
abstract
plane
and
that's
more
scary.
So
in
theory
we
now
have
everything.
So
we
could
now
target
every
row
and
do
our
validation
first,
we're
configurational
to
our
deployment
and
do
that
for
every
single
other
role
and
management
and
the
smoke
point
how
it
should
be.
So.
A
Luckily,
there
is
one
last
feature,
one
last
thing
that
we
have
to
understand
in
salt
and
that's
the
so
called
orchestrations,
and
these
orchestrations
to
the
same
thing
as
states.
States
convinced
different
modules
and
orchestrations
come
down
as
different
states,
so
that
allows
us
to
have
that
kind
of
syntax
and
you
realize
there
is
no
targeting
anymore.
So
this
targeting
is
actually
come
essentially
in
the
file
that
can
be
parsed
with
Jinja.
A
So
you
can
extract
everything
out
of
a
pillar
which
we
have
the
information
in
which
kind
of
hosts
maps
which
role
and
and
then
we
can
here
right,
a
customer
expression
which
holds
lots
of
different
states,
and
these
states
can
be
a
validation
of
the
configuration
and
the
deployment
of
the
maintenance.
And
what
are
you
have?
Basically
everything
that
you
need
to
deploy
a
cluster.
A
So,
with
this
kind
of
toolbox,
we
came
up
with
our
content
with
a
concept
that
makes
it
very
easy
to
deploy
a
cluster.
That
is
basically
you
go
through
different
steps
or,
as
we
call
it
stages,
stages
zero
to
five.
So
six
in
number
and
those
when
you,
when
you
walk
through
these
stages,
you
will,
after
it
to
have
their
own
access
cluster
so
stage
zero.
Is
your
pre
deployment
stuff
in
Patras,
your
cluster?
It
syncs?
A
A
You
were
published
to
see
if
she
to
your
knees-
and
there
is
the
third
stage
which
actually
does
all
the
deployment
for
you,
and
you
can
see
that
this
is
just
one
like
one
of
these
Commandments
you're
right,
assault,
run
state
registration,
intense
F,
dot,
States
dot,
one
two
three
and
then
that's
good,
and
then
we
also
divided
it
into
four
or
five,
and
if
we
have
now
have
a
look
again
so
this
is.
This
is
important
to
understand
that
this
orchestration
holds
different
states
in
it.
A
A
So,
for
example,
if
you
buy
hover-
and
you
want
to
test
it,
if
you
want
to
get
the
numbers
before
you
actually
deploy
something
or
you
know
you,
then
you
know.
If
you
want
to
buy
some
new
switches
or
SSDs
enemies
and
stuff,
we
know,
although
it
will
start
it
at
a
Susan
in
the
beginning,
was
only
supporting
slesin
offices.
We
also
got
a
contribution
that
we
now
also
support
sent
to
us
and
we
kind
of
supportable
too,
but
it's
in
America
broader
state,
but
we
really
welcome
contributions
to
to
get
this
extended.
A
What
we
also
have
is
we
have
automated
restart.
So
that
means
that
when
you
patch
your
cluster,
which
is
part
of
stage
zeros,
you
can
run
that
and
when
there
is
an
update
which
leaves
a
deleted
file
behind
or
a
config
change,
then
this
affected
service
like
an
OST,
will
be
restarted,
and
only
if
there
is
a
file
and
needed
and
also
the
same
thing.
A
If
you
do
a
configuration
change
that
affects
your
sefton
conf,
there
will
be
retracted
with
with
check
cells,
so
there
will
be
restart
and
the
restart
will
not
affect
your
your
uptime.
It
will
do
it
one
by
one
by
one
by
one
and
it
will
check
in
between.
If
your
cluster
is
still
run,
the
same
is
for
updates
and
upgrades.
It
will
do
it
one
by
one
check
in
between.
A
If
there
was
a
failure,
if
there
was
no
failure
and
everything
is
ok,
you
have
a
health,
ok,
it
will
move
on
and
it
will
not
be
ok,
it
will
not
move
on
and
fell
out
and
it
just
fail
and
leave
you
with
the
operations
that
you
need
to
do
so
that
was
the
theory.
I
also
have
a
demo
because
of
theories
or
in,
and
you
can
see
that
it's
a
prerecorded,
then
what
I
don't
do?
A
A
A
A
A
If
it's
100
notes
a
Tisha's
doesn't
matter
because
you
have
the
thing
of
a
policy
CFG
which
allows
you
to
map
post
names
to
rolls,
and
then
you
don't
need
to
care
how
many
nodes
you
actually
have
so
does
that's
a
core
feature
of
it
and
with
that
I'm
at
the
end
and
I
want
to
thank
you
for
your
attention
and
down
here
you
can
see
our
Agata
project
below
is
my
account,
and
now
we
have
a
couple
of
minutes
for
questions.
If
Tara.