Software Architectures Gone Wild

Rate this content
Bookmark

Get ready for a run through the world of Software Architectures! Everyone who works in software has heard of terms like ‘pwa’, ‘monoliths’, ‘headless’ , ‘microservices’ and even ’service oriented architectures’. We all know what they are, but how much do we really know about them? In this talk, we will show you the differences, the similarities, when to use them, when not to use them, the success stories and of course: the massive failures. Get ready for a half an hour of tech-comedy: architecture is going to be fast and fun!

FAQ

Jamie-Maria Schauven is the cofounder of Deity and an expert in software architectures.

Deity focuses on software architectures, particularly in adapting and implementing flexible, integrable, reliable, extensible, and scalable systems.

The three main software architectures mentioned are monolithic architecture, decoupled architecture, and service-oriented architecture.

Headless architecture refers to decoupling the front-end from the back-end, which increases flexibility and allows the front-end to operate independently via APIs, enhancing scalability and maintainability.

A Progressive Web App (PWA) combines the features of a native app and a responsive website, offering benefits like offline functionality, push notifications, and improved load times, which enhance user engagement and experience.

Service-oriented architecture (SOA) improves software systems by separating back-end services and using middleware to manage communication, resulting in enhanced flexibility, scalability, and reliability.

Monolithic architectures are often rigid and difficult to modify or scale. They can lead to significant downtime and complexity when any changes are needed, making them less adaptable to evolving business requirements.

Jamie Maria Schouren
Jamie Maria Schouren
31 min
01 Jul, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

The Talk discusses different software architectures and their challenges. It highlights the trend of decoupling the front-end from the back-end and embracing headless architecture and Progressive Web Apps (PWA). The benefits of a service-oriented architecture (SOA) are emphasized, including flexibility, reliability, and scalability. The Talk also explores breaking down monolithic architectures into microservices and the importance of addressing pain points first. Additionally, it mentions the challenges of testing in a QA environment and the choice between microservices and monoliths depending on project goals.

1. Introduction to Software Architectures

Short description:

Hello, everyone. Today, I'm going to talk about software architectures and it's going to be wild so wear some sunglasses. It's 2021 and the Internet traffic is growing like crazy. We were all spending a total online of 82.5 billion in May 2020, which was a 77 percent growth year to year. To survive and basically to survive our website, we're going to need a software system that is flexible, integrable, reliable, and extensible.

Hello, everyone. My name is Jamie-Maria Schauven and I'm the cofounder of Deity. Today, I'm going to talk about software architectures and it's going to be wild so wear some sunglasses.

I really want to first, before I start, give some credit to the artwork. It's by James Booker and it's called Random Galaxy Art and it's really amazing. If you want to know more, talk with me or follow us. My Twitter can be found in the left corner. Please tweet and please ask me any question that you want.

Okay, let's start. So first of all, it's 2021. And while we were saving the world in 1944 by actually going to battle, today, we're doing that by staying home and staying on our phone. And most of us are really doing that. And we see that in the Internet traffic. The Internet traffic is growing like crazy. Here is the Internet usage, which was happening in the first part of 2020 until April. As you can see, it's doubling and it's been crazy. And not only the Internet usage. We have the same in the e-commerce world. We were all spending a total online of 82.5 billion in May 2020, which was a 77 percent growth year to year. If you can see in the chart on the right corner, that is only until April. There was 27 percent of all the retail was happening online in the US. And as you can also see, the growth was massive. We've been doing this and they say that the growth has been almost six years. What was projected has been happening right now.

To survive and basically to survive our website, as many websites are struggling with this amount of traffic and this amount of orders coming in, we're going to need some fires on our website. What do I mean with the fires principle? Well, actually, if you want to survive in these times and if you want to make sure that your website is ready for future growth, you're going to need a software system that is flexible so you can build whatever your business needs now and in the future. You're also going to need to have a system that is integrable so you can integrate with any data source out there, no matter where it comes from. And also, you're going to need to be reliable. Your website needs to make sure that you can handle all the traffic as soon as you're growing and as soon as you're moving forward. Obviously, you also need to be extensible.

2. Introduction to Architectures

Short description:

The markets are changing very fast and you need to be able to adapt new features, new technologies, new marketplaces in a very soon way. Unfortunately, the flexibility of most websites is really, really bad. We have three main architectures: the monolithic architecture, the decoupled architecture, and the service-oriented architecture. The monolithic architecture is the old and gold one in the monolith. Everything is tightly coupled. The UI layer, the data layer, the processes, and everything is very interwoven.

The markets are changing very fast and you need to be able to adapt new features, new technologies, new marketplaces in a very soon way. And you need to be able that your software can extend without adding any complexity. And last but not least, you need to be scalable so you can scale your business unlimited as soon as your traffic is hitting or as soon as you're growing.

Unfortunately, the flexibility of most websites is really, really bad. It's more like vodka than it is like yoga. And that all has to do with the architectures. So how are sites built? Software architectures are basically the beginning of how you build your system, and you're making a blueprint of each element that needs to be in your site and in the system as a whole. So not just do I need shipping and do I need pricing and do I need an image, but also how these correlate with each other, which system has to communicate with what in the back and in the front end.

Basically, we have three main architectures. We have the monolithic architecture. We have the decoupled architecture and we have the service oriented architecture. I'm going to start with the monolithic architecture. Well, the monolithic architecture is the old and gold one in the monolith. Everything is tightly coupled. The UI layer, the data layer, the processes, and everything is very interwoven. And it looks like this. On my slides? Yeah. So in the monolithic architecture, as you can see, the presentation layer is very stuck together to the business logic and the data interface in the layer design. You find these different layers, but yet they're still very close together. If something happens on the presentation side, your business logic is going to struggle. And if something happens in the business logic, your presentation layer is going to struggle. Also, when you want to change something to your website, you're going to have to change it really inside the layer. So inside the logic, everything is there. Search, images, pricing, stock. Everything is inside that logic. If you want to change your pricing, if you want to change the stock service, you're going to have to break it open and rebuild inside of it. As you can imagine, if you grow, it's going to be a very big mass. It's going to be very, very complex as soon as you add more features to that. So there's a few pros of monoliths. Basically, a monolith is very, very good as the application is packaged and deployed as one.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Scaling Up with Remix and Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Scaling Up with Remix and Micro Frontends
Top Content
Do you have a large product built by many teams? Are you struggling to release often? Did your frontend turn into a massive unmaintainable monolith? If, like me, you’ve answered yes to any of those questions, this talk is for you! I’ll show you exactly how you can build a micro frontend architecture with Remix to solve those challenges.
Levelling up Monorepos with npm Workspaces
DevOps.js Conf 2022DevOps.js Conf 2022
33 min
Levelling up Monorepos with npm Workspaces
Top Content
Learn more about how to leverage the default features of npm workspaces to help you manage your monorepo project while also checking out some of the new npm cli features.
Full Stack Components
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Full Stack Components
Top Content
Remix is a web framework that gives you the simple mental model of a Multi-Page App (MPA) but the power and capabilities of a Single-Page App (SPA). One of the big challenges of SPAs is network management resulting in a great deal of indirection and buggy code. This is especially noticeable in application state which Remix completely eliminates, but it's also an issue in individual components that communicate with a single-purpose backend endpoint (like a combobox search for example).
In this talk, Kent will demonstrate how Remix enables you to build complex UI components that are connected to a backend in the simplest and most powerful way you've ever seen. Leaving you time to chill with your family or whatever else you do for fun.
Understanding React’s Fiber Architecture
React Advanced Conference 2022React Advanced Conference 2022
29 min
Understanding React’s Fiber Architecture
Top Content
We've heard a lot about React's Fiber Architecture, but it feels like few of us understand it in depth (or have the time to). In this talk, Tejas will go over his best attempt at understanding Fiber (reviewed by other experts), and present it in an 'explain-like-I'm-five years old' way.
Automating All the Code & Testing Things with GitHub Actions
React Advanced Conference 2021React Advanced Conference 2021
19 min
Automating All the Code & Testing Things with GitHub Actions
Top Content
Code tasks like linting and testing are critical pieces of a developer’s workflow that help keep us sane like preventing syntax or style issues and hardening our core business logic. We’ll talk about how we can use GitHub Actions to automate these tasks and help keep our projects running smoothly.
Fine-tuning DevOps for People over Perfection
DevOps.js Conf 2022DevOps.js Conf 2022
33 min
Fine-tuning DevOps for People over Perfection
Top Content
Demand for DevOps has increased in recent years as more organizations adopt cloud native technologies. Complexity has also increased and a "zero to hero" mentality leaves many people chasing perfection and FOMO. This session focusses instead on why maybe we shouldn't adopt a technology practice and how sometimes teams can achieve the same results prioritizing people over ops automation & controls. Let's look at amounts of and fine-tuning everything as code, pull requests, DevSecOps, Monitoring and more to prioritize developer well-being over optimization perfection. It can be a valid decision to deploy less and sleep better. And finally we'll examine how manual practice and discipline can be the key to superb products and experiences.

Workshops on related topic

AI on Demand: Serverless AI
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
AI on Demand: Serverless AI
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
In this workshop, we discuss the merits of serverless architecture and how it can be applied to the AI space. We'll explore options around building serverless RAG applications for a more lambda-esque approach to AI. Next, we'll get hands on and build a sample CRUD app that allows you to store information and query it using an LLM with Workers AI, Vectorize, D1, and Cloudflare Workers.
Deploying React Native Apps in the Cloud
React Summit 2023React Summit 2023
88 min
Deploying React Native Apps in the Cloud
WorkshopFree
Cecelia Martinez
Cecelia Martinez
Deploying React Native apps manually on a local machine can be complex. The differences between Android and iOS require developers to use specific tools and processes for each platform, including hardware requirements for iOS. Manual deployments also make it difficult to manage signing credentials, environment configurations, track releases, and to collaborate as a team.
Appflow is the cloud mobile DevOps platform built by Ionic. Using a service like Appflow to build React Native apps not only provides access to powerful computing resources, it can simplify the deployment process by providing a centralized environment for managing and distributing your app to multiple platforms. This can save time and resources, enable collaboration, as well as improve the overall reliability and scalability of an app.
In this workshop, you’ll deploy a React Native application for delivery to Android and iOS test devices using Appflow. You’ll also learn the steps for publishing to Google Play and Apple App Stores. No previous experience with deploying native applications is required, and you’ll come away with a deeper understanding of the mobile deployment process and best practices for how to use a cloud mobile DevOps platform to ship quickly at scale.
MERN Stack Application Deployment in Kubernetes
DevOps.js Conf 2022DevOps.js Conf 2022
152 min
MERN Stack Application Deployment in Kubernetes
Workshop
Joel Lord
Joel Lord
Deploying and managing JavaScript applications in Kubernetes can get tricky. Especially when a database also has to be part of the deployment. MongoDB Atlas has made developers' lives much easier, however, how do you take a SaaS product and integrate it with your existing Kubernetes cluster? This is where the MongoDB Atlas Operator comes into play. In this workshop, the attendees will learn about how to create a MERN (MongoDB, Express, React, Node.js) application locally, and how to deploy everything into a Kubernetes cluster with the Atlas Operator.
High-performance Next.js
React Summit 2022React Summit 2022
50 min
High-performance Next.js
Workshop
Michele Riva
Michele Riva
Next.js is a compelling framework that makes many tasks effortless by providing many out-of-the-box solutions. But as soon as our app needs to scale, it is essential to maintain high performance without compromising maintenance and server costs. In this workshop, we will see how to analyze Next.js performances, resources usage, how to scale it, and how to make the right decisions while writing the application architecture.
Azure Static Web Apps (SWA) with Azure DevOps
DevOps.js Conf 2022DevOps.js Conf 2022
13 min
Azure Static Web Apps (SWA) with Azure DevOps
WorkshopFree
Juarez Barbosa Junior
Juarez Barbosa Junior
Azure Static Web Apps were launched earlier in 2021, and out of the box, they could integrate your existing repository and deploy your Static Web App from Azure DevOps. This workshop demonstrates how to publish an Azure Static Web App with Azure DevOps.