Skip to main content

Backend Deployment Guides

Dokumen ini berisi panduan lengkap mengenai proses deployment tim backend, termasuk peran dan kolaborasi setiap anggota tim, standar pengembangan yang digunakan, alur deployment, serta alat monitoring yang diimplementasikan untuk menjaga performa dan stabilitas aplikasi.

Stakeholders and Collaboration

Bagian ini merangkum peran utama setiap anggota tim dalam proses deployment backend dan bagaimana mereka bekerja sama untuk memastikan proses berjalan lancar. Kolaborasi yang baik di antara stakeholder membantu menjaga kualitas, keamanan, dan kinerja sistem, serta memastikan bahwa aplikasi berfungsi optimal di berbagai platform.

Backend Engineer

  • Peran: Bertanggung jawab atas penulisan dan pemeliharaan kode backend, pengelolaan database, serta penanganan bug dan peningkatan kinerja aplikasi backend.
  • Kolaborasi: Berkolaborasi erat dengan tim frontend dan mobile untuk memastikan API dan endpoint backend berfungsi sesuai kebutuhan antarmuka pengguna. Memberikan dukungan teknis kepada tim lain dalam pengujian integrasi dan debugging.

Technical Writer

  • Peran: Menulis dokumentasi teknis yang jelas dan detail untuk deployment dan arsitektur backend, termasuk pedoman API, panduan pengguna, dan dokumentasi pengaturan lingkungan.
  • Kolaborasi: Bekerja sama dengan backend engineer untuk mengerti setiap perubahan teknis dan fitur baru. Memastikan dokumentasi selalu mutakhir dan mudah diakses oleh tim lain untuk referensi dan pembelajaran.

Frontend Engineer

  • Peran: Membuat dan mengoptimalkan antarmuka pengguna dengan memastikan bahwa aplikasi frontend berfungsi lancar dalam berkomunikasi dengan backend.
  • Kolaborasi: Berkoordinasi dengan tim backend untuk menyinkronkan pembaruan API dan debugging. Mengidentifikasi kebutuhan spesifik dalam API atau endpoint baru dan bekerja bersama backend engineer untuk penyesuaian yang dibutuhkan.

Mobile Engineer

  • Peran: Mengembangkan dan memelihara aplikasi mobile dengan memastikan integrasi API berjalan dengan optimal di platform mobile.
  • Kolaborasi: Bekerja sama dengan tim backend dalam pengujian API dan debugging untuk perangkat mobile. Membantu backend engineer memahami kebutuhan dan batasan platform mobile agar fitur dan endpoint yang dibuat sesuai dengan pengalaman pengguna di perangkat mobile.

Development with TDD

Test-Driven Development (TDD) adalah metode pengembangan yang digunakan oleh tim backend untuk memastikan bahwa setiap fungsi dalam kode diuji dengan baik sebelum diimplementasikan. Dengan TDD, tim menulis tes untuk fitur atau fungsi baru sebelum menulis kodenya. Siklus ini membantu mengidentifikasi dan memperbaiki bug lebih awal, serta menjaga kualitas dan konsistensi kode.

TDD terdiri dari tiga langkah utama, yang sering disebut siklus Red-Green-Refactor:

  1. Red: Menulis tes baru yang akan gagal pada awalnya karena fungsionalitas yang diuji belum ada.
  2. Green: Menulis kode minimum untuk memastikan tes berhasil.
  3. Refactor: Memperbaiki dan mengoptimalkan kode sambil memastikan bahwa tes tetap berhasil.

Diagram berikut menggambarkan alur kerja TDD dalam bentuk siklus sederhana:

Manfaat TDD dalam Deployment Backend

  • Kualitas Kode Terjamin: Dengan memastikan setiap perubahan melalui tes, tim dapat mencegah bug atau masalah dalam tahap awal.
  • Efisiensi dan Keamanan: Membantu mengidentifikasi potensi masalah sebelum proses deployment, sehingga mempercepat debugging.
  • Dokumentasi Otomatis: Tes yang ditulis juga berfungsi sebagai dokumentasi yang menjelaskan bagaimana setiap bagian kode seharusnya berfungsi.

TDD memberikan struktur yang jelas dalam pengembangan backend, terutama untuk fitur baru atau pembaruan kode, sehingga mempermudah pemeliharaan dan peningkatan kualitas aplikasi.

Coding Standards and Guidelines

Standar berikut ini digunakan oleh tim backend untuk menjaga konsistensi, keterbacaan, dan kualitas dalam pengembangan serta deployment. Dengan mengikuti standar ini, proses kolaborasi dan debugging menjadi lebih efisien.

Standard Format Response

Mengikuti standar HTTP Status Code yang diakui untuk memastikan respons API sesuai dengan praktik terbaik. Referensi lengkap mengenai kode status dapat dilihat di MDN Web Docs.

Standard Tipe Data

Untuk memastikan keseragaman dalam pengembangan, tipe data berikut digunakan:

  • string: “ ” (contoh: "username")
  • integer: 0 (contoh: 42)
  • boolean: true/false
  • date: unix timestamp (contoh: 1634239200)

Standard Branch

Penamaan branch dilakukan sesuai standar berikut:

  • Main: Branch utama untuk kode yang stabil dan siap produksi.
  • Dev: Branch untuk pengembangan dan pengujian fitur baru.
  • [name]: Branch pribadi untuk pengembangan oleh individu tertentu, contoh: james.
  • [name-experiment]: Branch untuk eksperimen atau fitur baru oleh individu, contoh: james-updatelogicbaru.

Standard Commit

Format pesan commit menggunakan awalan untuk menjelaskan jenis perubahan:

  • feat: Digunakan untuk menambahkan fitur baru, contoh: feat: create API Course trial
  • fix: Digunakan untuk perbaikan bug atau masalah, contoh: fix: update API Payment
  • refac: Digunakan untuk refactoring tanpa mengubah fungsionalitas, contoh: refac: update API course_status

Standar-standar ini membantu dalam menciptakan alur kerja yang terstruktur dan memudahkan anggota tim dalam memahami perubahan yang terjadi pada kode.

Deployment

Proses deployment mengikuti alur bertahap yang dimulai dari branch pengembangan individu hingga ke produksi. Berikut adalah langkah-langkah dalam alur deployment:

  1. yourBranch: Branch pribadi untuk pengembangan fitur atau perubahan baru. Pengembangan dilakukan dan diuji pada branch ini sebelum digabungkan ke branch dev.
  2. dev: Setelah pengembangan di branch pribadi selesai dan diuji, kode di-merge ke branch dev. Branch dev berfungsi sebagai lingkungan pengujian dan integrasi, di mana seluruh fitur baru diuji bersama untuk memastikan kompatibilitas dan stabilitas.
  3. prod: Jika kode di branch dev sudah teruji dan stabil, langkah terakhir adalah melakukan deployment ke branch prod. Branch prod merupakan branch produksi yang langsung berhubungan dengan aplikasi atau layanan yang digunakan oleh pengguna.

Diagram alur deployment:

Alur ini memastikan bahwa setiap perubahan melewati tahapan pengujian yang diperlukan, sehingga hanya kode yang stabil dan teruji yang mencapai lingkungan produksi.

Monitoring

Untuk memastikan performa dan kestabilan aplikasi setelah deployment, tim backend menggunakan berbagai alat monitoring yang membantu dalam memantau serta mendiagnosis masalah yang mungkin muncul di lingkungan produksi. Berikut adalah beberapa alat yang digunakan:

CloudWatch

  • Fungsi: Amazon CloudWatch adalah layanan pemantauan dan observabilitas dari AWS yang menyediakan data dan metrik waktu nyata terkait performa aplikasi dan infrastruktur.
  • Penggunaan: Digunakan untuk memantau metrik penting seperti CPU usage, memory, dan log aplikasi. Tim juga dapat mengatur alarm otomatis untuk memberikan notifikasi jika ada anomali atau batas tertentu terlampaui.

OpenTelemetry

  • Fungsi: OpenTelemetry adalah proyek open-source untuk observabilitas terdistribusi, menyediakan kerangka kerja untuk mengumpulkan data metrik, log, dan trace.
  • Penggunaan: Digunakan untuk memantau dan melacak permintaan melalui beberapa layanan dan aplikasi, sehingga tim dapat lebih mudah mengidentifikasi masalah dalam arsitektur terdistribusi. OpenTelemetry membantu dalam memahami latensi dan mengoptimalkan performa di berbagai bagian sistem.

Dengan memanfaatkan CloudWatch dan OpenTelemetry, tim backend dapat memantau aplikasi secara efektif, mengidentifikasi potensi masalah sebelum menjadi kritis, dan meningkatkan performa secara berkelanjutan.


Writer: Media
Contributor: Fauzan, Kukuh, Naufal 25 November 2024