Sudah hampir satu dekade sejak Marc Andreessen dengan terkenal menyatakan bahwa “perangkat lunak sedang memakan dunia.” Kami telah membicarakan hal ini selama bertahun-tahun, namun baru-baru ini, kami melihatnya dengan mata kepala sendiri.

Perangkat lunak adalah segalanya dan di mana saja. Di hampir setiap pasar, perusahaan dari segala jenis dan ukuran berinvestasi di bidang TI dan mengembangkan solusi perangkat lunak inovatif yang menciptakan nilai bagi pelanggan mereka, membantu mereka memasuki pasar baru, dan pada akhirnya meningkatkan pendapatan.

Tapi apa jadinya perangkat lunak tanpa data? Mengapa kita hanya mengalami revolusi dalam pengembangan perangkat lunak sementara proses dan penanganan data sebagian besar tidak berubah?

Revolusi data baru

Revolusi DevOps memberdayakan pengembang dan menyebabkan “pergeseran ke kiri” yang berfokus pada pencegahan masalah sekaligus mengembangkan alat generasi baru seperti GitHub, Jenkins, CircleCI, Gerrit, dan Gradle yang memungkinkan pengguna akhir mengirimkan perangkat lunak. Alat komparatif apa yang kita miliki untuk data? Proses peningkatan apa yang kita miliki?

Selamat datang di era Data sebagai Kode (DaC).

Data sebagai Kode adalah pendekatan yang memberikan tim data kemampuan untuk memproses, mengelola, menggunakan, dan berbagi data dengan cara yang sama seperti yang kita lakukan untuk kode selama pengembangan perangkat lunak. Data sebagai Kode memberdayakan pengguna akhir untuk mengendalikan data mereka guna mempercepat iterasi dan meningkatkan kolaborasi.

Hal ini didasarkan pada banyak kemampuan yang sama yang diandalkan oleh metodologi pengembangan perangkat lunak tangkas, termasuk:

  • Manajemen terprogram
  • Integrasi berkelanjutan
  • Penerapan berkelanjutan
  • Kontrol versi
  • Kemasan
  • Kloning dan percabangan
  • Membandingkan dan menggabungkan
  • Ketertelusuran dan garis keturunan
  • Mobilitas dan akses di mana saja
  • Dikelola oleh pengguna akhir
  • Kolaborasi terdistribusi

Saat ini, sebagian besar data masih disimpan secara terpisah. Beberapa dari silo tersebut bersifat monolitik dan ada pula yang terdistribusi, namun tetap saja silo. Meskipun kami semakin baik dalam menghubungkan sistem melalui API, kami telah menambahkan seluruh tim DataOps yang bertugas mengelola jalur data bersama pengguna data. Meskipun kami mencoba untuk “meramaikannya”, kami masih melakukan ETL (ekstrak, transformasi, dan muat). Bahkan dengan zaman baru, data lake yang terdistribusi di cloud, masih terasa seperti kumpulan data lama kelas atas yang mengumpulkan debu di pusat data: Anda tidak bisa memindahkan data darinya.

Memasukkan DevOps ke dalam data

Di dunia poliglot, layanan mikro, dan cloud-native, kami mengembangkan dan menerapkan aplikasi terdistribusi dalam container, yang masing-masing memiliki penyimpanan datanya sendiri.

Melalui DevOps, kami menutup kesenjangan antara pengembangan dan operasional dengan sukses besar. Munculnya cloud, dan khususnya komputasi cloud native dengan Docker dan Kubernetes, telah mempercepat pemberdayaan pemilik aplikasi untuk menjadi penentu nasib mereka sendiri, bukan sebagai administrator infrastruktur.

Kini, saat aplikasi perlu diterapkan, teknisi DevOps cukup menerapkannya melalui jalur pipa otomatis. Saat mereka membutuhkan penyimpanan, mereka secara terprogram memintanya dari penyedia cloud dan melampirkannya ke aplikasi mereka. Ketika mereka perlu mengekspos akses aplikasi di seluruh jaringan, mereka membuat titik akhir layanan dan memanggil gateway masuknya.

Namun apa jadinya bila seorang pengembang atau pemilik aplikasi membutuhkan data? Mereka menanyakan datanya kepada tim DataOps atau pemilik aplikasi hosting. Apa yang terjadi jika mereka perlu berbagi data tersebut dengan rekan kerja atau memindahkannya antar cloud? Mereka menunggu teknisi DevOps membantu mereka. Apa yang terjadi jika mereka ingin menyinkronkan kumpulan data di seluruh siklus hidup? Mereka menunggu teknisi DevOps membantu mereka.

Masalahnya diilustrasikan secara jelas dalam ilmu data dan pembelajaran mesin. Ilmuwan data perlu melatih dan menerapkan model dengan cepat dan efisien, namun terhambat oleh proses dan teknologi penanganan data yang tidak efisien. Bagaimana mereka dapat menerapkan proses CI/CD untuk melatih ulang model mereka saat mengumpulkan data terbaru?

Di sinilah kita melihat bahwa meskipun perangkat lunak memang memakan dunia, data adalah makanan super dan belum ada yang menyirami kebun.

Kami selalu diberitahu bahwa untuk menjadi sukses dan mengungguli pesaing, kami harus didorong oleh data. Itu bagus, tapi perhatikan betapa Anda jarang melihat contoh BAGAIMANA menggunakan data.

Arrikto mengaktifkan Data sebagai Kode

Arrikto melakukan data seperti yang dilakukan DevOps terhadap pengembangan perangkat lunak. Ingat daftar kemampuan dasar DevOps yang kami uraikan di atas? Kami mewujudkan hal ini pada data saat ini.

Manajemen terprogram

Ini adalah fungsi dasar inti yang benar-benar mengaktifkan Data sebagai Kode. Melakukan operasi pada data seolah-olah itu adalah kode, mengakses dan memodifikasinya, memindahkan dan mengubahnya melalui otomatisasi dan pengulangan.

Integrasi Berkelanjutan dan Penerapan Berkelanjutan

Sama seperti kode, data diandalkan oleh banyak pengembang, pengguna, dan aplikasi. Kami mengumpulkan, mengubah, menggunakan, dan memperbarui data secara terus-menerus. Saat kami mengintegrasikan jalur data dengan aplikasi dan pengembangan perangkat lunak, kami memerlukan model CI/CD serupa untuk memfasilitasi penyatuan cabang-cabang ini dengan metode otomatis dan berbasis proses.

Kontrol Versi

Saat kami mengumpulkan, mengubah, menggunakan, dan memperbarui data, kami perlu melacak beberapa iterasi dan salinan untuk memastikan keaslian, memungkinkan kolaborasi, dan menjamin reproduktifitas.

Kemasan

Data tidak hanya berada di satu lokasi saja. Dibutuhkan mobilitas dan portabilitas antar sistem. Sama seperti kontainer Docker yang menyediakan format standar sederhana untuk mengemas kode perangkat lunak dan pustaka, data memerlukan format paket serupa.

Kloning dan Percabangan

Kami akrab dengan, dan mengandalkan, konsep banyak salinan dan cabang kode perangkat lunak untuk tujuan kolaborasi, inovasi, dan revisi. Data memiliki persyaratan serupa saat kami meningkatkan kolaborasi antar rekan dan aplikasi. Hal ini terutama diperlukan karena kita mengadopsi proses CI/CD untuk memungkinkan peningkatan data.

Membandingkan dan Menggabungkan

Seiring berkembangnya sistem dan kami mengumpulkan lebih banyak data, kami memerlukan mekanisme sederhana untuk memungkinkan penggabungan data lintas versi dan cabang. Baik saat kita men-debug masalah pengembangan vs. produksi, menerapkan aplikasi dan paket data yang diperbarui, atau menyempurnakan data dengan segmen yang baru diperbarui, kita memerlukan proses yang otomatis, dapat diulang, dan cerdas untuk diff dan konsolidasi.

Ketertelusuran dan garis keturunan

Data dapat berkembang secara independen dari kode, namun hubungannya masih berupa simbiosis. Asalnya diperlukan untuk memastikan keakuratan, konsistensi, dan reproduktifitas data dan kode. Hal ini terutama berlaku dalam lingkungan yang diatur dimana audit sering dilakukan.

Mobilitas dan Akses Dimana Saja

Ketika dunia kita menjadi lebih kecil dan jangkauan kita meningkat, kita melakukan penerapan lebih jauh sehingga membutuhkan data yang bersifat mobile, portabel, dan gesit. Perpindahan data yang cepat dan sederhana harus mengatasi gravitasi data sehingga pembaruan dapat dibagikan dengan cepat dan mudah, sehingga memungkinkan penerapan ke lokasi dan perangkat mana pun.

Dikelola Pengguna Akhir

Ketika DevOps telah memberdayakan pengembang, cloud telah memberdayakan pemilik aplikasi, kini saatnya bagi pengguna aplikasi untuk diberdayakan dalam mengendalikan data mereka. Tidak lagi bergantung pada administrator untuk memfasilitasi akses dan pergerakan, pengguna dapat mengambil, mengakses, dan mengontrol data mereka.

Kolaborasi Terdistribusi

Aplikasi, bisnis, pengguna, dan tim jarang berada di satu lokasi. Kami semakin banyak mengoordinasikan tim yang tersebar secara geografis dan bermitra dengan organisasi lain. Memungkinkan kolaborasi yang aman antara kelompok-kelompok ini akan mempercepat pengembangan dan inovasi.

Data Didemokratisasi

Kami mendemokratisasi pengelolaan data lebih jauh lagi dalam tumpukan aplikasi dengan platform pengelolaan data Rok. Sangat menyenangkan bahwa Insinyur DevOps dan Insinyur Keandalan Situs (SRE) tidak lagi bergantung pada alur kerja berbasis ITIL gaya permintaan-tunggu untuk administrator infrastruktur, tetapi yang lebih baik lagi adalah pengguna sebenarnya dari data yang mengambil kendali.

Di dunia ilmu data, inilah yang kami lakukan. Kami telah memulai dengan “Kubeflow” di Kubernetes sebagai platform untuk pipeline ilmu data dan pembelajaran mesin, dan kami memperluasnya ke seluruh ekosistem data Kubernetes.

Mengapa Kubernet? Karena ini adalah masa depan bidang kendali aplikasi.

Kenapa Arrikto? Karena kita adalah masa depan bidang kendali data.

Memberi ilmuwan data dan insinyur pembelajaran mesin kemampuan untuk mengelola data di seluruh cloud, berkolaborasi di cabang kumpulan data berversi, dan terus melatih ulang model mereka dengan menggabungkan kumpulan diferensial saat mereka mengumpulkan lebih banyak masukan akan menggeser persamaan data ke kiri, seperti yang telah dilakukan DevOps untuk pengembangan perangkat lunak.

Memungkinkan ilmuwan data untuk dengan cepat membuat prototipe model pembelajaran mesin, mengujinya, dan kemudian menerapkannya dalam skala besar hanyalah sebuah permulaan.

Prinsip-prinsip ini berlaku sama untuk semua aplikasi kaya data dan Arrikto berupaya mewujudkan hal ini.

Jika Anda ingin memahami bagaimana Data sebagai Kode dapat membantu Anda, silakan hubungi kami. Kami ingin menunjukkan kepada Anda bagaimana Anda bisa mendapatkan manfaatnya.

Di bagian 2 kami terus mengeksplorasi bagaimana Data sebagai Kode mendorong inovasi dan menyoroti contoh aplikasi layanan kesehatan yang didukung pembelajaran mesin yang memantau pasien serangan jantung.

Awalnya diterbitkan di https://www.arrikto.com pada 12 November 2020.