Arsitektur Perangkat Lunak

Andrew Savero
PPL Teman Bisnis
Published in
3 min readMay 28, 2019

Kembali lagi dengan saya, tentunya dengan bahasan baru, yaitu Software Architecture. Saya akan membahas apa itu Software Architecture serta penerapannya dalam PPL TemanBisnis kami.

Source : https://cdn-images-1.medium.com/max/1200/1*M22DR3WPqbWXWidYIq2GwA.png

Pengertian

Selain makna gedung, istilah ‘arsitektur’ juga ada dalam Software Engineering dan Development. Istilah software architecture berperan sebagai sebuah struktur dalam sebuah software atau aplikasi. Jadi secara tidak langsung, software architecture juga menjadi solusi untuk requirements yang ada, lalu juga meningkatkan performance dan security secara bersamaan.

Beberapa Jenis Software Architecture Pattern

  1. Layered Pattern

Pattern ini digunakan untuk menstruktur program yang dapat didekompos menjadi beberapa subtask. Setiap layer memberikan service kepada layer diatasnya. 4 layer yang umumnya ditemukan ada sebagai berikut :

  • Presentation layer (UI layer)
  • Application layer (Service layer)
  • Business logic layer (Domain layer)
  • Data access layer (Persistence layer)

2. Client-Server Pattern

Pattern ini terdiri dari 2 komponen, yaitu satu Server dan Client yang lebih dari 1. Komponen server akan menyediakan berbagai macam service kepada komponen klien, dan komponen klien akan me-request service yang disediakan oleh komponen server, dan komponen server akan memberikan service yang relevan kepada komponen klien tersebut.

3. Microservices

Pada microservices, pendekatannya berdasarkan service-service yang mempunyai fitur tertentu, lalu terkumpul membangun suatu sistem. Sistem yang terbangun dari kumpulan service-service ini dapat memanggil service yang menjalankan fitur tersendiri.

Source : https://cdn-images-1.medium.com/max/1200/1*xa4-LEkrQGXd8GjDtMSeAw.png

Penerapan dalam PPL TemanBisnis

Aplikasi kami bisa dikatakan menerapkan container-based architecture. Kami menggunakan docker untuk menjalankan container dengan image yang sesuai. Setiap komponen pada aplikasi merupakan sebuah container (pada diagram digambarkan dengan kotak). Setiap container memiliki image yang akan digunakan.

Arsitektur ini dibuat berdasarkan kebutuhan teknologi dari klien kami. Pertama, TemanBisnis membutuhkan dashboard untuk melihat data hasil tracking user activity. Di sisi lain, TemanBisnis juga membutuhkan sebuah API yang dapat mengakomodasi kebutuhan tracking dari aplikasi mereka. Atas dasar kebutuhan tersebut, kami memutuskan untuk memisahkan komponen API tersebut menjadi sebuah container yang berdiri sendiri. Selanjutnya, masing-masing komponen, baik itu frontend dan android, dapat melakukan komunikasi dengan backend dengan metode yang biasa dilakukan pada arsitektur REST.

Komponen Aplikasi

Container ppla1-frontend adalah aplikasi web kami yang akan digunakan oleh TemanBisnis. Aplikasi frontend kami menggunakan framework Django. Komponen ini akan berinteraksi dengan backend untuk meminta data hasil tracking activity untuk ditampilkan pada dashboard.

Container ppla1-backend adalah aplikasi berupa REST API. Kami menggunakan framework Django REST dan sama seperti frontend. Komponen ini yang berperan penting untuk mengintegrasi antara database, frontend dan aplikasi android.

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

Demikian dari pengalaman yang saya dapat bagikan mengenai Software Architecture serta penerapannya. Sekian dari saya, jika ada kesalahan pada penulisan, mohon diingatkan dan dikoreksi, karena disini saya juga masih masih belajar :D. Terimakasih telah membaca artikel ini, dan sampai jumpa!

#PPLFasilkomUI
#PPLMenyenangkan

--

--