Deployment environmet dll

Muthy Afifah
Auto Personalia
Published in
3 min readMay 17, 2017

Pada proses software deployment, environment merupakan sistem komputer dimana software akan dieksekusi. Pada dasarnya terdapat perbedaan antara development environment(tempat perubahan code) dan production environment. environemnt-environment tersebut dilengkapi dengan beberapa stage. Salah satu arsitektur deployment yang umum digunakan adalah development, testing, acceptance, dan production

  • develop environment adalah environment dimana aplikasi akan dikembangkan.
  • testing environment adalah environement yang menajalankan test, baik yan autmated atau yang manual. SIT(system integration testing) dijalankan pada environment ini. SIT merupakan test yang dilakukan untuk menguji fungsi-fungsi dari aplikasi adalah sebuah solusi yang terintegrasi
  • Stage/Pre-production/External-Client Acceptance adalah mirror dari production environment.
  • UAT merupakan pengujian yang dilakukan setelah SIT. pengguna akan mencoba aplikasi yang ada, jika aplikasi lulus UAT, maka aplikasi dapat berpindah ke environment selanjutnya
  • production environment merupakan stage yang dilihat oleh customer

Automated Deployment

automated deployment dilakukan dengan menyesuaikan konfigurasi CI gitlab. proses inisiasi keteika developer melakukan commit message ke VCS yang asa. giltab CI akan mengetahui ini dan dilakukan unit test terhadap kode. Setelah berhasil lolos test dan merge branch ke develop maka secara otomatis akan dideploy ke server heroku yang ada. Dari heroku cukup menekan stu tombol maka akan dengan mudah masuk ke environment staging dan production. bebera stagenya:

  • commit stage: dilakukan integrasi dengan gitlab CI yang akan melakukan cek kode dan kompilasi. disini akan dilakukan unit test dan dikembalikan artifak.
  • Acceptance test stage: pada tahap ini, dilakukan acceptance test sesuai dengan kriteria yang telah dibuat. hal ini bisa dilihat dari beberapa sisi seperti code coverage,fungsionalitas dll. Pada tahap ini developer meminta merge request ke branch develop
  • capacity stage: dilakukan pengecekan apakah sistem dapat menyediakan layanan modul yang dibuat. dilakukan setelah berhasil merge branch ke develop
  • UAT: dilakukan pada saat sprint review
  • Release: setelah semua test dilakukan maka bisa ke tahap rilis.

Untuk melakukan setting heroku bisa dilihat disini

Error Code

error code merupaka kode yang ditampilkan dan dimengerti oleh developer. Error code berguna untuk mempermudah developer ketika terdapat bug sehingga dengan mudah mengetahui bagian mana pada program yang menyebabkan bug. Terdapat pada README.ms pada branch develop

Code Coverage Tool

code coverage adalah ukuran untuk menentukan seberapa banyak/baris code yang dibuat telah ditest menggunakan coded test seperti unit test. kelompok kami menggunakan Istanbul untuk menghitung code coverage dan nyc sebagai command line interface. pada file packgae.json bisa menambahkan command “test-coverage”: “nyc — reporter=lcov mocha tests” yang jika menjalankan npm run test-coverage maka program akan menghitung code coberage dan hasilnya akan ada dalam folder coverage sedangkan “report”: “nyc — reporter=text-summary mocha tests” output hasil ke stdout yang berguna untuk code coverage pada gitlab pipeline

Refactoring

code refactoring merupakan proses mengubah struktur dari code tanpa mengubah behavior dari fungsi tersebut. Keuntungan dari refactoring adalah untuk meningkatkan code readability dan mengurangi complexity;

teknik-teknik refactoring antara lain:

  • teknik yang memperbolehkan abstraction: encapsulasi — force code with getter &setter, generalize type — membuat type yang general
  • breaking code apart

improving name and location of code

Singleton Design Pattern

singleton design pattern mencegah banyaknya instance dari suatu “class” menjadi hanya satu. membuat singleton pada node.js cukup gampang. hanya membutuhkan require untuk menolongmu. contoh:

var PI = Math.PI;

function circle (radius) {
return radius * radius * PI;
}

module.exports.circle = circle;

tidak peduli berapa kali reuire modul pada aplikasi, itu hanya ada sebagai single instance

var areaCalc = require('./area');

console.log(areaCalc.circle(5));

karena behavior ini singleton merupakan Node.js design pattern yang umum.

--

--