Saya memulai proyek baru di tempat kerja, dan kemungkinan akan menjadi satu-satunya pengembang di proyek ini, meskipun satu atau dua pengembang lain perlu mengintegrasikan aplikasi yang ada atau skrip sederhana ke dalam proyek utama. Proyek ini perlu menangani curah kecil dan streaming data yang dicerna / diproses, dan juga eksekusi kode berdasarkan kejadian dan sesuai permintaan. Beberapa bagian dari kerangka kerja akan sangat terikat CPU, dan beberapa bagian bisa sangat terikat I / O; sebagian besar data harus hidup pada satu mesin, tetapi kami dapat membuat cluster dan menghubungkan VM untuk meningkatkan daya komputasi yang tersedia. Mungkin akan ada satu atau lebih aplikasi web kecil yang bergantung pada layanan asalkan kerangka inti ini. Bahasa utama adalah Python untuk hampir semua hal.
Pertanyaan saya adalah apakah saya harus mengambil pendekatan layanan mikro untuk upaya seperti ini atau tetap dengan aplikasi monolitik, mengingat bahwa saya akan melakukan sebagian besar pengembangan sendiri. Pemikiran saya adalah bahwa layanan-layanan microser (menggunakan Nameko) memberikan pemisahan alami antara elemen-elemen kerangka kerja yang memiliki model pelaksanaan yang berbeda (jalur pipa data, acara-diluncurkan, sesuai permintaan, aplikasi web, dll.) Dan cara yang jelas untuk mendistribusikan beban kerja dan komunikasi di berbagai proses. Kekhawatiran saya adalah bahwa saya mungkin akan berakhir dengan kluster Kubernetes untuk dikelola (Saya akrab dengan Docker, tetapi masih cukup baru untuk Kubernetes), beberapa layanan (rabbitmq, redis, dll.) Diperlukan hanya untuk memfasilitasi menjalankan sistem, dan berpotensi banyak potongan kode kecil untuk benar-benar menerapkan semua kemampuan yang diperlukan yang kami
Untuk proyek dengan sedikit lebih dari satu pengembang, apakah layanan Microsoft masih menyederhanakan pengembangan dan pemeliharaan sistem yang rumit seperti ini? Apakah ada metode / sistem / kerangka kerja yang harus saya pertimbangkan untuk digunakan, atau untuk mengurangi overhead yang terlibat dalam merancang sistem dengan cara ini?