Table of Contents
Written by : Bobby Galuppo |
Current : 7786 |
Write a comment |
Write a comment
hello everyone and welcome back to AWS simplified today I want to talk to you about software architecture diagrams and some tools you can use to make your life a little easier when you need to create them so if you're a developer an engineer or a solution architect it's absolutely critical that you use architecture diagrams to convey how a system works so there's a lot of options out there ranging from Microsoft Visio OmniGraffle lucidchart and I'm sure many many others that I probably haven't heard of so I've tried a handful of these in the past but what I was really looking for was something that was free easy to use could sync across devices supported collaboration and natively had access to AWS icon packs and if you know anything about me I'm constantly using AWS technologies putting together AWS architecture diagrams so I don't want to go and hunt down icon packs to use them with whatever software I'm using so as of now I've only found one that I was happy with that satisfied these criteria and that is what I'm currently showing you now and it's called draw IO so drop at IO is pretty straightforward to use it supports all your basic shapes arrows layers connections text boxes and on and on and on so my absolute favorite part of this tool is that it's available in any browser and does not require a local installation so that means you can access it from literally anything that can run Chrome Firefox or any other Internet browser some of the nice features that are particularly important to me is the fact that by default that gives you access to AWS service icons right out of the box so no more hunting down icon packs and installing them on your local machine they'll all be there for you automatically another nice thing about it is that it allows you to select from a vast amount of templates including flow diagrams UML diagrams Gantt charts Venn diagrams and many many more so as we can see here on the website as I'm scrolling down they provide you with a ton of examples and depending on your artistic or design abilities your results may come out looking better or worse than what they have on display here so here I am putting together an architecture diagram for a pet project using the draw die tool so clearly I don't have the artistic touch so my diagram looks a little basic but with some extra effort you can make it look just as appealing as some of the examples on the draw de IO website so I'm making use of the AWS icon packs here and that comes by default as I've mentioned previously so if you're looking for an architecture or flow diagram software that's free easy to use and supports collaboration Trotta io is definitely something that you should check out so I hope you enjoyed today's video and if you did make sure to give it a thumbs up and hit that subscribe button below so you don't miss out on next week's thanks so much folks and I'll see you next time
Thanks for your comment Michel Buchal, have a nice day.
- Bobby Galuppo, Staff Member
architecture is the process and the product of planning designing and constructing buildings or other structures a good design can make a structure survive and be admired for years or fairly to understand it's the job of the architect to join both art and science to make sure all the pieces of a building come together in a good solution similar to architects as a software engineer you will also need to mix art and science to deliver solutions in a satisfactory way but instead of bricks you will solve them with code hi there i'm christian and you're watching the devastory today i will be starting a new series of videos covering software architecture in a practical way in this series of videos i will be covering many concepts and fundamentals of software architecture so hopefully by the end of it you will be more prepared to tackle software design challenges and have better discussions and even be more prepared for a technical interview so without further ado let's start software architecture has many definitions one of the most famous one is from ralph johnson where he says architecture is about the important stuff whatever that is but what is important stuff in the software architecture we focus more on the structure more than implementation details software architecture is also about making the expensive choices that are costly to change after they are implemented it's also about making explicit the core decisions that will allow the software to have high quality concepts are better understood in practice let's build an e-commerce site and see how that looks so for example in our e-commerce site we need to allow our users to do certain things like search in inventory check reviews buy a product review pass orders and maybe other features as well these are the functional requirements of the application besides of what the system should do we also need to focus on how should the system behave these are also called the non-functional requirements these are sometimes defined as the abilities that the system can have like functionality reliability usability efficiency these kind of things for example in our e-commerce site let's say that we wanted to be maintainable for several years and this is a maintainability requirement we also want to be able to serve millions of users in this case it's scalability we also want to make it available 24 7 which is a reliability to make sure that the system is very stable we also want to have good response latency which is efficiency and we can have many others finally besides functional and non-functional requirements you may also have additional restrictions that will limit the options that you will have for your architecture so for example we could have some legal compliance costs time to market standards etc several restrictions that will limit the number of options that we will have to design our system let's say in our e-commerce side we need to comply to the with the european privacy law uh gdpr so with that we need to take into consideration architecture how to handle that so after you get the context you know all the things that the system needs to do how it should behave and what restrictions are in place that you need to take into consideration so after you have all of these things you need to prioritize them some requirements and restrictions will conflict between them for example if you have a strict time to market maybe you need to drop some features there can also be other things like non-functional requirements that need to be prioritized so for example in our case of the e-commerce site we might not care too much about portability because we will have a strong control of where it's going to be deployed the application and after is deployed in there we don't plan to move it to other platforms so we could drop portability in favor of scalability or maintainability so after you have prioritized the list and you have made this trade-off you need to think about if it's acceptable or not so after it's acceptable then you start designing the uh the architecture how do you start designing the system so the first thing is once you have it prioritized start with one important thing at a time if you try to tackle everything at the beginning and trying to think about all the possible scenarios in the future you might end up having an over-engineered solution and this is not good because it is an unnecessarily complex system there is also an acronym for that that is jagni that you ain't gonna need it so if you are not sure about something or if it's not prioritized then try not to tackle at first try to postpone it to when you have better context and can make a better decision about it now that you have this you might start thinking about what are the possible architectures that might fit your system for that a good book that i recommend and that is useful for me and is this free ebook from o'reilly that is software architecture patterns it is a good boot to get a grasp of different architectural approaches and you can see several architectural patterns like layered event reverb microkernel microservices and space based this book shows pros and cons of each of these patterns and might help you at the beginning when you're designing the system what to look for and what would be best for your system based on your current requirements so we have decided what are some of the features that we want to have our system implemented we have also mentioned that maintainability is one of the non-functional requirements that is very important for us so with that we can start designing our system and we can take for example a layered approach we could have a database or a storage layer where we would sort data then we will have a logic layer where we will have the backend servers that will be taking care of handling any business logic that we want to handle and then the visualization part or ui where we'll be allowing the users to interact with the system and this is how we get to the layer architecture so here we have defined the architecture with the structure that the system will have the features can then be implemented following this layer architecture and if you want to learn a little bit more about how to implement the features in a scalable nice way then i recommend you to check out my other video about design patterns it's very typical in web applications to use a later architecture but it's not the only architectural pattern that we can use there is no silver bullet so make sure that in your context you look to different approaches and pick the architecture pattern that would better fit your use case it's also normal that the architecture would evolve over time and sometimes even in unintended ways that would make expensive changes to the architecture so you need to make a balance about foreseeing the certain things that you will need to cover versus the things that you need to prioritize in the short term if you try to tackle everything then you can end up having another engineer solution one of the most expensive things can be scaling so in our case we already have the architecture how can we make
Thanks Dee your participation is very much appreciated
- Bobby Galuppo
About the author
I've studied archaeology of the americas at Saint Mary's University of Minnesota in Winona and I am an expert in political anthropology. I usually feel loved. My previous job was vending machine mechanic I held this position for 2 years, I love talking about laser tag and photo: andrew ridley. Huge fan of Tom Hanks I practice surfing and collect match-related items.
Try Not to laugh !
Joke resides here...