Software Environment & Deployment

Benedictus Alvin
PDB+R
Published in
4 min readMar 18, 2019

Halo semuanya, kembali dengan saya Bene. Sekarang saya ingin membahas tentang Software Environment dan juga Deployment.

Software Environment? Apa itu?

Software Environtment mengandung fasilitas seperti Operating System, Windows Management, Database, dan specific development tools lainnya yang digunakan saat program dijalankan pada suatu processor. Jadi kurang lebih Software Environment adalah sebuah software yang digunakan untuk mendukung jalannya suatu aplikasi

Tipe Software Environtment

Software Environment memiliki beberapa tipe yang umum digunakan, diantaranya :

  1. Development Environtment : tempat customize, konfigurasi, dan menggunakan source control untuk membuat image dari software dilakukan.
  2. Test Environtment : tempat testing pada software yang sedang dikerjakan, meliputi unit testing ataupun functional testing
  3. QA Environtment : sama seperti test environment, namun kali test dilakukan terhadap hardware, database, dan software lain untuk menjaga kualitas perangkat lunak yang sedang dibuat.
  4. Production Environment : tempat dimana perangkat lunak sudah dapat di produksi dan dapat digunakan sebagai business use oleh end user

Docker + Django + Gitlab CI/CD

Berikutnya saya akan membahas ketiga hal yang terkait dalam proses deployment ini

  1. Django

Django adalah framework Python Web yang mengedepankan pengembangan yang cepat dan bersih serta desain yang pragmatis

2. Docker

Docker adalah sebuah tool yang didesign agar aplikasi dapat dibuat, dideploy dan dirun dengan mudah menggunakan container. Jadi Docker bisa dibilang mirip seperti heroku pada saat PPW. Berkat resource yang tersedia kita dapat menjalankan aplikasi dengan container meskpun terdapat perbedaan pada server dan pc.

3. Gitlab CI/CD

Gitlab CI/CD berfungsi untuk mengautomasikan proses test dan build yang jika dilakukan secara manual akan memakan waktu untuk menunggu kedua proses tersebut selesai

Implementasi dalam kelompok

  1. Setup Django Project

Menjalankan command “django-admin startproject [nama app]” yang setelah itu akan dilakukan penambahan test pada project tersebut

2. Docker

Project django sudah siap ditaruh di docker container, maka perlu disiapkan terlebih dahulu Dockerfile nya. Isi dockerfile kami sebagai berikut:

start.sh yang akan dijalankan docker

Setelah itu membuat docker-compose untuk mendefinisikan container yang dibutuhkan oleh program.

Kami menggunakan 2 container yaitu web (django) dan db (postgres).

Setelah itu kami melakukan build dan push melalui portainer. Dengan menjalankan command berikut:

Kemudian bisa login ke portainer untuk mengambil dan menjalankan image yang sebelumnya sudah tersedia.

Berikut adalah contoh tampilan dari docker kami :

docker untuk data-dosen
docker untuk data-mahasiswa
docker untuk jadwal-sidang

3. Gitlab CI/CD

Pembuatan gitlab.ci.yml dan dimasukkan kode ke dalam file tersebut untuk mengkonfigurasi style test, unit test dan functional test serta kode untuk membuat image aplikasi tersebut untuk staging dan production.

Style Test
Unit and Functional Test
image for staging
image for production

Oke deh guys, sekian pembahasan tentang Software Environtment dan Deployment dari saya, jangan lupa lihat-lihat tulisan kami yang lainnya ya ٩(●ᴗ●)۶

--

--