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

Postingan populer dari blog ini

Bab 1 : Software Requirements

Bab 4 : Software Construction

Bab 9 : Software Engineering Management