Lewati ke konten utama

Komputasi Awan dan Arsitektur untuk Data Scientist

Pelajari bagaimana data scientist memanfaatkan cloud untuk menerapkan solusi data science ke produksi atau memperluas daya komputasi.
Diperbarui 28 Sep 2026  · 13 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Data Science yang Skalabel Melampaui Mesin Lokal

Data science adalah istilah yang mewakili persinggungan banyak hal penting.

Menurut saya ada pilar-pilar keahlian data science, yaitu:

  • Domain bisnis
  • Probabilitas dan statistika
  • Ilmu komputer dan pemrograman perangkat lunak
  • Komunikasi tertulis dan lisan

Pilar ketiga sepenuhnya berkaitan dengan pemahaman ilmu komputer dan pemrograman perangkat lunak.

Walaupun mungkin tidak langsung terlihat bagi data scientist pemula, area ini juga sering mencakup hal-hal seperti devops, komputasi awan, pipeline data, rekayasa data, keahlian melakukan kueri ke berbagai jenis basis data, membangun dan menerapkan solusi perangkat lunak produksi, dan seterusnya.

Selain itu, data scientist perlu mengembangkan keterampilan pemrograman yang solid, namun mereka mungkin tidak sedidik atau berpengalaman dalam ilmu komputer, konsep pemrograman, atau arsitektur dan infrastruktur perangkat lunak produksi secara umum seperti insinyur perangkat lunak yang terlatih atau berpengalaman. Ketika seseorang memulai di data science, mereka akan memasang Python dan/atau R di komputer lokal, lalu menulis dan mengeksekusi kode di Lingkungan Pengembangan Terpadu (IDE) lokal seperti Aplikasi Jupyter Notebook atau RStudio.

Seiring analitik lanjutan menjadi lebih umum dan tim data science berkembang, kebutuhan akan solusi kolaboratif untuk menyampaikan insight, analitik prediktif, sistem rekomendasi, dan sebagainya juga meningkat. Riset yang dapat direproduksi dan alat notebook yang dikombinasikan dengan pengendalian sumber kode merupakan bagian dari solusi kolaborasi, sementara memanfaatkan alat dan platform daring berbasis cloud merupakan bagian lainnya.

Kebutuhan kolaboratif juga meluas ke pihak di luar tim data science, terutama karena data science sebagian besar diterapkan untuk mencapai tujuan bisnis. Dengan demikian, pemangku kepentingan dari sebuah proyek data science dapat mencakup eksekutif, pimpinan departemen, dan staf tim data lainnya seperti arsitek, data engineer, analis, dan sebagainya.

Artikel ini dimaksudkan untuk memberikan wawasan kepada data scientist tentang apa yang ada di luar laptop atau desktop lokal, khususnya dalam konteks menempatkan solusi data science ke produksi, atau dalam hal memperluas daya dan kapabilitas komputasi Anda. Bergantung pada pengalaman Anda dengan topik-topik ini, konten ini relevan bagi data scientist di semua tingkat keterampilan.

Mari kita mulai!

Apa Sebenarnya yang Dimaksud dengan Cloud?

Ah ya, cloud yang termasyhur namun masih sering kurang dipahami. Selain terdengar sangat hipotesis dan abstrak, cloud sebenarnya sangat konkret dalam makna yang dimaksudkan. Mari kita definisikan beberapa konsep kunci sebelum beralih ke konsep cloud.

Komputer yang saling terhubung dan berbagi sumber daya disebut jaringan, dengan Internet sendiri sebagai contoh jaringan komputer terbesar dan paling terkenal. Jaringan rumah, seperti Local Area Network (LAN) atau WiFi Service Set Identifier (SSID), di mana beberapa komputer terhubung, adalah contoh lain, meskipun jauh lebih kecil. Sumber daya yang dimaksud di sini dapat mencakup halaman web, media, penyimpanan data, server aplikasi, printer, dan lain-lain.

Komputer dalam sebuah jaringan biasanya disebut node, dan mereka berkomunikasi satu sama lain menggunakan protokol yang terdefinisi dengan baik seperti HyperText Transfer Protocol (HTTP), Transmission Control Protocol (TCP)/Internet Protocol (IP), dan sebagainya. Komunikasi ini dapat untuk pembaruan status, pemantauan, permintaan/respons, dan banyak kegunaan lainnya.

Lebih jauh, komputer sering kali tidak berlokasi di tempat (on-premise), artinya aplikasi dan data sering dihosting pada komputer yang berlokasi di pusat data. Tempat-tempat ini menyediakan semua infrastruktur yang diperlukan, seperti listrik, pendinginan, keamanan, perlindungan bencana, dan lain-lain untuk memelihara dan menjalankan sejumlah besar komputer yang dapat diakses perusahaan atau publik pada umumnya.

Karena komputer dan penyimpanan menjadi relatif murah seiring waktu, banyak solusi kini mempekerjakan banyak komputer yang bekerja bersama yang tidak terlalu mahal untuk diskalakan, alih-alih meningkatkan skala solusi dengan membeli satu mesin komputasi super kuat dan sangat mahal. Sebagian dari "bekerja bersama" ini adalah memastikan solusi terus berjalan secara otomatis bahkan jika salah satu komputer mengalami kegagalan dan juga agar sistem mampu melakukan penskalaan otomatis untuk menangani beban yang dibebankan pada sistem.

Twitter, Facebook, Instagram, Snapchat, Netflix, dan YouTube adalah contoh sempurna aplikasi berbasis cloud yang perlu diskalakan dalam kedua cara ini. Sangat kecil kemungkinannya aplikasi mereka "mati" sepenuhnya, dan mereka juga mampu menangani jutaan pengguna harian yang berinteraksi dengan platform mereka.

Ketika sekelompok komputer tertentu terhubung ke jaringan yang sama dan bekerja bersama untuk menyelesaikan tugas yang sama atau serangkaian tugas, ini disebut kluster. Sebuah kluster dapat dipandang sebagai satu komputer, tetapi dapat menawarkan peningkatan besar dalam kinerja, ketersediaan, dan skalabilitas dibandingkan satu mesin. Manfaat ini akan dibahas lebih lanjut di bagian berikutnya.

Istilah komputasi terdistribusi atau sistem terdistribusi merujuk pada perangkat lunak dan sistem yang ditulis untuk memanfaatkan kluster guna melakukan tugas tertentu, seperti Hadoop, Spark, dan MapReduce.

Terakhir, ke definisi cloud. Selain sumber daya bersama yang dijelaskan di atas, sumber daya solusi penting lainnya dapat mencakup server, layanan, mikroservis, jaringan, dan sebagainya. Cloud menggambarkan situasi di mana satu pihak memiliki, mengelola, dan mengatur sekelompok komputer berjaringan dan sumber daya bersama, yang umumnya digunakan untuk meng-host dan menyediakan solusi berbasis perangkat lunak. Berdasarkan definisi ini, meskipun Internet jelas dianggap sebagai jaringan, ia bukan cloud karena tidak dimiliki oleh satu pihak.

Untuk pendalaman lebih jauh tentang komputasi awan, dan pembahasan konsep kunci dalam menciptakan perangkat lunak yang skalabel dan arsitektur big data, lihat seri mendalam saya yang terdiri dari tiga bagian tentang topik ini.

Data Science di Cloud

Tulisan ini kini telah membahas komputasi awan dan konsep terkait lain dengan cukup dalam untuk semoga menggambarkan konsep yang terlibat. Jika eksposur Anda terhadap arsitektur dan rekayasa perangkat lunak saat ini terbatas pada pengembangan lokal saja, Anda mungkin bertanya-tanya mengapa semua ini relevan bagi data scientist. Inilah yang dibahas berikutnya.

Jika Anda akrab dengan proses data science, Anda tahu bahwa sering kali sebagian besar alur kerja data science dilakukan pada komputer lokal data scientist. Komputer tersebut telah terpasang bahasa pilihan, seperti Python dan R, serta IDE yang disukai data scientist. Pengaturan lingkungan pengembangan utama lainnya adalah memasang paket yang relevan baik melalui pengelola paket seperti Anaconda, atau memasang paket individual secara manual.

Setelah lingkungan pengembangan siap dan mantap, alur atau proses kerja data science yang khas pun dimulai, dengan data sebagai satu-satunya hal lain yang dibutuhkan untuk sebagian besar. Langkah-langkah alur kerja yang iteratif biasanya mencakup:

  • Memperoleh data
  • Parsing, munging, wrangling, transformasi, dan pembersihan data
  • Menganalisis dan menambang data, seperti Exploratory Data Analysis (EDA), statistik ringkasan, ...
  • Membangun, memvalidasi, dan menguji model, seperti prediktif, rekomendasi, ...
    • Catatan: Jika tidak membangun model, maka mengidentifikasi pola atau tren, menghasilkan insight yang dapat ditindaklanjuti, mengekstrak informasi berguna, membuat laporan, dan sebagainya. Di sini, tutorial ini akan menganggap kedua kasus tersebut sebagai "membuat deliverable".
  • Menyetel dan mengoptimalkan model atau deliverable

Namun terkadang, tidak praktis atau tidak diinginkan untuk melakukan semua tugas terkait data science atau big data pada lingkungan pengembangan lokal. Berikut adalah beberapa alasan utama mengapa demikian:

  • Dataset terlalu besar dan tidak muat ke memori sistem (RAM) lingkungan pengembangan untuk pelatihan model atau analitik lainnya
  • Daya pemrosesan (CPU) lingkungan pengembangan tidak mampu melakukan tugas dalam waktu yang wajar atau memadai, atau bahkan sama sekali
  • Deliverable perlu diterapkan ke lingkungan produksi, dan mungkin digabungkan sebagai komponen dalam aplikasi yang lebih besar (misalnya, aplikasi web, platform SaaS, ...)
  • Lebih disukai menggunakan mesin yang lebih cepat dan lebih bertenaga (CPU, RAM, ...) dan tidak membebani mesin pengembangan lokal dengan beban yang diperlukan

Ketika situasi ini muncul, ada beberapa opsi yang tersedia. Alih-alih menggunakan mesin pengembangan lokal data scientist, biasanya orang memindahkan pekerjaan komputasi ke mesin on-premise, atau mesin virtual berbasis cloud (misalnya, AWS EC2, AWS Elastic Beanstalk). Keuntungan menggunakan mesin virtual dan kluster yang diskalakan otomatis adalah mereka dapat dijalankan dan dihentikan sesuai kebutuhan, serta disesuaikan untuk memenuhi kebutuhan komputasi dan penyimpanan data.

Dalam kasus menerapkan deliverable ke lingkungan produksi untuk digunakan sebagai bagian dari aplikasi yang lebih besar atau pipeline data, ada banyak opsi dan tantangan yang perlu dipertimbangkan. Pembahasan lebih lanjut tentang hal itu berada di luar ruang lingkup artikel ini.

Selain solusi dan alat data science berbasis cloud atau produksi yang dikembangkan kustom, ada banyak penawaran berbasis cloud dan layanan dari vendor-vendor ternama, yang sering kali bekerja baik dengan alat notebook seperti Jupyter. Ini tersedia terutama sebagai API big data, machine learning, dan kecerdasan buatan, dan mencakup opsi seperti platform Artificial Intelligence AWS, Databricks, Google Cloud Platform Datalab dan Machine Learning, dan banyak lagi.

Untuk pembahasan yang jauh lebih rinci dan mendalam tentang data science dan analitik lanjutan di produksi versus pengembangan, termasuk rekomendasi bahasa, paket, framework, dan platform, silakan lihat seri tiga bagian saya tentang topik ini. Seri arsitektur perangkat lunak yang skalabel dan big data saya juga merupakan pelengkap yang sangat baik tentang komputasi awan.

Arsitektur Perangkat Lunak dan Atribut Kualitas

Arsitektur perangkat lunak mencakup perancangan sistem perangkat lunak, biasanya berbasis cloud, yang merepresentasikan produk, layanan, atau sistem komputasi berbasis tugas. Anda juga mungkin mendengar istilah arsitektur sistem atau arsitektur perangkat lunak, yang keduanya kurang lebih berarti hal yang sama.

Bagian dari merancang arsitektur perangkat lunak adalah memilih bahasa dan teknologi pemrograman yang sesuai (alias stack), komponen, paket, framework, platform, dan sebagainya. Ini dapat memerlukan banyak pertimbangan, terutama terkait tujuan sistem dan pertukaran penting lainnya. Aspek arsitektur perangkat lunak ini memerlukan keterampilan, pengetahuan, dan pengalaman yang diperoleh seseorang, seperti arsitek perangkat lunak, dari waktu ke waktu.

Aspek penting lainnya dari arsitektur dan rekayasa sistem dan perangkat lunak adalah apa yang disebut atribut kualitas atau persyaratan nonfungsional. Hal ini terutama berlaku untuk solusi produksi di dunia nyata.

Persyaratan nonfungsional biasanya mencakup hal-hal seperti:

  • Ketersediaan
  • Kinerja
  • Keandalan
  • Skalabilitas (ke atas dan ke luar)
  • Ekstensibilitas
  • Kebergunaan
  • Modularitas
  • Kebergunaan kembali

Dalam artikel ini, Anda akan mendapatkan gambaran singkat tentang empat hal yang paling penting, yaitu ketersediaan, kinerja, keandalan, dan skalabilitas. Perlu dicatat bahwa pembahasan dimaksudkan bersifat tingkat tinggi dan tidak masuk ke definisi berbasis metrik atau persyaratan untuk atribut kualitas ini.

Ketersediaan sesuai namanya, yaitu bahwa sistem tersedia, atau dengan kata lain aktif dan berjalan dengan baik. Ini dapat berarti banyak hal dan juga sangat bergantung pada keandalan dan skalabilitas. "Aktif dan berjalan dengan baik" berarti sistem berfungsi sebagaimana dimaksud dan kapan pun diperlukan. Ini bisa oleh pengguna akhir yang mencoba menggunakan sistem, misalnya Facebook atau Netflix, atau bisa juga sekumpulan layanan berbasis cloud yang digunakan untuk memproses data.

Keandalan adalah istilah yang mewakili kemampuan sistem untuk berjalan dan bekerja dengan baik tanpa kegagalan atau kesalahan. Semakin sering sistem dapat berjalan seperti ini, semakin toleran kesalahan sistem tersebut. Karena sulit memikirkan dan menguji semua kemungkinan penggunaan dan kasus tepi sebelumnya, 100% keandalan bisa sangat sulit dicapai. Selain itu, kegagalan dapat terjadi karena banyak alasan, dengan bug kode, masalah lingkungan, dan sumber daya terbatas (CPU, RAM, memori disk, ...) menjadi beberapa penyebab utamanya.

Kinerja adalah istilah yang digunakan untuk menggambarkan kecepatan sistem menjalankan tugas, atau cara lain memikirkannya adalah waktu yang dibutuhkan sistem untuk melakukan tugas tertentu. Ambil contoh YouTube. Anda berharap saat akan menonton video, video akan dimuat dan mulai diputar dalam waktu yang wajar. Semakin tinggi kinerja yang dapat dibuat Google untuk YouTube, semakin cepat video dimuat dan mulai diputar, semakin bahagia pengguna YouTube, dan semakin kecil kemungkinan mereka meninggalkan aplikasi tersebut. Sebaliknya, jika YouTube berjalan sangat lambat hingga tidak sepadan dengan manfaatnya, orang akan berhenti menggunakannya. Untungnya yang terjadi kebanyakan adalah yang pertama, bukan yang terakhir.

Terakhir, skalabilitas sangat penting untuk aplikasi tertentu, dan merupakan istilah yang mewakili kemampuan sistem untuk mempertahankan tingkat kinerja tertentu (sebagaimana didefinisikan di atas, masih tingkat tinggi) meski beban pada sistem meningkat. Beban adalah istilah yang digunakan untuk menyebut jumlah permintaan bersamaan atau simultan ke sistem.

Contoh bagus di mana skalabilitas diperlukan adalah ketika tiket pertama kali dijual untuk tim olahraga populer atau artis musik terkenal. Bergantung pada popularitasnya, jumlah permintaan bersamaan untuk membeli tiket di aplikasi web seperti Ticketmaster bisa mencapai ratusan ribu saat tiket mulai dijual. Bergantung pada kemampuan sistem untuk melakukan penskalaan, ini bisa sangat menurunkan kinerjanya, atau mematikan sistem sepenuhnya. Keduanya bukan skenario yang baik.

Untuk memenuhi kebutuhan ini, digunakan teknik untuk melakukan penskalaan sistem ke atas atau ke luar. Penskalaan ke atas adalah ketika perangkat komputasi dalam sistem diganti dengan mesin yang lebih bertenaga (CPU, lebih banyak inti, ...) dan lebih andal dengan sumber daya yang lebih besar seperti memori sistem atau RAM. Mesin seperti ini bisa mahal.

Di sisi lain, penskalaan ke luar menggunakan mesin komoditas berbiaya rendah, yang secara individual tidak terlalu kuat, tetapi ketika digunakan sebagai kelompok lebih dari mampu menangani beban pada sistem. Karena solusi yang menggunakan teknik ini memerlukan banyak komputer, penting untuk menyiapkan sistem agar secara otomatis menangani skenario di mana satu atau lebih komputer (node) gagal atau macet (failover), dan sebagainya.

Kesimpulan

Semoga artikel ini membantu menjelaskan banyak aspek penting data science di luar pengembangan lokal, dan dalam konteks solusi produksi dunia nyata. Konsep komputasi dan arsitektur berbasis cloud penting untuk dipahami saat mengerjakan solusi data produksi, atau ketika memerlukan daya dan sumber daya komputasi tambahan.

Silakan bagikan pemikiran Anda di kolom komentar di bawah. Jika Anda ingin belajar lebih lanjut, Anda dapat mengikuti @innoarchitech di Twitter, mendaftar newsletter InnoArchiTech, dan melihat blog InnoArchiTech. Anda juga dapat melihat kelas saya tentang Kecerdasan Buatan dan Machine Learning Berorientasi Tujuan.

Topik
Cloud
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya