2015-01-09 12 views
5

मैंने मार्टिन फाउलर के पेज पर the article on Microservices पढ़ा और इसे काफी रोचक पाया। अब मैं एक ई-कॉमर्स वेब एप्लिकेशन को सबूत-अवधारणा के रूप में संरचित करने की योजना बना रहा हूं और सोच रहा हूं कि मेरी अवधारणा को माइक्रोस्कोप आर्किटेक्चर माना जाता है या नहीं।क्या मेरी अवधारणा माइक्रोस्कोप आर्किटेक्चर का पालन करती है?

वास्तुकला 3 घटक होते हैं:

  • एक जावास्क्रिप्ट आधारित एकल पृष्ठ अनुप्रयोग, जो
  • एक REST API जो अन्य सेवाओं को फोन करके प्राप्त JSON डेटा फ़ीड के साथ एक सर्वर से AJAX अनुरोध भेजता है (मुझे लगता है कि अब सेवाओं के लिए CatalogProvider, CustomersProvider, CheckoutProvider

सभी एपीआई endpoin हैं: आप इस व्यवहार एपीआई गेटवे)

  • 3 सेवाओं फोन एक Magento (पीएचपी) Shopsystem की टीएस। भविष्य में मैं प्रदाताओं को अन्य प्रणालियों के साथ स्वैप करने की योजना बना रहा हूं।

    तो मेरी प्रश्न हैं:

    • एमएस 'स्वतंत्र रूप से परिनियोजन योग्य' माना जाता है। मैं समझता हूं कि जावा की दुनिया में हम एक जार- या युद्ध फ़ाइल के बारे में बात कर रहे हैं, लेकिन एक PHP सेवा 'स्वतंत्र रूप से तैनाती' कैसे है?

    • क्या मेरी अवधारणा एमएस आर्किटेक्चर के सिद्धांतों का पालन नहीं करती है, क्योंकि प्रदाता एक बड़ी (Magento) प्रणाली का हिस्सा हैं?

    पढ़ने के लिए धन्यवाद। मैं किसी भी सुझाव के लिए खुश हूँ।

  • उत्तर

    9

    ऐसा कुछ भी नहीं है जो कहता है कि आर्किटेक्चर सिर्फ एमएस आर्किटेक्चर नहीं है क्योंकि आप Magento और PHP का उपयोग कर रहे हैं। लेकिन, आप कुछ बातों पर विचार करने के लिए है:

    • हमेशा किसी भी भाषा में सेवाओं में से किसी को फिर से लिखने और कहीं कुल प्रणाली तैनात करने के लिए सिर्फ काम करने के लिए जारी रखना चाहिए सक्षम होने के संबंध में सोचें।

    अपनी सेवाओं को कर रहे हैं सिर्फ परिवर्तन/इंटरफेस बहुत कसकर Magento से जुड़ा हुआ है और आप बस आसानी से जावा/सी #/रूबी में उन्हें फिर से लिखने नहीं कर सकते, तो मुझे लगता है कि आप एक एमएस वास्तुकला जरूरत नहीं है।

    PHP तैनाती कलाकृतियों के लिए, आपके पास आमतौर पर आपकी सेवा के आसपास कुछ पैकेजिंग या संस्करण रणनीति होती है। हालांकि PHP में "तैनाती" आमतौर पर सिर्फ .php फ़ाइलों के फ़ोल्डर को स्वैप कर रहा है। और आपको वास्तव में विभिन्न सेवाओं के बीच कोड/कॉन्फ़िगरेशन साझा नहीं करना चाहिए। यदि आप एक अतिरिक्त कदम उठाना चाहते हैं तो आप deployment tools for PHP पर भी देख सकते हैं।

    +0

    'यदि आपकी सेवाएं केवल परिवर्तन/इंटरफ़ेस हैं जो बहुत ही कसकर Magento से जुड़ी हैं और आप उन्हें आसानी से जावा/सी #/रूबी में फिर से लिख नहीं सकते हैं, तो मुझे लगता है कि आपके पास एमएस आर्किटेक्चर नहीं है।' -> मैंने एक कार्यान्वित किया Magento मॉड्यूल, जो आरईएसटी एपीआई बढ़ाता है और ग्राहक को डेटा संरचना के साथ फ़ीड करता है, इसकी अपेक्षा करता है। तो इसलिए सेवा निश्चित रूप से Magento से कसकर जुड़ी हुई है क्योंकि यह उदाहरण के लिए अपने मॉडल का उपयोग करती है .. लेकिन मुझे लगता है कि आप अभी भी इसे एक एमएसए मान सकते हैं, है ना? – Rouzbeh

    +0

    @ रूजबेह, इस धागे पर बहुत देर से प्रतिक्रिया, लेकिन वैसे भी, यह है, चूंकि इस दृष्टिकोण पर सक्षम सभी सेवाएं उसी Magento रिपोजिटरी/डेटाबेस से काम करती हैं, और इसलिए 'स्वतंत्र रूप से तैनाती' नहीं होती है, यह नहीं है एमएस वास्तुकला में फिट लगता है। इसके अलावा, पूर्व में, ऑर्डर देने के लिए ऑर्डर सेवा को ग्राहक संदर्भों को रखने की आवश्यकता होगी। मुझे लगता है कि कम से कम ग्राहक जानकारी इस ऑर्डर सेवा द्वारा अपनी पसंद के प्रारूप में स्वतंत्र रूप से आयोजित की जाएगी। यह एक सामान्य बिट का अर्थ होगा, जो कि एमएस आर्किटेक्चर के लिए जाने पर हमें कुछ सामना करना पड़ेगा। – user132797

    1

    microservice वास्तुकला के रूप में वहाँ SRP principle.Single Responsiplity principle.Each सेवा ही है अद्वितीय responsiplity.DB schemea shouldbe बाकी के रूप में विघटित also.Exporting सेवाओं एक अखंड ऐप्लिकेशन के अंदर सूक्ष्म सेवा आवेदन करने के लिए एक अखंड एप्लिकेशन को परिवर्तित नहीं है।

    संबंधित मुद्दे