Last chance! 50% off DataCamp Premium
Sale ends in
Semakin banyak perusahaan ingin mengintegrasikan machine learning (ML) ke dalam produk mereka atau meningkatkan proses menggunakan ML. Akibatnya, memahami cara menavigasi kompleksitasnya berdampingan dengan perangkat lunak tradisional menjadi semakin penting.
DevOps diperkenalkan untuk menangani tantangan dalam pengembangan perangkat lunak. Tujuannya adalah memecah silo antara tim pengembangan perangkat lunak dan tim operasi, yang menghasilkan penerapan fitur baru lebih cepat dan rilis fitur ke lingkungan produksi yang lebih mulus.
MLOps dibangun di atas prinsip-prinsip ini tetapi menangani tantangan unik dalam ML, seperti dataset yang masif dan cepat berkembang, model yang perlu dilacak dan diberi versi, serta pemantauan untuk mengatasi tantangan seperti data drift atau concept drift.
Meskipun keduanya berbagi prinsip yang sama, fokus, alur kerja, dan peralatan yang digunakan sangat berbeda.
Dalam artikel ini, kita akan mengeksplorasi DevOps dan MLOps, menyoroti persamaan dan perbedaannya serta kapan menggunakan pendekatan yang mana. Kita juga akan melihat alur kerja khas dan alat apa yang digunakan untuk setiap tahap alur kerja tersebut.
Mari kita mulai!
DevOps adalah metodologi rekayasa perangkat lunak yang diciptakan untuk mempercepat proses pengembangan dan pengantaran perangkat lunak. Tujuan utamanya adalah meningkatkan kolaborasi antara tim pengembangan dan operasi. Ini menjembatani kesenjangan antara fungsi yang secara tradisional tersilo tersebut dan memungkinkan pengantaran perangkat lunak yang lebih cepat dan lebih andal.
Jadi, DevOps ingin membangun budaya kolaborasi dan mengotomatiskan sebanyak mungkin untuk meningkatkan efisiensi keseluruhan dan kecepatan pengantaran fitur perangkat lunak baru.
Saat ini, perusahaan besar seperti Meta, Amazon, dan banyak lainnya dapat merilis fitur perangkat lunak baru setiap hari berkat DevOps.
Jika Anda ingin mengenal bidang ini, saya merekomendasikan kursus Introduction to DevOps.
Tujuan utama DevOps adalah:
DevOps memiliki komponen inti berikut:
Terdapat alat standar industri yang membantu menerapkan komponen inti DevOps. Berikut beberapa yang paling populer:
MLOps memperluas prinsip-prinsip DevOps sambil berbagi tujuan yang sama, yakni mengotomatiskan proses. MLOps terdiri dari praktik-praktik yang dirancang untuk secara berkelanjutan, andal, dan efisien menerapkan serta memelihara machine learning di lingkungan produksi.
Bagian krusial di sini adalah fokus pada machine learning di produksi, bukan pada model yang dilatih di mesin lokal untuk eksperimen kecil.
MLOps dapat mengotomatiskan dan merampingkan semua tahap siklus hidup proyek machine learning.

Siklus hidup proyek machine learning. Gambar oleh Penulis
Namun mengapa kita membutuhkan MLOps sejak awal? Mengapa kita perlu berinvestasi upaya tambahan untuk menyiapkan alur kerja dan proses yang rapi? Jujur saja: Awalnya ini membutuhkan banyak upaya ekstra, dan pengembang mungkin tergoda untuk mengabaikannya demi cepat menerapkan model ke produksi. Namun, pendekatan ini menimbulkan risiko.
Seperti pada pengembangan perangkat lunak tradisional, mengabaikan proses yang rapi dan praktik terbaik sejak dini akan mengarah pada kompleksitas yang meningkat dan menurunnya kemampuan pemeliharaan seiring waktu.
Masalah ini bahkan lebih besar pada sistem ML karena tantangan unik dalam mengelola dependensi data, model yang berkembang, dan loop umpan balik.
Sebagaimana disorot dalam makalah yang berpengaruh “Hidden Technical Debt in Machine Learning Systems,” sistem machine learning menimbun utang teknis dengan cara yang tidak terjadi pada perangkat lunak tradisional.
Jadi, tanpa prinsip MLOps, biaya melakukan refactor pada sistem ML yang tidak terkelola di kemudian hari sering kali melebihi upaya yang diperlukan untuk membangun alur kerja yang tangguh.
Saya merekomendasikan kursus MLOps Concepts yang sangat baik jika Anda ingin mempelajari lebih lanjut tentang bidang ini.
Tujuan utama MLOps adalah:
Sekarang mari beralih ke komponen inti MLOps:
Bidang MLOps masih berkembang pesat. Namun, sudah ada standar industri untuk menerapkan komponen intinya:
Walaupun MLOps dibangun di atas DevOps dan karena itu memiliki banyak area tumpang tindih, keduanya berbeda dalam fokus, artefak yang dikelola, siklus hidup, alat, dan struktur tim. Hal ini terutama disebabkan oleh tantangan dan kebutuhan unik dalam alur kerja machine learning.
Pada subbab berikutnya, saya akan berfokus pada perbedaan keduanya di area tertentu.
DevOps berfokus pada aplikasi perangkat lunak dan memastikan pengembangan, pengujian, penerapan, dan pemeliharaan yang efisien. DevOps berpusat pada kode.
MLOps berfokus pada model machine learning dan alur kerja data, menangani tantangan persiapan data, pelatihan model, penerapan model, dan pemantauan.
Untuk MLOps, penting bahwa alur kerja ujung ke ujung, dari persiapan data hingga pelatihan model, dilacak dan dapat direproduksi. Karena itu, MLOps berpusat pada data dan model.
Sementara DevOps terutama mengelola artefak perangkat lunak seperti kode sumber, biner, dan file konfigurasi, MLOps mengelola artefak khusus ML seperti model, dataset, fitur, serta konfigurasi dan hasil eksperimen.
Artefak DevOps bersifat statis, sedangkan artefak MLOps bersifat dinamis karena berevolusi melalui pelatihan ulang dan perubahan data.
Jadi, perbedaan kunci di sini adalah MLOps harus mengelola siklus hidup baik kode perangkat lunak maupun artefak berbasis data. Inilah juga alasan MLOps dibangun di atas DevOps namun memperluasnya pada area tertentu.
DevOps berfokus pada tahap seperti build, test, deploy, dan monitor. Setelah aplikasi berada di produksi, perilakunya sepenuhnya dapat diprediksi.
MLOps berfokus pada tahap yang sama dengan DevOps tetapi memasukkan tahap tambahan seperti pra-pemrosesan data, rekayasa fitur, pelatihan dan pelatihan ulang model, serta pemantauan data atau concept drift.
Perilaku aplikasi kurang dapat diprediksi dan sangat iteratif karena model memerlukan pembaruan sering untuk beradaptasi dengan perubahan pada dataset.
Jadi, perbedaan kuncinya adalah siklus hidup MLOps didorong oleh data, sementara siklus hidup DevOps lebih berfokus pada kode.
DevOps berfokus pada kode dan mengandalkan pipeline CI/CD untuk mengotomatiskan tahap build, test, dan deploy. Alat seperti Gitlab CI/CD, Jenkins, atau Terraform dapat digunakan untuk ini.
Sebaliknya, MLOps perlu membangun pipeline untuk pemrosesan data, pelatihan model, dan penerapan model. Karena itu, diperlukan alat dan pipeline untuk membuat alur kerja data dan pelatihan, yang dapat dilakukan menggunakan alat seperti MLFlow, Kubeflow, Airflow, atau SageMaker.
Dalam beberapa kasus, pipeline MLOps juga membutuhkan dukungan infrastruktur unik, seperti GPU, yang tidak diperlukan untuk pipeline DevOps.
DevOps melibatkan kolaborasi antara tim perangkat lunak dan operasi. Terdapat juga pemisahan tanggung jawab yang jelas, karena software engineer akan fokus pada pengkodean, sementara tim operasi akan fokus pada bagian infrastruktur.
Proyek MLOps melibatkan data scientist, ML engineer, data engineer, dan tim operasi. Selain itu, proyek ini juga membutuhkan pakar domain jika data scientist bukan pakar domain utama.
Artinya, kedua disiplin membutuhkan struktur organisasi yang berbeda di perusahaan.
Sekarang setelah kita membahas perbedaannya, kita dapat berfokus pada area yang tumpang tindih pada kedua disiplin.
Untuk mengulang bagian yang paling penting: MLOps dibangun di atas DevOps sambil memperluasnya agar sesuai dengan tantangan unik machine learning. Keduanya berfokus pada otomatisasi alur kerja, meningkatkan kolaborasi, serta menjamin kualitas dan skalabilitas.
Keduanya mengotomatiskan alur kerja mereka menggunakan pipeline CI/CD. MLOps dan DevOps harus mengelola kode yang perlu dibangun, diuji, dan diterapkan.
MLOps memperluasnya untuk mencakup validasi data, pelatihan model, dan pipeline penerapan.
Namun, keduanya umumnya menggunakan CI/CD untuk menyederhanakan peralihan dari pengembangan ke produksi.
Keduanya menggunakan Infrastructure as Code (IaC) untuk menyediakan, mengelola secara otomatis, dan melakukan skala infrastruktur tanpa langkah manual. Alat seperti Docker, Terraform, dan Kubernetes banyak digunakan pada kedua disiplin.
Keduanya mencakup penyediaan server aplikasi, basis data, dan API. MLOps hanya menambahkan kebutuhan penyediaan infrastruktur untuk menangani dataset besar, pelatihan terdistribusi, dan penyajian model.
DevOps dan MLOps mengandalkan sistem pemantauan untuk mendeteksi masalah sedini mungkin dan memastikan keandalan. Alat seperti Prometheus dan Grafana lazim digunakan di keduanya.
Keduanya perlu memantau kinerja aplikasi, waktu aktif, dan log untuk debugging. Namun, MLOps menambahkan pemantauan metrik khusus model, seperti akurasi, drift, dan latensi.
Sekarang setelah kita membahas area tumpang tindih dan perbedaannya, kita dapat membahas kapan menggunakan disiplin yang mana.
Sebagaimana dibahas sebelumnya, MLOps berpusat pada data dan selalu masuk akal ketika Anda memiliki proyek yang berpusat pada data. Proyek seperti itu dapat melibatkan mengemudi otonom, analitik waktu nyata, atau pengenalan gambar.
Namun, MLOps juga penting untuk produk di mana machine learning menjadi fitur inti, seperti sistem rekomendasi (misalnya Netflix, Amazon), deteksi penipuan di layanan keuangan, atau aplikasi pemrosesan bahasa alami seperti chatbot. Anda juga dapat menggunakan MLOps kapan pun model ML perlu diperbarui dan dilatih ulang secara berkala.
Sebaliknya, DevOps paling masuk akal digunakan pada aplikasi perangkat lunak tradisional yang berfokus pada layanan web, aplikasi seluler, atau API, untuk menyebut beberapa contoh. Ini dapat mencakup platform e-commerce, sistem manajemen konten, atau alat Software-as-a-Service (SaaS).
DevOps juga masuk akal kapan pun Anda ingin memperpendek siklus pengembangan dan menerapkan fitur baru dengan cepat sambil memastikan keandalan sistem.
MLOps dan DevOps adalah disiplin yang kuat untuk menyederhanakan alur kerja dan meningkatkan efisiensi. Namun, keduanya juga memiliki tantangan.
Tantangan budaya, kompleksitas toolchain, dan isu skalabilitas perlu diatasi untuk menerapkan disiplin ini dengan sukses.
Saya akan berfokus pada beberapa tantangan yang saya alami pada subbab berikut.
DevOps melibatkan kolaborasi antara pengembang perangkat lunak dan tim operasi.
MLOps menambahkan data scientist, data engineer, dan ML engineer. Hal ini meningkatkan kebutuhan kolaborasi lintas fungsi.
Masing-masing kelompok ini memiliki prioritas dan keahliannya sendiri:
Keanekaragaman keahlian dan prioritas ini sering kali menyebabkan masalah komunikasi dan perbedaan tujuan.
Resistensi terhadap perubahan adalah tantangan lain yang perlu diatasi. Keduanya bersifat disruptif. Tujuannya mengotomatiskan alur kerja dan mengubah cara orang berpikir dan bekerja. Hal ini sering memunculkan penolakan dan keengganan untuk menerapkan alur kerja ini dalam keseharian.
Keduanya hadir dengan beragam alat yang perlu disediakan dan dipelajari. Namun, lanskap alat untuk DevOps kurang kompleks dan lebih terstandarisasi dibandingkan MLOps.
MLOps melibatkan beragam alat, dan integrasinya bisa kompleks serta memakan waktu.
Tim perlu berinvestasi waktu untuk mempelajari alat ini, sementara tim operasi harus mengintegrasikannya ke infrastruktur perusahaan, yang dapat menimbulkan kesulitan.
Keduanya juga memiliki tantangan skalabilitas. DevOps terutama berfokus pada penskalaan aplikasi dan layanan untuk memenuhi permintaan pengguna, sedangkan MLOps harus menangani pertumbuhan data dan model.
Untuk MLOps, tantangan unik lebih banyak muncul. ML sering memerlukan pemrosesan dataset besar dan pelatihan model ML yang besar, yang dapat membutuhkan infrastruktur unik seperti GPU atau TPU.
Pertumbuhan data menimbulkan tantangan dalam penyimpanan, pemrosesan, dan topik lain seperti versioning. Selain itu, model perlu diterapkan, dan kebutuhan latensi rendah dapat membuat penyajian model menjadi unik dan menantang.
Tantangan ini semakin menegaskan mengapa otomasi dan IaC adalah kunci untuk mengatasinya.
Dalam artikel ini, kita telah membahas MLOps dan DevOps beserta persamaan dan perbedaannya.
Keduanya penting untuk menyederhanakan alur kerja dan meningkatkan efisiensi.
Namun, DevOps terutama berfokus pada proses pengembangan dan penerapan perangkat lunak tradisional, sedangkan MLOps berfokus pada proyek yang berpusat pada data dan ML.
MLOps sendiri dibangun di atas prinsip DevOps, karena proyek ML juga mengandung perangkat lunak dan karenanya berbagi hal-hal dasar.
Namun MLOps memperluasnya untuk mengatasi tantangan spesifik ML, seperti dataset yang besar dan cepat berubah, model ML yang perlu diberi versi dan sering dilatih ulang, serta pemantauan yang harus menangani isu seperti data drift dan concept drift.
Jika Anda tertarik mempelajari lebih lanjut tentang MLOps dan DevOps, saya merekomendasikan kursus berikut:
MLOps mengelola siklus hidup machine learning, termasuk alur kerja data, pelatihan model, dan pemantauan, sementara DevOps berfokus pada proses pengembangan dan penerapan perangkat lunak tradisional.
Ya, MLOps dibangun di atas prinsip DevOps. Sebagian besar aplikasi machine learning juga melibatkan pengembangan perangkat lunak, sehingga menggabungkan kedua praktik ini sering diperlukan.
Dalam MLOps, alat populer mencakup MLflow, Kubeflow, dan SageMaker, sementara DevOps umumnya menggunakan Jenkins, Kubernetes, dan Terraform untuk CI/CD dan otomasi infrastruktur.
Menerapkan MLOps memerlukan keahlian dalam machine learning, rekayasa data, dan prinsip DevOps, serta pemahaman alat seperti Kubernetes, Airflow, dan MLflow.
Saya adalah Cloud Engineer dengan fondasi kuat di bidang Teknik Elektro, machine learning, dan pemrograman. Karier saya dimulai di ranah visi komputer dengan fokus pada klasifikasi citra, sebelum beralih ke MLOps dan DataOps. Saya mengkhususkan diri dalam membangun platform MLOps, mendukung data scientist, dan menghadirkan solusi berbasis Kubernetes untuk menyederhanakan alur kerja machine learning.
Pelajari lebih lanjut tentang machine learning dan MLOps dengan kursus-kursus ini!
{count, plural, one {Kursus} other {Kursus}}
{count, plural, one {Kursus} other {Kursus}}
{count, plural, one {Kursus} other {Kursus}}
{count, plural, one {blog} other {blogs}}
David Woods
13 mnt
{count, plural, one {blog} other {blogs}}
Hugo Bowne-Anderson
13 mnt
{count, plural, one {blog} other {blogs}}
Dario Radečić
15 mnt

{count, plural, one {blog} other {blogs}}
Javier Canales Luna
14 mnt