Software Architects vs. Architects: What’s the Difference?

Naima Moertadho
PsychoTeam
Published in
3 min readMay 2, 2019

blue·print
/ˈblo͞oˌprint/

(noun):
1. a design plan or other technical drawing.
2. something that acts as a plan, model, or template.

Chances are, you’re probably familiar with the term “blueprint,” right? Especially if you work in the construction (i.e. building buildings) industry. The word blueprint is also closely linked with the architect profession — as in, it’s their job to create blueprints that will eventually become a building.

So, are building architects the only ones in charge of making a blueprint?

The answer is no. There’s another profession that also uses blueprints in building something. The difference is, instead of building a… well, building, the blueprint is used to build a software. What’s the profession? Why, it’s another type of architect, the Software Architect!

Illustration of Software Architect

Software Architecture of PsychoTip

As I’ve briefly explained in my previous post, PsychoTip consists of mainly two applications: the Android client app and the Admin web app. Each of these applications are connected to a Django backend and database. In the case of the Android application, the connection to Django is made through the Django REST Framework API. The backend then deals with the database, before sending data back to the frontend side. I know, kind of confusing, right? Maybe a picture really is worth a thousand words:

The “blueprint” of PsychoTip

Docker Orchestration

According to the scoring sheet, docker orchestration is also a part of the software architecture (hehe), so I will try my best to explain what it is. I will touch more on what exactly is docker orchestration in general. If you’re interested about PsychoTip’s docker configurations and such, you can visit my previous post.

Docker orchestration is all about configuring the life cycle of a container, and it’s especially useful in a large, dynamic environment. It also minimizes the risks of bad things happening to the application (crashing, etc.). A few examples of docker orchestration tools are docker swarm and Kubernetes.

A few container/docker orchestration tools.

A few things that are orchestrated in docker orchestration are:

  • The process of starting and stopping containers.
  • Exposing functionalities from containers to end-users or other containers (service discovery).
  • Monitoring and responding to container’s behaviors.
  • Deploying a new version of the container with zero-downtime.
  • Scaling, whether it be automatically or manually.

Well, that’s it for this article! Thank you for reading!

--

--