AdHub Software Architecture

M.Fakhruddin Hafizh
AdHub Team
Published in
3 min readApr 29, 2019

Halo Sobat AdHub!! Pada kesempatan kali ini kita akan membahas mengenai Software Architecture pada AdHub. Namun sebelum itu mari kita bahas secara singkat terlebih dahulu apa itu software architecture?

Penjelasan Software Architecture

Software architecture adalah sebuah proses untuk mendefinisikan struktur dari suatu perangkat lunak yang dapat memenuhi seluruh kriteria dari sisi teknis dan juga operasional, dengan pertimbangan kualitas seperti performance, security, and manageability.

“The highest-level breakdown of a system into its parts; the decisions that are hard to change; there are multiple architectures in a system; what is architecturally significant can change over a system’s lifetime; and, in the end, architecture boils down to whatever the important stuff is. (Martin Fowler)”

Menurut Garlan(2000) tujuan dari penggunaan Software Architecture adalah:

  • Untuk memahami sistem yang akan dibuat
  • Untuk menentukan berapa banyak sistem akan akan menggunakan kembali elemen-elemen dari sistem yang dibangun sebelumnya akan dapat digunakan kembali di masa depan
  • Sebagai blueprint untuk membangun sebuah sistem
  • Untuk menganalisis dependensi dan memilih desain, implementasi, dan teknik pengujian yang paling tepat
  • Untuk mendukung management decision dan memahami resiko inheritent implementation maintenance.

AdHub Software Architecture

AdHub menggunakan Django sebagai web framework, PostgreSQL sebagai database, dan Docker sebagai teknologi containerization.

Docker

Docker merupakan sebuah operating-system virtualization yang dapat membantu developer dalam mengembangkan software dalam lingkungan pengembangan yang berbeda-beda. Dengan menggunakan Docker kita tidak perlu khawatir soal sistem operasi, dependensi, dan faktor-faktor lainnya yang tidak terlalu berhubungan dengan pengembangan. Dengan menggunakan Docker kita dapat memisahkan code dengan infrastruktur.

Docker Compose
Django dan PostgreSQL yang kami gunakan harus dijalankan di beberapa docker container yang berbeda secara bersama. Untuk itu kita menggunakan Docker Compose(salah satu bagian docker orchestra) untuk menjalankan beberapa docker container secara bersamaan.

Beberapa command docker compose yang kami gunakan adalah:

  • docker-compose build, untuk build image
  • docker-compose up, untuk menjalankan server
  • docker-compose down, melakukan shut down projek
  • docker-compose run web bash, sebagai terminal pada projek yang sedang berjalan

Django Framework

Seluruh anggota tim AdHub sudah sangat familiar dengan Django. Selain itu, partner juga tidak keberatan apabila kita menggunakan Django. Oleh karena itu kami memutuskan untuk menggunakan Django Framework

PostgreSQL

PostgreSQl merupakan basis data relasional yang sangat umum digunakan.

Berikut adalah diagram software architecture AdHub:

--

--