Bab 6 : Software Engineering Operations
Nama : Mutia Ardelia Rokhima
NIM : 240605110075
Bab 6 : Software Engineering Operations
Bagian 1 : Dasar Dasar Software Engineering Operations
A.
Konsep dan Peran Software Engineering Operations
1.
Definisi dan Peran Software Engineering Operations
Software Engineering Operations merupakan serangkaian aktivitas
sistematis yang berfokus pada pengoperasian, pengendalian, dan pemeliharaan
perangkat lunak setelah tahap pengembangan, dengan tujuan memastikan sistem
berjalan secara andal, aman, dan berkelanjutan. Aktivitas ini mencakup proses
seperti instalasi, deployment, pemantauan kinerja, pengelolaan kapasitas, serta
penanganan insiden yang terjadi dalam lingkungan operasional . Dalam siklus
hidup perangkat lunak, operasi berperan penting sebagai penghubung antara fase
pengembangan dan penggunaan nyata, karena memastikan perangkat lunak tetap
tersedia, memenuhi kebutuhan kinerja, serta mampu beradaptasi terhadap
perubahan dan gangguan yang terjadi selama sistem digunakan.
2.
Tiga Aktivitas Utama dalam Operasi Rekayasa Perangkat
Lunak
1.
Instalasi dan Deployment
Instalasi
dan deployment adalah proses pemasangan dan rilis perangkat lunak ke lingkungan
produksi. Aktivitas ini memastikan sistem siap digunakan dengan konfigurasi
yang sesuai. Fungsinya adalah menjamin aplikasi berjalan stabil, meminimalkan
kesalahan, dan mendukung pembaruan sistem secara aman.
2.
Pemantauan dan Logging
Pemantauan
dan logging adalah proses mengawasi kinerja sistem serta mencatat aktivitas dan
error yang terjadi. Data ini digunakan untuk mengetahui kondisi sistem secara
real-time. Fungsinya untuk mendeteksi masalah lebih awal, membantu analisis
kesalahan, dan meningkatkan keandalan sistem.
3.
Manajemen Insiden
Manajemen
insiden adalah proses menangani gangguan atau kegagalan sistem agar layanan
cepat pulih. Proses ini meliputi identifikasi, perbaikan, dan evaluasi masalah.
Fungsinya untuk mengurangi downtime, menjaga layanan tetap berjalan, dan
mencegah masalah terulang kembali.
3.
Analisis Studi Kasus: Sistem Perbankan Mengalami
Downtime
|
Aktivitas
Operasional |
Deskripsi |
Dampak
pada Sistem |
|
Instalasi dan Deployment |
Proses
rilis sistem baru, pembaruan, atau patch ke lingkungan produksi, termasuk
konfigurasi server dan database. |
Jika
deployment tidak terkelola dengan baik (misalnya tanpa rollback plan), dapat
menyebabkan kegagalan sistem, downtime, atau inkonsistensi data transaksi. |
|
Pemantauan dan Logging |
Pengumpulan
log transaksi, performa server, serta aktivitas pengguna secara real-time. |
Tanpa
monitoring yang efektif, kegagalan tidak terdeteksi lebih awal, sehingga
downtime berlangsung lebih lama dan berdampak pada hilangnya kepercayaan
pengguna. |
|
Manajemen Insiden |
Penanganan
gangguan seperti kegagalan transaksi, overload sistem, atau error database. |
Manajemen
insiden yang buruk memperpanjang waktu pemulihan (mean time to repair),
meningkatkan risiko kerugian finansial dan reputasi bank. |
Bagian 2 : Instalasi, Deployment, dan Pemantauan Sistem
A. Instalasi dan
Deployment Perangkat Lunak
1.
Perbedaan Instalasi dan Deployment
Instalasi perangkat lunak adalah
proses pemasangan aplikasi pada suatu sistem atau perangkat hingga siap
dijalankan. Fokusnya pada setup teknis seperti konfigurasi awal, dependensi,
dan lingkungan sistem.
Deployment perangkat lunak adalah
proses penyebaran aplikasi ke lingkungan produksi agar dapat digunakan oleh
pengguna. Deployment mencakup instalasi, tetapi juga melibatkan distribusi,
konfigurasi lanjutan, integrasi sistem, dan pengelolaan rilis.
2.
Model Deployment Perangkat Lunak
1.
On-Premises Deployment
Model
ini menempatkan aplikasi pada server lokal yang dimiliki dan dikelola langsung
oleh organisasi. Pendekatan ini memberikan kontrol penuh terhadap sistem dan
data, tetapi membutuhkan biaya infrastruktur dan pemeliharaan yang tinggi.
2.
Cloud Deployment
Pada
model ini, aplikasi dijalankan pada infrastruktur cloud yang disediakan oleh
pihak ketiga dan diakses melalui internet. Model ini menawarkan fleksibilitas
dan skalabilitas tinggi, namun bergantung pada koneksi jaringan dan penyedia
layanan.
3.
Hybrid Deployment
Hybrid
deployment menggabungkan penggunaan server lokal dan cloud dalam satu sistem
yang terintegrasi. Model ini memungkinkan organisasi menjaga data sensitif
secara lokal sekaligus memanfaatkan keunggulan cloud untuk efisiensi dan
skalabilitas.
3.
Tabel Kelebihan dan Kekurangan
|
Model
Deployment |
Kelebihan |
Kekurangan |
|
On-Premises |
Kontrol
penuh terhadap data dan sistem, keamanan lebih terjamin |
Biaya
tinggi, membutuhkan infrastruktur dan maintenance sendiri |
|
Cloud-Based |
Skalabilitas
tinggi, biaya awal rendah, fleksibel |
Ketergantungan
pada internet, risiko keamanan eksternal |
|
Hybrid |
Fleksibel,
dapat menyeimbangkan keamanan dan skalabilitas |
Kompleks
dalam pengelolaan dan integrasi sistem |
4.
Studi Kasus: Aplikasi E-Government
Model
deployment yang paling sesuai adalah Hybrid Deployment.
Alasan:
Aplikasi e-government membutuhkan tingkat keamanan tinggi untuk data sensitif
(dapat disimpan di on-premises), sekaligus membutuhkan skalabilitas dan akses
luas bagi masyarakat (menggunakan cloud). Dengan hybrid, pemerintah dapat
menjaga kontrol data penting sekaligus memanfaatkan fleksibilitas cloud untuk
pelayanan publik yang lebih efisien.
B.
Pemantauan Sistem dan Logging
1.
Tujuan Utama Pemantauan Sistem
Pemantauan sistem bertujuan untuk
memastikan perangkat lunak berjalan secara optimal, stabil, dan sesuai dengan
kebutuhan kinerja yang telah ditentukan. Selain itu, pemantauan memungkinkan
deteksi dini terhadap gangguan atau anomali sehingga masalah dapat segera
ditangani sebelum berdampak luas pada pengguna.
2.
Identifikasi Alat Pemantauan
a.
Prometheus
Prometheus
adalah alat monitoring berbasis open-source yang digunakan untuk mengumpulkan
dan menyimpan metrik sistem dalam bentuk time-series data. Alat ini banyak
digunakan untuk memantau performa aplikasi berbasis cloud dan microservices.
b.
New Relic
New
Relic merupakan platform monitoring berbasis cloud yang menyediakan analisis
performa aplikasi secara menyeluruh. Alat ini mampu memantau aplikasi,
infrastruktur, dan pengalaman pengguna secara real-time.
c.
ELK Stack (Elasticsearch, Logstash, Kibana)
ELK
Stack adalah kombinasi alat untuk pengelolaan dan analisis log, terdiri dari
Elasticsearch untuk penyimpanan data, Logstash untuk pemrosesan log, dan Kibana
untuk visualisasi. Alat ini digunakan untuk memahami aktivitas sistem melalui
data log.
3.
Tabel Fitur dan Kegunaan
|
Alat
Bantu |
Fitur
Utama |
Kegunaan |
|
Prometheus |
Pengumpulan
metrik time-series, query dengan PromQL, alerting |
Memantau
performa sistem dan aplikasi secara real-time |
|
New Relic |
Monitoring
end-to-end, analisis performa aplikasi, dashboard interaktif |
Mengidentifikasi
bottleneck dan meningkatkan pengalaman pengguna |
|
ELK Stack |
Pengolahan
log, pencarian data cepat, visualisasi data |
Analisis
log untuk troubleshooting dan audit sistem |
4.
Contoh Konfigurasi Sederhana Prometheus
Konfigurasi
ini digunakan untuk memantau aplikasi yang berjalan di port 8080 dengan
interval pengambilan data setiap 15 detik. Data metrik yang dikumpulkan
kemudian dapat dianalisis untuk melihat performa aplikasi secara berkala.
Bagian 3: Manajemen Insiden dan Otomasi Operasional
A. Manajemen
Insiden dalam Operasi Perangkat Lunak
1.
Konsep Incident Management
Incident Management adalah proses
sistematis untuk mengidentifikasi, menganalisis, dan menangani gangguan pada
sistem perangkat lunak agar layanan dapat segera dipulihkan. Tujuan utamanya
adalah meminimalkan dampak terhadap pengguna serta menjaga ketersediaan dan
kualitas layanan sistem.
2.
Lima Langkah Utama Manajemen Insiden
a.
Identifikasi
Tahap
ini bertujuan mendeteksi adanya gangguan atau anomali dalam sistem. Insiden
dapat diketahui melalui monitoring, laporan pengguna, atau notifikasi otomatis.
b.
Analisis
Setelah
teridentifikasi, dilakukan analisis untuk mengetahui penyebab insiden. Proses
ini penting untuk menentukan tingkat keparahan dan dampak masalah.
c.
Respons
Tahap
respons adalah tindakan awal untuk mengatasi insiden agar tidak semakin meluas.
Biasanya berupa pembatasan akses, pengalihan trafik, atau tindakan darurat
lainnya.
d.
Pemulihan
Pemulihan
bertujuan mengembalikan sistem ke kondisi normal. Ini bisa meliputi perbaikan
sistem, restart layanan, atau pemulihan data.
e.
Pencegahan di Masa Depan
Tahap
ini berfokus pada evaluasi dan perbaikan agar insiden tidak terulang. Biasanya
dilakukan melalui root
cause analysis
dan peningkatan sistem.
3.
Studi Kasus: Sistem E-Commerce Mengalami Serangan DDoS
|
Langkah |
Deskripsi |
Penerapan dalam Studi Kasus |
|
Identifikasi |
Mendeteksi adanya gangguan sistem |
Sistem monitoring mendeteksi lonjakan trafik tidak normal |
|
Analisis |
Menentukan penyebab insiden |
Diketahui serangan DDoS dari banyak IP address |
|
Respons |
Mengambil tindakan awal |
Mengaktifkan firewall dan memblokir IP mencurigakan |
|
Pemulihan |
Mengembalikan sistem normal |
Menstabilkan server dan menyeimbangkan beban (load
balancing) |
|
Pencegahan |
Mencegah kejadian ulang |
Menerapkan proteksi DDoS dan sistem keamanan tambahan |
4.
Simulasi Laporan Insiden (Aplikasi Transportasi
Online)
·
Judul Insiden: Gangguan Layanan
Aplikasi Transportasi Online
·
Waktu Kejadian: 10.00 WIB
·
Deskripsi: Pengguna tidak dapat
memesan layanan karena aplikasi tidak merespons dan terjadi error pada server.
·
Dampak: Sebagian besar pengguna
tidak dapat mengakses layanan pemesanan, menyebabkan penurunan transaksi.
·
Penyebab: Terjadi overload
server akibat lonjakan pengguna secara tiba-tiba.
·
Tindakan Penanganan: Tim teknis
melakukan restart server dan menambah kapasitas melalui scaling.
·
Hasil: Sistem kembali normal
dalam waktu 30 menit dan layanan dapat digunakan kembali.
·
Rekomendasi: Meningkatkan
kapasitas server dan menerapkan sistem auto-scaling untuk mengantisipasi
lonjakan trafik di masa depan.
B. Otomasi dalam
Operasi Perangkat Lunak
1.
Manfaat Otomasi dalam Operasi Perangkat Lunak
Otomasi dalam operasi perangkat
lunak bertujuan untuk meningkatkan efisiensi, konsistensi, dan kecepatan dalam
menjalankan tugas-tugas operasional seperti deployment dan monitoring. Dengan
otomatisasi, proses yang sebelumnya manual dapat dilakukan secara berulang
tanpa kesalahan manusia (human error), sehingga meningkatkan keandalan
sistem.
Selain itu, otomatisasi
memungkinkan respon yang lebih cepat terhadap perubahan dan gangguan sistem,
misalnya melalui deployment otomatis dan monitoring real-time. Hal ini sangat
penting dalam lingkungan modern seperti cloud dan microservices yang membutuhkan
skalabilitas dan ketersediaan tinggi.
2.
Identifikasi Alat Otomasi
a.
Ansible
Ansible
adalah alat otomatisasi berbasis agentless yang digunakan untuk
konfigurasi sistem, deployment aplikasi, dan manajemen server.
b.
Kubernetes
Kubernetes
adalah platform orkestrasi container yang digunakan untuk mengelola deployment,
scaling, dan operasi aplikasi berbasis container.
c.
Terraform
Terraform
adalah alat infrastructure as code yang digunakan untuk mengelola dan
menyediakan infrastruktur secara otomatis melalui konfigurasi kode.
3.
Tabel Fitur dan Kegunaan
|
Alat Bantu |
Fitur Utama |
Kegunaan |
|
Ansible |
Agentless, playbook YAML, konfigurasi otomatis |
Otomatisasi deployment dan manajemen server |
|
Kubernetes |
Orkestrasi container, auto-scaling, self-healing |
Mengelola aplikasi container secara efisien |
|
Terraform |
Infrastructure as Code, provisioning otomatis |
Membuat dan mengelola infrastruktur cloud |
4.
Contoh Skrip Sederhana Ansible
Contoh
playbook Ansible untuk deployment aplikasi web sederhana:
Penjelasan
singkat:
· Menginstall
web server (nginx)
· Menyalin file
website ke server
· Menjalankan
layanan nginx
Bagian 4 : Evaluasi Keamanan dan Performa dalam Operasi Perangkat
Lunak.
A. Evaluasi
Keamanan Sistem Operasional
1.
Pentingnya Keamanan dalam Operasi Perangkat Lunak
Keamanan dalam operasi perangkat
lunak sangat penting karena sistem sering menangani data sensitif seperti
informasi pribadi, finansial, atau medis yang harus dilindungi dari akses tidak
sah. Tanpa keamanan yang memadai, sistem rentan terhadap serangan yang dapat
menyebabkan kebocoran data, kerugian finansial, serta penurunan kepercayaan
pengguna.
Selain itu, keamanan juga berperan
dalam menjaga ketersediaan dan integritas sistem agar tetap berfungsi dengan
baik. Gangguan seperti serangan siber dapat menyebabkan downtime atau
manipulasi data, sehingga menghambat operasional dan merugikan organisasi.
2.
Tiga Teknik Utama Meningkatkan Keamanan
a.
Enkripsi Data
Enkripsi
digunakan untuk mengubah data menjadi bentuk yang tidak dapat dibaca tanpa
kunci tertentu. Teknik ini melindungi data baik saat disimpan (data at rest)
maupun saat dikirim (data in transit).
b.
Penjadwalan Patch (Patch Management)
Patch
management adalah proses memperbarui perangkat lunak secara berkala untuk
menutup celah keamanan. Pembaruan ini penting untuk mencegah eksploitasi
terhadap kerentanan sistem yang sudah diketahui.
c.
Intrusion Detection System (IDS)
IDS
adalah sistem yang memantau aktivitas jaringan atau sistem untuk mendeteksi
potensi serangan atau aktivitas mencurigakan. IDS membantu memberikan
peringatan dini sehingga tindakan pencegahan dapat segera dilakukan.
3.
Studi Kasus: Cloud Computing untuk Data Medis
Untuk meningkatkan keamanan pada
sistem cloud yang menangani data medis, diperlukan pendekatan berlapis (defense
in depth). Data medis harus dienkripsi baik saat disimpan maupun saat
ditransmisikan untuk menjaga kerahasiaannya.
Selain itu, penerapan kontrol akses
yang ketat, monitoring sistem secara real-time, serta penggunaan IDS sangat
penting untuk mendeteksi ancaman. Ditambah dengan patch management yang rutin
dan audit keamanan berkala, sistem dapat lebih terlindungi dari serangan serta
memenuhi standar keamanan dan privasi data medis.
B. Evaluasi Performa
dalam Operasi Perangkat Lunak
1.
Evaluasi Performa dalam Lingkungan Produksi
Performa
perangkat lunak dievaluasi dengan memantau kinerja sistem secara langsung saat
digunakan oleh pengguna di lingkungan produksi. Proses ini dilakukan dengan monitoring
berkelanjutan, pengumpulan metrik, serta analisis log untuk mengetahui apakah
sistem memenuhi standar kinerja yang ditetapkan.
Selain
itu, evaluasi juga melibatkan pengujian beban (load testing) dan
analisis tren performa untuk mengidentifikasi bottleneck serta potensi masalah.
Dengan pendekatan ini, organisasi dapat memastikan sistem tetap stabil, cepat,
dan mampu menangani jumlah pengguna yang meningkat.
2.
Tiga Metrik Utama Evaluasi Performa
a.
Response Time
Response
time adalah waktu yang dibutuhkan sistem untuk merespons permintaan pengguna.
Metrik ini menunjukkan seberapa cepat aplikasi memberikan hasil setelah
menerima request.
b.
Throughput
Throughput
adalah jumlah permintaan atau transaksi yang dapat diproses oleh sistem dalam
periode waktu tertentu. Metrik ini menggambarkan kapasitas sistem dalam
menangani beban kerja.
c.
Error Rate
Error
rate adalah persentase jumlah kesalahan atau kegagalan sistem dibandingkan
total permintaan. Metrik ini digunakan untuk menilai tingkat keandalan sistem.
3.
Tabel Evaluasi Performa
|
Metrik Evaluasi |
Deskripsi |
Alat Bantu yang Digunakan |
|
Response Time |
Waktu yang dibutuhkan sistem untuk merespons permintaan
pengguna |
Prometheus, New Relic, Grafana |
|
Throughput |
Jumlah request/transaksi yang diproses dalam waktu tertentu |
Apache JMeter, Prometheus |
|
Error Rate |
Persentase kegagalan atau error dalam sistem |
ELK Stack, New Relic, Sentry |
Kesimpulan
dan Refleksi
1. Kesimpulan
Konsep Software
Engineering Operations mencakup berbagai aktivitas penting seperti
deployment, monitoring, manajemen insiden, otomatisasi, serta evaluasi keamanan
dan performa sistem. Seluruh aspek tersebut saling terintegrasi untuk
memastikan perangkat lunak dapat berjalan secara optimal, stabil, dan aman
dalam lingkungan produksi.
Pemahaman
terhadap Software Engineering Operations membantu menjaga keberlanjutan
perangkat lunak karena memungkinkan sistem terus beroperasi dengan baik, cepat
beradaptasi terhadap perubahan, serta mampu menangani gangguan secara efektif.
Dengan penerapan praktik operasional yang tepat, kualitas layanan dapat
dipertahankan dan kepercayaan pengguna tetap terjaga.
2. Refleksi
Pribadi
Tantangan
terbesar dalam memahami dan menerapkan operasi perangkat lunak adalah
kompleksitas sistem modern yang melibatkan banyak komponen seperti cloud,
container, dan berbagai alat otomatisasi. Selain itu, diperlukan pemahaman
teknis yang cukup luas agar dapat mengintegrasikan monitoring, keamanan, dan
manajemen insiden secara efektif.
Konsep yang
dipelajari dapat diterapkan dalam proyek nyata dengan mengimplementasikan
deployment otomatis, monitoring sistem secara real-time, serta manajemen
insiden yang terstruktur. Dengan demikian, pengembangan perangkat lunak tidak
hanya fokus pada pembuatan aplikasi, tetapi juga memastikan aplikasi tersebut
dapat berjalan dengan andal dan berkelanjutan di dunia nyata.
Komentar
Posting Komentar