Bill Wolff is an independent consultant, trainer, and architect specializing in Microsoft development technologies under the name Agility Systems. He served as the SharePoint Practice Director at Capax Global, Solutions Architect in the Microsoft Practice at Unisys Corporation, and ran the Microsoft Alliance at LiquidHub. He ran the consulting firm Wolff Data Systems for 15 years and directed armies of consultants in the dot com world. Bill is founder and President of the philly.NET user group, a previous INETA board member where he served as Vice President of the Speaker Bureau, and involved in several other user communities. Bill was a contributing author on several books. His certifications include trainer, systems engineer, developer, and Microsoft MVP
đź”— Conference Website: https://softwarearchitecture.live
📺 CSharp TV - Dev Streaming Destination http://csharp.tv
🌎 C# Corner - Community of Software and Data Developers
https://www.c-sharpcorner.com
#CSharpTV #CSharpCorner #CSharp #SoftwareArchitectureConf
Show More Show Less View Video Transcript
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
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
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
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
2:33
can use to help sell our
2:36
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
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
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
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
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
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:17
is
7:17
is just extremely
7:19
just extremely
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
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
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
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
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
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
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
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
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
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
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
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
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
18:04
lot of event driven programming and
18:07
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
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
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
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
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
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
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
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
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
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:16
regate
25:19
regate
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
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
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
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
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
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
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
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
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
31:34
[Music]
#Construction & Maintenance
#Windows & .NET


