 So, this building architecture diagrams the Red Hat way, I'm going to basically introduce the sort of problem that we were facing at Red Hat around this and talk about the solution that we came up with. I think you'll be very excited. I'm hoping that many of you guys will out there will start using the tooling. So I'll go through a few slides and introduction, and then I'm going to launch into the architecture tool and provide you some sort of guidance and hints and thoughts on it. And then I'll point you to some workshops and other things like that as well. So first of all, I grew up in Ireland, and I actually wanted to be an architect. I think I was about 12 or 13 when I first said to my parents I wanted to be an architect, but it wasn't a software engineering architect, I wanted to actually design buildings. And so, unfortunately, the way the Irish sort of system works, the centralized application system and along with the career guidance counselor, they decided I'd be better doing a better job at computer applications at Dublin City University. So 30 years later, so here I am at Red Hat and talking to you about architecture. So that's kind of weird, right? William, sorry. The presentation. Do you want to, sir? Oh, OK, perfect. OK. Yeah, sorry. And so one of the buildings that Ireland doesn't have an awful lot of cool, wonderful, modern buildings, or at least didn't when I was growing up. This one was a cool one. It's the central bank in Ireland. And I'm going to be looking at the chat here. I'm wondering, does anybody notice anything strange about this or any concepts about this building? No? Nobody's answering. I'm just looking. OK, it's actually one of the only suspended structures in Ireland and one of perhaps 20 in the world. So as you can see here, this whole building is actually suspended. So it's built from the top down. Two massive big metal girders or whatever you want to call them are on here and they go up to the top and then the rest of the building is hanging down off of that structure across the top. Pretty cool, right? But in, you know, almost a very Irish fashion, the building was discovered to have reached a height of 150 feet or 36 meters, which was exceeding what was approved by the Dublin Corporation at the time. So there was a huge freeze and there was a decision on whether to raise the whole building, which is tear it all down and start a traditional building from the top from the bottom up, because you can't actually take off the roof of a building that you're building from the top down, right? So it got an exception approval and was left to stay there. So what happened was they had forgotten to add the top piece here that's hidden under the copper and everything like that, that piece there. They forgot to actually put that and account that into their drawings. So just shows you the importance of doing good architectural drawings and stuff, right? So we're going to look at some bad architecture designs. Of course, some people say that some designs are not so bad, like this one down at the bottom. To me, it kind of looks like a cartoon building, right? It looks like maybe one extra person passing gas might just explode the whole thing, right? But anyway, we're going to look at some example architectures at Red Hat. You know, we talk a lot about, you've heard the term reference architectures at Red Hat. Well, when you scour the sort of Red Hat architecture, reference architectures and you look for their architectural diagrams, you'll find a few different things. So here's a, by the way, I tried to look for the earlier versions of these open shifts. I don't know, was it three, seven or three, five? I can't remember. But they were way worse than this. So this is actually kind of nice and clean. It breaks out the networking differently here, right? It also, look, they've put in some cardinality bits here, which is nice. And they've shown some storage and that sort of thing. So, you know, not bad, nice and clean and simple. And here we see, oh, they've introduced some port numbers here. Well, that's nice too, but that's not what we were doing in the other one. You would think in the same product, we might have a little bit of consistency here. Also, now the masternode is sort of broken out at the three instead of showing the cardinality of three. So does this mean there's only three application nodes, or does it just mean that there's a minimum of three? Oh, and we've decided to change the way we're showing storage as well. So again, nice, clean diagram, but a little bit inconsistent. And here it is for Google. And again, a little bit more like the first one, which is nice, but we're missing some of that other information that was shown on the last one. Whoa, open stack. Wow, that kind of got your attention. This one looks more like an integrated circuit board or something, right? It's not very attractive. I'm sure the engineer who drew it and some of the people who worked on it got it and understood it, but it's not a very appealing sort of diagram to look at and looks like it's very complicated. It's a little bit different than the other ones we just saw, right? So that's the open stack documentation that we have. And then there's this one. This is Red Hat JBoss EAP7 cluster. This is the reference architecture diagram at the top level. Very nice, a little bit of color, good. I'm not sure what these ABCDs are, but that's a pretty cool diagram. It's got a lot of information, sort of. Let's see what the next one. OK, nice and simple and clean, but there's not an awful lot of information here, right? And again, not very consistent with what we've been showing on some of the other diagrams at all. This is more UML style. It's not giving us any sort of cardinality or what sort of connections these are, the network or what are they, right? There's no real deployment details here, just sort of high-level logical concepts. And so then anybody see the problem with this reference architecture diagram for the business process management? Anyone? Yeah, there's none, right? So yeah, you go to that document and there's actually no reference architecture there at all. Correct, Hassan. Thank you very much for paying attention. So yeah, so we can see that there's a huge amount of variety in terms of what we're trying to do with architectures. And people kind of tend to use their own tools, and that's fair, right? People are used to the tools that they have. Then there's certainly no mandate, particularly in an open-source company like Red Hat, to tell anybody to use a particular diagram tooling, right? So what we want to do is we're trying to search for a Red Hat architecture drawing tool to make your architecture diagrams informative, nice and clear, and appealing. Appealing to study and appealing to architects who want to actually deploy things and use the diagram as a way of deploying it, right? So with that in mind, one of the reasons we strove for this was primarily from a field, you know, whether you're a solution architect out there selling Red Hat products or you're a consultant out there delivering. We wanted something for the field to be able to use as a way of documenting what they're doing out there, but also providing that back into a larger community that can reuse those architectures. So it was very field-focused about customer success stories and stuff like that. So we wanted something that would have a common process, a common visual language and basically a tool set, so we could have a consistent experience when designing and drafting. The idea here, though, is that it's not just for sales or fields, right? We would love for engineers to be using this, too, as a common language, and that's why we're here today talking about it. So the idea is to have happy architects with drawings that are both attractive. We want people to want to look at them and study them clean, enough detail, though. We want them to be not just high-level fluff but with high-level concepts, but something that someone could go, oh, okay, I understand this. I could even get down to some firewall rules as well if I needed to, right? So readability consistent as well and of course intuitive. So we picked diagrams.net, which is also known to many of you as DrawIO. Why did we do that? Well, because it was open source. We actually were working, there was a few of us, me and Marty Wesley and Eric Chabelle and Ishu. We were all working on portfolio architectures and we wanted to use a tool to do it and we looked at it and we looked at Lucid Charts before you ask. And we picked DrawIO because it's open source, which also means it's very extensible. So you can have extensible templates and icons and stuff. It's intuitive and usable, Red Hat brand approved, so Red Hat branding were part of it and they helped us build out the Red Hat templates. So we have our own templates and icons. It can be hosted or we can use diagram.net with low parameters. That's what we're doing today. That is both of advantages or disadvantages and it's also popular with other brands and I'll show you that in a while too where inside the tool you can select IBM's templates or Kubernetes templates or AWS or Google or Cisco or some others, right? So with that in mind, let's see how we're doing on time, we're doing good. Do we have any questions so far? Let's take that as a no. No questions so far, that's fair. Okay, so I'm going to get into the tool in a moment, but let me describe what we're going to be trying to do in the tool. We're going to have three different views. One is the logical view and if any of you have gone through some architectural training like for example IBM's architecture training or anything, you'll see that this falls in line with what they call things like logical or physical architectures. We kind of talk about the high-level logical architecture, a schema which is more detailed and shows a lot of flows and networking and then we have what we call the node or service detail where we can drill down on a specific piece and have a look at that and say, you know, what sort of ports are open on the different networking, what processes are running on it, if it's a node, you know, again, more information on the cardinality and stuff like that and we can also have the flows in and out. So we will talk about those in a moment. Here's an example of one from a architecture diagram. We had this for what we would call continuous remediation and you can see this is very architecture. This is not our tool. So you know, this is the sort of thing that at a 201 level people would use to do a sales and just put it together and say, hey, here we have smart management and automation and here's your Red Hat platform and this is your customer environment and here we have Red Hat in-sites and it's doing vulnerability and compliance and system comparison tests, you know, and there's some sort of secure connection here. Well, when the customer turns around and says, hey, you know, yeah, great, but what does this look like in my environment? We can say, well, let's look at the logical diagram. And logical architectures usually break things out into sort of locations. Now they could be geographic locations or within the same location it might be, you know, oh, here's some, this is the internal sort of the sort of interface networking part of the core data center. When in the core data center, maybe there's an open stack cluster and there's also some bare metal machines that are up there. So you might want to split it out that way as well, right? To show what's running on open stack or what's running on bare metal. So in this case, what we're just showing is a data center running smart management, automation, orchestration, infrastructure nodes and what we call hyper cloud infrastructure, which is all about the open shift hosts, which might be core OS, right? And then on the Red Hat hosted side, on cloud.redhat.net, we have these insight services and the insights platform. And here we're showing now the physical or the schema diagram. And this one we're only showing the networking at the moment, right? So we're showing that there's a separation between the network. That's internal at the data center. There's obviously a network up here at Red Hat hosted. We don't really care too much about that. That's not really important to us to consumer. But there's also a internet connection, some sort of secure internet connection between this smart management node that's here and the insights platform that's running that allows you to connect to cloud.redhat.com. And of course here, this network is going to be able to get information between all these various nodes here, right? Here's the, you can add data flows then that shows this. And sometimes you might want to split out like I've done here, the network and actually remove the networking from here. And I'll show you some tricks and tips in a moment when we get into the tool. But this just shows some data flows like, hey, we have a playbook. Sorry, we have anonymized data going up from here that was collected from the hosts. And we have remediation plans coming back with playbooks coming back, that playbooks getting loaded into Ansible, which will deploy those playbooks out to the different hosts to keep them up to date and do whatever remediation you have. The other aspect of this is that you want to be able to do, dive into some of these nodes and show a look. There's a secure HTTP connection up to cloud.redhat.com on that purple network. And this administration network is different to that one. You might want to have, like for example, if there's smart management is using different protocols here, you might want to put those protocol names, multiple blues. Here that's a SSH or HTTPS or whatever else it might be. And you can load them down here. Here we're showing that there's three processes running on this node. Ansible Runner, Cloud Connector and Satellite. And here is information coming in from the hosts, anonymized data going out, remediation playbooks coming in. There's only one of these running. So we provide some information around the different nodes, okay? So looking at the time. So now we're going to launch into the tool, okay? Can you still see my screen? And you'll be able to do this yourself. In fact, what I'm going to do is I'm going to put this in the chat. Yes, perfect. And if you want to follow along with me, you can. How about that? Scary. Okay, so we're going to launch this. And you'll see you're brought in here. The only templates you're showing is like a basic diagram one are a Red Hat template. And what we're going to do here is we're going to just say, you know, this is the devconf example.draw.io file. And I'm going to pick all diagrams, right? Because I could pick each one of these separately. But I'm just going to do, I want all the diagram templates. I want it all, okay? Everyone following me so far? Okay, I'm going to press create here. And now we get brought in here. So I want to show you, I'm not going to do a full lesson today, but I'm going to do a few different pieces to try to help explain this. First of all, notice we have along here this, all of the icon libraries. These are all Red Hat approved, brand approved. So you'll recognize these icons from our icon templates or from our template libraries of symbols and all that good stuff that you're familiar with. We see the detail diagram pieces here, right? We'll go into that in a moment. Here's some of the logical diagram pieces and then we have these schematic pieces. And I'll explain. Some of these are services, services with storage attached, nodes, which could be physical or virtual, you can explain that in your diagram, are a node with storage attached or not. And then we also have various pieces here where you can zone things or maybe you want to label something as OpenShift or an OpenShift cluster within a particular area. We'll see that in a moment within a particular platform. And then we have these different networking pieces. And I'll explain these labels again in a moment. And then all these cool things, right? So schematic, logical, detail, and all the icons. Now, here's where you can see these more shapes. And you'll see that there's a whole bunch of stuff. The UML is in there. We've got the AWS, Cisco, IBM. If you click IBM, you get a whole host. So I'll click on both of these just to see, show them. You can see down here you have IBM analytics. And here's the Kubernetes ones. So we're not the only ones using this, but I'm going to turn those off right now because we don't need them. OK. Everybody with me so far. Has anybody actually opened up the tool? Just say yes. Yeah, cool. OK, the other thing you'll notice along the bottom, because I picked that we're doing everything, we've done two things. We have these things called a kit of parts, which explain to you what each of these little pieces are, right? What the network nodes are, the technology details that you're using in here, the data flows where you can add this as data ports. You could do it that way, too. You could add the data ports. I like to add the ports over here. You could add them here, too, to let it know which port that's flowing over. So it was an MQTT port. Or if it was coming in over a load, it'd be pretty obvious if you had MariaDB or something here. And you were saying it was whatever port that is. I think it's 53, 54, 32. We'll talk about that in a moment. Anyway, all that cool stuff there, we have the logical kit of parts here. It shows you all those pieces. So this is just kind of like a help. It's like a here's all the pieces, and it explains them all and tells you how they work or what you should try to be using them for. But it also gives you some starting points. So we're going to look at the logical starting point, right? I'm just going to turn around here. And let's just blow away these ones. I'm not really interested in them. I'm just going to use. So it gives you a sort of starter place. You don't have to use this. It's useful. I don't have a control plane. But if you want to, you can just press plus and start on a blank sheet if you wish, right? So what we're going to do is let's say we have our, basically our client device is out here and running on it. We have an application. So I'm going to drop this app here. Let's just get rid of this. Now, one of the things you will notice, this is a tip. You'll turn around and go, oh, actually, I can't. Well, excuse me. Oh, because it's already got color. I'll explain in a moment why I was asking there for. So here's an app that this has changed. So this is cool. So we'll just say that this is an application. It's not a containerized application, not a microservice. It's just an application. So I'm just going to drop this here. Now, when you're dropping, make sure you're dropping it on when it pops up like that. And usually it's when you hit the middle of the piece. And so now it'll drop in there and that's locked, okay? And we're going to call this the web application. And that's all we're going to call that one. And then we're over here. We'll drop in another web application piece. Oh, and we can actually drop it in like this where we have some extra text if we want as well. Like this is the shop ordering system, okay? For your online shop. And so this is my online store, okay? And it's a, let's say it's a microservice, okay? For the moment, we're just going to pop that in there. Okay, and maybe we also need to have a web server. So I popped that in here too. And a web server is somewhere up here, I think. Where did I put icon was I using for that, this one application server. So I just call it my web server, okay? Not providing any detail there for that one. And let's say I also need to have, and I probably need more than one, but let's say I have a database. So I'm going to, and I'm going to make this one. I have some text in it too. So this is, let's say, actually I want to say a product. We might actually have multiples of these. So you're going to need a product database. Now, what are the different colors? The different colors have to do it. Look, this is the kind of stuff I'm going to be writing myself, right? These are applications. This is the consumer is going to be, or the developer is going to be writing this stuff himself or herself. Whereas this is a piece of app services. This could be deployed by the developer or it could be deployed by as some, it could be deployed by the developer as part of their application, but it comes from a library of approved IT stuff. But these tend to be the services sort of type of ones, the service icons, tend to be provided already by IT. They're already managed long-term things, things like container registries or source code management or firewalls or databases in this example. So we have those. We can also put things down as if we want to just talk about particular nodes or infrastructure because we're doing a kind of higher level piece. We have infrastructure type icons as well. These are the application services. Many of you familiar with this is sort of middleware type of stuff, right? And then these are the things we're building ourselves, okay? So that's just a quick example of how you might want to do this and this might be our data center in the cloud or whatever, right? So so far we've done the sort of logical diagram and I've gone through describing how to drop the icons in and what the different colors are. And again, we would just sort of delete this stuff here and we can probably just do that and get rid of that bottom part. So now we have a sort of a nice little diagram. Normally here, though, you'd probably make these consistent and have just sort of one with just the names on it and maybe another one that has, if you wanted to drop into the details, just do the sort of simple descriptions here for each of the icons in this device, right? So now that we've got that, let's go into a schematic. And again, you can see schematic has a detail diagram sort of template already. We're just going to get rid of these guys and these guys, feel free to sort of drop things in and out. I'm going to get rid of this. Then I'm going to turn around and let me have a look at how I've done this already. Ah, yeah. So this is a web application. So I'm going to go to my schematic. There's no storage attached. Just going to drop it here, get rid of this. Now this is, it's working. That's well, wow, that's great. Okay, so I'm able to move that around now. You start not to be able to do that. You had to double, you had to click off and click on. It's now working. This is great, Marty, well done. So now this is an application. I'm going to drop that here. I'm going to call it my web app. And I'm going to change the color of this to green. Cardinality on this is going to be just one, right? Technology I'm using here is, you know, HTML and JavaScript, right? So it's probably a JavaScript piece with HTML embedded in it, okay? And then I'm going to have to talk right to a application server. So the question then becomes when you come down here is, is my application server a node or is it deployed inside of something like OpenShift and it might be containerized? So let's go with the containerized. So let's first of all drop this here and say we're going to have, let's delete these, we can fix that up later. And we're going to actually have a, in my data center, I'm going to have a OpenShift container platform, okay? So that's cool. Now I can turn around and say, well, I'm going to drop in this guy, get my application server piece here, drop it in, change that to web server. The, it's probably going to be, I'm going to be telling OpenShift to keep it up and going. So maybe the Cardinality is three and I'll say maybe it's engine X, right? And I change the color here to blue. Okay, so that's cool. We got the web server running. Now I want to add a network between this and the web server. Okay, so I go down here. There's two ways of doing this. I can click on this and manipulate it or I can use these arrows, okay? I'm going to click here and actually I'm not going to pick blue, I usually pick purple for internet. That's just my preference. Drop it here, it'll click, I'll drop that one there and I'll just do it this way so we can keep it nice and clean. And I can tell it that that's internet connection. Maybe it's, maybe I say HTTPS, right? There, so that's good. Now I have Cardinality, I have my web application connected. I'm just going to add one more just to show that now we're going to have our application name. In fact, what we might want to do here is split out that application into multiple microservices, right? So this is a containerized microservice. Maybe this is the single sign-on service. So I know normally you would match exactly with your, with your logical diagram, but in our case, it might be ridiculous to put all of the different microservices listed for an application. You could on the logical diagram. I could go back here to the logical and fix this up and just add all the different microservices. But what I'm going to do is I'm just going to break them up here. Now I need another network because that's not going to be the same network that this is on. So I'll pick this one and I'll connect that to here and to here, okay? So let's just break this out. Notice that once you get this going, it's, and then we can just call this the internal application network, internal app network. How are we doing on time there, by the way? Good, I think we're good. So the other question is, is if we had data flowing and so we might have, let's say data here, we can go, I like to go as much as possible from the left-hand side to the bottom, sort of as an in and out, but in this case, it might not make sense to do it that way. I'll just go from here to here and say, now again, you can break these things out, right? And say that there would do the data flows on a different diagram. If you do that, it can be helpful to pop in and say what network it's on. So you can say that you're doing a message at this service and then you can delete this information here if I can get at it, you can delete that one. If you can select it, let's see if I can select the thing. Why is that working? Here, I will be of a selected and delete it and you can add the label here and say, this is the user ID and password. Okay, for that piece, right? And it's going across the blue network. Do you see that? So that's what those labels are for is to describe what data and you can see how useful that is if you break it out within diagrams. You can see that the, if you have the network, some one diagram and the data flows on the other, having the blue label to go with the blue color can help explain that data flows going across the blue network as opposed to if there was another network in here as well. How are we doing time wise? Five minutes left. Okay, good. So the other things you might wanna know about here is this, let me just show you. If I do a flow here like this and I do this and then I do that and then I do this and I'm then getting it all wrong and I'm trying to figure out how do I get this all? I can just turn around and like if it gets really convoluted and you're trying to fix it up and you're going wonder. So you can turn around here and click on the right hand side of this and just say clear the waypoints and you're back to normal again. So you can turn around and fix up those diagrams that you're trying to get things. Now also if you have a link like that where it's overflowing you can turn around down here on this side and say I want to either have an arc or a gap. And so you can have nice little gaps between your diagrams as well. The last one I wanna show you is the detailed diagram where you can pop in something like this for your database. So you can put the database piece in here. Let's, that's not a database one. This one's the database one. So we drop in the database and we move that up here. And this is where you can drop in these nodes and say, okay, over this network I wanna be doing. This is port, what did I say it was? 54, 5432, right for Postgres. Is that Postgres? Yeah, Postgres is 54, Postgres, QL54, right? So that's the, of course you already know that up here. So it's a product database or something like that. And you can change these. And then for here I usually say, hey, if it's input I just put a greater than sign and it's the, actually in this case it's a read product details, okay? So that's what this is for. And again, you can just delete the pieces. Whoops, not that. You can delete the pieces that you don't want to use. I keep on doing that, right? Same over here. Okay, so that's the tool. One of any other tips on that one is the starting canvas. Oh yeah, please in your schema do not use like if you've got a data flow piece and you're using a microservice more and more times unless that's a separate microservice, don't turn around and do these are deployment diagrams. They're not about workflows. They show data flows, but they don't say, hey, this and then the data comes back to here and then it goes out of there and then it comes back. Don't put something in multiple times. Put it in only once. Okay, so back to my presentation cause right now I'm gonna show you that all we have left to say for this is that there's gonna be links here. I sent the PDF earlier, I can upload that again but there's examples out on Red Hat.Demo Central. I can show you that as well during the Q&A. There's the tool itself which I showed you a link for already earlier and then there's a whole workshop on how to use the tool as well out there too. Awesome, William. We have one question in the pool. It is possible to download the saves and use in-own diagrams. What is the license for them? Yeah, there's no license. So I wanna understand this a little bit more. You can, what I usually do and that's a great question is I still sharing. We usually do this file, export as a PNG. When you try to do export, you should go to 300. You can say it's transparent or not. I'm gonna do the whole size of the diagram, export and I'm gonna save it to my device and then when you look at that here, when it opens you can see you can pull these into your Google Docs You can just use those in your Google Docs. It also integrates with, we're still trying to do some work. Right now we're actually not hosting this ourselves. We're literally using the diagrams.net app. We're just passing it some information to say I want you to turn off all the other templates by default and use our template as a sort of default templates along with the basic. So yeah, there's no, you can use these. They're red hat branded, but by all means go ahead and use them just like you could probably go out and use the other ones. So from other customers within your diagram.