मैं काम पर एक नई परियोजना शुरू कर रहा हूं, और संभवतः परियोजना पर लगभग एकमात्र डेवलपर होगा, हालांकि एक या दो अन्य डेवलपर्स को मौजूदा अनुप्रयोगों या मुख्य स्क्रिप्ट को मुख्य परियोजना में एकीकृत करने की आवश्यकता होगी। परियोजना को छोटे पैमाने पर बल्क और स्ट्रीमिंग डेटा निगलना / प्रसंस्करण और इवेंट-संचालित और ऑन-डिमांड कोड निष्पादन दोनों को संभालने की आवश्यकता है। फ्रेमवर्क के कुछ हिस्से भारी सीपीयू बाउंड होंगे, और कुछ हिस्से भारी I / O बाउंड हो सकते हैं; अधिकांश डेटा को एक मशीन पर रहना चाहिए, लेकिन हम एक क्लस्टर बनाने और उपलब्ध गणना शक्ति बढ़ाने के लिए VM को कनेक्ट करने में सक्षम हैं। संभवतः एक या एक से अधिक छोटे वेब अनुप्रयोग होंगे जो इस मुख्य ढांचे को प्रदान की गई सेवाओं पर निर्भर करते हैं। मुख्य भाषा सब कुछ के बारे में सिर्फ पायथन होगी।
मेरा सवाल यह है कि क्या मुझे इस तरह के प्रयास के लिए एक माइक्रोसॉर्क्स दृष्टिकोण लेना चाहिए या एक अखंड आवेदन के साथ रहना चाहिए, यह देखते हुए कि मैं खुद से अधिकांश विकास कर रहा हूं। मेरा विचार है कि माइक्रोसॉफ़्ट (नेमको का उपयोग करके) फ्रेमवर्क के तत्वों के बीच एक प्राकृतिक अलगाव प्रदान करता है जिसमें विभिन्न निष्पादन मॉडल (डेटा पाइपलाइन, इवेंट-लॉन्च, ऑन-डिमांड, वेब एप्लिकेशन आदि) और कार्यभार वितरित करने का एक स्पष्ट तरीका है और कई प्रक्रियाओं में संचार। मेरी चिंता यह है कि मैं शायद प्रबंधन करने के लिए कुबेरनेट्स क्लस्टर के साथ समाप्त हो जाऊंगा (मैं डोकर से परिचित हूं, लेकिन अभी भी कुबेरनेट्स के लिए काफी नया है), कई सेवाओं (खरगोशबिटिस, रेडिस, इत्यादि) को केवल सिस्टम चलाने की सुविधा के लिए आवश्यक है। और संभवतः कोड के बहुत सारे छोटे टुकड़े वास्तव में सभी आवश्यक क्षमताओं को लागू करने के लिए जो हम '
एक से अधिक डेवलपर वाली परियोजना के लिए, क्या माइक्रोसेवर्स अभी भी इस तरह की जटिल प्रणाली को विकसित करने और बनाए रखने को सरल बनाते हैं? क्या इस तरीके / प्रणाली / चौखटे हैं जिनके बारे में मुझे इसके बजाय उपयोग करने पर विचार करना चाहिए, या इस तरह से सिस्टम को डिजाइन करने में शामिल ओवरहेड को कम करना चाहिए?