<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Shirley Goenawan</title>
    <description>The latest articles on Forem by Shirley Goenawan (@shirley2504goenawan).</description>
    <link>https://forem.com/shirley2504goenawan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3596589%2Fc0f3cedd-00a6-46a1-94d8-4e2632361cb4.png</url>
      <title>Forem: Shirley Goenawan</title>
      <link>https://forem.com/shirley2504goenawan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shirley2504goenawan"/>
    <language>en</language>
    <item>
      <title>Analisis Performa dan Reliability Aplikasi Cloud-Native Menggunakan Docker dan Monitoring</title>
      <dc:creator>Shirley Goenawan</dc:creator>
      <pubDate>Wed, 21 Jan 2026 04:07:51 +0000</pubDate>
      <link>https://forem.com/shirley2504goenawan/analisis-performa-dan-reliability-aplikasi-cloud-native-menggunakan-docker-dan-monitoring-275d</link>
      <guid>https://forem.com/shirley2504goenawan/analisis-performa-dan-reliability-aplikasi-cloud-native-menggunakan-docker-dan-monitoring-275d</guid>
      <description>&lt;p&gt;&lt;strong&gt;A. Pendahuluan&lt;/strong&gt;&lt;br&gt;
Pada artikel ini, saya akan membahas tentang perancangan dan analisis sebuah aplikasi web berbasis cloud-native dengan studi kasus Task Management App. Fokus utama pengembangan aplikasi ini adalah pada performa, reliability, serta observability sistem dalam menghadapi berbagai tingkat beban.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B. Arsitektur Aplikasi&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aplikasi terdiri dari tiga komponen utama:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend sebagai web client&lt;/li&gt;
&lt;li&gt;Backend API menggunakan Node.js dan Express&lt;/li&gt;
&lt;li&gt;Database PostgreSQL untuk penyimpanan data
Seluruh komponen dijalankan dalam container Docker dan dikelola menggunakan Docker Compose, sehingga deployment menjadi lebih konsisten dan terisolasi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;C. Cloud-Native Deployment&lt;/strong&gt; &lt;br&gt;
Dengan menggunakan Docker Compose, backend API dan database dijalankan sebagai service terpisah namun berada dalam satu network internal. Pendekatan ini memudahkan pengelolaan environment serta mendukung prinsip cloud-native architecture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;D. Monitoring dan Observability&lt;/strong&gt;&lt;br&gt;
Backend menyediakan endpoint &lt;strong&gt;/metrics&lt;/strong&gt; menggunakan library prom-client. Endpoint tersebut menghasilkan metrik seperti:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU usage&lt;/li&gt;
&lt;li&gt;Memory usage&lt;/li&gt;
&lt;li&gt;EVent loop lag&lt;/li&gt;
&lt;li&gt;HTTP request latency
Metrik tersebut digunakan untuk memantau performa sistem dan mendeteksi potensi bottleneck sejak dini.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;E. Load Testing dan Hasil Simulasi&lt;/strong&gt;&lt;br&gt;
Pengujian performa dilakukan menggunakan Apache Benchmark dengna dua skenario:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Beban normal: 2000 request, 20 user konkuren&lt;/li&gt;
&lt;li&gt;Bbean tinggi: 10000 request, 200 user konkuren
Hasil simulasi menunjukkan bahwa sistem stabil pada beban normal, namun mengalami peningkatan latency dan timeout pada beban tinggi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;F. Analisis Bottleneck&lt;/strong&gt;&lt;br&gt;
Dua akar masalah utama yang ditemukan adalah:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Backend API bottleneck, ditandai dengan CPU usage tinggi dan meningkatkan event loop lag.&lt;/li&gt;
&lt;li&gt;Database bottleneck, akibat banyaknya query pada concurrency tinggi. 
Kedua faktor ini berkontribusi terhadap peningkatan p95 latency dan error rate. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;G. Improvement dan Roadmap&lt;/strong&gt;&lt;br&gt;
Beberapa improvement yang diusulkan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Autoscaling backend API&lt;/li&gt;
&lt;li&gt;Caching pada endpoint &lt;strong&gt;/tasks&lt;/strong&gt;
Optimasi query database dan connection pooling
Improvement ini bertujuan meningkatkan performa, reliability, serta efisiensi pengguna resource.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;H. Kesimpulan&lt;/strong&gt;&lt;br&gt;
Aplikasi cloud-native yang dirancang mampu berjalan dengan baik pada beban normal, namun memerlukan optimasi untuk menghadapi beban tinggi. Dengan penerapan strategi scalling dan optimasi yang tepat, sistem dapat menjadi lebih scalable dan sustainable.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>docker</category>
      <category>monitoring</category>
      <category>performance</category>
    </item>
    <item>
      <title>Menjalankan Aplikasi Python Melalui Platform Menggunakan Docker dan GitHub Actions</title>
      <dc:creator>Shirley Goenawan</dc:creator>
      <pubDate>Wed, 05 Nov 2025 04:06:57 +0000</pubDate>
      <link>https://forem.com/shirley2504goenawan/menjalankan-aplikasi-python-melalui-platform-menggunakan-docker-dan-github-actions-29oj</link>
      <guid>https://forem.com/shirley2504goenawan/menjalankan-aplikasi-python-melalui-platform-menggunakan-docker-dan-github-actions-29oj</guid>
      <description>&lt;p&gt;&lt;strong&gt;A. Latar Belakang&lt;/strong&gt;&lt;br&gt;
Dalam dunia pengenmabangan software modern, kemampuan untuk menjalankan aplikasi secara konsisten di berbagai sistem operasi menjadi kebutuhan penting. Perbedaan konfigurasi antara windows, linux, dan macOS sering menimbulkan masalah kompatibilitas. Maka dari itu, proyek ini dilakukan untuk memahami dan mempraktikkan konsep containerization menggunakan Docker sebagai solusi agar aplikasi dapat berjalan dengan stabil di berbagai platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B. Tujuan Proyek&lt;/strong&gt;&lt;br&gt;
Tujuan utama dari proyek ini adalah membangun aplikasi sederhana menggunakan Python, kemudia melakukan proses &lt;strong&gt;containerization&lt;/strong&gt; dengan docker agar aplikasi tersebut dapat berjalan baik di lingkungan windows ataupun linux. Selain itu proyek ini juga melibatkan penerapan workflow otomatis menggunakan GitHub Actions sebagai bentuk implementasi continuous integration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C. Tahapan Utama&lt;/strong&gt;&lt;br&gt;
Langkah-langkah utama yang dilakukan:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Membuat Git Respository dan menghubungkan ke GitHub.&lt;/li&gt;
&lt;li&gt;Membangun aplikasi sederhana (app.py) dan menyimpan file ke Dockerfile serta requirements.txt .&lt;/li&gt;
&lt;li&gt;Menguji Docker di dua sistem operasi (windows dan linux).&lt;/li&gt;
&lt;li&gt;Membuat workflow otomatis menggunakan GitHUb Actions agar image docker dapat dibuild otomatis.&lt;/li&gt;
&lt;li&gt;Menulis blog dan membuat video refleksi proyek.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;D. Tantangan yang Dihadapi&lt;/strong&gt;&lt;br&gt;
Tantangan terbesar dalam proyek ini adalah ketika docker tidak dapat berjalan di WSL karena integrasi belum aktif. Hal tersebut memerlukan beberapa langkah konfigurasi tambahan, termasuk menginstal Docker Desktop, mengaktifkan WSL integration, dan menyesuaikan direktori kerja agar dikenali oleh Git. Tidak hanya itu, pemahaman mengenai hubungan antara repository lokal dan remote di GitHub juga membutuhkan waktu untuk  memahami alur dengan benar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;E. Kesimpulan&lt;/strong&gt;&lt;br&gt;
Mellaui proyek ini, saya memahami bahwa cross-platform deployment sangat penting untuk menjaga portabilitas, efisiensi, dan konsistensi lingkungan pengembangan. Docker memberikan solusi nyata agar aplikasi dapat dijalankan dimana saja tanpa konflik sistem. Proses otomatisasi dengan GitHub Action juga memperlihatkan bagaimana konsep CI/CD pipeline dapat membantu mempercepat pengujian dan penyebaran aplikasi. Secara keseluruhan, proyek ini memberikan pengalaman praktis dalam mengelola aplikasi lintas platform dengan metode modern yang digunakan di industri saat ini. &lt;/p&gt;

</description>
      <category>docker</category>
      <category>python</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
