Of Architectures and Orchestrations

Alya Putri
PsychoTeam
Published in
2 min readMay 24, 2019

Software Architecture of PsychoTip

Software architecture is the process of converting software characteristics such as flexibility, scalability, feasibility, reusability, and security into a structured solution that meets the technical and the business expectations.

In a previous post of mine, I’ve mentioned that PsychoTip consists of two applications, the Android app for the main users (clients and psychologists), and the web application for the administrators. These two applications are connected to a Django-driven backend and also a database. For the Android application, the connection to Django is made possible with the Django REST Framework. The backend communicates with the database to retrieve queried data, and then sends it back to the frontend side.

Below is an illustration of PsychoTip’s software architecture:

Container Orchestration

We’ve reached the orchestration part. I’ll be honest here, this is one of the few things during our development that has eluded my understanding, but I’ll try to explain what I know about it as best as I can.

Container orchestration, in general, is about managing the lifecycles of containers, especially in large, dynamic environments. Software teams use container orchestration to control and automate many tasks, some of them are:

  • The process of starting and stopping containers.
  • Exposing functionalities from containers to end-users or other containers (service discovery).
  • Health monitoring of containers.
  • Scaling of containers to equally balance application workloads across infrastructure.

A few examples of docker orchestration tools are Docker Swarm and Kubernetes.

--

--