अपनी APIs का टेस्ट और डिप्लॉय करना

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

Ricardo Sueiras

Principal Technologist

डेवलपर्स के लिए Infrastructure-as-Code

 

iac

  • Cloud native ऐप्स Infrastructure-as-Code (IaC) से डिप्लॉय होते हैं.
  • क्लाउड संसाधन कॉन्फ़िगरेशन फाइलों में परिभाषित करें.
  • AWS Management Console में मैनुअल सेटअप (clickops) से बचें.
AWS पर एप्लिकेशन विकसित करना

AWS CloudFormation

 

cloudformation

  • AWS में मूल IaC सेवा.
  • AWS संसाधन YAML या JSON टेम्पलेट्स से परिभाषित करें.
AWS पर एप्लिकेशन विकसित करना

AWS Cloud Development Kit (CDK)

 

cdk

  • CDK कोड से IaC परिभाषित करता है.
  • YAML/JSON की जगह Python, TypeScript, या Java में लिखें.
  • डिप्लॉय के समय ऐप्स CloudFormation टेम्पलेट्स में सिंथेसाइज़ होते हैं.
AWS पर एप्लिकेशन विकसित करना

AWS Serverless Application Model (SAM)

  • CloudFormation को एक्सटेंड करता है.
  • सर्वरलेस संसाधनों और APIs के लिए सिंपल सिंटैक्स.
  • एक ट्रांसफॉर्मेशन लेयर की तरह काम करता है.
  • SAM सिंटैक्स को फुल CloudFormation टेम्पलेट्स में ट्रांसलेट करता है.

 

sam

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

SAM फीचर्स

  • न्यूनतम-अधिकार IAM roles ऑटो-जनरेट करता है, फाइन-ट्यूनिंग की सुविधा के साथ.
  • अपनी डिप्लॉयमेंट पाइपलाइन को कॉन्फ़िगरेशन के रूप में परिभाषित करें.
  • sam build और sam deploy से पैकेज और डिप्लॉय करें.
  • sam validate से टेम्पलेट एरर पहले ही पकड़ें.
  • sam local start-lambda से लोकली Lambda एमुलेट करें.
    • एक पर्सिस्टेंट लोकल एंडपॉइंट देता है

 

sam features

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

SAM के साथ टेस्टिंग

  • डिप्लॉय से पहले सर्वरलेस ऐप्स को लोकली build, invoke, और test करें.
  • Lambda फंक्शंस और API Gateway इंटीग्रेशंस टेस्ट करें.
  • sam local invoke से फंक्शन लोकली चलाएँ.
    • एक-बार का invocation
  • sam local start-api से API Gateway एमुलेट करें.

 

testing with sam

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

Unit tests

 

unit tests

  • Lambda व्यवहार वैलिडेट करने के लिए SAM को unit tests के साथ उपयोग करें.
  • लोकल टेस्टिंग डेवलपमेंट साइकिल तेज करती है.
  • pytest, JUnit, या Jest जैसे फ्रेमवर्क्स के साथ पेयर करें.
AWS पर एप्लिकेशन विकसित करना

टेस्टिंग वर्कफ़्लो

 

test workflow

  • sam local generate-event से टेस्ट इवेंट जनरेट करें.
  • यह JSON इवेंट फाइलें आउटपुट करता है.
  • sam local invoke FunctionName -e event.json से लोकली invoke करें.
  • डिप्लॉय से पहले रिस्पॉन्स वेरिफाई करने हेतु फ्रेमवर्क assertions जोड़ें.
AWS पर एप्लिकेशन विकसित करना

AWS सेवाओं का मॉकिंग

 

mocking tests

  • moto जैसी mocking लाइब्रेरी के साथ लोकल टेस्टिंग मिलाएँ.
  • सिम्युलेटेड AWS सेवाओं से इंटरैक्ट करें, कोई रियल कॉल नहीं.
  • टेस्ट स्पीड बेहतर होती है.
  • टेस्टिंग लागत घटती है.
  • throttling या failures जैसी एरर स्थितियों को वैलिडेट करें.
AWS पर एप्लिकेशन विकसित करना

Continuous integration और continuous deployment (CI/CD)

  • SAM ऐप्स अक्सर CI/CD पाइपलाइनों से डिप्लॉय होते हैं.
  • बिल्ड, टेस्ट, पैकेजिंग, और डिप्लॉयमेंट ऑटोमेट करें.
  • AWS CodeCommit कोड और SAM टेम्पलेट्स स्टोर करता है.
  • AWS CodeBuild टेस्ट चलाता है और sam build करता है.
  • AWS CodePipeline वर्कफ़्लो ऑर्केस्ट्रेट करता है.

 

cicd

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

CI/CD वर्कफ़्लो

  • सोर्स कोड और SAM टेम्पलेट को रेपो में कमिट करें.
  • ऑटोमेटेड टेस्ट और वेलिडेशन चलाएँ.
  • sam build से ऐप पैकेज करें.
  • sam deploy से संसाधन डिप्लॉय करें.
  • डिप्लॉयमेंट के बाद CloudWatch से मॉनिटर करें.

 

workflow

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

डिप्लॉयमेंट्स की ट्रबलशूटिंग

  troubleshooting

  • ट्रबलशूटिंग एक प्रमुख ऑपरेशनल स्किल है.
  • आम डिप्लॉयमेंट फेल्यर:
  • IAM परमिशन समस्याएँ.
  • अमान्य SAM या CloudFormation टेम्पलेट्स.
  • फेल्ड Lambda पैकेजिंग या मिसिंग डिपेंडेंसीज़.
  • गलत API Gateway कॉन्फ़िगरेशन.
AWS पर एप्लिकेशन विकसित करना

डिप्लॉयमेंट्स की ट्रबलशूटिंग

  troubleshooting

  • SAM डिप्लॉयमेंट्स अंदर से CloudFormation पर चलते हैं.
  • स्टैक इवेंट्स और ऑटोमैटिक रोलबैक देते हैं.
  • डिप्लॉयमेंट फेल्यर पहचानने में मदद मिलती है.
  • रोलबैक से पिछली एनवायरनमेंट स्थिति बहाल होती है.
AWS पर एप्लिकेशन विकसित करना

डिप्लॉयमेंट्स की ट्रबलशूटिंग

  troubleshooting

  • इनसे ट्रबलशूट करें:
  • CloudWatch Logs.
  • API Gateway execution logs.
  • Lambda logs.
  • CloudWatch metrics.
AWS पर एप्लिकेशन विकसित करना

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

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

Preparing Video For Download...