आर्किटेक्चर स्टाइल और कम्युनिकेशन पैटर्न

AWS पर एप्लिकेशन विकसित करना

Ricardo Sueiras

Principal Technologist

आपके इंस्ट्रक्टर

instructor

AWS पर एप्लिकेशन विकसित करना

आर्किटेक्चर पैटर्न क्या हैं?

 

 

एप्लिकेशन आर्किटेक्चर

 

  • आम समस्या के लिए दोहराने योग्य समाधान.
  • पैटर्न बताते हैं कि AWS सेवाएँ साथ कैसे फिट हों.
  • आर्किटेक्चर तय करता है लोड में ऐप कितना अच्छा चलेगा.
  • कई महत्वपूर्ण आर्किटेक्चरल पैटर्न जिन्हें आपको जानना है.
AWS पर एप्लिकेशन विकसित करना

मोनोलिथ्स

 

 

मोनोलिथ आर्किटेक्चर का उदाहरण डायग्राम

 

 

  • एकल, टाइटली कपल्ड यूनिट.
  • एक कोडबेस, एक डिप्लॉयमेंट.
  • शुरुआत में बनाना आसान.
  • स्केल करना कठिन: सब कुछ साथ में स्केल करना पड़ता है.
AWS पर एप्लिकेशन विकसित करना

माइक्रोसर्विसेज

 

माइक्रोसर्विसेज आर्किटेक्चर

 

  • छोटे, स्वतंत्र सर्विसेज: हर एक एक बिज़नेस कैपेबिलिटी का मालिक.
  • हर सर्विस को अलग से डिप्लॉय, स्केल और अपडेट करें.
  • ट्रेड-ऑफ: ज़्यादा ऑपरेशनल जटिलता और सर्विस-टू-सर्विस कम्युनिकेशन मैनेज करना.
AWS पर एप्लिकेशन विकसित करना

सर्वरलेस

  • इंफ्रास्ट्रक्चर मैनेज नहीं करना, सिर्फ कोड और कॉन्फ़िगरेशन.
  • मैनेज्ड AWS सेवाओं को कंपोज़ करके बनाएँ.
  • AWS प्रोविज़निंग, स्केलिंग, और मेंटेनेंस संभालता है.
  • ट्रेड-ऑफ: execution time limits, cold starts, vendor lock-in.
  • लगभग शून्य ऑपरेशनल ओवरहेड और ऑटोमैटिक स्केलिंग.

 

सर्वरलेस आर्किटेक्चर

AWS पर एप्लिकेशन विकसित करना

इवेंट-ड्रिवन आर्किटेक्चर (EDA)

  • कंपोनेंट्स डायरेक्ट कॉल्स नहीं, इवेंट्स से कम्युनिकेट करते हैं.
  • एक इवेंट किसी घटना को रिकॉर्ड करता है (order placed, payment received, item shipped).
  • प्रोड्यूसर इवेंट्स इमिट करते हैं.
  • कंज़्यूमर अपनी रुचि के इवेंट्स को सब्सक्राइब करते हैं.

 

इवेंट-ड्रिवन आर्किटेक्चर

AWS पर एप्लिकेशन विकसित करना

टाइटली और लूज़ली कपल्ड सिस्टम्स

  • आधुनिक क्लाउड ऐप्स कई सर्विसेज से बने होते हैं.
  • काम पूरा करने के लिए सर्विसेज़ को कम्युनिकेट और कोऑर्डिनेट करना होता है.
  • synchronous कम्युनिकेशन टाइट कपल्ड होता है.
  • asynchronous कम्युनिकेशन लूज़ली कपल्ड होता है.

टाइट और लूज़ली कपल्ड सिस्टम

AWS पर एप्लिकेशन विकसित करना

सिंक्रोनस कम्युनिकेशन

 

synch comms

  • एक सर्विस रिक्वेस्ट भेजती है और रिस्पॉन्स का इंतज़ार करती है.
  • कॉलर रिस्पॉन्स या टाइमआउट तक ब्लॉक रहता है.
  • लागू करना और समझना सीधा.
  • टाइट कपलिंग: डाउनस्ट्रीम स्लोनैस या फेल्योर कैस्केड कर सकता है.
  • टाइमआउट्स, retries, और सर्किट ब्रेकर्स से mitigate करें.
AWS पर एप्लिकेशन विकसित करना

पैटर्न: रिक्वेस्ट/रिस्पॉन्स

रिक्वेस्ट-रिस्पॉन्स

  • ज़्यादातर एप्लिकेशन इंटरफेस की रीढ़.
  • पूर्वानुमेय व्यवहार.
  • यूज़र्स को तुरंत फीडबैक.
AWS पर एप्लिकेशन विकसित करना

असिंक्रोनस कम्युनिकेशन

 

असिंक्रोनस कम्युनिकेशन

  • सेंडर रिस्पॉन्स का इंतज़ार नहीं करता.
  • मैसेज या इवेंट भेजकर आगे प्रोसेस करता रहता है.
  • रिसीवर मैसेज को स्वतंत्र रूप से प्रोसेस करता है.
  • लूज़ली कपल्ड: बेहतर स्केलेबिलिटी और फॉल्ट टॉलरेंस.
  • ट्रैफिक स्पाइक्स और आंशिक आउटेज को सहजता से संभालता है.
  • चुनौतियाँ: डुप्लिकेट मैसेज, ऑर्डरिंग, eventual consistency.
AWS पर एप्लिकेशन विकसित करना

पैटर्न: queue-आधारित decoupling

  • प्रोड्यूसर मैसेजेस को एक queue में भेजता है.
  • कंज़्यूमर मैसेजेस को स्वतंत्र रूप से पुल और प्रोसेस करता है.
  • फेल्योर को कैस्केड होने से रोकता है.
  • प्रोड्यूसर और कंज़्यूमर स्वतंत्र रूप से स्केल होते हैं.

  क्यू-आधारित डीकपलिंग

AWS पर एप्लिकेशन विकसित करना

पैटर्न: worker queue

  • कई वर्कर्स एक ही queue से मैसेज पुल करते हैं.
  • मैसेजेस पैरेलल में प्रोसेस होते हैं.
  • हॉरिज़ॉन्टल स्केलिंग और अधिक थ्रूपुट सक्षम.
  • मैसेज ऑर्डर की गारंटी नहीं.

वर्कर-क्यू

AWS पर एप्लिकेशन विकसित करना

पैटर्न: publish/subscribe

  • पब्लिशर्स मैसेजेस को SNS topic पर भेजते हैं.
  • कई सब्सक्राइबर्स को वही मैसेज मिलता है.
  • कई कंज़्यूमर्स तक रियल-टाइम ब्रॉडकास्टिंग.

 

पब्लिश/सब्सक्राइब पैटर्न

AWS पर एप्लिकेशन विकसित करना

पैटर्न: fan-out

फैन-आउट

  • एक मैसेज कई कंज़्यूमर्स को एक साथ डिलीवर होता है.
  • इवेंट-ड्रिवन आर्किटेक्चर में व्यापक रूप से प्रयुक्त.
  • जब कई सर्विसेज़ को एक ही इवेंट पर रिएक्ट करना हो, तब उपयोगी.
AWS पर एप्लिकेशन विकसित करना

मैसेज ऑर्डरिंग

मैसेज ऑर्डरिंग

  • कुछ वर्कलोड्स में मैसेजेस सही क्रम में प्रोसेस होने चाहिए.
  • Amazon SQS FIFO और Kinesis ordered प्रोसेसिंग को सपोर्ट करते हैं.
  • सख्त ऑर्डरिंग थ्रूपुट घटाती है.
  • शुद्धता और स्केलेबिलिटी के बीच संतुलन रखें.
AWS पर एप्लिकेशन विकसित करना

अभ्यास करते हैं!

AWS पर एप्लिकेशन विकसित करना

Preparing Video For Download...