►
From YouTube: Online Meetup #4 - Dec 12, 2019
Description
In the last meetup of 2019, we have two talks from the team on recent announcements and new projects.
Autopilot -- an SDK to build opinionated operators for service mes
https://docs.solo.io/autopilot/latest
WebAssembly Hub -- a hub to build, publish, discover and deploy customizations and extensions for Envoy Proxy and Envoy based tools like Gloo and Istio
https://webassemblyhub.io/
Join the community https://slack.solo.io
Slack channels #web-assembly-hub and #autopilot are available for questions and discussion. DM to request a future meetup topic
See you in 2020 - have a happy new year!
A
A
So
about
that
feedback,
but
this
is
our
last
meet
of
the
year
since
coop
con
we've
actually
been
shipping.
A
lot
of
announcement,
we've
been
launching
a
lot
of
new
things.
We've
had
a
bunch
of
new
projects
as
well,
so
we
want
to
take
the
time
to
actually
get
a
meet-up
in
at
the
end
of
the
year
and
also
spend
a
little
more
time
going
through
these
things
and
then
have
demos
and
opportunity
for
questions
from
from
everybody
online,
so
I'm
Betty
nice
to
meet
you.
A
If
you
want
to
hop
on
the
hop
on
video
you're,
more
than
welcome
we've
got
Scott
Weis
one
of
our
engineers,
our
principal
engineer
here
at
solo
and
then
Christian
posta,
our
field
CTO
online.
We've
got
folks
Twitter
handles
here,
so
that
if
you
want
to
hit
people
up
with
questions
later
you're
more
than
welcome
to,
but
today
I
will
be
also
watching
the
chat.
So
if
you
wanted
to
type
a
question
in
the
chat,
that's
fine!
If
you
want
to
just
unmute
and
ask
that's,
also
fine,
we're
we're
gonna,
keep
this
very
casual.
A
A
So
Scott's
going
to
talk
about
that
and
then
we
we
announce
that
the
week
of
cute
con
and
then
we
have
web
assembly
hub,
which
is
basically
a
new
hub
for
building
customizations
custom
extensions
for
envoy
and
envoy
based
products
using
web,
and
so
there's
a
there's,
a
new
hub
for
that
that
we
announced
yesterday
and
so
Christians
gonna
go
through
show
you
the
hub,
show
you
the
things
you
can
do
in
a
demo.
So
with
that
I'm
going
to
pass
the
ball
to
these
gentlemen,
I
think
Scott.
Can
you
just
take
over
and
share?
C
Looking
good
okay,
so
thank
you
very
much
I'm
going
to
show
you
guys
a
little
bit
about
autopilot
just
to
give
some
context.
Solo
IO
has
been
in
the
envoy
service
myth
space
for
basically
since
its
inception,
which
is
over
two
years,
we
started
with
kubernetes
operators.
From
the
outset.
Everything
has
been
done
in
an
operator
style,
so
our
core
product
glue
is
driven
by
CR
DS
different
events
and
kubernetes
and
has
a
declarative
system
for
ensuring
a
desired
State.
C
C
So
if
you
think
about
a
regular
kubernetes
operator
has
primitives
for
kubernetes
built-in,
but
doing
all
the
rest
of
the
work
connecting
to
metric
stores,
databases
get
outs,
backends
different
web
hooks
cloud
providers,
that's
all
work,
that's
left
to
the
user,
implement
manually
using
various
libraries
etc.
So
part
of
the
idea
was
to
take
the
operator
concept
that
kubernetes
has
given
us
and
extend
it
to
the
domain
of
in
particular
service
mesh,
because
we
were
already
finding
such
a
strong
investment
in
that
space.
C
C
B
C
Okay,
so
we'll
see
we
have
sto
installed
is
really
what
we
want
to
look
at
here,
so
I
have
a
basically
all
you
need,
for
this
is
a
cluster
setup.
Just
with
this
deal
installed,
that's
just
installed
using
like
the
basic
Castillo
135
that
you
can
install
on
your
own,
and
now
we're
going
to
do
is,
is
basically
build
an
operator
from
scratch
using
autopilot.
So
if
you
see
I
have
an
empty
directory
here,
empty
directory
and
the
first
thing
I'm
going
to
do
is
I'm
gonna
run
a
peon
it.
C
An
APN
eight
is
going
to
create
the
initialization
files
that
I
need
to
build
the
rest
of
my
project
and
we'll
take
a
quick
look
at
what
that
is.
So,
if
I
loaded
my
IDE
here,
we
can
see
what
that
did.
Was
it
created,
just
a
go
mod
file,
and
these
two
config
files
and
the
main
one
I'm
going
to
look
at,
is
the
autopilot
that
llamó-
and
this
specifies
this-
this
structure
of
the
project
so
like
I
said
before
autopilot
is
very
opinionated.
C
C
Basically,
the
idea
is
that
you
have
a
top-level
CRD
and
then
you
can
define
phases
for
the
CRD
and
autopilot,
treats
the
CRD
like
a
state
machine
that
allows
us
to
be
more
opinionated
about
what
your
operator
essentially
does,
and
so
in
the
vast
majority
of
use
cases
it
may
be
watching
a
large
number
of
things,
but
in
the
end
the
output
is
going
to
be
some
kind
of
urban
areas
resource
very
often
now.
This
is
also
something
that's
extendable
in
the
system
and
I'll
get
into
it.
C
But
right
now
we
can
think
of
autopilot
as
a
system
that
takes
some
inputs,
depending
on
the
given
phase
of
your
CR
D
and
produces
some
outputs
so
from
that,
let's
actually
sorry
one
second
I'm
going
to
update
this
autopilot
animal
with
what
what
we
need
for
our
canary
essentially
so
what
you
saw
was
the
default
generated
now.
Here's
one
that
actually
describes
the
the
state
machine
that
our
canary
operator
is
going
to
execute,
and
so
you
see
I've
got
a
few
phases
here.
There's
an
initializing,
a
waiting
phase,
evaluating
promoting
and
rollback
such
a.
C
That
means
that
in
the
initializing
space,
once
we
receive
the
canary
CRD
we're
going
to
read
some
deployments
from
the
cluster
and
then
we're
going
to
output
some
deployment
services
and
virtual
services
first
year,
then
we're
going
to
have
a
waiting
space
where
we
basically
pull
and
ensure
that
the
or
we
watch
we
watch
the
deployments
of
virtual
services.
We
make
sure
that
if,
if
one
of
those
things
gets
or
the
deployment
gets
changed,
we
initialize
the
evaluation
process.
C
This
is
a
little
bit
about
implementation
details,
but
essentially,
where
we're
waiting
for
some
user
feedback
at
this
point
to
kick
off.
So
this
might
be
the
result
of
get
workflow.
It
might
push
a
change
like
update
the
image
on
my
deployment
and
that's
going
to
kick
off
the
canary
process
that
our
operator
is
executed.
So
then
it
goes
to
evaluating.
Then
it's
going
to
watch
metrics,
so
I'll
actually
show
you
how
that's
working.
C
It's
gonna
watch
metrics
that
come
from
the
proxies
through
Prometheus
and
use
that
to
evaluate
the
status
of
the
Canaries
is
the
the
failure
threshold.
The
percentage
of
requests
that
are
succeeding.
Is
it
above
the
threshold
we've
defined.
If
so,
eventually
we
will
promote,
if
not,
we
will
roll
back
the
deployment
very
standard
canary
workflow.
The
purpose
of
this
is
not
really
to
teach
about
Canaries,
but
just
to
understand
how
we
can
automate
this
using
autopilot.
So
I
have
the
auto
pilot
llamo
created.
C
Now,
let's
see
the
actual
code,
so
I'm
going
to
run
the
ap
generate
command.
This
is
designed
to
be
run
and
rerun
as
you
iterate
on
your
project
and
build
it
out
so
that
you
can.
You
can
create
the
skeleton
of
the
project
without
and
only
have
to
fill
in
the
business
logic
yourself
there
like
a
service
application.
If
you're
familiar
with
that
concept,
so
we'll
see
we
got
a
bunch
of
stuff
generated
here
in
the
interest
of
time.
I
don't
want
to
dig
too
much,
but
essentially
you'll
see.
C
C
This
is
a
very
simple
binding
and
this
file
can
be
edited
once
it's
been
generated
to
add
your
own
bindings
in,
but
essentially
it
injects
into
the
library
method
from
autopilot
called
run.
That's
going
to
run
the
opinionated
manager,
the
opinionated
operator
structure
that
we
call
a
scheduler
internally
and
what
the
scheduler
does
is.
It
calls
the
user-defined
work
functions
and
those
work
functions
can
be
found
in
this
workers
and
you'll
see
if
you
go.
This
is
where
you
actually
have
to
go
and
implement
in
your
autopilot
code.
C
C
If
you're
familiar
with
these
concepts
from
other
operator
frameworks
or
you
work
with
the
go
kubernetes
before
you'll-
be
familiar
with,
these
structs
you're
only
responsible
for
filling
in
the
actual
implementation
of
respect
and
the
status,
let's
just
see
just
for
kicks
what
happens
right
now,
so
we
can
already
build
and
deploy
our
operator.
So
just
going
to
do
that
right
now
you
can
use
the
auto
pilot
command
line
to
automate
this
stuff,
but
it's
all
docker
and
coops
ETL
commands.
So
you
can
run
this
locally
as
well,
but
it's
nice
to
have
this.
C
C
We'll
see
our
operators
running,
she
actually
run
ap
logs
to
tail
the
logs
from
our
operator
and
see.
You
know
some
some
bootstrap
logs
that
have
came
up,
and
this
is
all
stuff
out
of
the
box
right.
I
didn't
I,
didn't
added
a
single
thing
on
my
project.
This
was
all
just
setting
up
the
autopilot
yeah
MO
and
running
ap
generate
so,
let's,
let's
go
and
for
fun.
B
C
I'm
just
going
to
place
this
command
here.
This
is
gonna
copy.
Just
so
it
doesn't
look
weird.
This
is
going
to
copy
some
pre-written
files,
I
have
for
each
worker
and
regenerate
the
deep
copy
types.
So
we
can
see
we
filled
in
the
spec
here.
Here's
a
little
bit
of
context
on
how
our
Canaries
going
to
work.
C
You
know
this
is
again.
This
is
all
user
implementation
details.
This
is
up
to
you,
which
you
want
to
define.
You
can
use
these
status
as
a
place
to
store
state.
So
if
you
treat
your
system
like
a
state
machine
and
the
workers
are
stateless,
you
can
have
them
pass
state
information
to
each
other
by
modifying
and
updating
the
status
on
the
CR
D.
C
B
C
Okay,
so
are
now
our
canary
actually
got
processed
and
I
didn't
push
yeah
I
didn't
down.
Show
you
a
good
example
because
it
went
straight
to
waiting,
but
essentially
we
can
see
here
what
got
created
from
our
canary.
So
you
see
it
got
put
in
the
state
waiting,
observe
generation.
All
of
those
boiler
click
the
details
will
be
handled
for
you
by
autopilot,
so
you
can
do
things
like
ensure
that
the
generation
serve
generation
matches
the
real
generation
that
your
operator
is
in
sync.
C
It's
also
really
easy
to
run
this
locally
from
your
machine,
so
I
can
literally
just
hit
run
here.
Hopefully
I.
Do
you
like
it,
and
I
can
actually
run
this
from
the
IDE
step
through
and
depending
on
how
your
operator
is
set
up.
If
all
it's
doing
is
you
know,
pushing
and
pulling
yamo
from
kubernetes,
then
you
can
actually
run
this
locally
right.
So
we're
able
to
step
right
into
our
location
here
we
can
maybe
jump
all
the
way
into
our
worker.
Let's
say
we
have
a
waiting
worker.
C
B
B
C
C
C
C
C
You
want
to
show
you
the
installation
tax
right
here.
It's
all
done
with
the
CLI,
so
there's
nothing
that
needs
to
run
server-side.
In
order
for
this
to
work,
we
have
a
tutorial
that
takes
you
through
the
steps
really
to
illustrate
like
a
few
of
the
different
features
in
autopilot,
as
well
as
how
to
get
started
with
your
first
project.
C
We
have
a
git
repo,
it's
all
open-source,
we're
encouraging
developers
to
help
us
build
it
and
to
build
on
top
of
it
we're
building
internally
on
soullow.
So
you
know
this
is
this
is
a
real
framework,
that's
being
used
in
production
today
that
yeah
I
mean
it's.
It's
been
informed
by
our
processes.
We
want
to
build
it
with
the
community.
We
want
to.
C
B
A
C
We
don't
have
a
hub
for
it,
yet,
unfortunately,
but
this
is
going
to
be
something
that,
if
you're
familiar
with
our
system
is
our
service,
miss
fob
service.
Miss
fob,
IO
has
an
area
for
managing
service
measures
that
includes
extensions
applications
that
you
can
build
on
top
and
we're
going
to
have
hooks
for,
like
you
can
see
an
auto
pilot,
or
already
we
create
these
deployment
manifests,
which
is
really
a
first
step
towards
building
a
home
chart,
which
is
eventually
part
of
our
roadmap
that
we
get.
C
We
can
get
hump
chart
and
a
release
process,
because
these
are
all
the
things
that
we
need
to
do
again
for
our
own
software.
This
is
something
that's
typically
going
to
happen
for
most
users
who
are
building
operators,
so
we're
going
to
have
extensions
that
allow
you
to
easily
plug
it
into
whether
it's
a
home
tour
repository
or
something
higher
level,
whether
you
I,
like
the
service
Michelle.
F
Hi
everybody
I
have
a
question
that
I
heard
that
it's
irrelevant
now
ahead
to
the
discussion.
I
want
to
know
that
about
about
the
multi
mesh
solo
multi
may
support.
If
you
have
time
in
this
meeting
today,
please,
let's
start
more
about
the
multi
mission,
single
mesh
support
that
you
have
on
on
the
plan.
So.
C
What
what
type
of
support-
because
you
know
it
all
depends
I
mean
multi
mesh-
is
something
that
we
support
and
various
ways
like
autopilot
has
its
own
definition
of
what
that
means.
Glue
has
its
own
definition.
So
it's
a
question
of
what
are
you
trying
to
accomplish?
Xavier
you,
you
want
to
I
assume,
manage
multiple
meshes.
C
F
E
E
A
E
Can
talk
about
how
it
all
kind
of
wraps
up
actually
because
autopilot
and
what
I'm
about
to
talk
about
with
webassembly
is
all
very
related
to
the
product
that
we
are
working
on
right
now
called
service
mesh
hub
and
that's
where
our
service,
our
multi
mesh
and
management
capabilities,
start
to
come
come
together.
So,
yes,
I'll
make
sure
to
leave
time
at
the
end,
so
that
we
can.
We
can
dig
into
that
cool.
A
C
Appreciated
yeah
yeah
I'm
just
come.
If
you
got
any
questions,
autopilot
is
still
in
development.
We
plan
a
lot
more
features
coming
forward
soon.
Multi
cluster
support
is
currently
in
the
works.
So
if
you've
ever
needed
to
write
an
operator,
that's
going
to
manage
more
than
just
this
local
cluster
autopilot
is
going
to
help
with
that.
C
E
A
And
if
there's
specific
topics
that
we
talk
about
here,
folks,
that
you
want
more
information
on
and
something
like
an
auto
pilot,
if
you
want
like
to
have
a
session
on,
because
you
have
an
idea
for
an
operator
and
you
want
to
talk
through
it-
a
little
more
just
hit
us
up
in
slack
or
you
know
ping
us
in
the
chat
here
and
then
we
can.
We
can.
We
can
do
a
deeper
dive,
yep.
E
Scott
showed
autopilot,
which
is
a
way
of
building
workflows
on
top
of
service
mesh.
Now
what
we're
gonna
look
at
is
so,
if
you
look
at
that
is
kind
of
a
up
here
above
above
the
mesh,
but
we're
gonna
look
at
is
slightly
below
the
mesh
in
the
data
plane
what's
running
in
the
request
path
and
and
we'll
bring
it
all
together
at
the
end
when
we
discuss
the
multi
cluster
stuff
it
for
most.
So
what
web
assembly
is
is
a
a
binary
language
that
can
be
injected
into
edge
processes.
E
So
we
needed
a
safe
way
to
do
that
now.
That
also
applies
to
things
outside
of
the
browser
and
in
an
edge
application
architecture.
For
example,
you
might
be
running
a
a
proxy
at
your
edge
for
an
ingress
or
API
gateway
scenario,
or
you
might
be
running
those
proxies
within
your
applications
themselves
in
a
service
mesh
scenario,
and
you
need
more
fine-grained,
customization
and
control
over
the
routing
over,
let's
say,
transformation
over
security.
E
You
know
we
we
work
with
a
lot
of
customers
that
have
very
unique
security
requirements
that
need
to
stay
backward-compatible
and
sometimes
out-of-the-box.
Solutions
need
some
level
of
customization
to
fit
nicely
into
these
environments,
and
that's
where
webassembly
comes
in
so
with
webassembly
we
can.
We
can
build
that
customization
and
inject
it
into
envoy
proxy.
So
that's
that's.
What
we're
gonna
be
talking
about
today,
inject
it
into
Envoy
proxy
in
the
anon
voice,
request
processing
pipeline
so
that
we
can
customize
it
now.
E
It's
important
to
note
that
webassembly
is
a
compiled
target,
so
you're,
probably
not
going
to
be
writing
webassembly
directly.
What
you
would
pry
do
is
use
a
higher
level
programming
language
like
a
C++
or
a
rust
or
tiny
go
and
as
more
languages
come
on
board
and
the
garbage
collection
support
gets,
gets
better
solidified
in
the
web
assembly
community,
you
know
more,
more
languages
will
be
supported,
so
you're
not
forced
to.
E
If
you
want
to
extend
envoy-
which
we
do,
it's
all
lonely
and
we've
done
for
the
last
few
years
and
that's
you
know
we
built
that
as
a
as
a
core
competency
of
our
company,
but
that's
not
everybody's
core
competency.
If
you
want
to
extend
it,
you
don't
have
to
write
just
C++,
which
is
what
envoy
is
written
in
and
then,
if
you
do
that,
you
have
to
compile
it
and
link
it
into
the
Envoy
binary.
And
now
you
have
a
bespoke
Envoy
binary
that
you
not
have
to
maintain
so
so
web
assembly
is
this.
E
You
know
you
pick
the
language
that
you
want
to
write
your
extension
in
that
you're
comfortable
with
you
use
a
tool
chain
to
compile
that
down
into
web
assembly,
and
then
you
can
safely
inject
into
a
running
envoy
proxy.
Now
I
do
want
to
make
a
disclaimer
that
the
Envoy
at
upstream
envoy
is
the
the
webassembly
or
wasm.
Support
is
experimental
right
now
and
that
it
is
in
the
process
of
being
merged
upstream
and
we'll
get
there.
E
We
think
that
these
extensions
that
people
build
to
the
data
plane
to
envoy
remember
autopilot
was
the
extension
for
the
service
mesh
now
we're
down
and
in
in
the
request
path.
These
extensions
that
people
build
for
transformation
for
security
for
various
auditing
and
logging
purposes
that
these
will
either
internally
in
an
organization
wish
to
be
shared
and
reused
or
even
outside,
in
a
more
of
a
community
effort,
shared
and
reused,
and
so
Tuesday.
E
Show
you
that
in
a
second
is
that's
that's
huge
right
having
web
assembly
is
awesome,
having
it
working
on
boy
is
awesome,
but
now
the
workflow
and
the
tool
chains
and
all
the
stuff
that
you
need
to
connect
together.
That
can
be
pretty
difficult
and
we've
solved
all
of
that
for
you,
so
that
I'll
show
you
that
in
in
a
second,
but
if
we
click
on
explore
here
on
the
web
assembly
hub,
we
see
we
have
a
seated
a
handful
of
extensions
or
modules.
E
So
in
this
case
we
have
a
transformation
module
that
you
can
use
for
transforming
messages.
Inside
of
envoy.
We
have
one
that
exposes
more
detailed
metrics.
If
I
click
on
this,
we
can
see
total
requests,
count
and
number
of
rejected
requests
because
of
external
off
failures
and
so
forth.
So
we've
added
a
little
bit
more
richer
metrics.
That
would
be
useful
for
people
and
then
the
Amazon
lambda
routing
to
Amazon,
lambda
and
taking
care
of
the
handshake.
For
that
that
is
just
you
know,
we're
a
day
or
so
away
from
from
that
one
coming.
E
So
it's
coming
soon
and
if
some
of
these
other
ones
we
actually
having
glue
today
and
but
we're
working
through
exposing
those
into
the
into
the
hub,
as
well
so
on
to
the
more
interesting
developer
piece
which
is
okay,
yes,
I
have
this
use
case.
I
have
I
need
I
need
to
customize
envoy
I,
don't
want
to
start
to
I,
don't
want
to
become
an
envoy,
maintain
maintenance
company
I,
don't
want
to
build
it
directly
into
the
into
the
binder
itself.
I
want
to
use
web
assembly.
How
do
I
get
started?
E
How
do
I,
how
do
I
do
that,
and
we
announced
in
in
concert
with
the
web
assembly
hub
is
a
new
project
called
waz
me
well,
as
me
is
a
tool
that
helps
you
automate
the
workflow
for
getting
started
with
and
building
and
then
publishing
and
sharing
your
web
assembly
modules
for
Envoy.
So
if
you
come
here,
this
open
open
source
project,
you
know
there's
some
instructions
here.
If
you
go
to
doc
so
Lodi,
oh
/
web
assembly
hub
whatwhat
week,
we
can
send
this
out
in
in
the
notes.
Afterward.
E
E
E
What
we
want
to
do
first
is
show
that
we
can
call
this
echo
server
through
our
Envoy
proxy
through
glue,
so
to
do
that,
let's
just
run
a
curl.
We
can
see
that
yep.
It
makes
it
through.
It
should
be
two
hundred.
We
just
get
the
request
back
that
we
that
we
sent
in
into
echo
request.
So
let's
build
a
web
assembly
module
that
we
will
inject
into
envoy
to
modify
the
behavior
of
envoy
as
it's
processing
a
request
and
a
response.
We're
going
to
keep
it
simple.
E
All
we're
gonna
do
is
on
a
response,
so
request
comes
in
gets
process
on
a
response
back
to
the
client.
What
we'll
do
is
we'll
add
an
additional
header
or
two
headers
that
that
we
can
show
that
we
can
customize
the
request
so
to
do
that,
we're
going
to
use
a
tooth,
the
tool
that
I
just
showed
on
getting
up
called
waz
me
and
we're
gonna,
say
waz
me
in
it
here
and
actually
will
put
it
into
a
folder
called
filter.
E
We
have
the
the
filter
code,
so
this
is
the
C++
code
that
we
will
we'll
look
at
in
a
second
which
will
then
ultimately
compile
down
into
webassembly,
but
it
also
set
up
a
bass
or
basil,
build
project
so
that
we
can
use
that
to
pull
in
all
of
the
right
dependencies,
the
all
the
right,
the
in
scripting
tool
chain
that
that
compiled
C++
down
into
wasum
and
any
of
the
other
libraries
that
we
would
need
for
for
this
to
be
able
to
run
successfully
inside
of
on
void.
So
that's
all
good.
E
What
we're
gonna
do
now
is
going
to
come
to
the
code
and
we're
gonna
make
a
change
here
on
the
on
response.
Headers-
and
hopefully,
y'all
can
see
this
in
the
in
the
room
here.
What
we're
going
to
do
is
we've
got
these
new
headers.
What
we're
gonna
say
is,
let's
just
let's
just
add
a
new
one,
just
for
just
for
this.
E
So
let's
say
this
is
online:
meet
up
and
we'll
call
this
glue
blossom.
So
this
these
Hatter's
should
be
injected
these
three
headers
new
value
online,
meet
up
and
location
should
be
injected
in
the
response
when
we
when,
when
we
add
this
to
envoy,
so
that's
good.
Now,
let's
do
a
build.
Let's
do
a
build
of
Waze
me
build
and
what
this
is
going
to
do.
Is
it's
going
to
pull
down
a
docker
image
that
will
then
run
this
basel
build?
E
So
if
you
don't
have
basil
on
your
computer-
and
you
don't
want
to
deal
with
all
that
stuff,
then
you
know
it.
We
could
very
easily
run
it
inside
of
docker
basil,
pull
in
all
of
the
dependencies
and
so
on
and
build
the
C
C++
code
down
into
web
assembly.
Now,
the
only
issue
with
that,
when
doing
it
in
a
live
demo
setting
is
that
this
could
take
a
little
while,
on
the
first
build
on
the
first
run,
basil
will
pull
down
the
whole
internet
and
eventually
it
should
succeed.
E
So
we're
not
going
to
wait
for
that,
because
we
want
to
get
to
questions
and
so
forth.
At
the
end,
so
I
did
I
did
put
together
this
existing
filter
project.
If
we
look
in,
if
we
look
inside
of
it,
it
should
have
the
same
changes
that
we
made
to
the
filter
we
come
down
here.
We
should
see
yep
on
my
meetup
clue
possible
exactly
in
this
thing
right
and
up
just
still,
all
bees
are
still
running.
E
E
If
we
do
a
build,
not
allows
me
be
able
to
do
a
Basel,
build
and
we'll
do
we'll
build
it
locally
here
and
we'll
give
that
it
shouldn't
take
as
long
as
it
otherwise
would
have
if
we
were
downloading
the
whole
internet,
and
so
now
what
this
is
going
to
do
is
using
the
inscript
M
script
in
toolchain,
compile
the
C++
and
then
so.
You
see
lang
to
Kampala
C++
and
then
take
that
and
compiled
down
into
a
web
assembly
module
which
we
can
see
right
now.
E
E
E
E
Filter
not
allows
them
look
at
it
here
and
what
we
can
see
is
it's,
you
know
the
web.
The
way
web
assembly
is
structured.
Is
you
define
all
of
the
functions
that
you've
created
in
your
module?
You
might
need
to
import
certain
functionality,
so
webassembly
is
interesting
in
that
it
cannot
by
itself
reach
out
of
its
VM
out
of
its
sandbox.
If
you
want
to
call
functions
outside
of
it,
they
need
to
be
imported
and
they
need
to
be
manually
put
into
the
web
assembly
sandbox
and
here's
an
example
of
that.
E
So
we're
importing
the
we're
expecting
these
to
be
available
in
the
web
assembly
VM
so
that
we
can
import
them
and
so
on
now
you
can
see
the
function
bodies
down
here
so
up
above
was
the
declarations.
Now
the
function
bodies
here,
but
so
you
can,
you
know
webassembly,
is
really
interesting.
I
highly
recommend
looking
at
it
or
are
coming
to
our
follow
up
webinars
now.
What
we
want
to
do
is
when
you
use
the
waz
me
tool
to
to
push
our
new
web
assembly
here.
Let's,
let's
look
at
this
first.
E
If
it
allows
me
list,
we
should
see
some
of
the
existing
modules
that
have
been
pushed
to
the
registry.
This
is
ultimately
kind
of
a
docker
registry
or
OCI
compliant
registry
running.
In
the
background,
what
we're
gonna
do
is
we're.
Gonna
do
waz
me
push
and
we'll
say
we're
gonna
push
it
to
webassembly
dot
io
under
my
repo
and
we'll
call
this
online
test
easier
about
one
and
then
what
we're
gonna
push
is
basil
and
filter,
dot
blasted
so
we'll
give
that
a
try.
E
Fingers
live
demo
and
it
pushed,
and
we
call
this
online
test.
And
now,
if
we
do
list
list
again,
we
should
see
our
online
test
and
we
do
and
that's
excellent.
So
now
we
push
it
into
a
registry.
Now.
What
we
want
to
do
is
configure
our
Envoy
proxy
to
pull
that
down
to
pull
it
down
from
the
registry
and
load
it
into
the
proxy.
So
if
we
do.
E
It
may
be
too
wasm
that
will
then
prompt
envoy
to
up
or
to
inject
this
new
woz
encode
that
we
created
and
if
we
go
here
and
watch
should
first
of
all
make
sure
that
proxy
doesn't
crash.
We
don't
want
that,
especially
in
a
live
demo.
We
see
that
looks
to
be
stable.
So
that's
good.
Now
the
the
web
assembly
module
should
be
loaded.
E
Let's
try
to
curl
that
the
echo
service
again
and
see
whether
the
headers
were
correctly
added,
and
if
we
do
that,
we
should
see
indeed
that
in
the
response
headers,
that
we
have
our
three
new
headers
new
head,
new
header
and
online
meetup
header
and
the
location
header.
So
now
everything
works.
We
like
it.
Let's
share
this.
Let's
share
this
with
the
community
and
that's
where
Waze
me,
catalog
ad
comes
into
play.
Alvie
catalog
ad
is
going
to
say
alright.
Now
you
want
to
publish
this
to
everyone
else
and
make
people
aware
of
it.
E
Let's
so
what
assembly
down
I/o
and
that
was
online
test
v1.
Let's
do
that,
what
it's
gonna,
it's
going
to
prompt
us
for
some
of
the
details
that
you
want
to
include
in
the
catalog
when
people
come
and
find
it
what's
the
name
of
it
online
test,
yeah!
That's
fine!
There's
a
short
description!
We'll
go
a
little
quicker
because
we
running
out
of
time
the
long
description,
yeah,
that's
fine,
yeah,
dot,
IO,
yep,
yep,
you're,
all
dots
again,.
E
E
E
Service
mesh
hub,
then,
is
our
management
platform
for
directing
all
of
these
changes
and
coordinating
configuration,
managing
multiple
clusters,
managing
security
across
the
clusters
and
so
forth.
And
then,
when
you
have
a
service
mesh
in
place
nicely
running,
you
can
you
can,
you
know,
get
the
value
out
of
it,
which
is
how
do
we
do
canary
automation?
How
do
you
chaos
experimentation?
How
do
we
do
service
debugging?
E
All
of
these
things
that
you
need
to
build
on
top
of
the
service
mesh
and
that's
where
autopilot
comes
into
play,
to
be
able
to
write
these
extensions
to
the
the
mesh?
So
that's
all
I
have
I
know
we
were
going
to
get
back
to
the
multi
cluster
question,
but
were
there
any
other
questions
in
between
that
yeah.
A
E
And
so
we
are
working
on
a
project
call
or
prod
called
service
mesh
hub
service
mesh
hub
yeah
is
our
management,
centralized
management
plane
for
running
and
simplifying
a
service
mesh.
Irrespective
of
what
mesh
implementation
you
decide
to
use,
so
it
could
be
ISTE.
Oh,
it
could
be
linker
D.
It
could
be
at
mesh
from
AWS
console
from
from
hasha
coke
and
so
on.
Now,
simplifying
a
mesh
is
a
huge
demand
right
now,
because
they're
all
fairly
complicated
and
that's
for
a
reason.
E
The
API
is
that
they
expose
are
intended
to
be
lower
level,
api's
they're
not
intended
to
be
driven
by
developers
and
by
humans,
actually
in
general,
and
so
with
with
service
less
hub.
We
can
simplify
that
by
giving
a
more
natural
user
experience
depending
on
who's
operating
the
mesh.
Is
it
the
sres?
The
developers
interacting
with
it
is
the
security
folks,
and
so
on
now
operating
a
single
mesh?
Is
you
know
you
could
put?
E
You
could
probably
get
away
with
doing
that
and
you
know
enough
duct
tape
and
and
wire
and
so
forth,
but
when
you
get
into
a
non-trivial
deployment
of
a
mesh,
that's
going
to
involve
multiple
clusters,
multiple
control
planes.
So
when
you
deploy
the
mesh
you're
gonna
have
multiple
isolation
zones,
but
you
give
up
the
most
important
property
of
the
mesh,
which
is
service,
identity
and
observability
and
traffic
routing.
If
you
start
to
fraction
fracture
the
deployments
so
what
service
Mashhad
does
is
bring
them
together.
E
E
F
F
E
So
in,
in
our
view,
you
will
deploy
a
the
the
control
plane,
components
to
logical
isolation
zones
right
so
think,
availability
zones
right
you'll
have
a
you-
would
have
a
control
plane
for
your
your
mesh
in
various,
let's
say
three
availability
zones,
because
if
one
goes
down
you
don't
want
to,
you
don't
want
to
lose
the
capabilities
and
the
other
available.
But
that's
that's
the
whole
point
for
the
isolation
right,
and
so
what
servers
much
hub
then
does?
Is
it
drives
those
those
three
control
planes
and
it
configures
them?
E
E
E
F
E
A
E
F
The
things
is
that,
honestly,
it's
my
understanding,
maybe
I'm
wrong,
but
there
is
not
a.
There
is
no.
There
is
not
as
a
single
definition
from
for
single
mesh
real
versus
multi
mesh.
Everybody
define
different
things.
The
first
thing
that
how
we
define
a
single
mesh
versus
multiple
mesh,
okay
and
then
another
thing
that
is
a
mesh
Federation,
and
then
we
can
dig
into
the
what?
What
is
the
best
tools
to
to
unify
the.
B
C
Mean
I
I
think
that
there's
like
there's
a
very
clear
technical
definition
of
at
least
for
now.
The
way
envoys
set
up
because
envoy
is
always
receiving.
It's
been
fake
from
exactly
one
control
planning
today
that
might
change
in
the
future.
But
if
you
have
multiple
control
planes,
I
think
that
that's
that's
definitely
a
logical
boundary
between.
C
You
know
a
service
mesh
instance
or
a
service
mission
segmentation.
You
may
consider
it
organizationally
speaking
to
be
all
one
big
mesh,
but
you
still
need
some
tooling
on
top
of
the
control
plane
like
on
top
of
pilot,
etc
itself,
in
order
to
orchestrate
that
and
join
them
as
a
single
mesh.
I
think
that's
what
solo
is
referring
to.
You
know
it's.
A
A
D
Ok,
so
I
kind
of
feel
maybe
stupid
asking
it
because
it's
a
little
bit
of
more
of
an
honest
question,
so
I'm
kind
of
new
to
you're.
All
are
you
guys,
working
on
I'm
gonna
make
this
from
sort
of
the
at
the
nodejs
world
and
I
last
couple
of
weeks
really
stumped
on
all
the
capabilities
of
webassembly
I
was
mostly
curious,
I
guess
a
I
think
I'll
go
ahead
and
ask
anyway
for
sake
of
looking
like
a
you
know,
new
I'm
interesting
orchestrating
orchestrating
a
cluster
hub
of
webassembly
containers
by
their
salt
I.
E
E
Let's
just
we'll
just
be
generic
right
now
from
a
control
plane,
you
might
want
to
change
the
behavior
of
envoy
when
it
runs
at
runtime
and
in
the
and
from
this
control
point
what
you
should
be
able
to
do
is
say
you
know
what
I
need.
I
need
soap
to
rest
transformation.
You
know,
maybe
that's
an
example
for
you,
but
I
need
soap
to
rest
transformation
on
these
calls
over
here
you
know:
go!
Do
that
control
claim
the
control
plane
says:
okay,
well,
I
know,
I,
have
a
soap
to
rest.
E
Come
assembly
module
here
and
I
can
go,
deploy
it
to
the
Envoy
running
in
this
subset
over
here,
and
that
I
need
to
then
configure
those
to
behave
a
certain
way
all
right.
So
we
we
need
to
be
able
to
do
that
from
a
control
plane
independent
of
what
service
mesh
is
actually
being
run
right,
so
maybe
you're
using
this
do,
and
maybe
it
doesn't
have
a
really
good
way
to
do
that.
Maybe
they
do
and
then
we
just
end
up.
E
You
know,
building
a
nicer
interface
to
be
able
to
do
that,
but
at
some
point
envoy
is
the
underlying
capability
and
that's
where
we
have
our
core
competency
and
so,
whether
that's
through
the
service
mesh
or
around
the
service
mash,
to
be
able
to
do
this.
We
you
know
that
is
a
amazing
goal
with
with
the
service
mesh
hub
cool.
Does
that
answer?
Yes,.
A
Thanks
everybody
for
joining
were
and
actually
staying
on,
because
we
kind
of
went
over
the
hour
so
really
appreciate
it.
This
is
recorded
we'll,
send
it
out
along
some
links
to
learn
more
and
if
you
have
following
questions
just
up
into
slack
solo,
do
that's
our
community
slack
channel,
so
we
can
keep
the
discussion
going
on
in
there
and
then
or
and
then
there's
also,
you
can
kind
of
DM
us
respectively
on
Twitter
or
go
to
the
so
flow
Channel
until
next
time.
Thanks
everyone.