Apa yang harus dilakukan dengan "frontend" di lingkungan berbasis microservices?

8

Kami baru-baru ini mulai membagi aplikasi web monolitik kami menjadi layanan microser, perlahan-lahan memotong fungsi dan menulis ulang menjadi layanan microser individu. Semua berjalan baik kecuali kita tidak yakin cara terbaik untuk mengatur pekerjaan frontend. Kami telah membagi menjadi beberapa tim produk dengan masing-masing mengelola kode untuk sejumlah kecil layanan mikro untuk memberikan area fungsional misalnya Pencarian, CMS, Checkout dll. Dengan masing-masing tim memiliki pemilik produk, pemimpin teknologi dan master scrum.

Masalahnya adalah bahwa sementara masing-masing tim produk tersebut memiliki basis kode backend mereka sendiri, kami memiliki basis kode React.js frontend tunggal dengan pengembang frontend duduk di setiap tim produk. Ini menyebabkan sejumlah masalah:

  • Kurangnya tim lintas produk komunikasi antara pengembang frontend
  • Masalah mendapatkan perubahan yang dibuat untuk kode frontend tim lain "sendiri" untuk mendukung fitur baru dari tim lain
  • Tidak ada ahli teknis tunggal untuk mewakili tim frontend, sementara tim produk lainnya memiliki arahan teknis tidak ada yang memenuhi peran ini untuk frontend

Kami bertanya-tanya bagaimana orang lain menangani ini, dan telah membahas beberapa pendekatan seperti memisahkan basis kode frontend, membuat tim produk frontend yang biasanya akan dilibatkan oleh pengguna bisnis untuk fitur baru dan permintaan data / layanan akan masuk ke tim produk lain dari tim frontend tetapi keduanya tampaknya datang dengan masalah mereka sendiri!

Sutty1000
sumber

Jawaban:

5

Frontend dalam arti bagian yang paling penting (itu adalah bagian yang benar-benar digunakan pengguna), ia memiliki struktur data sendiri, infrastruktur, pengembang khusus, dan perlu berkomunikasi dengan semua tim lain. Jika sisa backend dibagi menjadi layanan, itu adalah bagian paling sentral juga.

Jadi satu-satunya cara untuk bekerja adalah membiarkan frontend memiliki timnya sendiri , saya katakan sebelum Anda membagi backend menjadi beberapa tim, tetapi itu sudah terjadi.

Kurangnya komunikasi - satu-satunya cara bagi tim backend untuk memiliki sesuatu terjadi di frontend adalah berkomunikasi dengan tim frontend.

Masalah mendapatkan perubahan yang dilakukan pada kode frontend - pemilik produk frontend memutuskan fitur apa yang perlu masuk ke frontend terlebih dahulu, bukan yang lain.

Ada petunjuk teknis untuk frontend.

Ini juga jelas karena salah satu manfaat memiliki pemisahan yang jelas antara frontend dan backend (tanpanya Anda tidak dapat mulai membagi backend menjadi bit lebih lanjut, jadi saya berasumsi bahwa Anda sudah memiliki yang beres), adalah bahwa Anda dapat memiliki beberapa frontend yang berbeda yang melakukan hal yang berbeda dengan layanan backend. Jelas itu adalah produk yang berbeda.

RemcoGerlich
sumber