“Pake Django apa yang lain?”

Hadlina Rahmadinni
PPL cewe semua!
Published in
4 min readApr 3, 2019

Pasti diawal mulai matkul PPL semua team pernah ngucapin kata-kata tadi hehe

Software Architecture what?

Software architecture adalah struktur sistem dari sebuah program yang terdiri dari komponen-komponen perangkat lunak, ciri-ciri dari tiap komponen, dan hubungan antar komponennya.

Ada beberapa layer pada software architecture. Artinya, perubahan yang dibuat pada satu layer tidak akan berpengaruh ke layer lainnya. Di PPL, kami semua (seharusnya sih) menggunakan 4-Tier Architecture.

4-Tier Architecture

Biasanya arsitektur ini digunakan oleh aplikasi yang ngejalanin business logic dan UI nya engga di 1 tier yang sama. Buat developers, dengan 4 tier ini membuat mereka lebih leluasa buat bikin codenya. Misalnya, programmer yang meng-handle UI ga perlu pusing-pusing mikirin gimana data itu bakal dikalkulasi atau disimpen di database, karena udah berbeda tier.

  • Client Tier — XML & Android

Di client tier ini, developer cukup fokus ke UX-nya aja dan tidak terlalu memikirkan bagaimana data itu di deliver dibagian backend. Fokus membuat UI yang bagus dan memorable yang sesuai (dengan devices type, lokasi, dll) tanpa mengubah atau merusak proses dari backend-nya

  • Delivery Tier — Retrofit

Delivery tier berfungsi untuk pengiriman data dari client tier tadi dan mastiin kalau networknya terjangkau oleh si user. Delivery tier menggunakan intelligence‑driven solutions seperti Content Delivery Networks (CDNs) yang ‘dipasang’ pada client tier. Di Sumbang.in apps ini kami menggunakan Retrofit sebagai CDN.

  • Aggregation Tier — Django REST Framework

Aggregation tier ini yang mengurus gimana caranya bisa mengakses data. Pada tier ini akan dibuat gimana caranya mengakses raw data API dan menyambungkan aplikasi ke end point. Tier ini yang akan menjembatani antara service tier dan delivery tier dan yang men-translate dari SOAP ke JSON.

bentuk raw data pada endpoint /item/
  • Service Tier — Postgres (Database)

Service tier ini yang nantinya akan mem-provide tier-tier lain dengan data (yakan kerjaannya Database ya hehe). Tier ini biasanya punya beberapa format data seperti JSON, XML, dll. That’s whyy tier diatas ini (aggregation tier) harus bisa menterjemahkannya.

source:

Docker Orchestration

Hmm awalnya mungkin dimulai dari sini kali ya penjelasannya…

Jadi seperti yang udah dijelaskan diatas tentang 4-Tier Architecture, sebuah aplikasi punya 4 tier yang terpisah dan tiap tier pasti punya dependencies-nya masing-masing. Dependencies-nya bisa network connection, pemanggilan API, atau komunikasi antar tier. Berarti bisa dibilang kalau app itu adalah container yang punya specific configuration-nya masing-masing. Nah supaya app ini bisa disatuin kita butuh orchestration yang bisa membantu memanage lifecycle beberapa containers secara bersamaan. Ada beberapa orchestrations sih tapi yang paling sering keluar di internet adalah Kubernetes dan Docker Swarm.

Kubernetes

Kubernetes adalah aplikasi cluster management open source yang awalnya digunakan untuk aplikasi internalnya Google (Borg) buat mengelola clusternya mereka sendiri.

Kubernetes membantu tim untuk mengotomatisasi dan memanage semua aplikasi yang ada di dalem container tadi.

Docker Swarm

Walaupun docker udah bestie banget sama Kubernetes, tapi docker juga masih menyediakan orchestrationnya sendiri namanya Docker Swarm. Kita bisa menggunakan Docker Swarm melalui docker-compose.yml. Intinya sih sama kaya kubernetes, dimana cara kerjanya dapat memanage beberapa container sekaligus

Sekian dulu dari saya! babayy

--

--