Mengapa MongoDB 'secara fundamental lebih baik' untuk pengembang

Dibutuhkan sejumlah chutzpah - OK, segunung itu - untuk menemukan jenis database baru dan menganggapnya akan mengambil alih dunia. Atau mungkin tidak berasumsi, tepatnya, tetapi, seperti yang dikatakan salah satu pendiri MongoDB Eliot Horowitz dalam sebuah wawancara, "Jika ada orang yang akan melakukannya, kami memiliki peluang terbaik bagi siapa pun di luar sana."

Bukan Oracle, dengan dominasi puluhan tahun dalam database relasional (RDBMS). Bukan IBM, dengan bisnis database yang menyusut tetapi gerombolan insinyur berbakat. Bukan Microsoft, yang telah menghembuskan kehidupan baru ke dunia RDBMS dengan SQL Server. Bahkan open source tidak memulai MySQL dan PostgreSQL yang semakin populer.

Tidak, itu Horowitz dan Dwight Merriman, dua warga New York yang ingin melakukan putaran baru pada platform-as-a-service (PaaS) tetapi entah bagaimana, malah membangun database. "Dunia database selamanya berubah karena apa yang kami lakukan," kata Horowitz, yang mungkin terdengar sombong kecuali fakta bahwa itu benar. Namun, mengapa itu benar, sangat berharga untuk dipahami.

Horowitz baru-baru ini pensiun dari MongoDB setelah 13 tahun bersama perusahaan dan produk, memberikan waktu yang tepat untuk mengevaluasi pekerjaan yang dia lakukan.

'Kami mendorong industri'

Tapi mari kita mundur dulu. Sangat mudah untuk melihat hal-hal seperti peringkat popularitas database DB-Engines dan sampai pada kesimpulan yang salah. “MongoDB adalah database terpopuler kelima, dan masih sepertiga lebih banyak digunakan sebagai Oracle dan MySQL!” Mengingat betapa enggannya perusahaan untuk mengganti database yang telah diuji pertempuran, bahkan tingkat adopsi itu mengesankan. Database adalah produk "paling lengket" dalam sebuah organisasi, yang paling tidak mungkin berubah. Jadi agar MongoDB dapat memindahkan database yang telah diadopsi secara luas (DB2, Ingres, dll.) Selama beberapa dekade, dan terus tumbuh dalam popularitas relatif terhadap pendukung RDBMS seperti Oracle…? Itu masalah besar.

Namun, indikator yang bahkan lebih kuat dari pengaruh MongoDB adalah seberapa besar para petahana ini telah berhasil memulai.

“Setiap produk tradisional lainnya, Postgres, MySQL, bahkan Oracle dan SQL Server, telah mengambil banyak ide MongoDB dan mencoba menghina mereka dengan cara mereka sendiri,” kata Horowitz. “Bahkan pengembang yang berkata, 'Saya tidak akan pernah menggunakan MongoDB! Saya hanya akan menggunakan Postgres karena ia memiliki JSONB dan semua hal lainnya. '”Seperti yang disoroti Horowitz, hal-hal seperti JSONB ada justru karena MongoDB mendorong industri untuk mengadopsinya. Bagi mereka yang "membenci MongoDB namun terus membicarakan tentang JSONB" Horowitz hanya mengatakan, "Sama-sama."

Tapi, sekali lagi, keangkuhan. Atau chutzpah. Atau apa pun yang mendorong Horowitz dan Merriman untuk terus maju meskipun semuanya -  semuanya  - di industri diatur untuk memastikan kegagalan mereka. Darimana itu datang?

'Basis data tersedot dan seseorang perlu memperbaikinya'

Horowitz dan Merriman telah bekerja bersama di beberapa perusahaan, termasuk DoubleClick dan Shopwiki, dan, seperti yang dijelaskan Horowitz, database terus menghalangi. Atau, lebih blak-blakan, “Menggunakan database itu menyebalkan, dan seseorang perlu memperbaikinya dan jika tidak ada orang lain yang akan melakukannya, mungkin sebaiknya saya dan Dwight. Kami tahu tembakan kami bagus. Itu jauh dari slam dunk, tapi ... jika ada orang yang akan melakukannya, kami memiliki kesempatan terbaik dari siapa pun di luar sana. "

Hal yang jelas harus dilakukan pada saat itu adalah membangun RDBMS yang lebih baik; untuk mengisi celah yang ditinggalkan oleh MySQL dan Postgres, yang keduanya semakin populer. Tapi inilah yang tidak ingin dilakukan Horowitz . Dia ingin membangun pendekatan yang sama sekali berbeda terhadap data, yang memetakan bagaimana pengembang memprogram, bukan pada kebutuhan sistem ERP untuk baris dan kolom yang rapi dan rapi.

Pendekatan baris-dan-kolom untuk skema data sama sekali tidak menyerupai data seperti yang direpresentasikan dalam kode aplikasi, seperti yang dijelaskan Horowitz. Dalam bahasa pemrograman modern, hal yang ingin Anda simpan dalam database (misalnya, pesanan, pelanggan, dll.) Direpresentasikan sebagai objek lengkap, dengan semua atribut terkait yang terdapat dalam satu struktur data. Ketidaksesuaian antara pengembang dan administrator basis data ini membutuhkan terjemahan dari struktur aplikasi yang kaya tersebut agar sesuai dengan aturan RDBMS yang kaku. Dengan cara ini, bahkan aplikasi yang paling sederhana pun menggunakan kualitas Frankenstein di RDBMS, yang memerlukan puluhan (atau bahkan ribuan) tabel untuk menangkap pemodelan data yang dulunya sederhana dari pengembang.

MongoDB, kata Horowitz, menawarkan bantuan kepada para pengembang.

"Jika Anda mengambil orang yang belum pernah menggunakan database sebelumnya dan Anda mengajari mereka MongoDB lalu mengajari mereka database relasional, MongoDB jauh lebih mudah dan lebih intuitif bagi mereka." Ya, jika Anda bekerja dengan sistem akuntansi atau buku besar, RDBMS dirancang untuk aplikasi semacam itu, dan berfungsi dengan baik. "Tapi untuk yang lainnya, model relasional tidak berfungsi," kata Horowitz.

Jika Anda menggunakan bahasa pemrograman dan database, hal yang aneh adalah dengan MongoDB, dalam beberapa hal, API [MongoDB] terasa lebih seperti bahasa pemrograman Anda daripada database. Oleh karena itu, cukup mudah untuk diambil. Untuk banyak konsep inti seperti pengindeksan dan kueri, ya, ini adalah bahasa kueri yang berbeda dan pengindeksannya sedikit berbeda tetapi, pada dasarnya, pengindeksannya serupa. Dasar-dasar MongoDB sangat mudah dipelajari.

Selama 13 tahun terakhir, sebagian besar yang harus dilakukan perusahaannya, kata Horowitz, adalah mendidik ulang mereka yang tumbuh di RDBMS dan perlu mempelajari cara baru. Tetapi bagi mereka yang baru mengenal database, “MongoDB jauh lebih intuitif daripada database lain. Ini jauh lebih cocok dengan cara orang berpikir. " Karena itu, Horowitz melanjutkan, "Jika Anda memulai dari awal, Anda seharusnya hampir selalu menggunakan MongoDB, menurut pendapat saya yang bias."

'Cloud selalu menjadi visi'

Ditanya apakah dia bisa menunjukkan kapan dia tahu taruhan MongoDB akan terbayar, Horowitz memikirkannya sejenak, lalu berkata, "April 2010." Saat itulah MongoDB menyelenggarakan acara di San Francisco yang terjual habis dalam waktu kurang dari 48 jam. “Orang-orang menyukai konsep inti, dan segalanya menjadi lebih mudah.” Sampai saat itu, Horowitz menjelaskan, ada saat-saat dia khawatir "Apakah ini akan berhasil?" Namun pada April 2010, dia tahu jawabannya adalah "Ya".

Yang tidak berarti dia memukul cruise control. “Meski begitu, kami tahu bahwa perlu 10 tahun untuk menambahkan fitur yang kami inginkan dan yang akan dibutuhkan oleh perusahaan.”

Salah satu fitur tersebut adalah cloud.

Mengingat MongoDB dimulai sebagai calon PaaS, mungkin tidak mengherankan bahwa Horowitz menyarankan cloud ada di peta jalan sejak hari pertama. “Tak lama setelah kami mulai membangun MongoDB, kami juga mulai membangun Layanan Pemantauan MongoDB, yang menjadi dasar bagi Atlas,” database-sebagai-layanan-MongoDB yang sekarang menyumbang 42 persen dari pendapatan perusahaan. “Tujuan kami adalah selalu memiliki layanan database lengkap.”

Sebagian besar dari ini terkait dengan visi perusahaan untuk membuat hidup lebih mudah bagi pengembang. “Sebagai pengembang, kami tahu bahwa tidak ada yang ingin mengelola database sendiri jika mereka dapat meminta seseorang untuk melakukannya untuk mereka yang sama aman dan andal.” Namun, realisasi penuh dari visi ini harus menunggu, karena bahkan startup yang didanai dengan baik seperti MongoDB tidak dapat melakukan semuanya sekaligus. “Kami harus menginvestasikan semua waktu dan energi kami untuk mendapatkan database yang benar atau itu tidak akan terjadi. Itulah mengapa kami mulai bermain-main dengan pemantauan sebagai layanan, hanya untuk memastikan bahwa kami memahami cara menjalankan layanan cloud dalam skala besar. ” Selain itu, perusahaan ini bermain-main dengan hal-hal seperti penanganan kartu kredit dan sistem pendukung untuk "berlatih melakukannya sehingga ketika kami siap meluncurkan Atlas secara nyata, itu tidak dimulai dari awal".

Pada akhirnya, Horowitz percaya "persentase orang yang menjalankan MongoDB menggunakan Atlas akan hampir 100 persen," meskipun tidak mungkin 100 persen. Dengan "sebagian besar" aplikasi pindah ke cloud, "Tidak ada alasan untuk tidak menggunakan Atlas," Horowitz mempertahankan. 

'Tidak mungkin Anda bisa membantah kami tidak berhasil'

Ditanya dari mana datangnya MongoDB berikutnya, Horowitz tidak mengidentifikasi pesaing sebagai prinsip panduan, prinsip yang sama yang mendorongnya dan Merriman untuk membangun MongoDB: “Anda harus melakukan sesuatu yang secara fundamental lebih baik daripada yang lain. Jika Anda keluar dengan sesuatu yang melakukan semua yang dilakukan MongoDB atau Postgres, tetapi 10 kali lebih murah atau 10 kali lebih cepat, itu akan sangat menarik. ” Karena itu, dia menambahkan, "Saya tidak membayangkan bagaimana Anda bisa mengalahkan MongoDB dalam model data sekarang."

Tapi yang mungkin menarik, menurut Horowitz, adalah arsitektur basis data yang berbeda secara fundamental yang dapat memanfaatkan infrastruktur awan publik untuk membuat segalanya lebih murah. “Banyak orang sedang mengerjakan ini, tapi tidak ada yang benar-benar melakukannya. Tidak ada di luar sana yang dirancang secara fundamental berbeda. "

Yang membawa kita kembali ke awal. “Jika Anda berpikir tentang apa yang akan kami lakukan, yaitu membuat basis data secara fundamental lebih mudah dan secara fundamental lebih baik bagi pengembang, tidak mungkin Anda dapat membantah bahwa kami tidak berhasil,” kata Horowitz. “MongoDB jauh lebih unggul dari apa pun yang ada saat kami mulai.” Beberapa mungkin tidak setuju, tetapi sedikit yang tidak setuju dengan pernyataan berikutnya: “Dunia database selamanya berubah karena apa yang kami lakukan. Itu sangat luar biasa. ”