Infrastructure and Architecture

Infrastructure and Architecture

Explained and Simplified!

Β·

3 min read

Introduction ✨

Infrastructure and Architecture

Some of the terms I hear senior backend developers πŸ‘¨β€πŸ’»πŸ‘©β€πŸ’» use casually in conversations.
And when people with more experience speak, they tend to use terms like this that matter.
And as I would do whenever I notice the use of words or concepts, I researched it πŸ•΅οΈβ€β™€οΈ.
Well, It turns out that they are fundamental to know πŸ“–.

You probably know what they mean but do not know the right word for them.
Let’s have a brief look into what they are

Infrastructure β›©

Infrastructure refers to the underlying software or hardware tools/resources that enable you to run and support your application. You can also see it as a structure that protects and manages your entire application, where an application lives.

Infrastructure is like the foundation, walls, and utilities (like plumbing and electricity) of a building that protect and manage the entire structure where your application lives.

Creating an infrastructure would involve:

  • Configuring physical servers to host your apps

  • Setting up network components like load balancers, DNS settings and firewalls

  • Managing databases e.t.c

Examples of these include:

  • Hosting your app/containers/Virtual Machines on cloud platforms like AWS, GCP or Azure

  • Setting up Nginx/Apache for proxy, e.t.c

  • Security setup like enabling HTTPS for secure communication

Pictorial examples of an infrastructure

Architecture 🏠

Architecture, on the other hand, focuses on designing the high-level structure of the application. It describes how application components interact and how data flows between them. To be consistent with my analogy πŸ˜…, Software architecture is like the arrangement and layout of the rooms and spaces within the building.

It defines how different areas are organized, how people (or processes) move between rooms, and how various functions and interactions are held within the building.

Building architecture as a backend engineer involves making decisions about:

  • How data moves between parts of the app

  • The app structure for codebase maintainability

  • Frontend (HTML, CSS, React, etc.)

  • Backend (authentication, validation, your backend framework, etc.)

  • Business logic layer (services, models)

  • Data access layer (your database, ORM/ODM)

  • etc

Pictorial examples of architecture

Conclusion

To wrap it up, Infrastructure is all about the resources that allow you to host and run your application, while Architecture is about the design and structure of the application itself and how parts of the application interact with each other to achieve a goal. Usually, an Infrastructure or Architecture will be built by a team of people as it might become as complex as a project. A person can also build one out depending on their expertise, the project size and the timeline.

Ps: This is not a detailed look into what they are. Instead, It is meant to help you learn about them. They are related to what we do with systems design.
I hope this is helpful.
Have a great week ✌️

Β