Keynote by Magnus Martensson at Software Architecture Conference 2023
14K views
Oct 30, 2023
Software Architecture Conference 2023 (https://softwarearchitecture.live/) #SoftwareArchitectureConf23 #CSharpTV #csharpcorner
View Video Transcript
0:00
Okay, it is brilliant. Brilliant to be back and talking at the Software Architecture Conference
0:09
And as you saw that, I had to make a, I had to add that to my slide just now, that wonderful hashtag Software Architecture Conv23
0:17
So if you use that on X, you're not going to be able to send a message at all because the tag itself takes up all the space of your message
0:25
So use that to ask questions to the speakers and see if you can
0:29
snag some swag. Brilliant. So here we are. Software Architecture Conference. And who am I
0:37
Well, I'm the guy that likes to run Global Azure. I love doing community things. And I had to call
0:42
that out to give a shout out now that we have a global audience to anyone who was attending any
0:48
of these events or any who were maybe even organizing one of them somewhere around the world
0:54
It is absolutely brilliant to see all of these people organizing Global Azure every year. And I urge you to
1:00
join in if you are part of a community or near a community that likes to learn about cloud
1:06
and Azure in specifics, then please join the Global Azure Initiative. So I'm going to talk about architecture, and the disclaimer is that I talk a lot about cloud
1:17
It's just the way that I work. If somebody wakes me up in the middle of the night, I randomly start talking about cloud
1:23
I kid you not. And I've been told that that's a little weird. But that's who I am and that's how I operate
1:29
but I will say that most of what I am saying about architecture maybe pulls in the word cloud
1:35
but it just works in general anyway, so no worries. I like to talk about cloud so much that I have my own show on the Csior Corner live stream
1:45
So Simon is my tech person for those, and he takes care of me and sets everything up
1:52
so that I can run the cloud show and talk to important people like Scott Hunter
1:56
This show is targeted and share the word, spread the word. This show is targeted to be bite-sized segments that are directed to the leaders of cloud projects
2:09
Maybe you don't know enough about technology yet, or maybe it's not your job to know technology
2:14
We're going to talk about all kinds of topics on the cloud show. So I'm also a Microsoft Regional Director, which is so funky
2:22
It means that I'm a friend of Microsoft. It means that I'm hanging out with Microsoft all the time
2:26
time, which many of us do, but please bear in mind that I am not employed at Microsoft
2:32
I'm not a Microsoft person. I don't also have a region, by the way, and I don't direct anything
2:37
but a Microsoft regional director is a close confidant of Microsoft who works with Microsoft at the highest
2:43
level. So I'm kind of all over the place and doing all kinds of things. I also like to get up and
2:49
talk on stage, and here you see from Tech Ed. I don't know how many of the audience are
2:56
of that age in this industry that you know or remember what tech ed was
3:01
If you go to find tech ed on wikipedia these days, it'll redirect you to ignite
3:06
They will explain that tech ed ignite used to be named tech ed, but Microsoft rebranded
3:12
So back in 2009, I gave this presentation, the role of the software architect
3:19
caring and communicating at tech ed in Berlin. So as you notice, I have been talking about cloud for a long time
3:30
And I have been talking about software architecture for a long time. This was even, you know, cloud was announced, but not really, you know, all the way to production yet
3:42
So I also write papers sometimes, and this is one that I wrote for the MSDM library
3:49
So there's another indication of just how old I am. because the MSDN library could be construed today as sort of a predecessor of Microsoft Learn
3:59
So 2008 I wrote the architect in the architect blog about capabilities
4:06
It's not even a blog. This was a page in their official documentation that I wrote
4:10
about the role of the software architect. And that's what I want to talk to you people about today
4:20
Before we dive into all the wonderful topics, topics that you saw Simon scrolling there just before
4:26
I am excited about all these topics about hues and about serverless and various things
4:34
I'm going to try to watch as much as possible of this. And yes, absolutely technology and wonderful architecture is so important
4:45
I want to talk about the responsibility that we have as software architects
4:49
So the software architect is the keeper of the flame. He is the owner, or he or she, the person is the owner of the principles that the project follows
5:02
So what does that mean? What is that about? Well, I'd like to dive into that given three quick topics, one after another here as fast as possible
5:14
One, the example of things that you are responsible for as an architect
5:19
is to not choose the cool path, and I will explain to you what that means
5:23
Also, you have to realize that architecture will change, you know, a difference from actual building houses architecture there or bridges
5:32
When you do software architecture, you know for sure that it's going to change
5:37
And then your behavior, as the architect, will reflect on the rest of the team
5:44
So you set the example. So if we talk about the not choosing the cool path
5:49
first or maybe not to succumb to the latest trend, if you will
5:54
I'll tell you what I mean about this. So as a software architect you know you can see things like this I just wanted you guys to have a moment to look at this wonderful wonderful comical drawing
6:15
but actually it's too close to truth. There are so many scenarios that I just look at this and I see more and more in this picture
6:23
and I laugh. There's the blame radius. There's the one tiny cron job that keeps everything from falling apart
6:30
There's the freaking slick reverse proxy that we implemented as architects. Yes, it's very cool
6:36
And containers. Oh my gosh. Look at all the containers. Right. So this is one of those satirical drawings that satire is good because it's usually close to the truth. Right
6:51
And so what's important when you architect something is that you can explain it to everyone
6:58
Everyone in the company should be able to stand up. and give an explanation of the architecture
7:03
If they can't, then it's too complicated. And so this reminds me of a thumper in Bambi
7:12
who is giving a little citation when he's being naughty. His mother says, you know, remember what daddy said
7:19
and he kind of stretches himself up, you know, and gives a little citation eating greens
7:24
And then he comes to the conclusion that the flowers are the best part
7:28
Right? So the flowers are the best part. And in software architecture, today, we all know that the flowers are, in fact, Kubernetes
7:36
That's the best part. I mean, everything should be containerized. Kubernetes is awesome
7:40
Containerize all the apps. Or should we really containerize all the apps
7:48
I'm not calling Kubernetes a fad or something that will go away. Not at all
7:52
It's going to stay forever. And it's great technology. Kubernetes is great technology
7:57
what I find so many times is that it seems that the architectural decision was based on popularity
8:05
Kubernetes is cool, it's hip, it's hipster, it's fresh. We got to use that because, you know, because reasons, because it's cool, right
8:14
And I've seen, unfortunately, on many occasions, how that leads to problems
8:20
It leads to scenarios we cannot handle. And one thing that you have to understand is that you have to take care of a
8:27
Kubernetes set up. If your organization does not have a team that is already very skilled at this
8:34
please don't try to start using Kubernetes just because you think you should
8:39
because that's going to lead to so many problems that you are not equipped to handle
8:44
Scaling and maintaining and fixing up and securing and all the things that you need to
8:52
understand how to do with Kubernetes is super important. otherwise just don't do it
8:59
And far too many who are, you know, going down that path really are not aware of what they're
9:04
getting themselves into. And they should have maybe used another approach instead
9:09
For example, using cloud native platform services. So rather than spinning up your own cluster with machines, you know, your instances, your scale
9:19
sets and various things that you might use to envision that or to make, to realize that
9:26
then maybe just deploy the application to a platform service, maybe use an app service
9:32
So, but what about vendor locking? If you're using all the services in the platform
9:39
aren't you going to be locked in by the vendor? Well, I mean, the vendor is going to say
9:44
we don't want to lock you in because, you know, we don't want to lock you into using our services
9:49
because it's really easy to re-host to another vendor, right? It is, it is, it is, it is, it is
9:56
easy to re-host to another vendor. Well, yes and no, right? I want to share a piece of information with you that I don't know if everybody knows
10:08
but statistically, the platform vendors have figured out the answer to the question
10:13
how many cloud platform services does it actually take for a customer to choose to never leave
10:21
So if you start to use services, maybe start using an app service, a database
10:26
some storage, you know, how many of these platform services do you have to begin to use
10:33
from a vendor like Amazon, like Azure, whoever it is, before you decide you will never leave
10:41
The answer is five. Five is the answer. And that's an amazing number. You would think it's more
10:48
but it's not. After that, you're definitely not going to leave. So for myself, the vendor lock-in
10:55
question is super uninteresting. If you really want to leave, then do. It's going to cause you
11:00
a lot of pain and then go somewhere else and see if you're happier there. But what I think as an
11:05
architect is much more interesting is to realize that whether you deploy your application to a
11:11
virtual machine to an app service or a container or any other method, hosting is just a deployment
11:16
concern. Ask the architect, you decide if your company is vendor locked in. That is your
11:24
responsibility. As the architect, you decide if the application is portable using responsible
11:31
abstractions like interfaces, proxies, dependency injection, isolating a reference to a specific
11:38
service to just one component, using a sidecar pattern. All of these things and more are
11:45
tools of your trade and you decide how much your code, the code that is in the app that you have
11:52
architected will tie you to a specific underlying solution or service. That's you who decide that
12:02
And the architect like we said before as we know is the owner of the principles that the project follows Okay I said that at the beginning That what the architect is responsible of handholding and taking care of
12:21
And then I had to use AI to generate a photo of the elephant in the server room
12:27
which is this picture here. I'm not going to talk about AI a lot here
12:31
AI certainly is all the rage and everybody wants to use AI
12:36
We want to have the same application as before, except now with AI. And AI is the holy grail
12:42
Oh, my goodness, it is the best. Now, I'm not suggesting AI, same as I said with Kubernetes
12:48
is something which is a fad and is going away. AI has the potential and it's probably definitely changing our entire industry
12:55
We just need to figure out how. When you have the responsibility of architecture
13:01
at a higher level, we have to think about the Kwan, that Cuba Goody, Cuba Goody Jr. said in Jerry McGuire, which is like all of it, everything, that it works
13:12
Like, it just comes together and everything is cool, everything is great, because you have to be concerned with, show me the money
13:20
So I want to give you a quick, quick example. I saw it not just two hours ago, and I just added this slide in, where AI is amazing
13:29
AI has been used in a food, a grocery store, to reduce
13:34
food waste in the store by 40% by in fact keeping a living like an ongoing track of how much
13:43
stock is on the shelves and what are the dates of these produce. And so being able to alert the
13:49
shopkeepers to say, okay, you need to put a, you know, you need to put a discount on chicken
13:58
chicken breast because otherwise some of that chicken breast is not going to be sold and it's
14:01
going to go spoiled. So put a discount on it now and make sure that you sell it before it's waste
14:08
And oh my God, that is an amazing example of how to save the world. But too many people are just
14:15
saying, oh, I want AI in my app. And to that, I just say, show me the money. Because you have to
14:22
understand that when you jump on the bandwagon of a cool trend, please be responsible. That's your
14:29
job as the architect. So don't be afraid to change. So this is a business fable of some characters
14:38
who are living in a labyrinth where there's cheese. And suddenly one day the cheese gets moved
14:44
And the rest of the book is about how these different types of personas handle change. You will have
14:51
the people who are resisting the change. You will have the ones who are afraid of the change. You
14:57
will have the ones who are excited about it. And then the ones who are carefully seeking out the landscape
15:02
and figuring out where to where in the labyrinth did the cheese actually move
15:07
And I think, that's the little blue mouse to the left there called sniff
15:12
I think the architect should be like that. Curious about finding new solutions and ways
15:19
but not jumping head first in and certainly not resisting it. Because resisting changes, it's going to be the end of you
15:27
So the architect, again, like I said in the intro, is the keeper of the flame
15:34
The architect should be the person that holds up the flame high and goes through the labyrinth
15:39
and leads the others for them to find a way to understand where the new cheese is
15:47
What's life going to be like now that the cheese has moved? That's what the architect does
15:53
It leads the path. He's the keeper of the flame. So everything was fine and then people, right
16:01
Technology can be advanced, but it is commonly straightforward. While humans are never straightforward, never, or in other words, humans have more issues than any repo
16:12
And it's true. It's true that this is a problem that people are the ones that are difficult
16:20
Technology is usually, you can usually overcome it. You will in your company have, you know, the person who will, you know, the person who will
16:26
resist change. And while this picture is funny in the cloud context that somebody is not willing to
16:37
change anymore, I don't want any cloud, we got to remember at the same time that these people
16:42
have every right to be respected and remembered as the proud IT architect that they probably are
16:51
Maybe they don't want to change to cloud, but at least they should be respected and their
16:56
experience should be valued in the company when you transform into this new architecture that
17:02
maybe is using a cloud platform. And I think that's important to remember as well. So if I could
17:11
ask you a question, that would be good, but I can't, not in the time that we have, because you're
17:18
not a live audience, you're a virtual one. What is the number one threat that your beautiful
17:25
software architecture will ever face. I'll tell you right now that it is success. That's the number
17:33
one threat. Hopefully your business will be hugely successful. You'll make all the money in the world
17:39
and have lots and lots of millions of global customers and so forth. Yes, brilliant. Except that your
17:45
software architecture was never architected for that scale. It was not financially viable at the start to
17:52
create a global, redundant failover, something something architecture, you didn't have the money for that
17:59
And quite frankly, you also didn't have the customers for it. So you start by building something else
18:05
And the software is adapted to that reality. And then you know yet here we are now losing customer opportunities when we become a big hit And our business is booming and we need more power and the architecture at that point cannot be rigid right it has to be flexible enough to
18:27
manage such a scenario so you have to architect with change in mind because change is inevitable
18:34
change is always going to happen and you have to also be responsible and not to like throw in
18:41
something that is 10 times the capacity that you need in the beginning, because if you do
18:48
you're going to waste a lot of money. So a battle plan or architecture is only perfect until the
18:55
fighting starts. Planning, architecting is everything, but following a plan is useless, as in you have
19:03
to be able to adapt when reality actually starts to happen. So again, at the end's here
19:11
the end here you set the example as the architect you set the example here is an estimation an
19:18
estimation of cloud users cloud consumers company leaders that have estimated guesstimated i don't know how
19:27
they came up with that but have figured out that they think that roughly a third of their of their
19:33
cloud bill the spend that they have running their their application is waste rest is cool but
19:41
The third is waste. That's literally, if you have a $1 million enterprise agreement with Microsoft
19:47
that's taking $333,000 and just burning them on the lawn. That's what that equates to, which is crazy
19:56
And I'm going to tell you a very, very quick story about a company that was growing like crazy
20:02
They were hitting it. They were moving their things to Azure. They were booming. They had lots of customers
20:08
They had lots of demand for their services. Brilliant. So they were feeling some pressure, tension on their IT department
20:17
They had problems keeping up. And the customers began to call in with complaints about their application performance
20:27
And that, of course, can be a very, very dangerous thing. So as the CTO of this company said, okay, we have an application which is auto-scaling
20:37
So when the demand is high, we use a lot of instances. it's more expensive, but you know, that's okay, because a lot of customers are using the service
20:47
And when demand is small, then we scale back in and we use few resources
20:51
So they had a brilliant setup with the replication, but he said, let's turn that off
20:55
We have to turn off auto scaling while we do the troubleshooting. Oh my God
21:00
Okay. This, I have to say, was against my recommendation. So five months later, they were still troubleshooting
21:09
They still didn't have control of the situation. And their Azure Enterprise Agreement, which was for 12 months
21:16
I believe it was a million euros over 12 months. They had spent those million euros in seven months
21:26
And that's a lot of money, kind of wasted, because they couldn't find the problem of performance
21:32
They couldn't rectify or fix the problem of performance. So they had to set their scaling to a real
21:39
rigid maximum and just spend a lot of money extra. And that's just an architect who didn't foresee that this was going to happen
21:49
And also maybe didn't have the appropriate monitoring and things in place at the same time
21:56
And then they had to have this conversation. You know, you have the development department where everybody's wearing sneakers
22:03
And all of a sudden you hear fancy dress shoes coming clank, clang, clank, clank down the hall, right
22:08
and it kicks in the door and he says, can someone explain to me how the heck the cloud can be this expensive
22:16
And my conclusion here in this story is that a bad architecture can fail
22:21
you know, a whole business. I don't think they failed, but they certainly were not
22:26
they were slowed down to a crawl, and that hurt the business something awful
22:32
just much more than that money wasted on the cloud spend. It hurt them even worse
22:38
So your architecture can save the jobs and the future happiness of everyone you work with
22:47
That is the responsibility that we have. And so the architect is the owner of the principles that the project follows
22:58
And she is the keeper of the flame. That is what you have to remember
23:04
You have a leadership responsibility as architects. So don't choose the cool path
23:10
Stay away from that or at least motivate. Ensure that you know exactly why you are on the cool path
23:16
and that it is the relevant right thing to do. Whether that is Kubernetes, could be
23:22
whether that is AI, could be, or anything else. Do not also be afraid to change
23:29
because change is inevitable. Change is always going to happen. And the worst thing that can happen to your architecture is huge success
23:37
You have to plan for that. you have to be able to change. And then with your behavior, don't be the CTO who burns money
23:46
on the law and doesn't care. You set the tone, you set the example for the entire company
23:52
and you and your architecture can break the company, but it could also save the company and save
23:59
your jobs and save the future. That's all I have time for today
24:04
Ladies and gentlemen, I'm going to hand it back to Simon, who is going to continue with
24:08
our wonderful presentations for the Cloud Software Architecture Conference
#Distributed & Cloud Computing
#Networking