0:03
so welcome everybody uh my name is Bill
0:05
so welcome everybody uh my name is Bill
0:05
so welcome everybody uh my name is Bill wolf and uh I've been a Microsoft MVP
0:07
wolf and uh I've been a Microsoft MVP
0:07
wolf and uh I've been a Microsoft MVP for 22 years uh uh I actually met Mahesh
0:12
for 22 years uh uh I actually met Mahesh
0:12
for 22 years uh uh I actually met Mahesh uh in Redmond at a uh an MVP Summit and
0:16
uh in Redmond at a uh an MVP Summit and
0:16
uh in Redmond at a uh an MVP Summit and we discovered that two of us don't live
0:18
we discovered that two of us don't live
0:18
we discovered that two of us don't live too far away and so we've been doing
0:20
too far away and so we've been doing
0:20
too far away and so we've been doing community stuff together for well over
0:23
community stuff together for well over
0:23
community stuff together for well over 15 years um I primarily worked as a
0:28
15 years um I primarily worked as a
0:28
15 years um I primarily worked as a contractor for my career uh you know
0:32
contractor for my career uh you know
0:32
contractor for my career uh you know starting in the 80s that was the
0:35
starting in the 80s that was the
0:35
starting in the 80s that was the 1980s and uh um I worked with lots of
0:38
1980s and uh um I worked with lots of
0:38
1980s and uh um I worked with lots of different Technologies I was an very
0:41
different Technologies I was an very
0:41
different Technologies I was an very early adopter of The NET Framework and
0:44
early adopter of The NET Framework and
0:44
early adopter of The NET Framework and SQL Server things that I still use daily
0:47
SQL Server things that I still use daily
0:47
SQL Server things that I still use daily in my job
0:49
in my job um about uh six months ago um I was uh I
0:55
um about uh six months ago um I was uh I
0:55
um about uh six months ago um I was uh I was actually considering
0:56
was actually considering
0:56
was actually considering retirement and uh uh you know s some
1:00
retirement and uh uh you know s some
1:00
retirement and uh uh you know s some feelers out and I got an interesting
1:02
feelers out and I got an interesting
1:02
feelers out and I got an interesting offer from a company in California named
1:05
offer from a company in California named
1:05
offer from a company in California named Simpson strong Tai and what they wanted
1:07
Simpson strong Tai and what they wanted
1:07
Simpson strong Tai and what they wanted to do is take a a a large suite of
1:12
to do is take a a a large suite of
1:12
to do is take a a a large suite of applications and move them from on
1:14
applications and move them from on
1:14
applications and move them from on premise to the cloud and I'm like well
1:17
premise to the cloud and I'm like well
1:17
premise to the cloud and I'm like well you know I know a lot about the cloud
1:18
you know I know a lot about the cloud
1:19
you know I know a lot about the cloud stuff I can show you how to do that
1:20
stuff I can show you how to do that
1:20
stuff I can show you how to do that because I've done that at other clients
1:22
because I've done that at other clients
1:22
because I've done that at other clients so what I'm going to show you today is
1:25
so what I'm going to show you today is
1:25
so what I'm going to show you today is uh sort of my journey discovering what
1:28
uh sort of my journey discovering what
1:28
uh sort of my journey discovering what they have and thinking about about how
1:30
they have and thinking about about how
1:30
they have and thinking about about how to apply it to the cloud uh just so
1:34
to apply it to the cloud uh just so
1:34
to apply it to the cloud uh just so everybody understands I am primarily
1:37
everybody understands I am primarily
1:37
everybody understands I am primarily Microsoft focused so all of this talk
1:40
Microsoft focused so all of this talk
1:40
Microsoft focused so all of this talk will be azure-based but you could do the
1:42
will be azure-based but you could do the
1:42
will be azure-based but you could do the same thing in AWS or Google or some
1:46
same thing in AWS or Google or some
1:46
same thing in AWS or Google or some other Cloud uh
1:48
other Cloud uh environment so uh what what we have at
1:52
environment so uh what what we have at
1:52
environment so uh what what we have at Simpson strong Tai what what does that
1:54
Simpson strong Tai what what does that
1:54
Simpson strong Tai what what does that company do um we make connectors for the
1:58
company do um we make connectors for the
1:58
company do um we make connectors for the Building Trades so so if you have a deck
2:01
Building Trades so so if you have a deck
2:01
Building Trades so so if you have a deck uh your deck is probably held together
2:03
uh your deck is probably held together
2:03
uh your deck is probably held together with little metal uh connectors with
2:06
with little metal uh connectors with
2:06
with little metal uh connectors with bolts in them we manufacture all that
2:09
bolts in them we manufacture all that
2:09
bolts in them we manufacture all that stuff by the millions and we also make
2:12
stuff by the millions and we also make
2:12
stuff by the millions and we also make things for commercial uh construction
2:15
things for commercial uh construction
2:15
things for commercial uh construction things that would help buildings
2:16
things that would help buildings
2:16
things that would help buildings withstand
2:18
withstand hurricanes so we have a lot of
2:20
hurricanes so we have a lot of
2:20
hurricanes so we have a lot of engineering and a lot of manufacturing
2:23
engineering and a lot of manufacturing
2:23
engineering and a lot of manufacturing capability since we sell so much of that
2:26
capability since we sell so much of that
2:26
capability since we sell so much of that kind of stuff we develop software
2:28
kind of stuff we develop software
2:28
kind of stuff we develop software applications that the Building Trades
2:31
applications that the Building Trades
2:31
applications that the Building Trades can use
2:33
can use to help sell our
2:36
to help sell our materials and uh I'm I'm working
2:39
materials and uh I'm I'm working
2:39
materials and uh I'm I'm working currently with the suite of
2:42
currently with the suite of
2:42
currently with the suite of applications that are written well over
2:45
applications that are written well over
2:45
applications that are written well over 10 years ago they are C based they are
2:48
10 years ago they are C based they are
2:48
10 years ago they are C based they are written in
2:50
written in WPF and it's all a traditional client
2:53
WPF and it's all a traditional client
2:53
WPF and it's all a traditional client server where they're actually uh talking
2:56
server where they're actually uh talking
2:56
server where they're actually uh talking directly to a SQL database installed on
3:00
directly to a SQL database installed on
3:00
directly to a SQL database installed on the user's machine they don't even work
3:02
the user's machine they don't even work
3:02
the user's machine they don't even work in an environment where they have a
3:04
in an environment where they have a
3:04
in an environment where they have a central server each person has their own
3:07
central server each person has their own
3:07
central server each person has their own SQL server and their own SQL reporting
3:10
SQL server and their own SQL reporting
3:10
SQL server and their own SQL reporting services and you can imagine this is a
3:12
services and you can imagine this is a
3:12
services and you can imagine this is a bear to support and
3:15
bear to support and maintain uh they did all of this because
3:18
maintain uh they did all of this because
3:18
maintain uh they did all of this because 10 15 years ago connectivity in a trust
3:21
10 15 years ago connectivity in a trust
3:21
10 15 years ago connectivity in a trust manufacturing plant was minimal so they
3:25
manufacturing plant was minimal so they
3:25
manufacturing plant was minimal so they made it so each person could sort of
3:27
made it so each person could sort of
3:27
made it so each person could sort of work independently we have to get the
3:30
work independently we have to get the
3:30
work independently we have to get the customers off that mindset and say well
3:32
customers off that mindset and say well
3:32
customers off that mindset and say well if everybody's connected we can put it
3:34
if everybody's connected we can put it
3:34
if everybody's connected we can put it in the cloud then everybody shares the
3:36
in the cloud then everybody shares the
3:36
in the cloud then everybody shares the same install the same versions a lot
3:40
same install the same versions a lot
3:40
same install the same versions a lot easier to support we can optimize
3:42
easier to support we can optimize
3:42
easier to support we can optimize performance so that was my mandate when
3:45
performance so that was my mandate when
3:45
performance so that was my mandate when I accepted the position and uh as I
3:49
I accepted the position and uh as I
3:49
I accepted the position and uh as I mentioned here the one application I'm
3:52
mentioned here the one application I'm
3:52
mentioned here the one application I'm working with just one of them has 5,000
3:55
working with just one of them has 5,000
3:55
working with just one of them has 5,000 databases and it uses the Microsoft sync
3:58
databases and it uses the Microsoft sync
3:58
databases and it uses the Microsoft sync framework to
4:00
framework to uh synchronize within a particular
4:02
uh synchronize within a particular
4:02
uh synchronize within a particular customer facility and uh there just a
4:07
customer facility and uh there just a
4:07
customer facility and uh there just a lot of old technology uh the other thing
4:09
lot of old technology uh the other thing
4:10
lot of old technology uh the other thing they done they've done is they've taken
4:12
they done they've done is they've taken
4:12
they done they've done is they've taken advantage of the file system so they use
4:14
advantage of the file system so they use
4:14
advantage of the file system so they use the file system to store some of the
4:17
the file system to store some of the
4:17
the file system to store some of the design information and also documents
4:19
design information and also documents
4:19
design information and also documents that have to do with buildings like code
4:22
that have to do with buildings like code
4:22
that have to do with buildings like code enforcement uh
4:24
enforcement uh submissions so how are we going to take
4:27
submissions so how are we going to take
4:27
submissions so how are we going to take all this stuff and move it to the cloud
4:29
all this stuff and move it to the cloud
4:29
all this stuff and move it to the cloud interesting
4:33
question well the easy thing and and if
4:36
question well the easy thing and and if
4:36
question well the easy thing and and if you do you know if you attend to
4:38
you do you know if you attend to
4:38
you do you know if you attend to Microsoft demo they'll say here you just
4:40
Microsoft demo they'll say here you just
4:40
Microsoft demo they'll say here you just make a a Blazer app and make a API and
4:44
make a a Blazer app and make a API and
4:44
make a a Blazer app and make a API and you publish to the cloud and it's like
4:46
you publish to the cloud and it's like
4:46
you publish to the cloud and it's like yeah that works real well for a simple
4:48
yeah that works real well for a simple
4:48
yeah that works real well for a simple application but what if you're going to
4:50
application but what if you're going to
4:50
application but what if you're going to do this for thousands of Enterprise
4:52
do this for thousands of Enterprise
4:52
do this for thousands of Enterprise users and you want it to be you know uh
4:56
users and you want it to be you know uh
4:56
users and you want it to be you know uh 49's reliability stuff like that there's
4:59
49's reliability stuff like that there's
4:59
49's reliability stuff like that there's a lot more that goes into that so we're
5:02
a lot more that goes into that so we're
5:02
a lot more that goes into that so we're going to start with the ability to
5:04
going to start with the ability to
5:04
going to start with the ability to convert the app and and it's sort of a
5:07
convert the app and and it's sort of a
5:07
convert the app and and it's sort of a natural conversion for us to go from WPF
5:09
natural conversion for us to go from WPF
5:09
natural conversion for us to go from WPF to Blazer somewhat related
5:12
to Blazer somewhat related
5:12
to Blazer somewhat related Technologies um and everything of course
5:15
Technologies um and everything of course
5:15
Technologies um and everything of course is written in C very R very few things
5:18
is written in C very R very few things
5:18
is written in C very R very few things are done in JavaScript at all for the uh
5:21
are done in JavaScript at all for the uh
5:21
are done in JavaScript at all for the uh for the service layer we would use
5:23
for the service layer we would use
5:23
for the service layer we would use minimal apis um I prefer those um and
5:27
minimal apis um I prefer those um and
5:27
minimal apis um I prefer those um and then we use a mix of entity framework
5:30
then we use a mix of entity framework
5:30
then we use a mix of entity framework and Dapper as the uh relational uh
5:33
and Dapper as the uh relational uh
5:33
and Dapper as the uh relational uh database
5:34
database connectivity this the databases instead
5:37
connectivity this the databases instead
5:37
connectivity this the databases instead of having like 5,000 of them out at the
5:40
of having like 5,000 of them out at the
5:40
of having like 5,000 of them out at the clients we're going to consolidate that
5:42
clients we're going to consolidate that
5:42
clients we're going to consolidate that into one multi-tenant database and
5:46
into one multi-tenant database and
5:46
into one multi-tenant database and believe me that that's a A Hard Sell to
5:49
believe me that that's a A Hard Sell to
5:49
believe me that that's a A Hard Sell to convince our business people and our
5:51
convince our business people and our
5:51
convince our business people and our customers that one database can handle
5:54
customers that one database can handle
5:54
customers that one database can handle this but I've worked in other Industries
5:56
this but I've worked in other Industries
5:56
this but I've worked in other Industries where that was clearly the case could
5:58
where that was clearly the case could
5:58
where that was clearly the case could easily be done and I've already built a
6:00
easily be done and I've already built a
6:00
easily be done and I've already built a proof concept to show that this will
6:02
proof concept to show that this will
6:02
proof concept to show that this will work fine the other thing I I uh looked
6:05
work fine the other thing I I uh looked
6:05
work fine the other thing I I uh looked at is well we don't want to use the file
6:07
at is well we don't want to use the file
6:07
at is well we don't want to use the file system because they're used to just
6:10
system because they're used to just
6:10
system because they're used to just taking like reports or design files and
6:13
taking like reports or design files and
6:13
taking like reports or design files and saving them to a local share well your
6:16
saving them to a local share well your
6:16
saving them to a local share well your web browser can't do that the user has
6:18
web browser can't do that the user has
6:18
web browser can't do that the user has to intervene they have to say okay I'll
6:20
to intervene they have to say okay I'll
6:20
to intervene they have to say okay I'll accept this download and put it in this
6:23
accept this download and put it in this
6:23
accept this download and put it in this folder so the way to get around that is
6:26
folder so the way to get around that is
6:26
folder so the way to get around that is to store all the documents in the cloud
6:28
to store all the documents in the cloud
6:28
to store all the documents in the cloud and you'd be amazed how inexpensive it
6:31
and you'd be amazed how inexpensive it
6:31
and you'd be amazed how inexpensive it is right now in my proof of concept I
6:34
is right now in my proof of concept I
6:34
is right now in my proof of concept I have three million documents stored in
6:37
have three million documents stored in
6:37
have three million documents stored in Azure storage and it's costing us about
6:39
Azure storage and it's costing us about
6:39
Azure storage and it's costing us about you know $20 a month to store that uh
6:43
you know $20 a month to store that uh
6:43
you know $20 a month to store that uh but something you may not be aware of
6:45
but something you may not be aware of
6:45
but something you may not be aware of when you use Azure storage um it has
6:48
when you use Azure storage um it has
6:48
when you use Azure storage um it has something called index tags so think of
6:51
something called index tags so think of
6:51
something called index tags so think of that as metadata so each document you
6:54
that as metadata so each document you
6:54
that as metadata so each document you can you can put in like the guid that
6:57
can you can put in like the guid that
6:57
can you can put in like the guid that Associates with the database you can put
6:59
Associates with the database you can put
6:59
Associates with the database you can put in like a category of class what kind of
7:02
in like a category of class what kind of
7:02
in like a category of class what kind of document it is and then you don't have
7:04
document it is and then you don't have
7:04
document it is and then you don't have to maintain a separate SQL table that
7:07
to maintain a separate SQL table that
7:07
to maintain a separate SQL table that matches to each document you actually
7:09
matches to each document you actually
7:09
matches to each document you actually use Azure storage as a database and you
7:13
use Azure storage as a database and you
7:13
use Azure storage as a database and you can query it and the the response time
7:15
can query it and the the response time
7:15
can query it and the the response time is
7:19
just extremely impressive the other thing of course
7:21
impressive the other thing of course
7:21
impressive the other thing of course we'll take advantage of is reddis
7:22
we'll take advantage of is reddis
7:22
we'll take advantage of is reddis caching and reddis caching allows us to
7:26
caching and reddis caching allows us to
7:26
caching and reddis caching allows us to take frequently used datas like lookup
7:28
take frequently used datas like lookup
7:28
take frequently used datas like lookup tables or or uh pictures that the
7:31
tables or or uh pictures that the
7:31
tables or or uh pictures that the customer just looked at and store them
7:34
customer just looked at and store them
7:34
customer just looked at and store them in a cach because they may want to look
7:36
in a cach because they may want to look
7:36
in a cach because they may want to look at them three minutes from now and uh
7:39
at them three minutes from now and uh
7:39
at them three minutes from now and uh put all that together and we can get a
7:41
put all that together and we can get a
7:41
put all that together and we can get a pretty fancy uh performance
7:44
pretty fancy uh performance
7:44
pretty fancy uh performance environment so that is our plan now as a
7:49
environment so that is our plan now as a
7:49
environment so that is our plan now as a developer how do I set that up on my
7:51
developer how do I set that up on my
7:51
developer how do I set that up on my machine well you know you could just go
7:54
machine well you know you could just go
7:54
machine well you know you could just go to visual studio or vs code say file new
7:57
to visual studio or vs code say file new
7:57
to visual studio or vs code say file new project and create a new project
8:00
project and create a new project
8:00
project and create a new project and that works to a point when you get
8:04
and that works to a point when you get
8:04
and that works to a point when you get into something this
8:07
into something this large and uh I didn't tell you that this
8:10
large and uh I didn't tell you that this
8:10
large and uh I didn't tell you that this is one of like 10 different applications
8:13
is one of like 10 different applications
8:13
is one of like 10 different applications that I'm working
8:14
that I'm working with then you start to think well 10
8:17
with then you start to think well 10
8:17
with then you start to think well 10 applications I bet they all need
8:19
applications I bet they all need
8:19
applications I bet they all need authentication they all need document
8:22
authentication they all need document
8:22
authentication they all need document management then you start thinking about
8:24
management then you start thinking about
8:24
management then you start thinking about building a platform so the platform
8:27
building a platform so the platform
8:27
building a platform so the platform becomes a set of services in Azure that
8:32
becomes a set of services in Azure that
8:32
becomes a set of services in Azure that is shared by multiple applications and
8:35
is shared by multiple applications and
8:35
is shared by multiple applications and those Services probably all are going to
8:38
those Services probably all are going to
8:38
those Services probably all are going to be API projects in some degree well how
8:43
be API projects in some degree well how
8:43
be API projects in some degree well how are we going to get all that down to a
8:45
are we going to get all that down to a
8:45
are we going to get all that down to a developer's desktop so that they can
8:47
developer's desktop so that they can
8:47
developer's desktop so that they can actually step through the code and
8:49
actually step through the code and
8:49
actually step through the code and understand how everything works and
8:51
understand how everything works and
8:51
understand how everything works and Microsoft invented this technology over
8:53
Microsoft invented this technology over
8:53
Microsoft invented this technology over the last year called Aspire so I'm a big
8:56
the last year called Aspire so I'm a big
8:56
the last year called Aspire so I'm a big fan of aspire and we use that to take
8:59
fan of aspire and we use that to take
8:59
fan of aspire and we use that to take all the projects and the front end and
9:01
all the projects and the front end and
9:01
all the projects and the front end and have them appear in a um a large
9:06
have them appear in a um a large
9:06
have them appear in a um a large solution and what happens is there's
9:08
solution and what happens is there's
9:08
solution and what happens is there's something in a Spire called the host and
9:11
something in a Spire called the host and
9:11
something in a Spire called the host and the host use orchestration to load the
9:13
the host use orchestration to load the
9:13
the host use orchestration to load the other projects and make them so they're
9:16
other projects and make them so they're
9:16
other projects and make them so they're all discoverable between each other uh
9:19
all discoverable between each other uh
9:19
all discoverable between each other uh excellent uh uh technology you should
9:22
excellent uh uh technology you should
9:22
excellent uh uh technology you should look at a SP if you have a chance some
9:25
look at a SP if you have a chance some
9:25
look at a SP if you have a chance some of the things you would use in a Spire
9:27
of the things you would use in a Spire
9:27
of the things you would use in a Spire like reddis you can Sim using Docker um
9:32
like reddis you can Sim using Docker um
9:32
like reddis you can Sim using Docker um and the other thing that's real nice
9:34
and the other thing that's real nice
9:34
and the other thing that's real nice about Aspire is it has a monitoring
9:37
about Aspire is it has a monitoring
9:37
about Aspire is it has a monitoring dashboard where all the Telemetry
9:39
dashboard where all the Telemetry
9:39
dashboard where all the Telemetry information is uh uh uh shown in a very
9:43
information is uh uh uh shown in a very
9:43
information is uh uh uh shown in a very visual way very easy to
9:46
visual way very easy to
9:46
visual way very easy to use so now we have to take we now that
9:50
use so now we have to take we now that
9:50
use so now we have to take we now that we built some stuff on our laptop and
9:52
we built some stuff on our laptop and
9:52
we built some stuff on our laptop and we're going to publish it to the web
9:55
we're going to publish it to the web
9:55
we're going to publish it to the web where do we publish it well there's a
9:58
where do we publish it well there's a
9:58
where do we publish it well there's a lot to learn in Azure and uh you know
10:00
lot to learn in Azure and uh you know
10:00
lot to learn in Azure and uh you know there's books I I I just most of my
10:04
there's books I I I just most of my
10:04
there's books I I I just most of my information I get from Microsoft learn
10:05
information I get from Microsoft learn
10:05
information I get from Microsoft learn and reading the
10:07
and reading the documentation but um in Azure there's a
10:10
documentation but um in Azure there's a
10:10
documentation but um in Azure there's a whole hierarchy that you have to
10:12
whole hierarchy that you have to
10:12
whole hierarchy that you have to understand and depending on the size of
10:15
understand and depending on the size of
10:15
understand and depending on the size of company you're in it's very likely you
10:17
company you're in it's very likely you
10:17
company you're in it's very likely you have very limited visibility to what's
10:19
have very limited visibility to what's
10:20
have very limited visibility to what's really going
10:21
really going on um if you work at my level as a as a
10:24
on um if you work at my level as a as a
10:24
on um if you work at my level as a as a senior architect um they'll say okay
10:28
senior architect um they'll say okay
10:28
senior architect um they'll say okay Bill you're allowed to see everything
10:29
Bill you're allowed to see everything
10:29
Bill you're allowed to see everything we're doing in Azure so you can help us
10:31
we're doing in Azure so you can help us
10:31
we're doing in Azure so you can help us make it better and then you learn about
10:34
make it better and then you learn about
10:34
make it better and then you learn about thing called management groups
10:36
thing called management groups
10:36
thing called management groups management groups are basically where
10:38
management groups are basically where
10:38
management groups are basically where you put individual developers and users
10:41
you put individual developers and users
10:41
you put individual developers and users so that they can see things in Azure and
10:45
so that they can see things in Azure and
10:45
so that they can see things in Azure and that sort of your top level and then
10:47
that sort of your top level and then
10:47
that sort of your top level and then below that they have these things called
10:49
below that they have these things called
10:49
below that they have these things called subscriptions a subscription is a tie to
10:53
subscriptions a subscription is a tie to
10:53
subscriptions a subscription is a tie to what's called an offer an offer implies
10:55
what's called an offer an offer implies
10:55
what's called an offer an offer implies the cost that you're going to have
10:58
the cost that you're going to have
10:58
the cost that you're going to have highly recommend that you learn about
11:01
highly recommend that you learn about
11:01
highly recommend that you learn about Dev test subscriptions they reduce the
11:04
Dev test subscriptions they reduce the
11:04
Dev test subscriptions they reduce the cost so that when you're doing
11:06
cost so that when you're doing
11:06
cost so that when you're doing development and 2A testing you're not
11:09
development and 2A testing you're not
11:09
development and 2A testing you're not paying full charge for your database
11:11
paying full charge for your database
11:11
paying full charge for your database your storage and and your uh event uh
11:16
your storage and and your uh event uh
11:16
your storage and and your uh event uh applications inside the subscriptions
11:19
applications inside the subscriptions
11:19
applications inside the subscriptions you're then going to place resource
11:21
you're then going to place resource
11:21
you're then going to place resource groups and the resource groups are
11:23
groups and the resource groups are
11:23
groups and the resource groups are basically a logical container think of
11:25
basically a logical container think of
11:25
basically a logical container think of it like a folder or if you're a SQL
11:27
it like a folder or if you're a SQL
11:27
it like a folder or if you're a SQL person think of it like a database
11:29
person think of it like a database
11:29
person think of it like a database and inside there you can have various
11:32
and inside there you can have various
11:32
and inside there you can have various resources a resource would be something
11:34
resources a resource would be something
11:34
resources a resource would be something like a database a website a
11:37
like a database a website a
11:37
like a database a website a log things like
11:40
log things like that so you have to sort of understand
11:43
that so you have to sort of understand
11:43
that so you have to sort of understand this now a lot of developers don't even
11:46
this now a lot of developers don't even
11:46
this now a lot of developers don't even need to touch this you can have your
11:49
need to touch this you can have your
11:49
need to touch this you can have your architect or more likely your devops
11:52
architect or more likely your devops
11:52
architect or more likely your devops person set all this up for you and then
11:55
person set all this up for you and then
11:55
person set all this up for you and then when you go to check in your source code
11:59
when you go to check in your source code
11:59
when you go to check in your source code and you do your pull request you might
12:01
and you do your pull request you might
12:01
and you do your pull request you might have cicd in place that automatically
12:04
have cicd in place that automatically
12:04
have cicd in place that automatically takes your code and puts it into the
12:07
takes your code and puts it into the
12:07
takes your code and puts it into the correct resources so that the users can
12:09
correct resources so that the users can
12:10
correct resources so that the users can see the
12:11
see the results um but somebody in your
12:13
results um but somebody in your
12:13
results um but somebody in your organization has to understand this
12:15
organization has to understand this
12:15
organization has to understand this stuff and has to embrace
12:18
stuff and has to embrace
12:19
stuff and has to embrace it now where do we put our web
12:21
it now where do we put our web
12:22
it now where do we put our web applications well typically when you see
12:24
applications well typically when you see
12:24
applications well typically when you see a demo they put them in an app service
12:26
a demo they put them in an app service
12:26
a demo they put them in an app service an app service is cloud native it's it's
12:29
an app service is cloud native it's it's
12:29
an app service is cloud native it's it's a way to put a front end or a back end
12:33
a way to put a front end or a back end
12:33
a way to put a front end or a back end you know your Blazer or your
12:35
you know your Blazer or your
12:35
you know your Blazer or your API you can put them in a website and
12:38
API you can put them in a website and
12:38
API you can put them in a website and they're attached to what's called an app
12:39
they're attached to what's called an app
12:39
they're attached to what's called an app service plan an app service plan
12:41
service plan an app service plan
12:41
service plan an app service plan basically indicates a Loca a geographic
12:44
basically indicates a Loca a geographic
12:44
basically indicates a Loca a geographic location and then also sort of a you
12:47
location and then also sort of a you
12:48
location and then also sort of a you know a costing
12:49
know a costing vehicle um that's one way to do it and
12:52
vehicle um that's one way to do it and
12:52
vehicle um that's one way to do it and other way to do it is something newer
12:54
other way to do it is something newer
12:54
other way to do it is something newer called the container app a container app
12:56
called the container app a container app
12:56
called the container app a container app actually takes your front end and sort
12:59
actually takes your front end and sort
12:59
actually takes your front end and sort of puts it into a Linux container and
13:03
of puts it into a Linux container and
13:03
of puts it into a Linux container and then runs from within there it's sort of
13:06
then runs from within there it's sort of
13:06
then runs from within there it's sort of like a scale down kubernetes kubernetes
13:09
like a scale down kubernetes kubernetes
13:09
like a scale down kubernetes kubernetes is the cloud way to do containers uh
13:13
is the cloud way to do containers uh
13:13
is the cloud way to do containers uh where Docker would be more the desktop
13:14
where Docker would be more the desktop
13:15
where Docker would be more the desktop version so those are all different ways
13:18
version so those are all different ways
13:18
version so those are all different ways that you can work with in our design
13:20
that you can work with in our design
13:20
that you can work with in our design we're we're leaning towards container
13:22
we're we're leaning towards container
13:22
we're we're leaning towards container apps um and uh um then a container app
13:26
apps um and uh um then a container app
13:26
apps um and uh um then a container app uh you can scale that by adding adding
13:29
uh you can scale that by adding adding
13:29
uh you can scale that by adding adding additional containers if you get a large
13:31
additional containers if you get a large
13:31
additional containers if you get a large load uh for some uh reason other things
13:35
load uh for some uh reason other things
13:35
load uh for some uh reason other things to consider uh are using serverless uh
13:39
to consider uh are using serverless uh
13:39
to consider uh are using serverless uh coding approaches like functions or
13:41
coding approaches like functions or
13:41
coding approaches like functions or logic apps and excellent thing for
13:43
logic apps and excellent thing for
13:44
logic apps and excellent thing for developers to learn um if you think you
13:47
developers to learn um if you think you
13:47
developers to learn um if you think you want to write a a very complex
13:50
want to write a a very complex
13:50
want to write a a very complex API eventually you'll get that done and
13:53
API eventually you'll get that done and
13:53
API eventually you'll get that done and you'll push it to the web but if you
13:55
you'll push it to the web but if you
13:55
you'll push it to the web but if you want somebody to see sort of an example
13:57
want somebody to see sort of an example
13:57
want somebody to see sort of an example of what you're doing make a function
14:00
of what you're doing make a function
14:00
of what you're doing make a function that sort of reads the same data from
14:02
that sort of reads the same data from
14:02
that sort of reads the same data from the database and returns it back uh and
14:05
the database and returns it back uh and
14:05
the database and returns it back uh and then that you can have other developers
14:07
then that you can have other developers
14:07
then that you can have other developers or you can show your your uh business
14:10
or you can show your your uh business
14:10
or you can show your your uh business people what the data is going to look
14:12
people what the data is going to look
14:12
people what the data is going to look like before you actually have the
14:14
like before you actually have the
14:14
like before you actually have the full-blown uh uh API service created so
14:18
full-blown uh uh API service created so
14:18
full-blown uh uh API service created so I often use functions in in conjunction
14:21
I often use functions in in conjunction
14:21
I often use functions in in conjunction with um container apps and uh when I
14:24
with um container apps and uh when I
14:24
with um container apps and uh when I build
14:28
services where are we going to put the
14:29
services where are we going to put the
14:29
services where are we going to put the data well that's a that's a fascinating
14:32
data well that's a that's a fascinating
14:32
data well that's a that's a fascinating thing to learn I said there were 5,000
14:34
thing to learn I said there were 5,000
14:35
thing to learn I said there were 5,000 databases and that's just one of my
14:37
databases and that's just one of my
14:37
databases and that's just one of my applications um some of the other
14:39
applications um some of the other
14:39
applications um some of the other applications have many hundreds or
14:41
applications have many hundreds or
14:41
applications have many hundreds or thousands also so part of my job is to
14:44
thousands also so part of my job is to
14:44
thousands also so part of my job is to figure out how can we sort of you know
14:47
figure out how can we sort of you know
14:47
figure out how can we sort of you know herd all of the databases into something
14:50
herd all of the databases into something
14:50
herd all of the databases into something more manageable and
14:53
more manageable and um Microsoft offers multiple ways to
14:56
um Microsoft offers multiple ways to
14:56
um Microsoft offers multiple ways to host SQL natively in Azure uh they have
14:59
host SQL natively in Azure uh they have
14:59
host SQL natively in Azure uh they have what are called
15:00
what are called vcore uh subscriptions DTU and
15:03
vcore uh subscriptions DTU and
15:03
vcore uh subscriptions DTU and hyperscale so hyperscale is the newest
15:06
hyperscale so hyperscale is the newest
15:06
hyperscale so hyperscale is the newest and uh and sort of the
15:08
and uh and sort of the
15:08
and uh and sort of the fanciest um and then vcor has a
15:11
fanciest um and then vcor has a
15:11
fanciest um and then vcor has a serverless option and and the reason I
15:13
serverless option and and the reason I
15:13
serverless option and and the reason I bring up serverless if you set up a
15:16
bring up serverless if you set up a
15:16
bring up serverless if you set up a development
15:18
development environment and you use Vore as your
15:21
environment and you use Vore as your
15:21
environment and you use Vore as your choice of database then you can mark it
15:23
choice of database then you can mark it
15:24
choice of database then you can mark it a serverless and you can tell it to turn
15:26
a serverless and you can tell it to turn
15:26
a serverless and you can tell it to turn off after 30 minutes of activity of
15:31
off after 30 minutes of activity of
15:31
off after 30 minutes of activity of inactivity that saves you some money and
15:34
inactivity that saves you some money and
15:34
inactivity that saves you some money and if you're in a shop where you're only
15:36
if you're in a shop where you're only
15:36
if you're in a shop where you're only developing like you know eight hours a
15:40
developing like you know eight hours a
15:40
developing like you know eight hours a day well that's 40 hours out
15:45
day well that's 40 hours out
15:45
day well that's 40 hours out of 168 for the the week so basically you
15:49
of 168 for the the week so basically you
15:49
of 168 for the the week so basically you can program your database to not charge
15:53
can program your database to not charge
15:53
can program your database to not charge anything to your account while you're
15:55
anything to your account while you're
15:55
anything to your account while you're not using it great great thing to do so
15:58
not using it great great thing to do so
15:58
not using it great great thing to do so the 's different ways to do this the
16:00
the 's different ways to do this the
16:00
the 's different ways to do this the other thing you can do with SQL
16:01
other thing you can do with SQL
16:01
other thing you can do with SQL databases you can put them in pools
16:03
databases you can put them in pools
16:03
databases you can put them in pools there's a thing called an elastic pool
16:06
there's a thing called an elastic pool
16:06
there's a thing called an elastic pool and with that does rather than reserve a
16:09
and with that does rather than reserve a
16:09
and with that does rather than reserve a certain amount of compute and storage
16:11
certain amount of compute and storage
16:11
certain amount of compute and storage for a particular database you reserve a
16:14
for a particular database you reserve a
16:14
for a particular database you reserve a compute and storage quota and share it
16:18
compute and storage quota and share it
16:18
compute and storage quota and share it across dozens of databases and then if
16:21
across dozens of databases and then if
16:21
across dozens of databases and then if one is active it takes the compute the
16:24
one is active it takes the compute the
16:24
one is active it takes the compute the and then it dies down and then another
16:25
and then it dies down and then another
16:25
and then it dies down and then another one becomes active so you have to look
16:27
one becomes active so you have to look
16:27
one becomes active so you have to look at sort of the trends of how you use
16:29
at sort of the trends of how you use
16:29
at sort of the trends of how you use your data to see what is going to be the
16:32
your data to see what is going to be the
16:32
your data to see what is going to be the best solution for you um in terms of
16:36
best solution for you um in terms of
16:36
best solution for you um in terms of storage I mentioned I'm storing millions
16:38
storage I mentioned I'm storing millions
16:38
storage I mentioned I'm storing millions of documents already I'm
16:40
of documents already I'm
16:40
of documents already I'm projecting uh in in two or three years
16:43
projecting uh in in two or three years
16:43
projecting uh in in two or three years we'll easily have 250 million documents
16:46
we'll easily have 250 million documents
16:46
we'll easily have 250 million documents not concerned about that at all uh Azure
16:49
not concerned about that at all uh Azure
16:49
not concerned about that at all uh Azure is designed to handle lots more than
16:50
is designed to handle lots more than
16:51
is designed to handle lots more than that uh but you have to sort of
16:53
that uh but you have to sort of
16:53
that uh but you have to sort of understand how to work with blobs and
16:56
understand how to work with blobs and
16:56
understand how to work with blobs and the biggest thing I want you to study is
16:58
the biggest thing I want you to study is
16:58
the biggest thing I want you to study is this thing called IND tags it makes
17:00
this thing called IND tags it makes
17:00
this thing called IND tags it makes quite a difference in how fast you can
17:02
quite a difference in how fast you can
17:02
quite a difference in how fast you can access and search for a document and
17:04
access and search for a document and
17:04
access and search for a document and then download it as
17:07
then download it as needed uh redis cache is a you know
17:10
needed uh redis cache is a you know
17:10
needed uh redis cache is a you know that's an industry standard uh used in a
17:12
that's an industry standard uh used in a
17:12
that's an industry standard uh used in a lot of Open Source projects uh they do
17:15
lot of Open Source projects uh they do
17:15
lot of Open Source projects uh they do have a native reddis cache built into
17:18
have a native reddis cache built into
17:18
have a native reddis cache built into Azure so we will take advantage of that
17:21
Azure so we will take advantage of that
17:21
Azure so we will take advantage of that and the other thing in terms of data
17:22
and the other thing in terms of data
17:22
and the other thing in terms of data management I would mention is a key
17:25
management I would mention is a key
17:25
management I would mention is a key Vault and the key vault is where you put
17:28
Vault and the key vault is where you put
17:28
Vault and the key vault is where you put your secrets
17:29
your secrets and by Secrets I mean things like
17:31
and by Secrets I mean things like
17:31
and by Secrets I mean things like connection strings uh things that you
17:33
connection strings uh things that you
17:33
connection strings uh things that you don't want all the developers to know
17:36
don't want all the developers to know
17:36
don't want all the developers to know what they are and then typically devops
17:39
what they are and then typically devops
17:39
what they are and then typically devops or your security Ops person manages the
17:42
or your security Ops person manages the
17:42
or your security Ops person manages the secrets and doesn't let
17:44
secrets and doesn't let
17:45
secrets and doesn't let the uh uh the desk developer actually
17:48
the uh uh the desk developer actually
17:48
the uh uh the desk developer actually know what's going on and that's how we
17:50
know what's going on and that's how we
17:50
know what's going on and that's how we protect uh environments like staging and
17:56
production now if you're used to doing
17:59
production now if you're used to doing
17:59
production now if you're used to doing desktop apps you probably haven't done a
18:02
desktop apps you probably haven't done a
18:02
desktop apps you probably haven't done a lot of event driven
18:04
lot of event driven programming and
18:07
programming and the there are two things that I want you
18:10
the there are two things that I want you
18:10
the there are two things that I want you to think about in the Azure space one's
18:12
to think about in the Azure space one's
18:12
to think about in the Azure space one's called a vent grid and one's called
18:13
called a vent grid and one's called
18:13
called a vent grid and one's called service
18:15
service bus a vent grid is where a device can
18:20
bus a vent grid is where a device can
18:20
bus a vent grid is where a device can publish to some
18:23
publish to some endpoint and then other routines like a
18:27
endpoint and then other routines like a
18:27
endpoint and then other routines like a worker app a container worker app can
18:31
worker app a container worker app can
18:31
worker app a container worker app can subscribe to that endpoint and pick
18:34
subscribe to that endpoint and pick
18:34
subscribe to that endpoint and pick things off the queue and we're looking
18:37
things off the queue and we're looking
18:37
things off the queue and we're looking at that as a way to transfer data from
18:39
at that as a way to transfer data from
18:39
at that as a way to transfer data from our old Legacy uh software up to the
18:43
our old Legacy uh software up to the
18:43
our old Legacy uh software up to the cloud um and then also it's really good
18:46
cloud um and then also it's really good
18:46
cloud um and then also it's really good for things that are like workflow
18:48
for things that are like workflow
18:48
for things that are like workflow related so for instance um the software
18:52
related so for instance um the software
18:52
related so for instance um the software I I work on is used to design roof
18:55
I I work on is used to design roof
18:55
I I work on is used to design roof trusts so those are those big wooden
18:57
trusts so those are those big wooden
18:57
trusts so those are those big wooden things that have the little metal plates
19:00
things that have the little metal plates
19:00
things that have the little metal plates in them that hold up your roof and if
19:02
in them that hold up your roof and if
19:02
in them that hold up your roof and if you have one of those you can say gee I
19:05
you have one of those you can say gee I
19:05
you have one of those you can say gee I know Bill wolf who works at Simpson they
19:08
know Bill wolf who works at Simpson they
19:08
know Bill wolf who works at Simpson they manufacture all those
19:10
manufacture all those
19:10
manufacture all those plates and they make software to help uh
19:14
plates and they make software to help uh
19:14
plates and they make software to help uh Builders design the shape of the truss
19:17
Builders design the shape of the truss
19:17
Builders design the shape of the truss and if you don't have the proper size
19:19
and if you don't have the proper size
19:19
and if you don't have the proper size wood and the proper plates your truss
19:21
wood and the proper plates your truss
19:21
wood and the proper plates your truss falls down in the snow we don't want
19:23
falls down in the snow we don't want
19:23
falls down in the snow we don't want that to happen well when we do a project
19:27
that to happen well when we do a project
19:27
that to happen well when we do a project you know we're going to we're going to
19:28
you know we're going to we're going to
19:28
you know we're going to we're going to have a bid
19:29
have a bid then we're going to have the bid
19:30
then we're going to have the bid
19:30
then we're going to have the bid accepted to me those are
19:33
accepted to me those are
19:33
accepted to me those are events um then I'm going to have the the
19:37
events um then I'm going to have the the
19:37
events um then I'm going to have the the whole truss system designed for roof
19:40
whole truss system designed for roof
19:40
whole truss system designed for roof then I have to send that to code
19:42
then I have to send that to code
19:42
then I have to send that to code enforcement to have it but they are
19:44
enforcement to have it but they are
19:44
enforcement to have it but they are called sealed and then that once it's
19:47
called sealed and then that once it's
19:47
called sealed and then that once it's sealed I can put it down to the
19:49
sealed I can put it down to the
19:49
sealed I can put it down to the production floor and have it
19:50
production floor and have it
19:50
production floor and have it manufactured then somebody can load it
19:52
manufactured then somebody can load it
19:52
manufactured then somebody can load it on a truck the truck drives it over to a
19:55
on a truck the truck drives it over to a
19:55
on a truck the truck drives it over to a construction site and delivers it and
19:58
construction site and delivers it and
19:58
construction site and delivers it and then the installers actually take it and
20:00
then the installers actually take it and
20:00
then the installers actually take it and install it to me each of those is events
20:02
install it to me each of those is events
20:02
install it to me each of those is events well that's what you would use event
20:04
well that's what you would use event
20:04
well that's what you would use event grid for every time one of these things
20:06
grid for every time one of these things
20:06
grid for every time one of these things happens I want to fire an event and then
20:09
happens I want to fire an event and then
20:09
happens I want to fire an event and then my software can sort of put in a task
20:11
my software can sort of put in a task
20:11
my software can sort of put in a task table and say this is when everything
20:13
table and say this is when everything
20:13
table and say this is when everything was completed and uh it's a real nice
20:16
was completed and uh it's a real nice
20:16
was completed and uh it's a real nice way to work um and the venorid supports
20:19
way to work um and the venorid supports
20:19
way to work um and the venorid supports mqtt which is a like sort of an industry
20:22
mqtt which is a like sort of an industry
20:22
mqtt which is a like sort of an industry standard way to do messaging now if you
20:26
standard way to do messaging now if you
20:26
standard way to do messaging now if you have a number of services I said we're
20:28
have a number of services I said we're
20:28
have a number of services I said we're going to have a platform across multiple
20:30
going to have a platform across multiple
20:30
going to have a platform across multiple applications if you have a number of
20:32
applications if you have a number of
20:32
applications if you have a number of services on the cloud that need to talk
20:36
services on the cloud that need to talk
20:36
services on the cloud that need to talk to each other then the way to do that is
20:38
to each other then the way to do that is
20:38
to each other then the way to do that is called service bus and what that does is
20:41
called service bus and what that does is
20:41
called service bus and what that does is allows you to decouple your applications
20:44
allows you to decouple your applications
20:44
allows you to decouple your applications and have something say okay the Design's
20:48
and have something say okay the Design's
20:48
and have something say okay the Design's done post a an event onto the service
20:53
done post a an event onto the service
20:53
done post a an event onto the service bus and then maybe the reporting engine
20:55
bus and then maybe the reporting engine
20:55
bus and then maybe the reporting engine picks up that event and says oh you want
20:57
picks up that event and says oh you want
20:57
picks up that event and says oh you want me to build all of the formal reports
21:00
me to build all of the formal reports
21:00
me to build all of the formal reports for this design and uh put them in
21:03
for this design and uh put them in
21:03
for this design and uh put them in document storage or email them to
21:05
document storage or email them to
21:05
document storage or email them to somebody showing them that they're ready
21:07
somebody showing them that they're ready
21:07
somebody showing them that they're ready so these are things that I would
21:09
so these are things that I would
21:09
so these are things that I would recommend you start looking at it's sort
21:11
recommend you start looking at it's sort
21:11
recommend you start looking at it's sort of a different way to program you're
21:13
of a different way to program you're
21:13
of a different way to program you're using the entire Cloud uh and and having
21:17
using the entire Cloud uh and and having
21:17
using the entire Cloud uh and and having different components talk to each other
21:19
different components talk to each other
21:19
different components talk to each other uh in an orchestrated
21:23
fashion now once you get all the stuff
21:25
fashion now once you get all the stuff
21:25
fashion now once you get all the stuff in the cloud then you have to say well
21:28
in the cloud then you have to say well
21:28
in the cloud then you have to say well we got a secure this we got to protect
21:29
we got a secure this we got to protect
21:30
we got a secure this we got to protect it and uh one of the ways to do that is
21:33
it and uh one of the ways to do that is
21:33
it and uh one of the ways to do that is uh you set up gateways you set up uh
21:36
uh you set up gateways you set up uh
21:36
uh you set up gateways you set up uh there's an API Center that Microsoft
21:39
there's an API Center that Microsoft
21:39
there's an API Center that Microsoft provides as part of azure and it can
21:41
provides as part of azure and it can
21:41
provides as part of azure and it can have policies and restrict who can get
21:43
have policies and restrict who can get
21:43
have policies and restrict who can get to your apis and when you can have
21:47
to your apis and when you can have
21:47
to your apis and when you can have private endpoints you can have things
21:48
private endpoints you can have things
21:48
private endpoints you can have things called peer subnets where you can have
21:51
called peer subnets where you can have
21:51
called peer subnets where you can have two services like within the cloud talk
21:53
two services like within the cloud talk
21:53
two services like within the cloud talk to each other but nobody from outside
21:55
to each other but nobody from outside
21:55
to each other but nobody from outside can talk to them so there's a whole sort
21:58
can talk to them so there's a whole sort
21:58
can talk to them so there's a whole sort of science to how you set up your
22:00
of science to how you set up your
22:00
of science to how you set up your network and secure it so you can keep
22:03
network and secure it so you can keep
22:03
network and secure it so you can keep out Bad
22:05
out Bad actors one of my favorite parts of the
22:07
actors one of my favorite parts of the
22:07
actors one of my favorite parts of the cloud is monitoring and and once you get
22:10
cloud is monitoring and and once you get
22:10
cloud is monitoring and and once you get into Cloud native um I mean some of us
22:13
into Cloud native um I mean some of us
22:13
into Cloud native um I mean some of us grew up like reading text logs from the
22:16
grew up like reading text logs from the
22:16
grew up like reading text logs from the C
22:16
C drive this is much much fancier and uh
22:21
drive this is much much fancier and uh
22:21
drive this is much much fancier and uh you know Microsoft has this thing called
22:22
you know Microsoft has this thing called
22:22
you know Microsoft has this thing called app insights it's been upgraded and now
22:27
app insights it's been upgraded and now
22:27
app insights it's been upgraded and now it relies on something called log
22:29
it relies on something called log
22:29
it relies on something called log analytics workspace to actually store
22:32
analytics workspace to actually store
22:32
analytics workspace to actually store the logging information once you start
22:35
the logging information once you start
22:35
the logging information once you start collecting these logs you can then query
22:38
collecting these logs you can then query
22:38
collecting these logs you can then query them and you can query them using a
22:40
them and you can query them using a
22:40
them and you can query them using a language called custo
22:43
language called custo
22:43
language called custo k um and uh it's shortened to kql for
22:47
k um and uh it's shortened to kql for
22:47
k um and uh it's shortened to kql for custo query language so you query your
22:49
custo query language so you query your
22:50
custo query language so you query your logs and then these can be used to
22:53
logs and then these can be used to
22:53
logs and then these can be used to generate alerts which would be email
22:56
generate alerts which would be email
22:56
generate alerts which would be email messages if you got a bunch of errors or
23:00
messages if you got a bunch of errors or
23:00
messages if you got a bunch of errors or you could put them in a workbook a
23:03
you could put them in a workbook a
23:03
you could put them in a workbook a workbook would be a set of instructions
23:06
workbook would be a set of instructions
23:06
workbook would be a set of instructions that allows somebody to run a set of
23:09
that allows somebody to run a set of
23:09
that allows somebody to run a set of queries and learn what the status is of
23:11
queries and learn what the status is of
23:11
queries and learn what the status is of a particular
23:13
a particular application and finally they can be
23:15
application and finally they can be
23:15
application and finally they can be displayed on a nice
23:18
dashboard now the dashboards are
23:22
dashboard now the dashboards are
23:22
dashboard now the dashboards are typically in the Azure
23:23
typically in the Azure
23:23
typically in the Azure portal and that's okay if you're a
23:26
portal and that's okay if you're a
23:26
portal and that's okay if you're a developer or you're an architect what if
23:28
developer or you're an architect what if
23:28
developer or you're an architect what if you want your product management people
23:31
you want your product management people
23:31
you want your product management people to see the results of your app well then
23:34
to see the results of your app well then
23:34
to see the results of your app well then we have to publish the D the dashboard
23:36
we have to publish the D the dashboard
23:36
we have to publish the D the dashboard different
23:37
different way and Microsoft has in Azure something
23:40
way and Microsoft has in Azure something
23:40
way and Microsoft has in Azure something called a managed grafana service and
23:43
called a managed grafana service and
23:43
called a managed grafana service and grafana is sort of the industry-leading
23:45
grafana is sort of the industry-leading
23:45
grafana is sort of the industry-leading way of doing uh Telemetry dashboards uh
23:50
way of doing uh Telemetry dashboards uh
23:50
way of doing uh Telemetry dashboards uh in the cloud and on websites so we're
23:53
in the cloud and on websites so we're
23:53
in the cloud and on websites so we're using grafana to publish uh the custo
23:57
using grafana to publish uh the custo
23:57
using grafana to publish uh the custo queries
23:59
queries as uh tables and as charts so that we
24:02
as uh tables and as charts so that we
24:03
as uh tables and as charts so that we can show business people like you know
24:06
can show business people like you know
24:06
can show business people like you know this is how many dresses we built today
24:08
this is how many dresses we built today
24:08
this is how many dresses we built today or this is how many errors we got last
24:10
or this is how many errors we got last
24:10
or this is how many errors we got last week stuff like
24:11
week stuff like that the other thing I'd ask you to
24:13
that the other thing I'd ask you to
24:13
that the other thing I'd ask you to research is something in Microsoft has
24:15
research is something in Microsoft has
24:15
research is something in Microsoft has now called database Watcher so database
24:18
now called database Watcher so database
24:18
now called database Watcher so database Watcher is a newer technology it
24:20
Watcher is a newer technology it
24:20
Watcher is a newer technology it replaces what is called SQL
24:22
replaces what is called SQL
24:22
replaces what is called SQL insites and database Watcher basically
24:26
insites and database Watcher basically
24:26
insites and database Watcher basically sits in the background and does a bunch
24:28
sits in the background and does a bunch
24:28
sits in the background and does a bunch of queries to your database it doesn't M
24:32
of queries to your database it doesn't M
24:32
of queries to your database it doesn't M really impact the performance of your
24:34
really impact the performance of your
24:34
really impact the performance of your database it's querying the underlying
24:36
database it's querying the underlying
24:36
database it's querying the underlying system tables those Cy dot things and uh
24:40
system tables those Cy dot things and uh
24:40
system tables those Cy dot things and uh and it collects a whole bunch of
24:41
and it collects a whole bunch of
24:42
and it collects a whole bunch of statistics and things so you can go to
24:44
statistics and things so you can go to
24:44
statistics and things so you can go to the the dashboard and database Watcher
24:46
the the dashboard and database Watcher
24:46
the the dashboard and database Watcher and say show me how many queries I'm
24:48
and say show me how many queries I'm
24:48
and say show me how many queries I'm getting per second show me how many
24:50
getting per second show me how many
24:50
getting per second show me how many users I had today uh show me my top
24:53
users I had today uh show me my top
24:53
users I had today uh show me my top queries and how long they're taking to
24:55
queries and how long they're taking to
24:55
queries and how long they're taking to run and then it gives you useful hints
24:57
run and then it gives you useful hints
24:57
run and then it gives you useful hints in like well you have you know 62
25:00
in like well you have you know 62
25:00
in like well you have you know 62 indexes but you're only using 44 of them
25:02
indexes but you're only using 44 of them
25:03
indexes but you're only using 44 of them you want to get rid of the rest so
25:05
you want to get rid of the rest so
25:05
you want to get rid of the rest so database watch is excellent tool um some
25:07
database watch is excellent tool um some
25:08
database watch is excellent tool um some of you in the database world might be
25:09
of you in the database world might be
25:09
of you in the database world might be used to using Redgate as a tool well
25:12
used to using Redgate as a tool well
25:12
used to using Redgate as a tool well database Watcher is sort of the cloud
25:14
database Watcher is sort of the cloud
25:14
database Watcher is sort of the cloud equivalent of
25:19
regate now you're not going to have somebody
25:21
now you're not going to have somebody
25:21
now you're not going to have somebody sit at the Azure portal and actually
25:23
sit at the Azure portal and actually
25:23
sit at the Azure portal and actually build all of this technology one piece
25:26
build all of this technology one piece
25:26
build all of this technology one piece at a time you're going to autom it and
25:29
at a time you're going to autom it and
25:29
at a time you're going to autom it and when you automate it you're going to do
25:31
when you automate it you're going to do
25:31
when you automate it you're going to do something called infrastructure as code
25:33
something called infrastructure as code
25:33
something called infrastructure as code and the uh sort of the the daring of the
25:36
and the uh sort of the the daring of the
25:36
and the uh sort of the the daring of the industry there uh uh there's a a I think
25:40
industry there uh uh there's a a I think
25:41
industry there uh uh there's a a I think it's called terraform is the language uh
25:43
it's called terraform is the language uh
25:43
it's called terraform is the language uh that people use to build resources in
25:45
that people use to build resources in
25:45
that people use to build resources in the cloud uh but that is more prevalent
25:50
the cloud uh but that is more prevalent
25:50
the cloud uh but that is more prevalent in
25:50
in AWS in Microsoft they looked at that and
25:54
AWS in Microsoft they looked at that and
25:54
AWS in Microsoft they looked at that and they said we can do better and they
25:56
they said we can do better and they
25:56
they said we can do better and they built their own language called bicep
25:58
built their own language called bicep
25:58
built their own language called bicep and bicep has full support Visual Studio
26:01
and bicep has full support Visual Studio
26:01
and bicep has full support Visual Studio code especially and also visual studio
26:04
code especially and also visual studio
26:04
code especially and also visual studio and uh basically what it is it's a
26:07
and uh basically what it is it's a
26:07
and uh basically what it is it's a declarative language where you define
26:11
declarative language where you define
26:11
declarative language where you define you know Azure has hundreds of different
26:13
you know Azure has hundreds of different
26:13
you know Azure has hundreds of different types of resources each one of them is
26:17
types of resources each one of them is
26:17
types of resources each one of them is accessible for bicep so you can create a
26:19
accessible for bicep so you can create a
26:19
accessible for bicep so you can create a new storage account you can say what
26:21
new storage account you can say what
26:22
new storage account you can say what size you want it to have you can tell it
26:24
size you want it to have you can tell it
26:24
size you want it to have you can tell it whether you want to use cold storage or
26:26
whether you want to use cold storage or
26:26
whether you want to use cold storage or hot storage as a default all these
26:28
hot storage as a default all these
26:29
hot storage as a default all these things can be scripted and then when you
26:31
things can be scripted and then when you
26:31
things can be scripted and then when you first build your resources you use bicep
26:34
first build your resources you use bicep
26:34
first build your resources you use bicep to do that but you can also take bicep
26:37
to do that but you can also take bicep
26:37
to do that but you can also take bicep and introduce it into your devops
26:40
and introduce it into your devops
26:40
and introduce it into your devops pipeline so that it automatically checks
26:43
pipeline so that it automatically checks
26:43
pipeline so that it automatically checks to make sure the Azure resource has the
26:46
to make sure the Azure resource has the
26:46
to make sure the Azure resource has the proper settings when it does a build
26:49
proper settings when it does a build
26:49
proper settings when it does a build into a very various
26:51
into a very various environments so bicep is ABS absolutely
26:54
environments so bicep is ABS absolutely
26:54
environments so bicep is ABS absolutely a language you want to learn a little
26:55
a language you want to learn a little
26:55
a language you want to learn a little bit
26:56
bit about when you do your deployments as I
26:59
about when you do your deployments as I
26:59
about when you do your deployments as I said uh you know you can use GitHub you
27:03
said uh you know you can use GitHub you
27:03
said uh you know you can use GitHub you can there's lots of tools you can use
27:05
can there's lots of tools you can use
27:05
can there's lots of tools you can use Jenkins you know there's lots of build
27:08
Jenkins you know there's lots of build
27:08
Jenkins you know there's lots of build tools out there uh we're we're focusing
27:11
tools out there uh we're we're focusing
27:11
tools out there uh we're we're focusing on Azure devops It just fits into their
27:13
on Azure devops It just fits into their
27:13
on Azure devops It just fits into their environment the best and we're going to
27:15
environment the best and we're going to
27:15
environment the best and we're going to build pipelines that do
27:17
build pipelines that do
27:17
build pipelines that do cicd uh it can read from any git repo we
27:20
cicd uh it can read from any git repo we
27:20
cicd uh it can read from any git repo we happen to be a bit bucket shop so it
27:23
happen to be a bit bucket shop so it
27:23
happen to be a bit bucket shop so it reads from the bit bucket uh repo
27:26
reads from the bit bucket uh repo
27:26
reads from the bit bucket uh repo whenever you do you know a PO request
27:29
whenever you do you know a PO request
27:29
whenever you do you know a PO request and then it automatically uh can set up
27:31
and then it automatically uh can set up
27:31
and then it automatically uh can set up and
27:32
and deploy uh it it does its build on on
27:35
deploy uh it it does its build on on
27:35
deploy uh it it does its build on on Virtual machines and then it
27:36
Virtual machines and then it
27:37
Virtual machines and then it automatically deploys the code to your
27:39
automatically deploys the code to your
27:40
automatically deploys the code to your app service or your app container
27:41
app service or your app container
27:41
app service or your app container wherever you need it to go uh it can
27:43
wherever you need it to go uh it can
27:43
wherever you need it to go uh it can also be set up to do uh database
27:46
also be set up to do uh database
27:46
also be set up to do uh database upgrades as
27:48
upgrades as well so security and threat detection
27:53
well so security and threat detection
27:53
well so security and threat detection well two Microsoft Technologies you want
27:55
well two Microsoft Technologies you want
27:55
well two Microsoft Technologies you want to consider Defender and Sentinel
27:58
to consider Defender and Sentinel
27:58
to consider Defender and Sentinel um Defender uh basically it will go and
28:03
um Defender uh basically it will go and
28:03
um Defender uh basically it will go and look at your code and look for threats
28:06
look at your code and look for threats
28:06
look at your code and look for threats and known problems and report back to
28:09
and known problems and report back to
28:09
and known problems and report back to you you can actually have it stop a
28:10
you you can actually have it stop a
28:10
you you can actually have it stop a build if it finds something um and then
28:14
build if it finds something um and then
28:14
build if it finds something um and then Sentinel is the thing that would do
28:17
Sentinel is the thing that would do
28:17
Sentinel is the thing that would do things like denial of service attacks so
28:20
things like denial of service attacks so
28:20
things like denial of service attacks so it sits there and sort of blocks um Bad
28:24
it sits there and sort of blocks um Bad
28:24
it sits there and sort of blocks um Bad actors coming into your network it's a
28:25
actors coming into your network it's a
28:25
actors coming into your network it's a whole whole interesting area to learn
28:27
whole whole interesting area to learn
28:27
whole whole interesting area to learn about Security on on the cloud so some
28:31
about Security on on the cloud so some
28:31
about Security on on the cloud so some of the tools I use um I use draw iio to
28:35
of the tools I use um I use draw iio to
28:35
of the tools I use um I use draw iio to do all my architectural drawings it's
28:37
do all my architectural drawings it's
28:37
do all my architectural drawings it's open source it's a free download um the
28:40
open source it's a free download um the
28:40
open source it's a free download um the draw iio drawings can then be pasted
28:43
draw iio drawings can then be pasted
28:43
draw iio drawings can then be pasted into PowerPoint or right into a jira
28:46
into PowerPoint or right into a jira
28:46
into PowerPoint or right into a jira Confluence page things like that so uh
28:49
Confluence page things like that so uh
28:49
Confluence page things like that so uh very easy to work with um I prefer well
28:53
very easy to work with um I prefer well
28:53
very easy to work with um I prefer well I use a mix of visual studio and vs code
28:56
I use a mix of visual studio and vs code
28:56
I use a mix of visual studio and vs code when I'm in vs code I use rest client
28:58
when I'm in vs code I use rest client
28:58
when I'm in vs code I use rest client which is a extension that's used for
29:01
which is a extension that's used for
29:01
which is a extension that's used for testing apis and then I use Microsoft
29:04
testing apis and then I use Microsoft
29:04
testing apis and then I use Microsoft playright I don't know if you're aware
29:05
playright I don't know if you're aware
29:05
playright I don't know if you're aware of this but Microsoft has an excellent
29:08
of this but Microsoft has an excellent
29:08
of this but Microsoft has an excellent tool that does both API and Screen
29:12
tool that does both API and Screen
29:12
tool that does both API and Screen testing so you can actually point it at
29:14
testing so you can actually point it at
29:14
testing so you can actually point it at a web front end and have it look at the
29:17
a web front end and have it look at the
29:17
a web front end and have it look at the screen and say okay pretend you click
29:20
screen and say okay pretend you click
29:20
screen and say okay pretend you click this button once you did then look at
29:22
this button once you did then look at
29:22
this button once you did then look at the grid and tell me how many rows are
29:24
the grid and tell me how many rows are
29:24
the grid and tell me how many rows are there and it will actually allow you to
29:27
there and it will actually allow you to
29:27
there and it will actually allow you to run tests
29:28
run tests um that are uh working with the
29:30
um that are uh working with the
29:30
um that are uh working with the front-end design as well as the
29:33
front-end design as well as the
29:33
front-end design as well as the API and finally we take a lot of
29:36
API and finally we take a lot of
29:36
API and finally we take a lot of advantage of GitHub co-pilot writing
29:39
advantage of GitHub co-pilot writing
29:39
advantage of GitHub co-pilot writing code and
29:41
code and uh um I highly recommend that you know
29:44
uh um I highly recommend that you know
29:44
uh um I highly recommend that you know basically when you're coding you can ask
29:46
basically when you're coding you can ask
29:46
basically when you're coding you can ask questions and you can type something and
29:48
questions and you can type something and
29:48
questions and you can type something and say like you know is there a better way
29:49
say like you know is there a better way
29:49
say like you know is there a better way to do this method and it'll come back
29:51
to do this method and it'll come back
29:51
to do this method and it'll come back and say well why don't you try it this
29:53
and say well why don't you try it this
29:53
and say well why don't you try it this way um so then you don't actually have
29:56
way um so then you don't actually have
29:56
way um so then you don't actually have to talk to any other Developers you just
29:58
to talk to any other Developers you just
29:58
to talk to any other Developers you just talk to your AI
30:01
talk to your AI friend a great way to
30:04
friend a great way to
30:04
friend a great way to live so other things um obviously if
30:07
live so other things um obviously if
30:07
live so other things um obviously if you're SQL Server you want a SQL
30:09
you're SQL Server you want a SQL
30:09
you're SQL Server you want a SQL management studio if you're not aware
30:11
management studio if you're not aware
30:11
management studio if you're not aware and you're using Azure blobs you want to
30:14
and you're using Azure blobs you want to
30:14
and you're using Azure blobs you want to download What's called storage Explorer
30:16
download What's called storage Explorer
30:16
download What's called storage Explorer again free Tool uh Microsoft also has
30:19
again free Tool uh Microsoft also has
30:19
again free Tool uh Microsoft also has data Explorer and Crystal Explorer if
30:22
data Explorer and Crystal Explorer if
30:22
data Explorer and Crystal Explorer if you want to look at your uh
30:26
you want to look at your uh
30:26
you want to look at your uh um uh at your custo queries and and your
30:30
um uh at your custo queries and and your
30:30
um uh at your custo queries and and your dashboards so in conclusion there's a
30:34
dashboards so in conclusion there's a
30:34
dashboards so in conclusion there's a lot to learn when you move to the cloud
30:37
lot to learn when you move to the cloud
30:37
lot to learn when you move to the cloud um your developers that are writing all
30:40
um your developers that are writing all
30:40
um your developers that are writing all your C code don't necessarily have to
30:43
your C code don't necessarily have to
30:43
your C code don't necessarily have to know all the stuff I just mentioned they
30:46
know all the stuff I just mentioned they
30:46
know all the stuff I just mentioned they just have to know how to write code
30:49
just have to know how to write code
30:49
just have to know how to write code possibly inside a net Aspire framework
30:52
possibly inside a net Aspire framework
30:52
possibly inside a net Aspire framework and then you need a devops person that
30:54
and then you need a devops person that
30:54
and then you need a devops person that can then take and publish that uh code
30:59
can then take and publish that uh code
30:59
can then take and publish that uh code once it's checked in to the proper
31:01
once it's checked in to the proper
31:01
once it's checked in to the proper resources in Azure uh but you absolutely
31:04
resources in Azure uh but you absolutely
31:04
resources in Azure uh but you absolutely need an architect or devops person that
31:07
need an architect or devops person that
31:07
need an architect or devops person that understands the Azure world and
31:10
understands the Azure world and
31:10
understands the Azure world and important things like performance and
31:12
important things like performance and
31:12
important things like performance and cost um the best way to learn all this
31:16
cost um the best way to learn all this
31:16
cost um the best way to learn all this stuff is to go to Microsoft learn that's
31:18
stuff is to go to Microsoft learn that's
31:18
stuff is to go to Microsoft learn that's what I do for most of what I do so um
31:22
what I do for most of what I do so um
31:22
what I do for most of what I do so um hopefully you've enjoyed this and uh
31:24
hopefully you've enjoyed this and uh
31:24
hopefully you've enjoyed this and uh enjoy the conference and hope you get a
31:27
enjoy the conference and hope you get a
31:27
enjoy the conference and hope you get a lot out of it have a good day