Bangun tumpukan aplikasi modern dengan Apollo GraphQL dan MongoDB Atlas

Database


Memberikan pengalaman aplikasi baru dengan arsitektur lama lambat dan menyakitkan. Banyak organisasi menginvestasikan sumber daya yang besar untuk membuat infrastruktur mereka lebih fleksibel dan fleksibel, tetapi menemukan bahwa mereka masih tidak memberikan produk secepat yang mereka inginkan. Kompleksitas API berarti bahwa alih-alih memberikan pengalaman baru, tim saling berhadapan dan harus mengelola layanan mikro yang tersebar, titik akhir REST, dan manajemen basis data yang kompleks. Artikel ini menjelaskan bagaimana tim dapat mengurangi kompleksitas dengan menggunakan Apollo GraphQL dan MongoDB Atlas.

GraphQL dapat membantu tim mengintegrasikan REST API dan layanan mikro terdistribusi ini ke dalam desain terintegrasi yang dapat ditanyakan oleh pengembang front-end, mengambil hanya data yang diperlukan untuk membuat pengalaman sementara Data berasal dari sumber itu, mereka anonim.

Namun, menjalankan semuanya melalui server GraphQL (baca: monolit) menciptakan hambatan dengan banyak tim yang berkontribusi pada perubahan dengan cepat. Kompleksitas lapisan API meningkat secara eksponensial karena jumlah perangkat klien, aplikasi, dan pengembang meningkat – dan tim yang lebih lambat tidak dapat lagi bekerja secara independen atau membuat perubahan pada jadwal rilis mereka.

Agar efektif dengan GraphQL, pengembang perlu:

  • API terintegrasi, sehingga pengembang aplikasi dapat dengan cepat membuat pengalaman baru

  • Lapisan API modular, sehingga setiap tim dapat memiliki potongan sendiri dari bagan

  • Lapisan data terintegrasi dan berkinerja tinggi yang diskalakan bersama penggunaan API

Tumpuk program yang ditawarkannya

Supergraph adalah GraphQL API yang dirancang untuk memanfaatkan tim front-end dan back-end. Ini adalah lapisan API terintegrasi yang dibangun dengan Federasi Apollo, yang merupakan arsitektur GraphQL modular dan deklaratif.

Tidak seperti skema terintegrasi, suprastruktur terdiri dari diagram yang lebih kecil yang disebut subgraf, masing-masing dengan skemanya sendiri. Tim dapat mengembangkan subgraf mereka sendiri secara mandiri, dan perubahan mereka secara otomatis ditempatkan di keseluruhan superstruktur, memungkinkan mereka untuk mempresentasikan secara mandiri dan bertahap.

Namun, kinerja suprastruktur tergantung pada kemampuan dan keandalan lapisan data yang mendasarinya. MongoDB Atlas – platform pengembangan data yang dikelola sepenuhnya oleh MongoDB – hadir dengan janji ini. Ini menyediakan model dokumen fleksibel yang memberi pengembang cara intuitif untuk bekerja dengan struktur data bersarang GraphQL, sambil menyediakan lapisan data yang andal yang dapat dijalankan di mana saja, di beberapa wilayah, dan Menyebarkan penyedia cloud dan menskalakannya secara horizontal karena sifatnya yang terdistribusi .

Supragraph dan MongoDB Atlas bersama-sama membuat tumpukan aplikasi yang dapat digabungkan yang menghilangkan kerumitan dan memberdayakan tim untuk berinovasi lebih cepat dari sebelumnya.

Diagram arsitektur aplikasi dengan Apollo Federation dan MongoDB Atlas
Gambar 1: Sederhanakan arsitektur aplikasi dengan hypergraph yang dapat digabungkan dan lapisan akses data terintegrasi menggunakan Apollo Federation dan MongoDB Atlas

Pengalaman pengembang

Saat membuat pengalaman aplikasi baru, pengembang ingin meninjau desain terintegrasi, membuat penelusuran yang mendapatkan data yang mereka butuhkan dengan tepat, mengukur kinerja API, dan menggunakan API dalam hitungan menit, bukan hari atau minggu. Alokasikan untuk menemukan API yang tepat untuk tautan. Setiap aplikasi web, Android, iOS, tablet, dan jam tangan secara terpisah. Namun, ketika aplikasi harus menggunakan sejumlah besar REST API secara langsung, pengalaman pengembang dan kinerja pengguna akhir akan terganggu. Menurut PayPal, pengembang UI sebenarnya menghabiskan kurang dari sepertiga waktu mereka untuk membangun UI. Sisa waktu dihabiskan untuk mencari data, memfilter/memetakan data tersebut, dan menyinkronkan panggilan API.

Dengan superskrip, pengembang dapat meminta titik akhir GraphQL untuk semua data yang mereka butuhkan dan menemukan, menggunakan, serta mengoptimalkan REST API dan layanan mikro tanpa harus menavigasi.

Salah satu fitur utama dari GraphQL API dasar adalah desain abstrak berbasis permintaan yang menyediakan data yang dibutuhkan untuk meningkatkan pengalaman pelanggan dan merangkum layanan mikro dan lapisan data di bawahnya.

Diagram terkuat bertindak sebagai representasi di atas layanan mikro yang ada dengan mengabstraksi model domain tingkat rendah ke model pengalaman pelanggan terpilih yang menyajikan informasi tingkat atas yang ditampilkan di UI. Model pengalaman ini memungkinkan UX yang konsisten antara web, seluler, dan aplikasi yang dapat dikenakan.

Pengalaman Pengembang API

Pengembang backend menginginkan kebebasan untuk membuat dan mengembangkan layanan dan kemampuan secara mandiri. Tetapi ketika pelanggan menggunakan layanan pada saat yang sama, itu adalah pesanan yang panjang. Hampir tidak mungkin untuk mengoreksi tanpa membuat perubahan terobosan dan memahami apa dampak dari perubahan terobosan ini. Hasilnya adalah hampir setiap perubahan dalam API memerlukan koordinasi dengan semua tim klien.

Dengan hypergraph dan lapisan data yang fleksibel di belakangnya, tim dapat mempresentasikan perubahan secara independen dalam subgraf modular yang digabungkan ke dalam keseluruhan hypergraph. Arsitektur dan pedoman pengumuman yang kuat dari Federasi Apollo memungkinkan tim untuk bekerja secara independen tanpa melanggar pelanggan.

Pilih lapisan data asli grafis yang sesuai

Membangun supergraf yang skalabel dimulai dengan memilih lapisan data yang tepat untuk menyediakan layanan yang mendasarinya. Di masa lalu, database relasional ke ORM atau dipetakan secara manual ke format relasional infrastruktur memerlukan struktur objek/dokumen yang dapat digunakan aplikasi, seperti JSON. Ketidaksesuaian impedansi antara apa yang disediakan database dan apa yang dibutuhkan aplikasi klien, menyebabkan masalah kinerja dan pemeliharaan yang memperlambat pengembangan program dan kinerja aplikasi.

Tidak seperti database relasional, model dokumen MongoDB dan GraphQL berbagi struktur data bersarang sederhana, yang berarti bahwa pengembang dapat dengan mudah menggunakannya tanpa harus memetakan GraphQL ke data relasional dan menentukan hubungan. Kompatibilitas tambahan ke Federasi Apollo memungkinkan pengembang untuk dengan mudah mengintegrasikan antara koleksi atau database, antara cluster Atlas tunggal dan multi-cloud yang berjalan di wilayah yang berbeda, dan bahkan antara cluster Atlas dan di tempat.

Dengan cara ini, pengembang mendapatkan fleksibilitas model dokumen MongoDB dan kebebasan pengulangan pada skema GraphQL mereka dengan keamanan dan keandalan yang dijamin oleh tinjauan skema otomatis.

Pilih arsitektur subgraf yang sesuai

Saat memilih cara menghubungkan subgraf ke lapisan data, tersedia beberapa opsi:

Subgraf tradisional (layanan mikro plus basis data)

Di banyak lingkungan, layanan mikro, REST API, dan layanan SOA yang ada telah diproduksi selama bertahun-tahun. Subgraf (ditulis dalam lebih dari 20 bahasa dan kerangka kerja) dapat ditambahkan sebagai lapisan baru di atas layanan mikro yang ada dan dalam hipergraf berbasis pengalaman sebagai Backend ViewModel untuk meningkatkan pengalaman baru. bekerja, digabungkan. Dan perangkat wearable ini adalah model yang sangat efektif dan terbukti.

Subtitle Grafik Asli (Langsung ke MongoDB)

Ketika subtitle baru ditambahkan di lingkungan Greenfield, atau untuk menambahkan fungsionalitas murni baru, subtitle dapat dirancang untuk berbicara langsung ke database tanpa layanan mikro atau REST API di tengah. Pendekatan ini tidak selalu merupakan jawaban yang tepat, terutama bagi perusahaan yang telah menerapkan standar REST atau gRPC di backend. Namun, ini adalah pengaturan yang lebih sederhana yang dapat meningkatkan kinerja dengan menghapus satu lapisan.

Subgraf tradisional (Layanan Mikro plus Atlas MongoDB)

MongoDB Atlas adalah lapisan data multi-wilayah multi-cloud yang dikelola sepenuhnya untuk layanan mikro tradisional. Dengan opsi seperti driver MongoDB resmi untuk 16 bahasa, API data berbasis HTTPS yang dikelola sepenuhnya, atau ODM yang dikelola komunitas seperti Mongoose, pengembang memiliki berbagai opsi untuk membangun lapisan data supergraf mereka dengan Atlas. Pengembang memiliki fleksibilitas untuk memilih jalur yang menyediakan cara idiomatis dan familiar untuk bekerja dengan database dalam bahasa dan gaya pengembangan yang paling mereka kenal.

MongoDB Atlas GraphQL API (Host Subgraf API)

GraphQL MongoDB Atlas API dibuat secara otomatis berdasarkan skema dokumen database yang mendasarinya dan dapat dibentuk secara langsung sebagai bagian dari supergraf. Pengembang yang memilih pendekatan ini dapat mengurangi waktu yang dihabiskan untuk menulis pelarut khusus GraphQL karena mereka dibuat secara otomatis oleh MongoDB Atlas.

Kueri dapat dirender tanpa konversi atau pemetaan ketika model dokumen Mongo sangat cocok dengan bentuk kueri – pola umum dalam database dokumen seperti MongoDB. Pengaturan ini juga berlaku untuk hubungan antara berbagai jenis dokumen dalam koleksi yang berbeda. Dengan demikian, skema GraphQL yang dibuat juga memungkinkan pengembang untuk mencari koleksi yang mungkin dimiliki tim lain dalam grafik yang sama.

Jika format kueri pengembang berbeda dari model dokumen asli, seperti saat memformat skema di templat UI (SDUI), mereka dapat @requires Instruksi skema untuk mengimpor dan mengonversi beberapa bidang dokumen menjadi kumpulan fitur yang digerakkan oleh pengalaman untuk rendering oleh program tampilan. Dengan cara ini, pengembang bisa mendapatkan keuntungan dari akses yang efisien ke data dan pemetaan model kustom jika diperlukan.

Diagram dari supergraf
Gambar 2: Membuat Superstruktur dengan Federasi Apollo, Pemecah Kustom yang Dibangun untuk MongoDB, dan Titik Akhir dari MongoDB Atlas GraphQL API yang Dihosting

Perluas aplikasi komersial dengan subtitle

Supragraphs memudahkan penulisan layanan mikro, tetapi dalam hal menghosting, mengelola, dan menyimpan data yang menjalankan logika bisnis, platform data aplikasi Atlas MongoDB dapat membantu tim membangun kebutuhan aplikasi mereka dengan lebih cepat.

Butuh bilah pencarian? Data yang sama yang disimpan di cluster Atlas dapat diindeks dalam pencarian, dan Atlas Search dapat digunakan untuk melakukan operasi pencarian teks lengkap tanpa pengaturan tambahan atau untuk menyinkronkan data dengan teknologi pencarian lainnya.

Apakah Anda ingin menyematkan bagan dan grafik? Kumpulan deret waktu dapat memudahkan untuk melakukan kueri potongan besar data dengan cap waktu, dan MongoDB Atlas Charts memungkinkan pengembang untuk menggunakan database MongoDB yang sama untuk membangun aplikasi ini di dalam aplikasi. Layanan lain, seperti API data kustom dan federasi data, membantu memastikan bahwa data dapat dicari dan disimpan dengan cara yang paling sesuai dengan kebutuhan tim.

Fokus pada skala

Tim engineering harus mampu mengantisipasi kebutuhan saat ini dan masa depan. MongoDB Atlas menyediakan platform data aplikasi yang mencakup berbagai wilayah, cloud, dan jenis penerapan untuk mengatasi tantangan data beban transaksi, aplikasi modern, dan layanan mikro. Cluster self-healing memastikan bahwa pengembang tidak kesulitan untuk mendiagnosis masalah dengan node data mereka, dan menyediakan penerapan multi-zona dan multi-cloud untuk kedua model failover otomatis, masing-masing.

Apollo dan MongoDB berkomitmen untuk menyediakan alat yang efektif bagi pengembang untuk menyederhanakan arsitektur mereka, meningkatkan kinerja aplikasi, memberikan lebih cepat, dan mengembangkan bisnis mereka.



Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *