In this episode, you will understand what Dapr is and how it solves some of the most common challenges when building distributed applications.
Join this live session with Rodrigo Díaz Concha for the premier episode of "Dapr in Action" weekly live show on December 09, at 11:00 AM (EST).
ABSTRACT
A new weekly series about creating robust distributed applications and microservices using Dapr (Distributed Application Runtime).
Developers and software architects who are building distributed applications and/or microservices and they want to understand how Dapr can make their lives easier. I will use .NET and C#, but will try to use other languages as well (for example, Python).
📺 CSharp TV - Dev Streaming Destination http://csharp.tv
🌎 C# Corner - Community of Software and Data Developers https://www.c-sharpcorner.com
#CSharpTV #csharpcorner #Dapr #LiveShow
Show More Show Less View Video Transcript
0:00
[Music]
0:18
[Music]
0:26
[Music]
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
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
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
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
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
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
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
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
4:00
concepts and distributed applications Bas basic
4:03
and distributed applications Bas basic
4:03
and distributed applications Bas basic concept
4:04
concept
4:04
concept Concepts I'm
4:06
Concepts I'm
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
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
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
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
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
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
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
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
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
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
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
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:08
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
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
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
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
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
12:07
some sense you are constrained
12:08
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
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
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
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
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
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
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
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
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
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
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
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
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
21:03
ignite uh event I think it
21:06
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
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
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
21:38
incubated project um
21:41
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
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
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
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
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
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
23:07
latest version fantastic
23:10
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
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
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
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
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
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
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
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
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:09
uh
26:11
uh
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
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
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
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:53
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
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
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
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
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
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
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
31:51
about the uh particular way of
31:54
particular way of
31:54
particular way of communicating in
31:56
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
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
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
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
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
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:34
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
40:54
car of service B and
40:57
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
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
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:23
service
42:23
service boss
42:25
boss
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
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
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
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
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:47
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
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
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
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
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
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
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
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
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
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
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
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:29
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
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
51:05
editor right um any other code
51:08
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
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
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.
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
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
52:46
goingon to as you can see
52:49
to as you can see
52:49
to as you can see download the
52:52
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
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
53:17
doxe this is the CLI so Dapper
53:21
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
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
54:09
going to download the wrong
54:11
download the wrong
54:11
download the wrong time it's going to
54:13
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:39
store
59:39
store and I'm
59:41
and I'm
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
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
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
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:13
technology
1:01:13
technology cool
1:01:14
cool
1:01:14
cool so this is
1:01:17
so this is
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
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
1:02:03
bye-bye
1:02:03
bye-bye [Music]


