0:34
hey friends from around the world I'm so
0:38
hey friends from around the world I'm so
0:38
hey friends from around the world I'm so happy to be here in this new show named
0:41
happy to be here in this new show named
0:41
happy to be here in this new show named Dapper in action again in C live um C TV
0:48
Dapper in action again in C live um C TV
0:48
Dapper in action again in C live um C TV live and my name is Rodrigo Dias koncha
0:51
live and my name is Rodrigo Dias koncha
0:51
live and my name is Rodrigo Dias koncha I'm a Microsoft Regional director and
0:55
I'm a Microsoft Regional director and
0:55
I'm a Microsoft Regional director and I've been working with do Net Technology
0:57
I've been working with do Net Technology
0:57
I've been working with do Net Technology since 21
1:00
since 21 years ago 20 no more more than 22 years
1:03
years ago 20 no more more than 22 years
1:03
years ago 20 no more more than 22 years I
1:04
I guess and in this show we're going to
1:07
guess and in this show we're going to
1:07
guess and in this show we're going to see Dapper Dapper as a framework for
1:10
see Dapper Dapper as a framework for
1:10
see Dapper Dapper as a framework for building distributed
1:12
building distributed applications and of course I'm going to
1:14
applications and of course I'm going to
1:14
applications and of course I'm going to use net most of the time but of course
1:17
use net most of the time but of course
1:17
use net most of the time but of course you can use the same knowledge with
1:20
you can use the same knowledge with
1:20
you can use the same knowledge with other programming languages such as
1:22
other programming languages such as
1:22
other programming languages such as python or Rost or I don't know what have
1:25
python or Rost or I don't know what have
1:25
python or Rost or I don't know what have you whatever floats your boat okay
1:29
you whatever floats your boat okay
1:29
you whatever floats your boat okay because Dapper is open source and is um
1:33
because Dapper is open source and is um
1:33
because Dapper is open source and is um uh technology agnostic and we're going
1:35
uh technology agnostic and we're going
1:36
uh technology agnostic and we're going to have a great time last year we had a
1:38
to have a great time last year we had a
1:38
to have a great time last year we had a blast teaching the kubernetes
1:41
blast teaching the kubernetes
1:41
blast teaching the kubernetes fundamentals here in C
1:44
fundamentals here in C
1:44
fundamentals here in C Corner and I actually went to New Delhi
1:48
Corner and I actually went to New Delhi
1:48
Corner and I actually went to New Delhi on October
1:49
on October 2023 and I had a blast over there uh met
1:54
2023 and I had a blast over there uh met
1:54
2023 and I had a blast over there uh met a lot of people great community and I'm
1:57
a lot of people great community and I'm
1:57
a lot of people great community and I'm so happy to be here again with you
1:58
so happy to be here again with you
1:58
so happy to be here again with you friends in C
2:00
friends in C uh Corner live uh also known as C TV
2:05
uh Corner live uh also known as C TV
2:05
uh Corner live uh also known as C TV okay so let's get into it shall
2:10
okay so let's get into it shall
2:10
okay so let's get into it shall we Dapper in action weekly series about
2:13
we Dapper in action weekly series about
2:13
we Dapper in action weekly series about Dapper I'm your host I'm gonna teach you
2:16
Dapper I'm your host I'm gonna teach you
2:16
Dapper I'm your host I'm gonna teach you Dapper it's G to be a 12ish week long
2:21
Dapper it's G to be a 12ish week long
2:21
Dapper it's G to be a 12ish week long show okay maybe 12 maybe 11 maybe 13 who
2:26
show okay maybe 12 maybe 11 maybe 13 who
2:26
show okay maybe 12 maybe 11 maybe 13 who knows maybe 14 who knows because Dapper
2:29
knows maybe 14 who knows because Dapper
2:29
knows maybe 14 who knows because Dapper is so huge huge now there's a lot of
2:31
is so huge huge now there's a lot of
2:31
is so huge huge now there's a lot of building blocks that we can use for
2:34
building blocks that we can use for
2:34
building blocks that we can use for creating fabulous distributed
2:36
creating fabulous distributed
2:37
creating fabulous distributed applications so
2:38
applications so easily and of course um I need enough
2:42
easily and of course um I need enough
2:42
easily and of course um I need enough time to show you all the different
2:44
time to show you all the different
2:44
time to show you all the different building blocks and that's why I'm
2:48
building blocks and that's why I'm
2:48
building blocks and that's why I'm calculating 12 weeks for doing this okay
2:52
calculating 12 weeks for doing this okay
2:52
calculating 12 weeks for doing this okay it's going to be a Monday show uh for
2:55
it's going to be a Monday show uh for
2:55
it's going to be a Monday show uh for instance here at home is 10 a.m. in the
2:59
instance here at home is 10 a.m. in the
2:59
instance here at home is 10 a.m. in the in the morning so that's uh Central Time
3:04
in the morning so that's uh Central Time
3:04
in the morning so that's uh Central Time and this is um in Easter time is 11:00
3:07
and this is um in Easter time is 11:00
3:07
and this is um in Easter time is 11:00 a.m. I guess right now and in India
3:10
a.m. I guess right now and in India
3:10
a.m. I guess right now and in India Standard time is 9:30 p.m. if you feel
3:14
Standard time is 9:30 p.m. if you feel
3:14
Standard time is 9:30 p.m. if you feel that this is confusing don't worry it is
3:17
that this is confusing don't worry it is
3:17
that this is confusing don't worry it is time zones are so weird right that's why
3:20
time zones are so weird right that's why
3:20
time zones are so weird right that's why I went to worldtime body.com and I you
3:24
I went to worldtime body.com and I you
3:25
I went to worldtime body.com and I you know I added the different cities and
3:27
know I added the different cities and
3:27
know I added the different cities and time zones and this is the place and
3:31
time zones and this is the place and
3:31
time zones and this is the place and time where we're going to spend our time
3:34
time where we're going to spend our time
3:34
time where we're going to spend our time together
3:35
together okay so today is session number
3:40
okay so today is session number
3:40
okay so today is session number one but before I jump into the topics
3:45
one but before I jump into the topics
3:45
one but before I jump into the topics let me explain to you what you should
3:46
let me explain to you what you should
3:46
let me explain to you what you should know to get the most out of this course
3:49
know to get the most out of this course
3:49
know to get the most out of this course okay you should know Cloud native uh
3:52
okay you should know Cloud native uh
3:52
okay you should know Cloud native uh application Basics such as uh what's the
3:55
application Basics such as uh what's the
3:55
application Basics such as uh what's the cloud you know cloud computing basic
3:59
cloud you know cloud computing basic
3:59
cloud you know cloud computing basic concepts
4:00
concepts and distributed applications Bas basic
4:03
and distributed applications Bas basic
4:03
and distributed applications Bas basic concept
4:06
Concepts I'm sorry and I'm I'm choking parenthesis
4:09
sorry and I'm I'm choking parenthesis
4:10
sorry and I'm I'm choking parenthesis right uh I'm choking you may be see me
4:14
right uh I'm choking you may be see me
4:14
right uh I'm choking you may be see me sneezing and coughing all the time maybe
4:17
sneezing and coughing all the time maybe
4:17
sneezing and coughing all the time maybe today maybe next week as well I hope
4:20
today maybe next week as well I hope
4:20
today maybe next week as well I hope only one week or two because I'm uh kind
4:22
only one week or two because I'm uh kind
4:22
only one week or two because I'm uh kind of uh under the weather anyway let's go
4:26
of uh under the weather anyway let's go
4:26
of uh under the weather anyway let's go back to what you should know topics
4:29
back to what you should know topics
4:29
back to what you should know topics object oriented programming I'm going to
4:31
object oriented programming I'm going to
4:31
object oriented programming I'm going to use do net and the C programming
4:33
use do net and the C programming
4:33
use do net and the C programming language and sometimes I'm going to use
4:35
language and sometimes I'm going to use
4:35
language and sometimes I'm going to use Python and in some other cases I'm going
4:38
Python and in some other cases I'm going
4:38
Python and in some other cases I'm going to use other programming languages but
4:41
to use other programming languages but
4:41
to use other programming languages but fear not because um you can use Dapper
4:44
fear not because um you can use Dapper
4:44
fear not because um you can use Dapper in any kind of with any kind of
4:48
in any kind of with any kind of
4:48
in any kind of with any kind of programming language and framework in
4:50
programming language and framework in
4:50
programming language and framework in actually operating system in round
4:53
actually operating system in round
4:53
actually operating system in round time and that's one of the strengths of
4:56
time and that's one of the strengths of
4:56
time and that's one of the strengths of dapper is not related to Microsoft stack
4:59
dapper is not related to Microsoft stack
4:59
dapper is not related to Microsoft stack it's not related to any particular
5:01
it's not related to any particular
5:01
it's not related to any particular programming language of course I need to
5:04
programming language of course I need to
5:04
programming language of course I need to use a programming language right that's
5:06
use a programming language right that's
5:06
use a programming language right that's why I'm I decid to use
5:08
why I'm I decid to use
5:08
why I'm I decid to use C and but of course I can jump into
5:12
C and but of course I can jump into
5:12
C and but of course I can jump into different programming languages
5:13
different programming languages
5:13
different programming languages throughout the rest of the show and you
5:16
throughout the rest of the show and you
5:16
throughout the rest of the show and you should know the container
5:19
should know the container
5:19
should know the container containerization uh process uh the
5:22
containerization uh process uh the
5:22
containerization uh process uh the fundamentals of containers and Docker
5:25
fundamentals of containers and Docker
5:25
fundamentals of containers and Docker containers you know Docker Registries
5:28
containers you know Docker Registries
5:28
containers you know Docker Registries and how you can pull it images and how
5:30
and how you can pull it images and how
5:30
and how you can pull it images and how they run in your computer maybe you know
5:33
they run in your computer maybe you know
5:33
they run in your computer maybe you know how to run a container by using the
5:35
how to run a container by using the
5:35
how to run a container by using the docker CLI you know Docker Ron and the
5:38
docker CLI you know Docker Ron and the
5:38
docker CLI you know Docker Ron and the name of the image and pass some flags
5:41
name of the image and pass some flags
5:41
name of the image and pass some flags and some parameters and so on so that's
5:44
and some parameters and so on so that's
5:44
and some parameters and so on so that's needed okay that's needed and if you
5:48
needed okay that's needed and if you
5:48
needed okay that's needed and if you feel that you need to strengthen your
5:51
feel that you need to strengthen your
5:51
feel that you need to strengthen your knowledge about containers and
5:54
knowledge about containers and
5:54
knowledge about containers and Docker um well I think there's a lot of
5:57
Docker um well I think there's a lot of
5:57
Docker um well I think there's a lot of different shows here in C Cor
6:00
different shows here in C Cor
6:00
different shows here in C Cor life and of course
6:03
life and of course uh uh in the internet as
6:06
uh uh in the internet as
6:06
uh uh in the internet as well and finally kubernetes fundamentals
6:10
well and finally kubernetes fundamentals
6:10
well and finally kubernetes fundamentals since Dapper is meant to be used
6:12
since Dapper is meant to be used
6:12
since Dapper is meant to be used alongside
6:14
alongside kubernetes is one of the options for
6:16
kubernetes is one of the options for
6:16
kubernetes is one of the options for running Dapper is not the only option
6:19
running Dapper is not the only option
6:19
running Dapper is not the only option okay however I think you can get the
6:23
okay however I think you can get the
6:23
okay however I think you can get the most out of this training course if you
6:25
most out of this training course if you
6:25
most out of this training course if you fully mastered the kubernetes
6:27
fully mastered the kubernetes
6:27
fully mastered the kubernetes fundamentals you don't have to be a guru
6:29
fundamentals you don't have to be a guru
6:29
fundamentals you don't have to be a guru in kubernetes that's for
6:31
in kubernetes that's for
6:31
in kubernetes that's for sure uh but at least you know how you
6:35
sure uh but at least you know how you
6:35
sure uh but at least you know how you know pods and deployments and services
6:38
know pods and deployments and services
6:38
know pods and deployments and services and those primitive objects in
6:40
and those primitive objects in
6:40
and those primitive objects in kubernetes work I think that's needed to
6:44
kubernetes work I think that's needed to
6:44
kubernetes work I think that's needed to get the most out of this uh session and
6:47
get the most out of this uh session and
6:47
get the most out of this uh session and the rest of the show
6:50
the rest of the show okay so that said let's uh explain the
6:55
okay so that said let's uh explain the
6:55
okay so that said let's uh explain the software prerequisites of course we need
6:57
software prerequisites of course we need
6:57
software prerequisites of course we need Dapper duh right of course we need
7:00
Dapper duh right of course we need
7:00
Dapper duh right of course we need Dapper but don't worry I'm going to show
7:03
Dapper but don't worry I'm going to show
7:03
Dapper but don't worry I'm going to show you how to install Dapper by using power
7:07
you how to install Dapper by using power
7:07
you how to install Dapper by using power shell and using the CLI actually it's a
7:11
shell and using the CLI actually it's a
7:11
shell and using the CLI actually it's a very straightforward process so don't
7:14
very straightforward process so don't
7:14
very straightforward process so don't worry you need Dapper that's actually
7:17
worry you need Dapper that's actually
7:17
worry you need Dapper that's actually this the only requirement to be honest
7:20
this the only requirement to be honest
7:20
this the only requirement to be honest with you of course I'm going to use net
7:23
with you of course I'm going to use net
7:23
with you of course I'm going to use net as I said before that's why I'm going to
7:25
as I said before that's why I'm going to
7:25
as I said before that's why I'm going to use the net SDK net
7:28
use the net SDK net 9 UM SDK and of course you can use other
7:32
9 UM SDK and of course you can use other
7:32
9 UM SDK and of course you can use other programming languages such as python
7:33
programming languages such as python
7:33
programming languages such as python which is fantastic and glorious for
7:37
which is fantastic and glorious for
7:37
which is fantastic and glorious for building any kind of
7:39
building any kind of applications um so whatever floats your
7:42
applications um so whatever floats your
7:42
applications um so whatever floats your boat just take into account that I'm
7:45
boat just take into account that I'm
7:45
boat just take into account that I'm going to use net9 and C 13 okay and
7:50
going to use net9 and C 13 okay and
7:50
going to use net9 and C 13 okay and visual studio or Visual Studio code or
7:53
visual studio or Visual Studio code or
7:53
visual studio or Visual Studio code or any editor that you love and like that's
7:56
any editor that you love and like that's
7:56
any editor that you love and like that's perfect you can you can actually use
7:58
perfect you can you can actually use
7:58
perfect you can you can actually use notepad if you
8:00
notepad if you want and um of course that's going to
8:04
want and um of course that's going to
8:04
want and um of course that's going to that could be so uh strange if you
8:07
that could be so uh strange if you
8:07
that could be so uh strange if you decide to use notepad right uh I think
8:10
decide to use notepad right uh I think
8:10
decide to use notepad right uh I think visual studio code is perfect for any
8:13
visual studio code is perfect for any
8:13
visual studio code is perfect for any kind of application
8:14
kind of application nowadays but most of the time I'm going
8:17
nowadays but most of the time I'm going
8:17
nowadays but most of the time I'm going to use visual studio and I'm going to be
8:19
to use visual studio and I'm going to be
8:19
to use visual studio and I'm going to be jumping around visual studio and visual
8:21
jumping around visual studio and visual
8:21
jumping around visual studio and visual studio
8:23
studio code and finally we need some way to hey
8:27
code and finally we need some way to hey
8:28
code and finally we need some way to hey deac how are you brother hello um we
8:32
deac how are you brother hello um we
8:33
deac how are you brother hello um we need a way to send some requests and
8:35
need a way to send some requests and
8:35
need a way to send some requests and receive some responses through the HTTP
8:39
receive some responses through the HTTP
8:39
receive some responses through the HTTP protocol that's why I suggest you
8:42
protocol that's why I suggest you
8:42
protocol that's why I suggest you install
8:43
install posan or any other uh HTTP request and
8:48
posan or any other uh HTTP request and
8:48
posan or any other uh HTTP request and response processing tool such as curl or
8:53
response processing tool such as curl or
8:53
response processing tool such as curl or Postman or whatever you like okay and
8:57
Postman or whatever you like okay and
8:57
Postman or whatever you like okay and this is because Dapper Expos is some
8:59
this is because Dapper Expos is some
8:59
this is because Dapper Expos is some apis that we can uh that we can execute
9:04
apis that we can uh that we can execute
9:04
apis that we can uh that we can execute that we can invoke to obtain information
9:08
that we can invoke to obtain information
9:08
that we can invoke to obtain information and tell things to Dapper that's why we
9:11
and tell things to Dapper that's why we
9:11
and tell things to Dapper that's why we need to uh most of the time send those
9:14
need to uh most of the time send those
9:14
need to uh most of the time send those requests even though HTTP is only one of
9:17
requests even though HTTP is only one of
9:17
requests even though HTTP is only one of the uh options that we have in Dapper
9:20
the uh options that we have in Dapper
9:20
the uh options that we have in Dapper that's the option that I'm going to be
9:21
that's the option that I'm going to be
9:21
that's the option that I'm going to be using most of the
9:24
using most of the time okay okay okay people so this is
9:27
time okay okay okay people so this is
9:27
time okay okay okay people so this is session number one intro ction to
9:30
session number one intro ction to
9:30
session number one intro ction to Dapper and let's talk about the
9:33
Dapper and let's talk about the
9:33
Dapper and let's talk about the challenges that we face in distributed
9:36
challenges that we face in distributed
9:36
challenges that we face in distributed applications if you've been building
9:38
applications if you've been building
9:38
applications if you've been building these kind of Solutions in the past you
9:40
these kind of Solutions in the past you
9:40
these kind of Solutions in the past you know that there's a lot of different
9:43
know that there's a lot of different
9:43
know that there's a lot of different challenges uh that we need to solve
9:47
challenges uh that we need to solve
9:47
challenges uh that we need to solve right for
9:49
right for instance uh it's not your regular
9:52
instance uh it's not your regular
9:52
instance uh it's not your regular monolithic application even though
9:55
monolithic application even though
9:55
monolithic application even though monolithic applications are perfect for
9:57
monolithic applications are perfect for
9:57
monolithic applications are perfect for most of the uh in a lot of scenarios
10:01
most of the uh in a lot of scenarios
10:01
most of the uh in a lot of scenarios right the thing about monolithic
10:04
right the thing about monolithic
10:04
right the thing about monolithic architecture and the um uh the those
10:07
architecture and the um uh the those
10:07
architecture and the um uh the those kind of software
10:09
kind of software Solutions is that you have everything in
10:12
Solutions is that you have everything in
10:12
Solutions is that you have everything in place and it's so easy to communicate
10:14
place and it's so easy to communicate
10:14
place and it's so easy to communicate between components and is so easy to
10:19
between components and is so easy to
10:19
between components and is so easy to instantiate objects and UL those objects
10:21
instantiate objects and UL those objects
10:21
instantiate objects and UL those objects and their behaviors and so on however
10:24
and their behaviors and so on however
10:24
and their behaviors and so on however when you decide to use a distributor
10:26
when you decide to use a distributor
10:26
when you decide to use a distributor application or maybe you are receiving
10:28
application or maybe you are receiving
10:28
application or maybe you are receiving this Legacy
10:30
this Legacy codebase that was built by using a
10:33
codebase that was built by using a
10:33
codebase that was built by using a distributor application kind of
10:36
distributor application kind of
10:36
distributor application kind of architecture those Solutions are more
10:39
architecture those Solutions are more
10:39
architecture those Solutions are more complex right since you no longer have
10:43
complex right since you no longer have
10:43
complex right since you no longer have those components in the same place no in
10:47
those components in the same place no in
10:47
those components in the same place no in communication those are out of process
10:50
communication those are out of process
10:50
communication those are out of process communication so you need to send some
10:53
communication so you need to send some
10:53
communication so you need to send some data uh through the wire to this other
10:56
data uh through the wire to this other
10:56
data uh through the wire to this other place maybe that's another server or
10:59
place maybe that's another server or
10:59
place maybe that's another server or maybe that's another process in the same
11:00
maybe that's another process in the same
11:00
maybe that's another process in the same server or who knows the thing is that is
11:04
server or who knows the thing is that is
11:04
server or who knows the thing is that is more complex right and because of that
11:08
more complex right and because of that
11:08
more complex right and because of that fact we end up focusing more on
11:11
fact we end up focusing more on
11:11
fact we end up focusing more on infrastructure we end up we end up uh
11:15
infrastructure we end up we end up uh
11:15
infrastructure we end up we end up uh focusing on how in the world I can I
11:19
focusing on how in the world I can I
11:20
focusing on how in the world I can I communicate from this server to this
11:22
communicate from this server to this
11:22
communicate from this server to this other server right and what are the
11:24
other server right and what are the
11:24
other server right and what are the configurations or what is the IP address
11:27
configurations or what is the IP address
11:27
configurations or what is the IP address that I need to communicate to and those
11:29
that I need to communicate to and those
11:29
that I need to communicate to and those kind of things
11:31
kind of things so there's a lot of distracting things
11:34
so there's a lot of distracting things
11:34
so there's a lot of distracting things when you decide to use this kind of
11:38
when you decide to use this kind of
11:38
when you decide to use this kind of solutions
11:39
solutions and of course when you build distribut
11:42
and of course when you build distribut
11:42
and of course when you build distribut applications there's a lot of uh uh
11:44
applications there's a lot of uh uh
11:44
applications there's a lot of uh uh tools that you can use however uh most
11:47
tools that you can use however uh most
11:47
tools that you can use however uh most of the time when you decide to create
11:50
of the time when you decide to create
11:50
of the time when you decide to create those
11:52
those Solutions uh I think most of the time
11:55
Solutions uh I think most of the time
11:55
Solutions uh I think most of the time okay you need to decide uh up front your
12:00
okay you need to decide uh up front your
12:00
okay you need to decide uh up front your runtime and the programming language and
12:02
runtime and the programming language and
12:02
runtime and the programming language and the tools that you're going to use so in
12:05
the tools that you're going to use so in
12:05
the tools that you're going to use so in some sense you are
12:07
some sense you are constrained
12:08
constrained uh uh on your decisions when you
12:13
uh uh on your decisions when you
12:13
uh uh on your decisions when you continue with the with the project so
12:15
continue with the with the project so
12:15
continue with the with the project so that's a another challenge and of course
12:19
that's a another challenge and of course
12:19
that's a another challenge and of course run times they don't always support all
12:22
run times they don't always support all
12:22
run times they don't always support all the different programming languages
12:24
the different programming languages
12:24
the different programming languages that's related to the um the decisions
12:28
that's related to the um the decisions
12:28
that's related to the um the decisions that you have to make before and uh uh
12:31
that you have to make before and uh uh
12:31
that you have to make before and uh uh beforehand you start the the project is
12:35
beforehand you start the the project is
12:35
beforehand you start the the project is not that you change the programming
12:37
not that you change the programming
12:37
not that you change the programming language in the middle of the project
12:39
language in the middle of the project
12:39
language in the middle of the project right that doesn't
12:42
right that doesn't happen so that's a challenge and uh run
12:46
happen so that's a challenge and uh run
12:46
happen so that's a challenge and uh run times some of them are uh not very
12:50
times some of them are uh not very
12:50
times some of them are uh not very portable uh some R times are constrained
12:53
portable uh some R times are constrained
12:53
portable uh some R times are constrained to a particular operating system and
12:56
to a particular operating system and
12:56
to a particular operating system and verion or architecture I mean CPU
13:00
verion or architecture I mean CPU
13:00
verion or architecture I mean CPU architecture or whatnot so um that's
13:04
architecture or whatnot so um that's
13:04
architecture or whatnot so um that's another challenge so challenges all over
13:07
another challenge so challenges all over
13:07
another challenge so challenges all over the place where when we decide to use a
13:10
the place where when we decide to use a
13:10
the place where when we decide to use a distrib application kind of software
13:12
distrib application kind of software
13:12
distrib application kind of software solution
13:14
solution and let's jump right into
13:18
and let's jump right into
13:18
and let's jump right into dopper so dopper was created as a
13:23
dopper so dopper was created as a
13:23
dopper so dopper was created as a framework for solving most of those
13:26
framework for solving most of those
13:26
framework for solving most of those challenges that I'm talking about okay
13:29
challenges that I'm talking about okay
13:29
challenges that I'm talking about okay okay so dopper is a portable eventory
13:32
okay so dopper is a portable eventory
13:32
okay so dopper is a portable eventory and run time for building distributed
13:35
and run time for building distributed
13:35
and run time for building distributed applications in the cloud in the Cloud
13:38
applications in the cloud in the Cloud
13:38
applications in the cloud in the Cloud quote unquote because of course you can
13:40
quote unquote because of course you can
13:40
quote unquote because of course you can run your Dapper Solutions on premises
13:44
run your Dapper Solutions on premises
13:44
run your Dapper Solutions on premises you can even run your dopper Solutions
13:46
you can even run your dopper Solutions
13:46
you can even run your dopper Solutions on your own computer that's actually
13:48
on your own computer that's actually
13:48
on your own computer that's actually what we're going to do in this show
13:52
what we're going to do in this show
13:52
what we're going to do in this show okay the thing about Dapper is that it's
13:55
okay the thing about Dapper is that it's
13:55
okay the thing about Dapper is that it's an event driven run time okay event
13:57
an event driven run time okay event
13:57
an event driven run time okay event driven run time and it's portable it's
14:00
driven run time and it's portable it's
14:00
driven run time and it's portable it's open
14:01
open source um and you can actually
14:04
source um and you can actually
14:04
source um and you can actually participate in the in the community and
14:07
participate in the in the community and
14:07
participate in the in the community and in the project you can they accept pull
14:10
in the project you can they accept pull
14:10
in the project you can they accept pull requests and it's a very Vibrant
14:13
requests and it's a very Vibrant
14:13
requests and it's a very Vibrant Community
14:15
Community and uh it's now part of the cloud native
14:18
and uh it's now part of the cloud native
14:18
and uh it's now part of the cloud native Computing
14:19
Computing Foundation is uh um actually an brand
14:23
Foundation is uh um actually an brand
14:23
Foundation is uh um actually an brand new project inside the cloud native
14:26
new project inside the cloud native
14:26
new project inside the cloud native Computing Foundation it was a um
14:30
Computing Foundation it was a um
14:31
Computing Foundation it was a um I'm sorry accepted as um um what's the
14:36
I'm sorry accepted as um um what's the
14:36
I'm sorry accepted as um um what's the name of that when you pass different
14:39
name of that when you pass different
14:39
name of that when you pass different phases and um anyway they are now part
14:43
phases and um anyway they are now part
14:43
phases and um anyway they are now part of the cloud n Computing foundation in
14:45
of the cloud n Computing foundation in
14:45
of the cloud n Computing foundation in the top level and the website is doer.
14:49
the top level and the website is doer.
14:49
the top level and the website is doer. actually we can open up the browser and
14:52
actually we can open up the browser and
14:52
actually we can open up the browser and navigate to Dapper
14:53
navigate to Dapper doio just to see if I remember the
14:56
doio just to see if I remember the
14:56
doio just to see if I remember the adjective that I'm looking for anyway
14:59
adjective that I'm looking for anyway
14:59
adjective that I'm looking for anyway this is doer. this is the documentation
15:03
this is doer. this is the documentation
15:03
this is doer. this is the documentation and this is the best place for obtaining
15:06
and this is the best place for obtaining
15:06
and this is the best place for obtaining the latest and greatest information
15:08
the latest and greatest information
15:08
the latest and greatest information about Dapper okay so um I'm gonna refer
15:14
about Dapper okay so um I'm gonna refer
15:14
about Dapper okay so um I'm gonna refer to this website most of the time when we
15:17
to this website most of the time when we
15:17
to this website most of the time when we discuss some things about Dapper so
15:19
discuss some things about Dapper so
15:19
discuss some things about Dapper so that's the only Learning Resource that
15:21
that's the only Learning Resource that
15:22
that's the only Learning Resource that I'm gonna uh tell you about in terms of
15:26
I'm gonna uh tell you about in terms of
15:26
I'm gonna uh tell you about in terms of um learning resources and
15:30
um learning resources and
15:30
um learning resources and mentation okay so Dapper what in the
15:32
mentation okay so Dapper what in the
15:32
mentation okay so Dapper what in the world is Dapper Dapper is this
15:35
world is Dapper Dapper is this
15:35
world is Dapper Dapper is this framework that you install okay that you
15:38
framework that you install okay that you
15:38
framework that you install okay that you need to install and it's like a buffet
15:41
need to install and it's like a buffet
15:41
need to install and it's like a buffet when you go to a restaurant right you
15:44
when you go to a restaurant right you
15:44
when you go to a restaurant right you have I don't know uh beef and you have
15:47
have I don't know uh beef and you have
15:47
have I don't know uh beef and you have salads and you have soups and you have
15:50
salads and you have soups and you have
15:50
salads and you have soups and you have uh desserts and you have different
15:52
uh desserts and you have different
15:52
uh desserts and you have different places and you stand up grab your dish
15:56
places and you stand up grab your dish
15:56
places and you stand up grab your dish and you serve in your dish whatever you
15:59
and you serve in your dish whatever you
15:59
and you serve in your dish whatever you like right so that's the same with
16:01
like right so that's the same with
16:01
like right so that's the same with Dapper there's a lot of building blocks
16:04
Dapper there's a lot of building blocks
16:04
Dapper there's a lot of building blocks like a buffet and you select the
16:07
like a buffet and you select the
16:07
like a buffet and you select the building block or building blocks that
16:09
building block or building blocks that
16:09
building block or building blocks that you want in your uh
16:12
you want in your uh application the thing about those
16:14
application the thing about those
16:14
application the thing about those building blocks is that they are created
16:17
building blocks is that they are created
16:17
building blocks is that they are created with the best
16:18
with the best practices um I'm going to talk about
16:22
practices um I'm going to talk about
16:22
practices um I'm going to talk about those building blocks later today uh the
16:24
those building blocks later today uh the
16:24
those building blocks later today uh the thing is that Dapper includes like I
16:28
thing is that Dapper includes like I
16:28
thing is that Dapper includes like I think 10 or 12 I'm going to show you the
16:31
think 10 or 12 I'm going to show you the
16:31
think 10 or 12 I'm going to show you the list later today okay so consistent and
16:34
list later today okay so consistent and
16:34
list later today okay so consistent and portable this is great because if you
16:37
portable this is great because if you
16:37
portable this is great because if you think about it let's say that you need
16:39
think about it let's say that you need
16:39
think about it let's say that you need to you have two Services you have two
16:43
to you have two Services you have two
16:43
to you have two Services you have two components in your application and you
16:45
components in your application and you
16:45
components in your application and you need to send some
16:46
need to send some messages between component a a and
16:49
messages between component a a and
16:49
messages between component a a and component B so I don't know maybe you
16:53
component B so I don't know maybe you
16:53
component B so I don't know maybe you decide to use rabit mq or maybe you
16:56
decide to use rabit mq or maybe you
16:56
decide to use rabit mq or maybe you decide to use I don't know redis or any
17:00
decide to use I don't know redis or any
17:00
decide to use I don't know redis or any kind of message
17:01
kind of message broker right and you send this message
17:05
broker right and you send this message
17:05
broker right and you send this message and this other component receives the
17:07
and this other component receives the
17:07
and this other component receives the message and grabs the payload and does
17:11
message and grabs the payload and does
17:11
message and grabs the payload and does whatever uh is meant to do
17:14
whatever uh is meant to do
17:14
whatever uh is meant to do right however in this other project or
17:17
right however in this other project or
17:17
right however in this other project or with this other team in your same
17:20
with this other team in your same
17:20
with this other team in your same company maybe they're doing something
17:23
company maybe they're doing something
17:23
company maybe they're doing something similar in that different way maybe
17:26
similar in that different way maybe
17:26
similar in that different way maybe they're not using redes maybe they're
17:28
they're not using redes maybe they're
17:28
they're not using redes maybe they're using this other obscure message broker
17:32
using this other obscure message broker
17:32
using this other obscure message broker or maybe they're using the same message
17:34
or maybe they're using the same message
17:34
or maybe they're using the same message broker let's say uh uh rabit mq but
17:38
broker let's say uh uh rabit mq but
17:38
broker let's say uh uh rabit mq but another different version or maybe
17:41
another different version or maybe
17:41
another different version or maybe they're using different syntax or maybe
17:43
they're using different syntax or maybe
17:43
they're using different syntax or maybe different you know different payloads so
17:46
different you know different payloads so
17:46
different you know different payloads so that's inconsistent in that particular
17:49
that's inconsistent in that particular
17:49
that's inconsistent in that particular scenario because those two teams are
17:52
scenario because those two teams are
17:52
scenario because those two teams are doing things differently and with Dapper
17:55
doing things differently and with Dapper
17:55
doing things differently and with Dapper you can uh obtain consistency and
17:58
you can uh obtain consistency and
17:58
you can uh obtain consistency and portability IL portability since you are
18:02
portability IL portability since you are
18:02
portability IL portability since you are uh programming against this consistent
18:05
uh programming against this consistent
18:05
uh programming against this consistent and uh well um created
18:10
and uh well um created
18:10
and uh well um created framework and it's extensible in a sense
18:15
framework and it's extensible in a sense
18:15
framework and it's extensible in a sense that you can add some
18:17
that you can add some
18:17
that you can add some other concrete implementations of the
18:19
other concrete implementations of the
18:19
other concrete implementations of the building blocks and you can use Dapper
18:22
building blocks and you can use Dapper
18:22
building blocks and you can use Dapper in any language or framework I'm going
18:24
in any language or framework I'm going
18:24
in any language or framework I'm going to use again once again I'm going to use
18:27
to use again once again I'm going to use
18:27
to use again once again I'm going to use net 9 and C 133
18:30
net 9 and C 133 um but of course you can use Dapper with
18:33
um but of course you can use Dapper with
18:33
um but of course you can use Dapper with any language or framework it's platform
18:37
any language or framework it's platform
18:37
any language or framework it's platform agnostic and architecture agnostic as
18:40
agnostic and architecture agnostic as
18:40
agnostic and architecture agnostic as well so you can run Dapper anywhere in
18:44
well so you can run Dapper anywhere in
18:44
well so you can run Dapper anywhere in any place in any kind of uh um operating
18:47
any place in any kind of uh um operating
18:47
any place in any kind of uh um operating system you can use Dapper with any
18:50
system you can use Dapper with any
18:50
system you can use Dapper with any programming language as long as that
18:52
programming language as long as that
18:52
programming language as long as that programming language can send HTTP
18:56
programming language can send HTTP
18:56
programming language can send HTTP requests and receive responses I think
18:59
requests and receive responses I think
18:59
requests and receive responses I think that's it that's the only requirement
19:01
that's it that's the only requirement
19:01
that's it that's the only requirement for Dapper okay that's it of course
19:04
for Dapper okay that's it of course
19:04
for Dapper okay that's it of course there are some drawbacks when you use
19:06
there are some drawbacks when you use
19:06
there are some drawbacks when you use Dapper such as Network latency
19:09
Dapper such as Network latency
19:09
Dapper such as Network latency since you have this extra process okay
19:13
since you have this extra process okay
19:13
since you have this extra process okay I'm not gonna lie to you this is not
19:17
I'm not gonna lie to you this is not
19:17
I'm not gonna lie to you this is not magic Dapper is running as a process
19:19
magic Dapper is running as a process
19:19
magic Dapper is running as a process somewhere and it depends on the
19:21
somewhere and it depends on the
19:21
somewhere and it depends on the architecture that you decide to use um
19:26
architecture that you decide to use um
19:26
architecture that you decide to use um so Dapper is not free it's not that all
19:28
so Dapper is not free it's not that all
19:28
so Dapper is not free it's not that all of a sudden everything works perfectly
19:31
of a sudden everything works perfectly
19:31
of a sudden everything works perfectly however you have this L very little and
19:34
however you have this L very little and
19:34
however you have this L very little and very small Network latency that you have
19:37
very small Network latency that you have
19:37
very small Network latency that you have to be aware of but it's so small and
19:42
to be aware of but it's so small and
19:42
to be aware of but it's so small and that um I mean it's um it's not
19:45
that um I mean it's um it's not
19:45
that um I mean it's um it's not something that you can be aware of or
19:48
something that you can be aware of or
19:48
something that you can be aware of or maybe worried about uh but of course uh
19:52
maybe worried about uh but of course uh
19:52
maybe worried about uh but of course uh for some scenarios Dapper isn't isn't is
19:55
for some scenarios Dapper isn't isn't is
19:55
for some scenarios Dapper isn't isn't is a showstopper because of network latency
19:59
a showstopper because of network latency
19:59
a showstopper because of network latency I don't know maybe uh real time
20:01
I don't know maybe uh real time
20:01
I don't know maybe uh real time processing of things or maybe if you try
20:04
processing of things or maybe if you try
20:04
processing of things or maybe if you try to you I don't know maybe in an iot kind
20:07
to you I don't know maybe in an iot kind
20:07
to you I don't know maybe in an iot kind of solution where you are receiving
20:09
of solution where you are receiving
20:09
of solution where you are receiving streams of data that need to be
20:12
streams of data that need to be
20:12
streams of data that need to be processed
20:13
processed massively um in that particular software
20:17
massively um in that particular software
20:17
massively um in that particular software architecture maybe Dapper is not a way
20:19
architecture maybe Dapper is not a way
20:19
architecture maybe Dapper is not a way to go who knows but the at the end of
20:23
to go who knows but the at the end of
20:23
to go who knows but the at the end of the day there's a network latency that
20:24
the day there's a network latency that
20:24
the day there's a network latency that you should be aware of okay and
20:27
you should be aware of okay and
20:27
you should be aware of okay and debugging and testing complexity that's
20:29
debugging and testing complexity that's
20:29
debugging and testing complexity that's for sure since you have this extra
20:31
for sure since you have this extra
20:31
for sure since you have this extra process that you are communicating to
20:34
process that you are communicating to
20:34
process that you are communicating to and this extra process you need
20:37
and this extra process you need
20:37
and this extra process you need to understand what's going on behind the
20:40
to understand what's going on behind the
20:41
to understand what's going on behind the scenes right so there's an extra
20:43
scenes right so there's an extra
20:43
scenes right so there's an extra complexity when building Dapper
20:47
complexity when building Dapper
20:47
complexity when building Dapper Solutions okay so Dapper
20:49
Solutions okay so Dapper
20:49
Solutions okay so Dapper history uh first release was um uh
20:53
history uh first release was um uh
20:53
history uh first release was um uh available in October
20:57
available in October
20:57
available in October 2019 uh it was announced in an
21:01
2019 uh it was announced in an
21:01
2019 uh it was announced in an ignite uh
21:03
ignite uh event I think it
21:06
event I think it was Chicago anyway who knows uh dopper
21:10
was Chicago anyway who knows uh dopper
21:10
was Chicago anyway who knows uh dopper is not new right so it has like fivey
21:13
is not new right so it has like fivey
21:13
is not new right so it has like fivey year
21:15
year history and the first release was uh in
21:18
history and the first release was uh in
21:18
history and the first release was uh in October 2019 and then it was implemented
21:21
October 2019 and then it was implemented
21:21
October 2019 and then it was implemented as an open governance
21:23
as an open governance
21:23
as an open governance model uh in 2020 and then B1 release in
21:28
model uh in 2020 and then B1 release in
21:28
model uh in 2020 and then B1 release in February
21:29
February 2021 and on November
21:33
2021 and on November
21:33
2021 and on November 2021 Dapper joined the cncf as an
21:37
2021 Dapper joined the cncf as an
21:37
2021 Dapper joined the cncf as an incubated
21:38
incubated project um
21:41
project um and nowadays actually I think today
21:46
and nowadays actually I think today
21:46
and nowadays actually I think today today is going to be released or maybe
21:48
today is going to be released or maybe
21:48
today is going to be released or maybe throughout this week uh Dapper
21:51
throughout this week uh Dapper
21:51
throughout this week uh Dapper 1.15 okay so this is perfect timing for
21:56
1.15 okay so this is perfect timing for
21:56
1.15 okay so this is perfect timing for us friends in this show because we now
22:00
us friends in this show because we now
22:00
us friends in this show because we now have Dapper
22:02
have Dapper 1.15 it's going to be released uh in
22:05
1.15 it's going to be released uh in
22:05
1.15 it's going to be released uh in this week there's going to be a lot of
22:07
this week there's going to be a lot of
22:07
this week there's going to be a lot of different shows and sessions about Dober
22:12
different shows and sessions about Dober
22:12
different shows and sessions about Dober 1.15
22:14
1.15 and we I'm going to show you different
22:17
and we I'm going to show you different
22:17
and we I'm going to show you different building blocks included in
22:21
building blocks included in
22:21
building blocks included in 1.15 uh in one of the sessions later in
22:24
1.15 uh in one of the sessions later in
22:24
1.15 uh in one of the sessions later in the show maybe I don't know maybe in
22:26
the show maybe I don't know maybe in
22:26
the show maybe I don't know maybe in session number eight nine or 10
22:29
session number eight nine or 10
22:29
session number eight nine or 10 the thing is that we have this new
22:32
the thing is that we have this new
22:32
the thing is that we have this new greatest and latest version of uh
22:36
greatest and latest version of uh
22:36
greatest and latest version of uh dopper if you want to learn more about
22:39
dopper if you want to learn more about
22:39
dopper if you want to learn more about this latest release you can go to the
22:42
this latest release you can go to the
22:42
this latest release you can go to the Dapper
22:43
Dapper website uh remember that is
22:46
website uh remember that is
22:46
website uh remember that is doer. okay actually if you go here join
22:50
doer. okay actually if you go here join
22:50
doer. okay actually if you go here join the Dapper
22:52
the Dapper celebration this is the place where I
22:55
celebration this is the place where I
22:55
celebration this is the place where I took that
22:56
took that screenshot and it's going to be it's
22:59
screenshot and it's going to be it's
22:59
screenshot and it's going to be it's going to be great and it's going to be
23:02
going to be great and it's going to be
23:02
going to be great and it's going to be glorious for the Dapper Community this
23:05
glorious for the Dapper Community this
23:05
glorious for the Dapper Community this latest
23:07
latest version fantastic
23:10
version fantastic so I was mentioning hey you know Dapper
23:14
so I was mentioning hey you know Dapper
23:14
so I was mentioning hey you know Dapper has some building
23:15
has some building blogs what in the world is a building
23:18
blogs what in the world is a building
23:18
blogs what in the world is a building block you may ask right building block
23:22
block you may ask right building block
23:22
block you may ask right building block it's like it's like a I don't know it's
23:24
it's like it's like a I don't know it's
23:24
it's like it's like a I don't know it's uh so
23:26
uh so subjective okay so building blocks the
23:29
subjective okay so building blocks the
23:29
subjective okay so building blocks the way I like to explain building blocks is
23:31
way I like to explain building blocks is
23:31
way I like to explain building blocks is like abstract classes
23:34
like abstract classes
23:34
like abstract classes okay you know abstract classes in
23:37
okay you know abstract classes in
23:37
okay you know abstract classes in objectoriented programming languages you
23:40
objectoriented programming languages you
23:40
objectoriented programming languages you have an abstract class and then you
23:42
have an abstract class and then you
23:42
have an abstract class and then you derive from that abstract class and you
23:46
derive from that abstract class and you
23:46
derive from that abstract class and you obtain that functionality right you
23:48
obtain that functionality right you
23:48
obtain that functionality right you obtain that behavior from the abstract
23:51
obtain that behavior from the abstract
23:51
obtain that behavior from the abstract class you are
23:53
class you are inheriting from the abstract class so
23:56
inheriting from the abstract class so
23:56
inheriting from the abstract class so that is actually what's happening with
23:58
that is actually what's happening with
23:58
that is actually what's happening with the building blocks in Dapper we have a
24:01
the building blocks in Dapper we have a
24:01
the building blocks in Dapper we have a buffet of different things that Dapper
24:05
buffet of different things that Dapper
24:05
buffet of different things that Dapper offers you don't need to use all of them
24:10
offers you don't need to use all of them
24:10
offers you don't need to use all of them right you only need and you only take
24:13
right you only need and you only take
24:13
right you only need and you only take what you truly require so as you can see
24:17
what you truly require so as you can see
24:17
what you truly require so as you can see here on the screen we have different
24:20
here on the screen we have different
24:20
here on the screen we have different building blocks that
24:23
building blocks that
24:23
building blocks that solve different challenges and different
24:26
solve different challenges and different
24:26
solve different challenges and different things that we need to use and phasee in
24:30
things that we need to use and phasee in
24:30
things that we need to use and phasee in any kind of distributed
24:32
any kind of distributed
24:32
any kind of distributed application such as service to service
24:36
application such as service to service
24:36
application such as service to service invocation right even though service to
24:40
invocation right even though service to
24:40
invocation right even though service to service invocation in a let's say that
24:42
service invocation in a let's say that
24:42
service invocation in a let's say that we're using
24:44
we're using microservices when you try to
24:46
microservices when you try to
24:46
microservices when you try to communicate between
24:48
communicate between Services synchronous communication
24:50
Services synchronous communication
24:50
Services synchronous communication between Services is like uh okay be
24:53
between Services is like uh okay be
24:53
between Services is like uh okay be careful but it's not forbidden okay so
24:57
careful but it's not forbidden okay so
24:58
careful but it's not forbidden okay so sometimes
24:59
sometimes is perfectly acceptable to communicate
25:03
is perfectly acceptable to communicate
25:03
is perfectly acceptable to communicate between two services in a direct way
25:07
between two services in a direct way
25:07
between two services in a direct way that said that's why we need to you know
25:10
that said that's why we need to you know
25:10
that said that's why we need to you know create this request and receive this
25:12
create this request and receive this
25:12
create this request and receive this response uh from this other service the
25:15
response uh from this other service the
25:15
response uh from this other service the thing about that particular scenario is
25:17
thing about that particular scenario is
25:17
thing about that particular scenario is that you don't
25:19
that you don't know where that other service that
25:23
know where that other service that
25:23
know where that other service that you're trying to communicate to is
25:25
you're trying to communicate to is
25:25
you're trying to communicate to is running because there could be many
25:28
running because there could be many
25:28
running because there could be many instances there could be many different
25:32
instances there could be many different
25:32
instances there could be many different um um instances um deployed in in the in
25:38
um um instances um deployed in in the in
25:38
um um instances um deployed in in the in a cluster right there could be many
25:41
a cluster right there could be many
25:41
a cluster right there could be many different um replicas that's the the
25:45
different um replicas that's the the
25:45
different um replicas that's the the word that I was looking for
25:47
word that I was looking for
25:47
word that I was looking for replicas so which replica are you
25:50
replicas so which replica are you
25:50
replicas so which replica are you communicating to who knows right so the
25:54
communicating to who knows right so the
25:54
communicating to who knows right so the thing about the dopper uh technology is
25:57
thing about the dopper uh technology is
25:57
thing about the dopper uh technology is that it's gonna
25:58
that it's gonna make it easy for you to communicate to
26:01
make it easy for you to communicate to
26:01
make it easy for you to communicate to one of those replicas when you're trying
26:03
one of those replicas when you're trying
26:03
one of those replicas when you're trying to communicate service to
26:05
to communicate service to
26:05
to communicate service to Service
26:11
uh and yes uh we have this uh
26:16
and yes uh we have this uh
26:16
and yes uh we have this uh comment uh this session is every day or
26:19
comment uh this session is every day or
26:19
comment uh this session is every day or only one day sir yes it's going to be
26:21
only one day sir yes it's going to be
26:21
only one day sir yes it's going to be Monday it's it's time thank
26:24
Monday it's it's time thank
26:24
Monday it's it's time thank you okay cool other building blog
26:27
you okay cool other building blog
26:27
you okay cool other building blog publish And subscribe of course I'm
26:28
publish And subscribe of course I'm
26:29
publish And subscribe of course I'm going to show you throughout the rest of
26:30
going to show you throughout the rest of
26:30
going to show you throughout the rest of the show most of them okay we're going
26:34
the show most of them okay we're going
26:34
the show most of them okay we're going to see publish And subscribe service to
26:36
to see publish And subscribe service to
26:36
to see publish And subscribe service to service communication workflow State
26:39
service communication workflow State
26:39
service communication workflow State Management bindings actors configuration
26:44
Management bindings actors configuration
26:44
Management bindings actors configuration Secrets uh I think maybe
26:47
Secrets uh I think maybe
26:47
Secrets uh I think maybe jobs and the latest and greatest uh L
26:51
jobs and the latest and greatest uh L
26:51
jobs and the latest and greatest uh L large language model uh chat completions
26:54
large language model uh chat completions
26:55
large language model uh chat completions building block that 1.15 has
26:59
building block that 1.15 has
26:59
building block that 1.15 has um
27:00
um anyway let's go back to the publish And
27:02
anyway let's go back to the publish And
27:02
anyway let's go back to the publish And subscribe this is another scenario that
27:05
subscribe this is another scenario that
27:05
subscribe this is another scenario that Dapper includes right let's say that you
27:07
Dapper includes right let's say that you
27:07
Dapper includes right let's say that you want to communicate between two services
27:10
want to communicate between two services
27:10
want to communicate between two services in a asynchronous way not synchronous
27:14
in a asynchronous way not synchronous
27:14
in a asynchronous way not synchronous but
27:16
but asynchronous uh so Dapper has a building
27:20
asynchronous uh so Dapper has a building
27:20
asynchronous uh so Dapper has a building block for that okay workflows for
27:23
block for that okay workflows for
27:23
block for that okay workflows for creating uh long running processes State
27:27
creating uh long running processes State
27:27
creating uh long running processes State Management for storing things bindings
27:30
Management for storing things bindings
27:30
Management for storing things bindings similar to what happens with aure
27:33
similar to what happens with aure
27:33
similar to what happens with aure functions in a sense that you have
27:35
functions in a sense that you have
27:35
functions in a sense that you have triggers and bindings and you can uh
27:38
triggers and bindings and you can uh
27:38
triggers and bindings and you can uh respond automatically from
27:41
respond automatically from
27:41
respond automatically from events uh the actor model that Apper has
27:44
events uh the actor model that Apper has
27:44
events uh the actor model that Apper has and so on and so on
27:47
and so on and so on okay so the thing about this slide
27:50
okay so the thing about this slide
27:50
okay so the thing about this slide friends is that we have this Buffet of
27:53
friends is that we have this Buffet of
27:53
friends is that we have this Buffet of building
27:54
building blocks and you can select the building
27:56
blocks and you can select the building
27:56
blocks and you can select the building block that you want that you want and
27:58
block that you want that you want and
27:58
block that you want that you want and truly need in your uh software
28:02
truly need in your uh software
28:03
truly need in your uh software solution okay so in addition to those uh
28:07
solution okay so in addition to those uh
28:07
solution okay so in addition to those uh building blocks Dapper has some cross
28:09
building blocks Dapper has some cross
28:09
building blocks Dapper has some cross cutting
28:11
cutting apis that are implemented in some of
28:15
apis that are implemented in some of
28:15
apis that are implemented in some of those building
28:17
those building blocks so for instance
28:20
blocks so for instance
28:20
blocks so for instance resiliency resiliency in terms of what
28:24
resiliency resiliency in terms of what
28:24
resiliency resiliency in terms of what happens if I'm trying to communicate
28:26
happens if I'm trying to communicate
28:26
happens if I'm trying to communicate between service a to service B and
28:29
between service a to service B and
28:29
between service a to service B and something happens in the middle right
28:32
something happens in the middle right
28:32
something happens in the middle right maybe the network got gets disconnected
28:35
maybe the network got gets disconnected
28:35
maybe the network got gets disconnected or something so dopper includes some
28:39
or something so dopper includes some
28:39
or something so dopper includes some resiliency policies for retrying and
28:43
resiliency policies for retrying and
28:43
resiliency policies for retrying and backing off and opening some circuit
28:46
backing off and opening some circuit
28:46
backing off and opening some circuit breakers and so on and some timeouts and
28:49
breakers and so on and some timeouts and
28:49
breakers and so on and some timeouts and and and stuff for resiliency purposes
28:52
and and stuff for resiliency purposes
28:52
and and stuff for resiliency purposes that's something that comes baked into
28:56
that's something that comes baked into
28:56
that's something that comes baked into Dapper uh which is fantastic you don't
28:58
Dapper uh which is fantastic you don't
28:58
Dapper uh which is fantastic you don't have to worry about those resiliency
29:01
have to worry about those resiliency
29:01
have to worry about those resiliency policies
29:03
policies observability so whenever you are using
29:08
observability so whenever you are using
29:08
observability so whenever you are using dappered components and
29:11
dappered components and
29:11
dappered components and services Dapper provides metrics logs
29:14
services Dapper provides metrics logs
29:15
services Dapper provides metrics logs and
29:15
and traces that you can send to
29:19
traces that you can send to
29:19
traces that you can send to some uh uh platforms for observability
29:24
some uh uh platforms for observability
29:24
some uh uh platforms for observability such as I don't know Jagger or Zipkin
29:28
such as I don't know Jagger or Zipkin
29:28
such as I don't know Jagger or Zipkin for watching those traces and
29:30
for watching those traces and
29:30
for watching those traces and understanding how much time did it took
29:34
understanding how much time did it took
29:34
understanding how much time did it took did it take for for um you know for
29:36
did it take for for um you know for
29:36
did it take for for um you know for executing this particular uh request or
29:40
executing this particular uh request or
29:40
executing this particular uh request or for completing this particular
29:42
for completing this particular
29:42
for completing this particular query uh you we have those um uh this
29:46
query uh you we have those um uh this
29:46
query uh you we have those um uh this observability cross cutting concern
29:49
observability cross cutting concern
29:49
observability cross cutting concern baked into Dapper and finally Security
29:52
baked into Dapper and finally Security
29:52
baked into Dapper and finally Security in terms of encrypted
29:54
in terms of encrypted
29:54
in terms of encrypted communication
29:56
communication and this is more mostly for um
30:00
and this is more mostly for um
30:00
and this is more mostly for um communicating between services in Dapper
30:03
communicating between services in Dapper
30:03
communicating between services in Dapper and some other security concerns that
30:05
and some other security concerns that
30:05
and some other security concerns that I'm going to talk about in this show
30:07
I'm going to talk about in this show
30:07
I'm going to talk about in this show Okay so let's talk about the concrete
30:09
Okay so let's talk about the concrete
30:09
Okay so let's talk about the concrete components because if building blocks
30:11
components because if building blocks
30:11
components because if building blocks are like abstract classes then of course
30:14
are like abstract classes then of course
30:14
are like abstract classes then of course we need a concrete class right this
30:17
we need a concrete class right this
30:17
we need a concrete class right this that's the analogy from objectoriented
30:21
that's the analogy from objectoriented
30:21
that's the analogy from objectoriented programming so let's say that we decide
30:24
programming so let's say that we decide
30:24
programming so let's say that we decide to use State Management the state
30:26
to use State Management the state
30:26
to use State Management the state management management building
30:28
management management building
30:28
management management building block the State Management building
30:31
block the State Management building
30:31
block the State Management building block exposes some behavior for storing
30:37
block exposes some behavior for storing
30:37
block exposes some behavior for storing the state reading the state and
30:40
the state reading the state and
30:40
the state reading the state and basically that's it or deleting
30:41
basically that's it or deleting
30:41
basically that's it or deleting something in the state right this is
30:43
something in the state right this is
30:43
something in the state right this is with the state I mean some small pieces
30:47
with the state I mean some small pieces
30:47
with the state I mean some small pieces of data that you need to store in the um
30:51
of data that you need to store in the um
30:51
of data that you need to store in the um temporarily right this is not a
30:54
temporarily right this is not a
30:54
temporarily right this is not a fullblown database okay this is not for
30:59
fullblown database okay this is not for
30:59
fullblown database okay this is not for this is not a replacement for a norm or
31:01
this is not a replacement for a norm or
31:01
this is not a replacement for a norm or something like a theti framework or
31:04
something like a theti framework or
31:04
something like a theti framework or something this is just for storing small
31:07
something this is just for storing small
31:07
something this is just for storing small pieces of data uh that's why the name is
31:10
pieces of data uh that's why the name is
31:10
pieces of data uh that's why the name is State Management and not a full database
31:13
State Management and not a full database
31:13
State Management and not a full database management
31:14
management okay but of course as we can see here on
31:17
okay but of course as we can see here on
31:17
okay but of course as we can see here on the screen we have concrete
31:18
the screen we have concrete
31:18
the screen we have concrete implementations of those building blocks
31:21
implementations of those building blocks
31:21
implementations of those building blocks for instance the State Management so we
31:24
for instance the State Management so we
31:24
for instance the State Management so we have a concrete implementation for redis
31:26
have a concrete implementation for redis
31:26
have a concrete implementation for redis we have uh complete implementation for
31:29
we have uh complete implementation for
31:29
we have uh complete implementation for AER Cosmos DV AWS Dynamo DB Firebase
31:33
AER Cosmos DV AWS Dynamo DB Firebase
31:34
AER Cosmos DV AWS Dynamo DB Firebase Cassandra and so on and so
31:36
Cassandra and so on and so
31:36
Cassandra and so on and so on what happens here friends is that you
31:41
on what happens here friends is that you
31:41
on what happens here friends is that you are programming against an
31:44
are programming against an
31:44
are programming against an abstraction right and you don't worry
31:48
abstraction right and you don't worry
31:48
abstraction right and you don't worry about the uh
31:51
about the uh particular way of
31:54
particular way of communicating in
31:56
communicating in uh in and um connecting to that
31:59
uh in and um connecting to that
31:59
uh in and um connecting to that particular in concrete technology right
32:04
particular in concrete technology right
32:04
particular in concrete technology right because if you think about it if you
32:05
because if you think about it if you
32:05
because if you think about it if you want to I don't know maybe you want to
32:08
want to I don't know maybe you want to
32:08
want to I don't know maybe you want to use redis let's see if I
32:11
use redis let's see if I
32:11
use redis let's see if I can go here to diaper inaction I created
32:16
can go here to diaper inaction I created
32:16
can go here to diaper inaction I created this folder right do new console test
32:21
this folder right do new console test
32:21
this folder right do new console test doesn't matter the name this is just a
32:24
doesn't matter the name this is just a
32:24
doesn't matter the name this is just a regular um net 9 application this is a
32:27
regular um net 9 application this is a
32:27
regular um net 9 application this is a console application
32:29
console application right even if you don't use net this is
32:33
right even if you don't use net this is
32:33
right even if you don't use net this is a just a console application okay and
32:35
a just a console application okay and
32:35
a just a console application okay and inet we have something named the N
32:39
inet we have something named the N
32:39
inet we have something named the N packages and let's say that I want to
32:41
packages and let's say that I want to
32:41
packages and let's say that I want to use redis and this is one of the things
32:44
use redis and this is one of the things
32:44
use redis and this is one of the things that you need to do you need to add the
32:47
that you need to do you need to add the
32:47
that you need to do you need to add the Rish package to your project right and
32:51
Rish package to your project right and
32:51
Rish package to your project right and then you continue programming against
32:54
then you continue programming against
32:54
then you continue programming against that particular
32:55
that particular technology right and the same happens
32:58
technology right and the same happens
32:58
technology right and the same happens with python maybe you want to install
33:00
with python maybe you want to install
33:00
with python maybe you want to install with Pip redis and so on and with any
33:05
with Pip redis and so on and with any
33:05
with Pip redis and so on and with any other programming
33:06
other programming language what I'm saying here is that
33:09
language what I'm saying here is that
33:09
language what I'm saying here is that when you decide to use a concrete
33:11
when you decide to use a concrete
33:11
when you decide to use a concrete technology you are
33:14
technology you are constrained on that particular
33:16
constrained on that particular
33:16
constrained on that particular technology and syntax and idium right
33:19
technology and syntax and idium right
33:19
technology and syntax and idium right and way of
33:22
and way of thinking but with Dapper you don't
33:24
thinking but with Dapper you don't
33:24
thinking but with Dapper you don't because you are programming against this
33:27
because you are programming against this
33:27
because you are programming against this abstraction instead of programming
33:30
abstraction instead of programming
33:30
abstraction instead of programming against this particular and concrete
33:32
against this particular and concrete
33:33
against this particular and concrete technology
33:35
technology right and I'm going to show you that
33:37
right and I'm going to show you that
33:37
right and I'm going to show you that later in this in the
33:39
later in this in the
33:39
later in this in the show just remember different concrete
33:42
show just remember different concrete
33:42
show just remember different concrete implementations of building
33:44
implementations of building
33:44
implementations of building blocks okay let's talk about the Dapper
33:46
blocks okay let's talk about the Dapper
33:46
blocks okay let's talk about the Dapper architecture we have building blocks and
33:49
architecture we have building blocks and
33:49
architecture we have building blocks and Dapper exposes
33:52
Dapper exposes apis right through HTTP or grpc it
33:57
apis right through HTTP or grpc it
33:57
apis right through HTTP or grpc it depends on your particular taste or
34:00
depends on your particular taste or
34:00
depends on your particular taste or requirements most of the time I'm going
34:02
requirements most of the time I'm going
34:02
requirements most of the time I'm going to use
34:03
to use HTTP and Dapper exposes those endpoints
34:06
HTTP and Dapper exposes those endpoints
34:07
HTTP and Dapper exposes those endpoints that you can actually invoke directly
34:10
that you can actually invoke directly
34:10
that you can actually invoke directly from your applications or you can use
34:14
from your applications or you can use
34:14
from your applications or you can use some kind of
34:15
some kind of SDK uh for communicating to those
34:18
SDK uh for communicating to those
34:18
SDK uh for communicating to those endpoints you can use the net SDK node
34:21
endpoints you can use the net SDK node
34:21
endpoints you can use the net SDK node go PHP Java
34:24
go PHP Java Etc right or maybe you're using any
34:28
Etc right or maybe you're using any
34:28
Etc right or maybe you're using any other obscure programming language and
34:32
other obscure programming language and
34:32
other obscure programming language and as long as it supports
34:35
as long as it supports
34:35
as long as it supports HTTP requests and responses or
34:38
HTTP requests and responses or
34:39
HTTP requests and responses or grpc that's the only requirement you can
34:42
grpc that's the only requirement you can
34:42
grpc that's the only requirement you can use that programming language and in
34:45
use that programming language and in
34:45
use that programming language and in terms of the infrastructure you can run
34:48
terms of the infrastructure you can run
34:48
terms of the infrastructure you can run Dapper anywhere on premises Asher AWS
34:52
Dapper anywhere on premises Asher AWS
34:52
Dapper anywhere on premises Asher AWS Google Cloud platform Alibaba or so on
34:56
Google Cloud platform Alibaba or so on
34:56
Google Cloud platform Alibaba or so on or whatever your bat okay so it doesn't
35:00
or whatever your bat okay so it doesn't
35:00
or whatever your bat okay so it doesn't matter it doesn't matter okay that's one
35:03
matter it doesn't matter okay that's one
35:03
matter it doesn't matter okay that's one of the strengths of
35:05
of the strengths of dopper okay cool Dapper is meant to be
35:09
dopper okay cool Dapper is meant to be
35:09
dopper okay cool Dapper is meant to be used as a sidecar
35:13
container okay side car
35:17
container okay side car
35:17
container okay side car containers
35:19
containers is this the same pattern that we use for
35:25
is this the same pattern that we use for
35:25
is this the same pattern that we use for containers um and this comes from the
35:28
containers um and this comes from the
35:28
containers um and this comes from the containerization and containers and
35:30
containerization and containers and
35:30
containerization and containers and Docker World um and kubernetes world uh
35:34
Docker World um and kubernetes world uh
35:34
Docker World um and kubernetes world uh the thing about side car containers is
35:36
the thing about side car containers is
35:36
the thing about side car containers is that they run alongside your main
35:39
that they run alongside your main
35:39
that they run alongside your main application so Cesar Cru Dapper is like
35:42
application so Cesar Cru Dapper is like
35:42
application so Cesar Cru Dapper is like spring cloud or
35:43
spring cloud or Aspire I think no I mean you can use
35:48
Aspire I think no I mean you can use
35:48
Aspire I think no I mean you can use Dapper alongside those two
35:50
Dapper alongside those two
35:50
Dapper alongside those two technologies just think about Dapper as
35:53
technologies just think about Dapper as
35:53
technologies just think about Dapper as a framework for building distribut
35:57
a framework for building distribut
35:57
a framework for building distribut application ations and bear with me my
35:59
application ations and bear with me my
35:59
application ations and bear with me my friend this is going to be
36:01
friend this is going to be
36:01
friend this is going to be clear and more clear um as long as we
36:06
clear and more clear um as long as we
36:06
clear and more clear um as long as we continue with the course
36:08
continue with the course
36:08
continue with the course okay that similar not different similar
36:13
okay that similar not different similar
36:13
okay that similar not different similar okay uh coming back to the sidecar thing
36:16
okay uh coming back to the sidecar thing
36:16
okay uh coming back to the sidecar thing sidecar uh is this design pattern is
36:19
sidecar uh is this design pattern is
36:19
sidecar uh is this design pattern is running alongside the main application
36:21
running alongside the main application
36:21
running alongside the main application and the SAR is giving you additional
36:23
and the SAR is giving you additional
36:23
and the SAR is giving you additional behavior and
36:25
behavior and additional powers right to your main
36:29
additional powers right to your main
36:29
additional powers right to your main application it's giving you
36:32
application it's giving you
36:32
application it's giving you additional uh
36:34
additional uh functionality to the main
36:38
functionality to the main
36:38
functionality to the main program so that is how Dapper is meant
36:41
program so that is how Dapper is meant
36:41
program so that is how Dapper is meant to be used as a sidecar container in
36:45
to be used as a sidecar container in
36:45
to be used as a sidecar container in kubernetes running in the same path you
36:47
kubernetes running in the same path you
36:47
kubernetes running in the same path you have two containers the sidecar
36:49
have two containers the sidecar
36:49
have two containers the sidecar container and the application container
36:53
container and the application container
36:53
container and the application container to those two containers running in the
36:55
to those two containers running in the
36:55
to those two containers running in the same po but don't worry about kubernetes
36:57
same po but don't worry about kubernetes
36:57
same po but don't worry about kubernetes and deployment and so on I'm going to
37:00
and deployment and so on I'm going to
37:00
and deployment and so on I'm going to show you this in the deployment session
37:03
show you this in the deployment session
37:03
show you this in the deployment session later in this show the thing about the
37:07
later in this show the thing about the
37:07
later in this show the thing about the Dapper side car is that your application
37:11
Dapper side car is that your application
37:11
Dapper side car is that your application this is important the the the the arrows
37:14
this is important the the the the arrows
37:14
this is important the the the the arrows that we have here in the screen friends
37:18
that we have here in the screen friends
37:18
that we have here in the screen friends okay the application as you can see
37:22
okay the application as you can see
37:22
okay the application as you can see here is communicating to the dopper
37:25
here is communicating to the dopper
37:25
here is communicating to the dopper process or sidecar right right is
37:28
process or sidecar right right is
37:28
process or sidecar right right is communicating to the dopper side car and
37:30
communicating to the dopper side car and
37:30
communicating to the dopper side car and the dopper side car is the one
37:32
the dopper side car is the one
37:32
the dopper side car is the one responsible for communicating to the
37:34
responsible for communicating to the
37:34
responsible for communicating to the concrete implementation of those
37:37
concrete implementation of those
37:37
concrete implementation of those Technologies this is important this is
37:40
Technologies this is important this is
37:40
Technologies this is important this is actually what's going on behind the
37:42
actually what's going on behind the
37:42
actually what's going on behind the scenes you don't need to worry about you
37:46
scenes you don't need to worry about you
37:46
scenes you don't need to worry about you know programming against redis or rabid
37:49
know programming against redis or rabid
37:49
know programming against redis or rabid andq or Asher Cosmos DB or Dynamo DB you
37:54
andq or Asher Cosmos DB or Dynamo DB you
37:54
andq or Asher Cosmos DB or Dynamo DB you only program against those abstractions
37:58
only program against those abstractions
37:58
only program against those abstractions right so somebody was uh uh comparing
38:02
right so somebody was uh uh comparing
38:02
right so somebody was uh uh comparing Dapper with spring cloud or Aspire but I
38:05
Dapper with spring cloud or Aspire but I
38:05
Dapper with spring cloud or Aspire but I think Dapper is similar to
38:07
think Dapper is similar to
38:07
think Dapper is similar to the that's an old technology ancient
38:11
the that's an old technology ancient
38:11
the that's an old technology ancient framework but maybe somebody remembers
38:15
framework but maybe somebody remembers
38:15
framework but maybe somebody remembers the Enterprise building
38:18
the Enterprise building
38:18
the Enterprise building blocks the enter Enterprise what was the
38:21
blocks the enter Enterprise what was the
38:21
blocks the enter Enterprise what was the name of that technology from Microsoft
38:24
name of that technology from Microsoft
38:24
name of that technology from Microsoft the
38:25
the Enterprise yeah I think Enterprise
38:27
Enterprise yeah I think Enterprise
38:27
Enterprise yeah I think Enterprise building
38:29
building blocks just a framework just a set of
38:32
blocks just a framework just a set of
38:32
blocks just a framework just a set of abstractions that you could
38:35
abstractions that you could
38:35
abstractions that you could configure out from outside your
38:38
configure out from outside your
38:38
configure out from outside your application so you can change the
38:40
application so you can change the
38:40
application so you can change the behavior of the application just by
38:43
behavior of the application just by
38:43
behavior of the application just by changing the configuration but you don't
38:46
changing the configuration but you don't
38:46
changing the configuration but you don't change the code you don't change the
38:49
change the code you don't change the
38:49
change the code you don't change the implementation that you have uh in the
38:52
implementation that you have uh in the
38:52
implementation that you have uh in the inside okay so that's a
38:55
inside okay so that's a
38:55
inside okay so that's a another um that's another analogy of
38:59
another um that's another analogy of
38:59
another um that's another analogy of dapper here's another example friends uh
39:04
dapper here's another example friends uh
39:04
dapper here's another example friends uh of the daer side car this is for the
39:09
of the daer side car this is for the
39:09
of the daer side car this is for the service to service
39:10
service to service communication okay just think about this
39:14
communication okay just think about this
39:14
communication okay just think about this scenario right just uh imagine that we
39:19
scenario right just uh imagine that we
39:19
scenario right just uh imagine that we have this application
39:23
here right let me open up visual studio
39:27
here right let me open up visual studio
39:27
here right let me open up visual studio code
39:28
code right here and let's say that I need to
39:31
right here and let's say that I need to
39:31
right here and let's say that I need to you know invoke something from service B
39:35
you know invoke something from service B
39:35
you know invoke something from service B this is service
39:36
this is service a okay and I need to invoke something
39:40
a okay and I need to invoke something
39:40
a okay and I need to invoke something from from service
39:41
from from service B so most of the time you do something
39:45
B so most of the time you do something
39:45
B so most of the time you do something like of course I'm gonna I'm not going
39:48
like of course I'm gonna I'm not going
39:48
like of course I'm gonna I'm not going to use the best practices here but you
39:50
to use the best practices here but you
39:50
to use the best practices here but you use something like client new HTTP
39:53
use something like client new HTTP
39:53
use something like client new HTTP client right client get aing get a or
39:57
client right client get aing get a or
39:57
client right client get aing get a or get string acing or whatever floats your
39:59
get string acing or whatever floats your
39:59
get string acing or whatever floats your boat right and here you pass the
40:04
boat right and here you pass the
40:04
boat right and here you pass the URL and you receive the response bar
40:06
URL and you receive the response bar
40:06
URL and you receive the response bar response equals a weight and so on the
40:09
response equals a weight and so on the
40:09
response equals a weight and so on the thing about this line of code line
40:11
thing about this line of code line
40:11
thing about this line of code line number four is that you don't know this
40:14
number four is that you don't know this
40:14
number four is that you don't know this URL
40:17
URL beforehand and if you do you don't have
40:20
beforehand and if you do you don't have
40:20
beforehand and if you do you don't have a
40:21
a truly well created distributed
40:24
truly well created distributed
40:24
truly well created distributed application because you are hardcoding
40:27
application because you are hardcoding
40:27
application because you are hardcoding those IP addresses
40:29
those IP addresses right so you need a way um to
40:34
right so you need a way um to
40:34
right so you need a way um to communicate between service a and
40:36
communicate between service a and
40:36
communicate between service a and service B and of course service B could
40:39
service B and of course service B could
40:39
service B and of course service B could have many different
40:41
have many different replicas so in this particular example
40:45
replicas so in this particular example
40:45
replicas so in this particular example the dopper side car from service a is
40:49
the dopper side car from service a is
40:49
the dopper side car from service a is going to communicate to the dopper side
40:52
going to communicate to the dopper side
40:52
going to communicate to the dopper side car of service
40:54
car of service B and
40:57
B and those two sidec card containers are
40:59
those two sidec card containers are
40:59
those two sidec card containers are going to communicate between
41:01
going to communicate between
41:01
going to communicate between themselves there's no communication
41:03
themselves there's no communication
41:03
themselves there's no communication between service a and service B this is
41:07
between service a and service B this is
41:07
between service a and service B this is the gist of this diagram right and of
41:11
the gist of this diagram right and of
41:11
the gist of this diagram right and of course uh if you have many replicas and
41:14
course uh if you have many replicas and
41:14
course uh if you have many replicas and I'm going to talk about later in this
41:16
I'm going to talk about later in this
41:16
I'm going to talk about later in this show uh when you are communicating
41:19
show uh when you are communicating
41:19
show uh when you are communicating between Services you can also use an
41:23
between Services you can also use an
41:23
between Services you can also use an external name resolution component such
41:27
external name resolution component such
41:27
external name resolution component such as
41:28
as I don't know hashy cor
41:30
I don't know hashy cor
41:31
I don't know hashy cor console that is a directory of those
41:33
console that is a directory of those
41:33
console that is a directory of those different instances that are running in
41:35
different instances that are running in
41:35
different instances that are running in your in your solution right Dapper has
41:38
your in your solution right Dapper has
41:38
your in your solution right Dapper has its own you don't need to install
41:40
its own you don't need to install
41:40
its own you don't need to install console or any additional third party
41:45
console or any additional third party
41:45
console or any additional third party component uh but it's feasible here okay
41:50
component uh but it's feasible here okay
41:50
component uh but it's feasible here okay the thing and the gist of this diagram
41:53
the thing and the gist of this diagram
41:53
the thing and the gist of this diagram is that those daper containers are
41:55
is that those daper containers are
41:55
is that those daper containers are communicating between each other you
41:57
communicating between each other you
41:57
communicating between each other you don't worry about this direct
42:01
don't worry about this direct
42:01
don't worry about this direct communication between service a and
42:02
communication between service a and
42:02
communication between service a and service B you just let those dopper side
42:07
service B you just let those dopper side
42:07
service B you just let those dopper side cards to communicate and do their things
42:11
cards to communicate and do their things
42:11
cards to communicate and do their things that is fantastic
42:13
that is fantastic right how is this how is it different to
42:16
right how is this how is it different to
42:16
right how is this how is it different to Asher service boss well actually this is
42:19
Asher service boss well actually this is
42:19
Asher service boss well actually this is so different my friend from Asher
42:21
so different my friend from Asher
42:21
so different my friend from Asher service
42:25
boss um so I'm just I'm just discussing one
42:29
um so I'm just I'm just discussing one
42:29
um so I'm just I'm just discussing one single building block here my friend
42:32
single building block here my friend
42:32
single building block here my friend okay so with Asher service boss maybe
42:35
okay so with Asher service boss maybe
42:35
okay so with Asher service boss maybe you can use that the Asher service BX
42:37
you can use that the Asher service BX
42:37
you can use that the Asher service BX with this particular building block but
42:39
with this particular building block but
42:39
with this particular building block but Dapper
42:40
Dapper is greater than that larger there's a
42:44
is greater than that larger there's a
42:44
is greater than that larger there's a lot of different building blocks okay
42:47
lot of different building blocks okay
42:47
lot of different building blocks okay and bear with me it's going to be
42:49
and bear with me it's going to be
42:49
and bear with me it's going to be clearer and clearer as long as we
42:52
clearer and clearer as long as we
42:52
clearer and clearer as long as we continue with the um with the course
42:55
continue with the um with the course
42:55
continue with the um with the course anyway this comes from the
42:58
anyway this comes from the
42:58
anyway this comes from the uh kubernetes fundamentals training
43:00
uh kubernetes fundamentals training
43:00
uh kubernetes fundamentals training course that I did one year ago here in C
43:03
course that I did one year ago here in C
43:03
course that I did one year ago here in C Corner life just remember the sidecar is
43:06
Corner life just remember the sidecar is
43:07
Corner life just remember the sidecar is running in the same pod and they can
43:09
running in the same pod and they can
43:09
running in the same pod and they can share networking and they can share
43:12
share networking and they can share
43:12
share networking and they can share resources and I'm GNA return to this
43:14
resources and I'm GNA return to this
43:14
resources and I'm GNA return to this particular diagram when we discuss
43:18
particular diagram when we discuss
43:18
particular diagram when we discuss dopper deployments in
43:21
dopper deployments in
43:21
dopper deployments in kubernetes okay we're going to deploy
43:25
kubernetes okay we're going to deploy
43:25
kubernetes okay we're going to deploy our Dapper Solutions into kubernetes uh
43:28
our Dapper Solutions into kubernetes uh
43:28
our Dapper Solutions into kubernetes uh in one of the sessions just bear with me
43:31
in one of the sessions just bear with me
43:31
in one of the sessions just bear with me um this particular code it doesn't
43:35
um this particular code it doesn't
43:35
um this particular code it doesn't matter right now just a reminder for all
43:38
matter right now just a reminder for all
43:38
matter right now just a reminder for all of you who are using kubernetes nowadays
43:43
of you who are using kubernetes nowadays
43:43
of you who are using kubernetes nowadays just remember that a side card container
43:46
just remember that a side card container
43:47
just remember that a side card container is running in the same pod as the first
43:49
is running in the same pod as the first
43:49
is running in the same pod as the first container as the main
43:52
container as the main
43:52
container as the main container okay let's talk about the
43:53
container okay let's talk about the
43:53
container okay let's talk about the Dapper anatomy anatomy in in ter terms
43:57
Dapper anatomy anatomy in in ter terms
43:57
Dapper anatomy anatomy in in ter terms of uh what are the different hosting
44:00
of uh what are the different hosting
44:00
of uh what are the different hosting modes that we have and some other
44:02
modes that we have and some other
44:02
modes that we have and some other components that we have in dopper and so
44:04
components that we have in dopper and so
44:04
components that we have in dopper and so on so I think this is perfect for the
44:07
on so I think this is perfect for the
44:07
on so I think this is perfect for the last topic of the session today hosting
44:12
last topic of the session today hosting
44:12
last topic of the session today hosting modes as you can see here on the screen
44:15
modes as you can see here on the screen
44:15
modes as you can see here on the screen we have the Standalone process this is
44:17
we have the Standalone process this is
44:17
we have the Standalone process this is the one that we use when we are building
44:20
the one that we use when we are building
44:20
the one that we use when we are building Dapper
44:21
Dapper Solutions okay you install the dopper
44:24
Solutions okay you install the dopper
44:24
Solutions okay you install the dopper around time you install dopper in your
44:27
around time you install dopper in your
44:27
around time you install dopper in your own computer and it's going to run as a
44:30
own computer and it's going to run as a
44:30
own computer and it's going to run as a process for instance I'm running Windows
44:33
process for instance I'm running Windows
44:33
process for instance I'm running Windows 11 and if I run Dapper we can see Dapper
44:38
11 and if I run Dapper we can see Dapper
44:38
11 and if I run Dapper we can see Dapper doxe uh actually that is the name of the
44:42
doxe uh actually that is the name of the
44:42
doxe uh actually that is the name of the CLI that we we can see Dapper d. XE as
44:46
CLI that we we can see Dapper d. XE as
44:46
CLI that we we can see Dapper d. XE as the process that is running in my
44:49
the process that is running in my
44:49
the process that is running in my machine another option is kubernetes as
44:52
machine another option is kubernetes as
44:52
machine another option is kubernetes as I mentioned before this is going to run
44:54
I mentioned before this is going to run
44:54
I mentioned before this is going to run as a container in the same pod
44:57
as a container in the same pod
44:57
as a container in the same pod uh as a sidecar container remember that
45:00
uh as a sidecar container remember that
45:00
uh as a sidecar container remember that that's a design pattern for container
45:04
that's a design pattern for container
45:04
that's a design pattern for container right
45:04
right applications and that is actually the
45:07
applications and that is actually the
45:08
applications and that is actually the how Dapper was uh created and meant to
45:10
how Dapper was uh created and meant to
45:10
how Dapper was uh created and meant to be
45:11
be used and there's another option for
45:15
used and there's another option for
45:15
used and there's another option for running Dapper as a single process in a
45:18
running Dapper as a single process in a
45:18
running Dapper as a single process in a server and all of the
45:21
server and all of the
45:21
server and all of the services using the same
45:24
services using the same
45:24
services using the same process uh I think that's for testing
45:26
process uh I think that's for testing
45:26
process uh I think that's for testing purpos process only and I'm going to
45:29
purpos process only and I'm going to
45:29
purpos process only and I'm going to talk about in the deployment um session
45:32
talk about in the deployment um session
45:32
talk about in the deployment um session and finally we can uh use the serverless
45:35
and finally we can uh use the serverless
45:35
and finally we can uh use the serverless flavor of dapper that is baked into
45:40
flavor of dapper that is baked into
45:40
flavor of dapper that is baked into Asher container apps which is a
45:43
Asher container apps which is a
45:43
Asher container apps which is a fantastic fantastic and
45:46
fantastic fantastic and
45:46
fantastic fantastic and glorious
45:48
glorious uh uh service in Asher for running
45:53
uh uh service in Asher for running
45:53
uh uh service in Asher for running containerized
45:54
containerized applications and it supports Dapper out
45:58
applications and it supports Dapper out
45:58
applications and it supports Dapper out of the box um and you can think about
46:02
of the box um and you can think about
46:02
of the box um and you can think about Asher container apps as a seress flavor
46:06
Asher container apps as a seress flavor
46:06
Asher container apps as a seress flavor of
46:07
of kubernetes since we have Asher
46:09
kubernetes since we have Asher
46:09
kubernetes since we have Asher kubernetes service in Asher similar to
46:13
kubernetes service in Asher similar to
46:14
kubernetes service in Asher similar to elastic kubernetes service that we have
46:15
elastic kubernetes service that we have
46:15
elastic kubernetes service that we have in
46:16
in AWS but of course those two options you
46:20
AWS but of course those two options you
46:20
AWS but of course those two options you need to have the skills and the
46:22
need to have the skills and the
46:22
need to have the skills and the technical uh knowledge for managing and
46:26
technical uh knowledge for managing and
46:26
technical uh knowledge for managing and Opera ating the
46:28
Opera ating the cluster and Asher container apps you can
46:30
cluster and Asher container apps you can
46:30
cluster and Asher container apps you can think about that that's a
46:32
think about that that's a
46:32
think about that that's a serverless uh flavor of Asher kubernetes
46:36
serverless uh flavor of Asher kubernetes
46:36
serverless uh flavor of Asher kubernetes service okay so Dapper when you install
46:39
service okay so Dapper when you install
46:39
service okay so Dapper when you install this
46:41
thing um it includes different tools and
46:45
thing um it includes different tools and
46:45
thing um it includes different tools and components okay Dapper is this framework
46:49
components okay Dapper is this framework
46:49
components okay Dapper is this framework remember it's a framework that that's
46:51
remember it's a framework that that's
46:51
remember it's a framework that that's why it includes components and tools
46:55
why it includes components and tools
46:55
why it includes components and tools let's start with the
46:57
let's start with the
46:57
let's start with the CLI this is the crossplatform CLI that
47:02
CLI this is the crossplatform CLI that
47:02
CLI this is the crossplatform CLI that we use most of the time for running and
47:05
we use most of the time for running and
47:05
we use most of the time for running and configuring and you know managing the
47:09
configuring and you know managing the
47:09
configuring and you know managing the applications that we have uh running in
47:11
applications that we have uh running in
47:12
applications that we have uh running in Dapper it's like uh any other Dapper I'm
47:16
Dapper it's like uh any other Dapper I'm
47:16
Dapper it's like uh any other Dapper I'm sorry just like any other CLI Dapper
47:20
sorry just like any other CLI Dapper
47:20
sorry just like any other CLI Dapper doxe this is the one okay
47:23
doxe this is the one okay
47:23
doxe this is the one okay Dapper so I have version 1.5 uh
47:28
Dapper so I have version 1.5 uh
47:28
Dapper so I have version 1.5 uh 14 and I'm going to show you how to
47:30
14 and I'm going to show you how to
47:30
14 and I'm going to show you how to install this later today we also have
47:33
install this later today we also have
47:33
install this later today we also have the API that I mentioned before Dapper
47:36
the API that I mentioned before Dapper
47:36
the API that I mentioned before Dapper exposes some apis HTTP or grpc for
47:41
exposes some apis HTTP or grpc for
47:41
exposes some apis HTTP or grpc for interacting with Dapper it also includes
47:44
interacting with Dapper it also includes
47:44
interacting with Dapper it also includes the run time which is the heart of
47:46
the run time which is the heart of
47:46
the run time which is the heart of dapper and I mentioned the hosting
47:49
dapper and I mentioned the hosting
47:49
dapper and I mentioned the hosting options such as the Standalone side car
47:52
options such as the Standalone side car
47:52
options such as the Standalone side car in kubernetes and so on it also includes
47:55
in kubernetes and so on it also includes
47:55
in kubernetes and so on it also includes some components specifically created for
48:00
some components specifically created for
48:00
some components specifically created for kubernetes such as the operator and the
48:03
kubernetes such as the operator and the
48:03
kubernetes such as the operator and the sidecar injector so those two are used
48:07
sidecar injector so those two are used
48:07
sidecar injector so those two are used when you run Dapper inside kubernetes
48:12
when you run Dapper inside kubernetes
48:12
when you run Dapper inside kubernetes okay
48:13
okay so uh in the first sessions of this show
48:17
so uh in the first sessions of this show
48:17
so uh in the first sessions of this show we're not going to use those operator
48:19
we're not going to use those operator
48:19
we're not going to use those operator and sidecar injectors don't worry about
48:22
and sidecar injectors don't worry about
48:22
and sidecar injectors don't worry about those actually the placement Service as
48:25
those actually the placement Service as
48:25
those actually the placement Service as well this is for for the actor building
48:30
well this is for for the actor building
48:30
well this is for for the actor building block uh if you're going to use the
48:32
block uh if you're going to use the
48:32
block uh if you're going to use the actor
48:34
actor model that's when you use the placement
48:36
model that's when you use the placement
48:36
model that's when you use the placement service and you need to worry about that
48:39
service and you need to worry about that
48:39
service and you need to worry about that uh so operator sidecar injector and
48:41
uh so operator sidecar injector and
48:41
uh so operator sidecar injector and placement service we're not going to use
48:44
placement service we're not going to use
48:44
placement service we're not going to use those uh in the first sessions of this
48:46
those uh in the first sessions of this
48:46
those uh in the first sessions of this show of course we're going to use them
48:50
show of course we're going to use them
48:50
show of course we're going to use them in the deployment and the actors
48:53
in the deployment and the actors
48:53
in the deployment and the actors sessions uh
48:55
sessions uh respectively and the same
48:57
respectively and the same
48:57
respectively and the same is for issuing and managing um Mutual
49:01
is for issuing and managing um Mutual
49:01
is for issuing and managing um Mutual TLS certificates when you want to
49:03
TLS certificates when you want to
49:03
TLS certificates when you want to communicate between services this is an
49:05
communicate between services this is an
49:05
communicate between services this is an option that Dapper has for issuing
49:10
option that Dapper has for issuing
49:10
option that Dapper has for issuing certificates uh this is for security
49:12
certificates uh this is for security
49:13
certificates uh this is for security reasons so if you ask me the CLI the API
49:18
reasons so if you ask me the CLI the API
49:18
reasons so if you ask me the CLI the API the
49:19
the runtime and the host of course those
49:21
runtime and the host of course those
49:21
runtime and the host of course those first four options are the ones that
49:24
first four options are the ones that
49:24
first four options are the ones that we're going to talk about more and more
49:28
we're going to talk about more and more
49:28
we're going to talk about more and more over the rest of the course so preparing
49:31
over the rest of the course so preparing
49:31
over the rest of the course so preparing your environment okay cool let's get
49:35
your environment okay cool let's get
49:35
your environment okay cool let's get into it this is net
49:38
into it this is net 9 right we are living in net 9 world
49:43
9 right we are living in net 9 world
49:43
9 right we are living in net 9 world right now friends do n this is going to
49:46
right now friends do n this is going to
49:46
right now friends do n this is going to be my development environment of course
49:48
be my development environment of course
49:48
be my development environment of course you can use Python and other programming
49:51
you can use Python and other programming
49:51
you can use Python and other programming languages but of
49:53
languages but of course uh since I need to use some
49:56
course uh since I need to use some
49:56
course uh since I need to use some program languages beforehand I decide to
49:59
program languages beforehand I decide to
49:59
program languages beforehand I decide to use dot9 and C 13 so
50:05
Docker okay so the thing about Docker is
50:08
Docker okay so the thing about Docker is
50:08
Docker okay so the thing about Docker is that maybe you want to
50:11
that maybe you want to
50:11
that maybe you want to use a
50:14
use a dopper in your own computer and if you
50:18
dopper in your own computer and if you
50:18
dopper in your own computer and if you can run Docker desktop that would be
50:22
can run Docker desktop that would be
50:22
can run Docker desktop that would be perfect since you can easily switch
50:25
perfect since you can easily switch
50:25
perfect since you can easily switch between create implementations of those
50:28
between create implementations of those
50:28
between create implementations of those building
50:30
building blocks and if you can't use Docker
50:33
blocks and if you can't use Docker
50:33
blocks and if you can't use Docker desktop there's an option for you that
50:36
desktop there's an option for you that
50:36
desktop there's an option for you that I'm going to mention be uh after um this
50:39
I'm going to mention be uh after um this
50:40
I'm going to mention be uh after um this uh slide so don't worry Docker desktop
50:44
uh slide so don't worry Docker desktop
50:44
uh slide so don't worry Docker desktop is like a it's a nice to
50:47
is like a it's a nice to
50:47
is like a it's a nice to have uh piece of software for building
50:50
have uh piece of software for building
50:50
have uh piece of software for building dopper applications but it's not
50:52
dopper applications but it's not
50:52
dopper applications but it's not completely
50:53
completely required of course we need the CLI and
50:56
required of course we need the CLI and
50:57
required of course we need the CLI and visual studio or some other uh code
51:01
visual studio or some other uh code
51:01
visual studio or some other uh code editor right um any
51:05
editor right um any other code
51:08
other code editor whatever you you like friends
51:12
editor whatever you you like friends
51:12
editor whatever you you like friends okay okay so let's talk about installing
51:16
okay okay so let's talk about installing
51:16
okay okay so let's talk about installing the Dapper
51:17
the Dapper CLI so as you can see this is just a
51:21
CLI so as you can see this is just a
51:21
CLI so as you can see this is just a Powershell command this comes from the
51:23
Powershell command this comes from the
51:23
Powershell command this comes from the install the dopper
51:24
install the dopper CLI uh do mation that we have
51:28
CLI uh do mation that we have
51:28
CLI uh do mation that we have here let me show you this this navigated
51:33
here let me show you this this navigated
51:33
here let me show you this this navigated to docs.
51:34
to docs. doer. right so you can navigate here
51:38
doer. right so you can navigate here
51:38
doer. right so you can navigate here install the dopper CLI you have the
51:41
install the dopper CLI you have the
51:41
install the dopper CLI you have the option for installing Dapper in Linux
51:43
option for installing Dapper in Linux
51:43
option for installing Dapper in Linux and Windows and Mac OS you can even
51:46
and Windows and Mac OS you can even
51:46
and Windows and Mac OS you can even download the binaries if you want and of
51:49
download the binaries if you want and of
51:49
download the binaries if you want and of course if I select Windows which is my
51:52
course if I select Windows which is my
51:52
course if I select Windows which is my operating system that I have
51:54
operating system that I have
51:54
operating system that I have here this is the command that I need to
51:57
here this is the command that I need to
51:57
here this is the command that I need to execute this is a Powershell command for
52:00
execute this is a Powershell command for
52:00
execute this is a Powershell command for downloading this script and then it's
52:03
downloading this script and then it's
52:03
downloading this script and then it's going to execute the script okay so it's
52:07
going to execute the script okay so it's
52:07
going to execute the script okay so it's as easy as just copying this okay and
52:12
as easy as just copying this okay and
52:12
as easy as just copying this okay and executing this command in the
52:15
executing this command in the
52:15
executing this command in the terminal just be aware that you need
52:18
terminal just be aware that you need
52:18
terminal just be aware that you need administrator um
52:21
administrator um permissions here's another option if you
52:24
permissions here's another option if you
52:24
permissions here's another option if you don't have administrator
52:27
don't have administrator
52:27
don't have administrator permissions this option that that says
52:30
permissions this option that that says
52:30
permissions this option that that says install without administrative
52:33
install without administrative
52:33
install without administrative rights um in my case I do have
52:38
rights um in my case I do have
52:38
rights um in my case I do have administrative permissions oh let me go
52:41
administrative permissions oh let me go
52:41
administrative permissions oh let me go back here and paste this so this is
52:45
back here and paste this so this is
52:45
back here and paste this so this is goingon
52:46
goingon to as you can see
52:49
to as you can see download the
52:52
download the CLI just take into account this is just
52:54
CLI just take into account this is just
52:54
CLI just take into account this is just downloading the CLI
52:57
downloading the CLI okay and installing the
53:00
okay and installing the
53:00
okay and installing the CLI at the end of this process which is
53:03
CLI at the end of this process which is
53:03
CLI at the end of this process which is very fast as you can see here on the
53:04
very fast as you can see here on the
53:05
very fast as you can see here on the screen you're GNA have this Dapper
53:07
screen you're GNA have this Dapper
53:07
screen you're GNA have this Dapper folder in your C drive okay and inside
53:11
folder in your C drive okay and inside
53:11
folder in your C drive okay and inside this folder you're going to see Dapper
53:15
this folder you're going to see Dapper
53:15
this folder you're going to see Dapper doxe this is the
53:17
doxe this is the CLI so Dapper
53:21
CLI so Dapper dox okay this is CLI and of course you
53:25
dox okay this is CLI and of course you
53:25
dox okay this is CLI and of course you can invoke the CLI from any other folder
53:30
can invoke the CLI from any other folder
53:30
can invoke the CLI from any other folder because the path is going to be updated
53:32
because the path is going to be updated
53:33
because the path is going to be updated as well in your
53:35
as well in your machine so for instance I can execute
53:38
machine so for instance I can execute
53:38
machine so for instance I can execute the doer CLI in any place in my file
53:41
the doer CLI in any place in my file
53:41
the doer CLI in any place in my file system okay so that's the first option
53:43
system okay so that's the first option
53:43
system okay so that's the first option that we
53:46
need so the dopper CLI by itself is not
53:49
need so the dopper CLI by itself is not
53:49
need so the dopper CLI by itself is not very helpful to be honest we need to
53:52
very helpful to be honest we need to
53:52
very helpful to be honest we need to initialize dopper somehow
53:57
initialize dopper somehow
53:57
initialize dopper somehow what in the world is initialize Dapper
54:01
what in the world is initialize Dapper
54:01
what in the world is initialize Dapper what the meaning of initializing Dapper
54:05
what the meaning of initializing Dapper
54:05
what the meaning of initializing Dapper so when you initialize Dapper is that is
54:07
so when you initialize Dapper is that is
54:07
so when you initialize Dapper is that is going to
54:09
going to download the wrong
54:11
download the wrong time it's going to
54:13
time it's going to download it's going to pull the
54:16
download it's going to pull the
54:16
download it's going to pull the different Docker
54:18
different Docker containers the concrete implementations
54:20
containers the concrete implementations
54:20
containers the concrete implementations of a couple of building blocks in your
54:23
of a couple of building blocks in your
54:23
of a couple of building blocks in your Docker desktop in
54:27
Docker desktop in instance and it's going to create a new
54:30
instance and it's going to create a new
54:30
instance and it's going to create a new folder in your user
54:33
folder in your user folder and actually that's it so let's
54:37
folder and actually that's it so let's
54:37
folder and actually that's it so let's execute this
54:38
execute this okay just remember that I have
54:41
okay just remember that I have
54:41
okay just remember that I have Docker that's why I can just say dber in
54:46
Docker that's why I can just say dber in
54:46
Docker that's why I can just say dber in it and it
54:48
it and it detects that I can do
54:51
detects that I can do
54:51
detects that I can do this okay so it's gonna download the
54:55
this okay so it's gonna download the
54:55
this okay so it's gonna download the binaries
54:56
binaries it's going to pull those container
54:59
it's going to pull those container
54:59
it's going to pull those container images and it's going to configure my
55:02
images and it's going to configure my
55:02
images and it's going to configure my environment for using
55:05
environment for using
55:05
environment for using Dapper what happens if you don't have
55:09
Dapper what happens if you don't have
55:09
Dapper what happens if you don't have Docker so there's an option for you doer
55:13
Docker so there's an option for you doer
55:13
Docker so there's an option for you doer in it dash dash
55:17
in it dash dash slim so you can initialize daer with
55:21
slim so you can initialize daer with
55:21
slim so you can initialize daer with this
55:22
this option and in this case you're
55:25
option and in this case you're
55:25
option and in this case you're responsible for
55:28
responsible for installing the concrete implementations
55:30
installing the concrete implementations
55:30
installing the concrete implementations of the building
55:31
of the building blocks in other words you're responsible
55:34
blocks in other words you're responsible
55:34
blocks in other words you're responsible for installing rabbit mq redis or
55:37
for installing rabbit mq redis or
55:37
for installing rabbit mq redis or whatnot okay instead of just using the
55:43
whatnot okay instead of just using the
55:43
whatnot okay instead of just using the containers that are pulled immediately
55:47
containers that are pulled immediately
55:47
containers that are pulled immediately by the Dapper init option make
55:51
by the Dapper init option make
55:51
by the Dapper init option make sense that's why I think Docker is U is
55:55
sense that's why I think Docker is U is
55:55
sense that's why I think Docker is U is a nice to have
55:56
a nice to have component in your development
55:59
component in your development
55:59
component in your development environment but of course I understand
56:01
environment but of course I understand
56:01
environment but of course I understand that not all Computers support Docker
56:07
that not all Computers support Docker
56:07
that not all Computers support Docker desktop uh so as you can see this
56:10
desktop uh so as you can see this
56:10
desktop uh so as you can see this process is quite
56:11
process is quite fast uh it says okay Dapper D binary has
56:15
fast uh it says okay Dapper D binary has
56:15
fast uh it says okay Dapper D binary has been installed in this particular folder
56:19
been installed in this particular folder
56:19
been installed in this particular folder this is
56:20
this is great and Dapper placement container is
56:24
great and Dapper placement container is
56:24
great and Dapper placement container is running daer radius Dapper zip in dopper
56:28
running daer radius Dapper zip in dopper
56:28
running daer radius Dapper zip in dopper Schuler okay so I can actually say this
56:32
Schuler okay so I can actually say this
56:32
Schuler okay so I can actually say this Docker PS This is that the docker CLI
56:35
Docker PS This is that the docker CLI
56:35
Docker PS This is that the docker CLI right or I can go ahead and open my
56:38
right or I can go ahead and open my
56:38
right or I can go ahead and open my Docker desktop management tool and see
56:43
Docker desktop management tool and see
56:43
Docker desktop management tool and see that I have now daer Rus that's the name
56:46
that I have now daer Rus that's the name
56:46
that I have now daer Rus that's the name of the container right based on the
56:48
of the container right based on the
56:48
of the container right based on the radius uh tag six image container Zipkin
56:55
radius uh tag six image container Zipkin
56:55
radius uh tag six image container Zipkin and dopper right those four were pulled
56:59
and dopper right those four were pulled
56:59
and dopper right those four were pulled two minutes ago I already had those two
57:03
two minutes ago I already had those two
57:03
two minutes ago I already had those two that are on
57:04
that are on top so this is perfect that's why I was
57:07
top so this is perfect that's why I was
57:07
top so this is perfect that's why I was telling you friends Docker desktop is
57:09
telling you friends Docker desktop is
57:09
telling you friends Docker desktop is not nice to have tool when you're using
57:11
not nice to have tool when you're using
57:11
not nice to have tool when you're using Dapper because of uh portability and uh
57:15
Dapper because of uh portability and uh
57:15
Dapper because of uh portability and uh uh you can easily replace those
57:17
uh you can easily replace those
57:17
uh you can easily replace those containers with other versions Without
57:20
containers with other versions Without
57:20
containers with other versions Without You requiring to you know requiring you
57:23
You requiring to you know requiring you
57:23
You requiring to you know requiring you to uninstall everything and reinstall
57:26
to uninstall everything and reinstall
57:26
to uninstall everything and reinstall all the
57:27
all the applications so this is perfect uh ready
57:31
applications so this is perfect uh ready
57:31
applications so this is perfect uh ready Zin placement and scheduler those are
57:34
Zin placement and scheduler those are
57:34
Zin placement and scheduler those are running uh what else um in my user
57:39
running uh what else um in my user
57:39
running uh what else um in my user folder there's a new folder named do
57:42
folder there's a new folder named do
57:42
folder there's a new folder named do dapper so let's go here do
57:46
dapper so let's go here do
57:46
dapper so let's go here do dapper this is the place my friends
57:49
dapper this is the place my friends
57:49
dapper this is the place my friends where we can see all the different
57:52
where we can see all the different
57:52
where we can see all the different Dapper binaries that were
57:54
Dapper binaries that were
57:54
Dapper binaries that were installed for instance we can see this
57:58
installed for instance we can see this
57:58
installed for instance we can see this bin
57:59
bin folder in this bin folder we can see the
58:02
folder in this bin folder we can see the
58:02
folder in this bin folder we can see the Dapper
58:03
Dapper D which is the process of dapper the
58:08
D which is the process of dapper the
58:08
D which is the process of dapper the dashboard that we're going to see in the
58:10
dashboard that we're going to see in the
58:10
dashboard that we're going to see in the next
58:11
next session and some others that are inside
58:14
session and some others that are inside
58:14
session and some others that are inside this uh web folder right all the
58:18
this uh web folder right all the
58:18
this uh web folder right all the binaries are there then we have the
58:21
binaries are there then we have the
58:21
binaries are there then we have the components
58:22
components folder in this components folder we're
58:26
folder in this components folder we're
58:26
folder in this components folder we're going to see some jamama files remember
58:30
going to see some jamama files remember
58:30
going to see some jamama files remember jamama remember that I told you that one
58:34
jamama remember that I told you that one
58:34
jamama remember that I told you that one of the
58:35
of the prerequisites for this course is
58:37
prerequisites for this course is
58:37
prerequisites for this course is kubernetes fundamentals and of course
58:40
kubernetes fundamentals and of course
58:40
kubernetes fundamentals and of course when we talk about kubernetes we need to
58:43
when we talk about kubernetes we need to
58:43
when we talk about kubernetes we need to understand jaml right and if you are a
58:46
understand jaml right and if you are a
58:46
understand jaml right and if you are a kubernetes user you can see that this is
58:48
kubernetes user you can see that this is
58:48
kubernetes user you can see that this is very similar to the uh manifests that we
58:53
very similar to the uh manifests that we
58:53
very similar to the uh manifests that we create for kubernetes right right we
58:56
create for kubernetes right right we
58:56
create for kubernetes right right we have the API version we have kind
58:58
have the API version we have kind
58:58
have the API version we have kind metadata we have the
59:00
metadata we have the
59:00
metadata we have the spec but instead of uh
59:05
spec but instead of uh
59:05
spec but instead of uh defining kubernetes objects I mean
59:08
defining kubernetes objects I mean
59:08
defining kubernetes objects I mean kubernetes primitive objects we're
59:11
kubernetes primitive objects we're
59:11
kubernetes primitive objects we're defining dopper objects so component
59:16
defining dopper objects so component
59:16
defining dopper objects so component right and in this case this is
59:19
right and in this case this is
59:19
right and in this case this is configuring pops
59:21
configuring pops up okay this is for configuring the
59:24
up okay this is for configuring the
59:24
up okay this is for configuring the building block of Pop self for using R
59:30
building block of Pop self for using R
59:30
building block of Pop self for using R uh that is running in the docker
59:32
uh that is running in the docker
59:32
uh that is running in the docker container so let's go back here you can
59:34
container so let's go back here you can
59:34
container so let's go back here you can see this other configuration for state
59:37
see this other configuration for state
59:37
see this other configuration for state store
59:41
and I'm sorry this other one is for State R uh
59:45
sorry this other one is for State R uh
59:45
sorry this other one is for State R uh this is the concrete implementation of
59:47
this is the concrete implementation of
59:47
this is the concrete implementation of the saate management building block for
59:49
the saate management building block for
59:49
the saate management building block for using
59:51
using Rus so as you can see this is just
59:55
Rus so as you can see this is just
59:55
Rus so as you can see this is just passing the required
59:57
passing the required
59:57
passing the required configurations for connecting to
1:00:00
configurations for connecting to
1:00:00
configurations for connecting to radius which is the
1:00:03
radius which is the
1:00:03
radius which is the um uh when you installed upper this is
1:00:05
um uh when you installed upper this is
1:00:05
um uh when you installed upper this is the concrete implementation but of
1:00:07
the concrete implementation but of
1:00:07
the concrete implementation but of course you can replace that and I'm
1:00:09
course you can replace that and I'm
1:00:09
course you can replace that and I'm going to show you that in the next
1:00:11
going to show you that in the next
1:00:11
going to show you that in the next session finally we have this other
1:00:15
session finally we have this other
1:00:15
session finally we have this other configuration which is jaml uh I'm sorry
1:00:17
configuration which is jaml uh I'm sorry
1:00:17
configuration which is jaml uh I'm sorry config do jaml this is configuration and
1:00:21
config do jaml this is configuration and
1:00:21
config do jaml this is configuration and this is for uh just configuring
1:00:27
this is for uh just configuring
1:00:27
this is for uh just configuring the observability platform that is going
1:00:30
the observability platform that is going
1:00:30
the observability platform that is going to be used in this Dapper installation
1:00:34
to be used in this Dapper installation
1:00:34
to be used in this Dapper installation okay for instance if I navigate to Local
1:00:38
okay for instance if I navigate to Local
1:00:38
okay for instance if I navigate to Local Host
1:00:39
Host 9411 we can see that this is zing
1:00:42
9411 we can see that this is zing
1:00:42
9411 we can see that this is zing nothing fancy here friends I'm just
1:00:46
nothing fancy here friends I'm just
1:00:46
nothing fancy here friends I'm just touching I'm just invoking those
1:00:48
touching I'm just invoking those
1:00:48
touching I'm just invoking those containers that are running in my
1:00:51
containers that are running in my
1:00:51
containers that are running in my computer and this is because Dapper was
1:00:54
computer and this is because Dapper was
1:00:54
computer and this is because Dapper was installed
1:00:56
installed by using the Dapper CLI so first you in
1:01:00
by using the Dapper CLI so first you in
1:01:00
by using the Dapper CLI so first you in uh you download the CLI and then you
1:01:02
uh you download the CLI and then you
1:01:02
uh you download the CLI and then you initialize Dapper in Dapper is going to
1:01:04
initialize Dapper in Dapper is going to
1:01:04
initialize Dapper in Dapper is going to be sure to download and pull everything
1:01:07
be sure to download and pull everything
1:01:07
be sure to download and pull everything for you to start working with this
1:01:11
for you to start working with this
1:01:11
for you to start working with this technology
1:01:17
so this is it this is it for today
1:01:20
it this is it for today
1:01:20
it this is it for today friends um in the next session we're
1:01:23
friends um in the next session we're
1:01:23
friends um in the next session we're going to
1:01:24
going to continue uh on understanding how to
1:01:27
continue uh on understanding how to
1:01:27
continue uh on understanding how to build Dapper applications and if you
1:01:29
build Dapper applications and if you
1:01:29
build Dapper applications and if you want to follow along just remember to
1:01:32
want to follow along just remember to
1:01:32
want to follow along just remember to download the CLI and install Dapper on
1:01:35
download the CLI and install Dapper on
1:01:35
download the CLI and install Dapper on your computer be sure to use Docker
1:01:37
your computer be sure to use Docker
1:01:37
your computer be sure to use Docker desktop and if you don't use Docker
1:01:40
desktop and if you don't use Docker
1:01:40
desktop and if you don't use Docker desktop be sure to use doer init double
1:01:44
desktop be sure to use doer init double
1:01:44
desktop be sure to use doer init double double slash um I'm sorry Double Dash
1:01:50
slim perfect so with that said my name
1:01:54
slim perfect so with that said my name
1:01:54
slim perfect so with that said my name is Rodrigo and and I'm your host this is
1:01:57
is Rodrigo and and I'm your host this is
1:01:57
is Rodrigo and and I'm your host this is Dapper in action and see you next week
1:02:02
Dapper in action and see you next week
1:02:02
Dapper in action and see you next week bye-bye