5 Software Architectures Everyone Should Know
Last time I had to study for a technical interview, I ended up getting two full blog articles out of it. Seeing how successful it was, I’ve decided to do it again – this time on software architecture!
I figure the best way to go about this article is by covering a few very popular software architectures across the whole gamut. In order, we’ll be covering:
Blue-green Deployment (DevOps)Strangler Fig (Modernization)Three-tier Web Apps (Software Engineering)Three-tier Data Lakes (Data Science)Active-active Disaster Recovery (IT)You’ll notice some of these we’ve actually talked about before on our journey, while others you might have never even heard of before. For that reason I wanted to take things in an order where we’d cover the newer stuff first, and go into review concepts later. Let’s get into it!
Blue-Green DeploymentThis might sound new, but it’s actually just a combination of ideas we’ve talked about fairly recently. You see, blue-green deployment is a DevOps architecture, which means it’s all about building, testing, and deploying code. All the blue-green deployment is saying is that we have two different branches – blue, or dev, and green, or production – and we have a method for transferring the blue branch to the green branch when it’s tested and ready.
Some people always keep blue as dev and green as prod, while others switch them off depending on the version. Some people immediately ship every update from blue to green, others might ship out very particular features and see how users react. You know how people always groan and complain about new Youtube features, even though you’ve never seen them before? It’s because Google uses this iterative version of blue-green (more specifically called the “canary” variant)!
Strangler FigWhen I first saw this, I thought I was having a stroke. I know there’s plenty in the software architecture world I don’t understand, but strangler fig? I don’t even know how to begin parsing that information.
Fortunately, just like blue-green deployment, this is just a complicated term for something that’s pretty simple. You see, a strangler fig is a type of plant that slowly takes over another plant over time. And in the context of app modernization, our strangler fig would be our new microservices/serverless architecture, and the other plant would be our monolithic app.
That’s all it is! We take specific functions from our monolith, and convert it to containers over time to make for a smooth and easy transition into modernization. This is the baseline for all app modernization, and you probably knew it even if you haven’t heard the term before!
Three-Tier Web AppsA three-tier web app is pretty much the essential way to develop any modern application. You might imagine what a two-tier web app is – front-end (presentation) and back-end (database) – and all the three-tier process does is wedge in a dedicated section called the “application tier”. This is a pretty terrible name – isn’t the entire application just the application? – but to make things more specific, it’s any function that an app actually performs. So you might have a sign in page (presentation) and a roster of users (database), but the actual act of signing in as one of those users would be considered the application layer. Pretty easy!
Three-Tier Data LakesAlright, now we’re getting into the real review territory. We covered this pretty recently in our article on architecting with Snowflake and Databricks, so I’ll keep things concise. Remember when I talked about the Medallion architecture – separating data between raw, cleaned, and curated depending on the user and the use case? Well, “medallion” is just Databricks’ special name for this three-tier data lake architecture. Keeping your data in various states allows for different types of analysis – for example, super structured data works well for BI dashboards, but if you’re trying to find entirely new connections, you want the data to be as structureless as possible. What you can do is have a form of the data be raw for structureless k-means clustering, but copy and paste it over to a different tier where it can be highly curated and used in something like Tableau or Google Looker. That’s all it is!
Active-Active Disaster RecoveryIf you thought we were never going to touch disaster recovery again, you’d be wrong! In general, there are three types of disaster recovery architectures: Backup and Restore, Pilot Light, and Active-Active (some people also include Warm Standby, which is more or less just a variant on Pilot Light). These architectures are sorted by lowest cost but highest downtime (Backup and Restore) to highest cost but lowest downtime (Active-Active). I pick Active-Active specifically because its short and sweet: You have two identical data centers running at the exact same time, doing the exact same thing, in two different regions. Nowadays, one of these is usually on prem while the other is in the cloud. All of these other disaster recovery architectures follow this two-region approach as well, but we’ll save them for another time.
Do you want me to touch on any specific architecture in the future? Let me know in the comments!
The post 5 Software Architectures Everyone Should Know appeared first on Jacob Robinson.


