Arsitektur Perangkat Lunak, kaya gimana coba?

Ryan Aulia Rachman
PPL Teman Bisnis
Published in
3 min readMay 31, 2019

Hai hai hai. Ketemu lagi dengan saya di post saya yang ke-6 ini. Kali ini saya bakal coba bahas apa itu Software Architecture dan bagaimana kelompok kami menerapkannya. Siap? Come on let’s go!

Arsitektur bangunan. Ngga nyambung ya? Maaf.

Pengertian Software Architecture

Kita mulai dulu dari pengertian awalnya. Software Architecture merupakan struktur fundamental dari suatu sistem software atau aplikasi. Software Architecture juga merupakan sebuah ilmu yang mempelajari cara membangun struktur itu sendiri.

Jadi bisa dibilang software architecture menjadi solusi untuk requirements yang telah ditentukan juga meningkatkan performance dan security secara bersamaan.

Macam Macam Software Architecture

Tentunya soal kiblat bentuk arsitektur perangkat lunak ada banyak sekali. Kalau mau tau ada apa aja coba cari sendiri. Hehe.

Buat sekarang, saya akan coba bahas beberapa yang umum digunakan.

1. Layered (n-tier) Architecture

Kalau dari namanya pasti udah kebayang kan? Aplikasi yang dibuat dibagi pada layer nya masing-masing yang tentunya dapat berhubungan.

2. Microservices Architecture

Penggunaan arsitektur ini berawal dari ide dimana pembuatan suatu service dengan fitur yang banyak yang sebenarnya terdiri dari service-service kecil yang masing-masing memiliki fitur tersendiri.

3. Container-based Architecture

Arsitektur ini memiliki komponen utama container dan image. Karena kelompok kami menggunakan arsitektur ini kita akan bahas lebih lanjut di bawah.

Penerapan Arsitektur oleh Kelompok A1

Seperti yang sudah saya katakan, kelompok A1 menggunakan container-based architecture. Buktinya? Penggunaan docker dimana dalam hal ini kami menggunakan docker untuk menjalankan container dengan image yang sesuai. Untuk yang belum mengetahui apa itu docker bisa di baca pada link berikut (sekalian promosi posting punya teman).

Jadi setiap komponen pada aplikasi yang kami buat merupakan sebuah container, sesuai diagram di atas, dimana tiap container memiliki image aplikasi yang akan digunakan dan sudah dipush ke registry PPL ( registry.docker.ppl.cs.ui.ac.id) yang dipull oleh masing-masing container.

Kelompok-kelompok PPL tahun ini, termasuk aplikasi kami, diberikan host docker.ppl.cs.ui.ac.id. Registry dari image yang digunakan oleh container juga sudah dipush pada host yang sama. Untuk pembagian port sendiri kelompok kami diberikan jatah dari port 21100–21199. Kami menggunakan port 21120 untuk frontend dan 21130 untuk backend. Setiap port kemudian diteruskan ke port 8000 pada container untuk aplikasi Django.

Fungsi Komponen Komponen Aplikasi

Container ppla1-frontend

Aplikasi web kami yang akan digunakan oleh partner kami yaitu TemanBisnis. Menggunakan framework Django dan image dasar yang digunakan adalah python3.6. Komponen ini akan berinteraksi dengan backend untuk meminta data hasil tracking activity untuk ditampilkan pada dashboard.

Container ppla1-backend

Aplikasi berupa REST API yang menggunakan framework Django REST dan, sama seperti frontend, image dasarnya adalah python3.6. Komponen ini yang berperan penting untuk pengintegrasian antara database, frontend dan aplikasi android.

Container ppla1-db

Komponen lain yang tidak kalah penting adalah container untuk database. Aplikasi kami menggunakan image postgresql. Container tersebut diakses oleh backend saja.

Penutup

Tidak ada kesimpulan yang bisa saya ungkapkan tapi saya berharap semoga apa yang saya tulis bermanfaat.

Sampai jumpa di lain kesempatan!

--

--