वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग · पाठ

रिलीज़ संस्करण-निर्धारण और परिनियोजन

उत्पादन परिवेश में रिलीज़ का संस्करण-निर्धारण, अपडेट तैनात करने और रोलबैक प्रबंधित करने के सर्वोत्तम तरीके समझें

पाठ 3, कुल 4 में से11 चरण

रिलीज़ संस्करण-निर्धारण और परिनियोजन, CoddyKit पर वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

अपनी रिलीज़ का संस्करण क्यों निर्धारित करें

जब आप उत्पादन के लिए Erlang अनुप्रयोग बनाते हैं, तो उसे एक रिलीज़ में बंडल किया जाता है। किसी भी सॉफ़्टवेयर की तरह, रिलीज़ के लिए स्पष्ट संस्करण संख्याएँ आवश्यक होती हैं।

संस्करण निर्धारण से आप:

  • समय के साथ हुए बदलावों पर नज़र रख सकते हैं।
  • विशिष्ट बिल्ड की पहचान कर सकते हैं।
  • अन्य सिस्टमों के साथ संगतता प्रबंधित कर सकते हैं।
  • अपग्रेड और रोलबैक की योजना बना सकते हैं।

Erlang की संस्करण प्रणाली

Erlang में संस्करण निर्धारण अलग-अलग स्तरों पर होता है। प्रत्येक अलग अनुप्रयोग (एक .app फ़ाइल) का अपना संस्करण होता है। पूरी रिलीज़ ( .rel फ़ाइल) का भी एक संस्करण होता है, जो आम तौर पर पूरे बंडल को दर्शाता है।

.app फ़ाइल में मौजूद vsn कुंजी अनुप्रयोग का संस्करण परिभाषित करती है।

% my_app.app file (conceptual)
{application, my_app,
 [{description, "My Erlang Application"},
  {vsn, "1.0.0"},
  {modules, [my_app_app, my_app_sup]},
  {registered, []},
  {applications, [kernel, stdlib]},
  {mod, {my_app_app, []}},
  {env, []}]}.

सिमेंटिक संस्करण निर्धारण (SemVer)

व्यापक रूप से अपनाया गया एक मानक सिमेंटिक संस्करण निर्धारण (SemVer) है, जिसका सामान्य प्रारूप MAJOR.MINOR.PATCH होता है। अपने Erlang अनुप्रयोगों के लिए इसका पालन करना एक अच्छी प्रक्रिया है।

  • MAJOR: असंगत API बदलावों के लिए बढ़ाया जाता है।
  • MINOR: पिछली संगतता बनाए रखते हुए नई कार्यक्षमता जोड़ने पर बढ़ाया जाता है।
  • PATCH: पिछली संगतता वाले त्रुटि-सुधारों के लिए बढ़ाया जाता है।

इससे उपयोगकर्ताओं को अपग्रेड के प्रभाव को समझने में सहायता मिलती है।

Erlang में SemVer लागू करना

आम तौर पर आप अपने अनुप्रयोग की .app फ़ाइल में मौजूद vsn पर SemVer लागू करेंगे। जब आप रिलीज़ बनाते हैं, तो उसका संस्करण (relvsn) अक्सर मुख्य अनुप्रयोग के संस्करण से मेल खाता है या इसी तरह की योजना का पालन करता है।

rebar3 जैसे उपकरण रिलीज़ बनाते समय इन संस्करणों का प्रबंधन करते हैं।

% my_app.app file
{application, my_app,
 [{description, "My Erlang Service"},
  {vsn, "1.2.3"},
  {modules, [my_app_app, my_app_sup]},
  {registered, []},
  {applications, [kernel, stdlib]},
  {mod, {my_app_app, []}},
  {env, []}]}.

परिनियोजन रणनीतियों का अवलोकन

संस्करण वाली Erlang रिलीज़ तैयार होने के बाद, उसे उत्पादन में कैसे चलाएँगे? आपके सिस्टम की अपटाइम और जटिलता संबंधी आवश्यकताओं के आधार पर कई रणनीतियाँ उपलब्ध हैं।

  • कोल्ड परिनियोजन: सबसे सरल, लेकिन इसमें सेवा-विराम होता है।
  • हॉट अपग्रेड: बिना सेवा-विराम के (पिछले पाठ में बताया गया)।
  • ब्लू/ग्रीन या कैनरी परिनियोजन: अधिक उन्नत, अक्सर ऑर्केस्ट्रेशन उपकरणों के साथ उपयोग किया जाता है।

कोल्ड परिनियोजन: सरल रीस्टार्ट

कोल्ड परिनियोजन सबसे सीधी विधि है। आप वर्तमान में चल रहे Erlang सिस्टम को पूरी तरह रोकते हैं, उसकी फ़ाइलों को नई रिलीज़ से बदलते हैं और फिर नया संस्करण शुरू करते हैं।

इस विधि में हमेशा सेवा-विराम होता है, इसलिए यह उन सिस्टमों के लिए उपयुक्त है जहाँ थोड़े समय का व्यवधान स्वीकार्य हो।

# Stop the old release
/path/to/my_app/bin/my_app stop

# (Replace files with new release)

# Start the new release
/path/to/my_app/bin/my_app start

हॉट अपग्रेड बनाम पूर्ण परिनियोजन

पिछले पाठ से याद करें कि हॉट कोड लोडिंग आपको Erlang सिस्टम को रोके बिना उसे अपग्रेड करने देती है।

पैच लागू करने या छोटी सुविधाएँ जोड़ने के लिए हॉट अपग्रेड शक्तिशाली हैं, लेकिन वे चल रहे सिस्टम के *कुछ हिस्सों* को बदलने तक सीमित होते हैं। पूर्ण परिनियोजन का अर्थ अक्सर पूरी रिलीज़ की प्रारंभिक स्थापना या उसका पूर्ण प्रतिस्थापन होता है, जिसमें कभी-कभी कोल्ड रीस्टार्ट या अधिक उन्नत ट्रैफ़िक प्रबंधन शामिल होता है।

रोलबैक का महत्व

सावधानीपूर्वक परीक्षण के बाद भी नई परिनियोजन प्रक्रिया अप्रत्याशित समस्याएँ ला सकती है। एक मजबूत परिनियोजन रणनीति में हमेशा रोलबैक की योजना शामिल होती है।

रोलबैक का अर्थ है कि नई परिनियोजन प्रक्रिया विफल होने या समस्याएँ पैदा करने पर सिस्टम को पिछले स्थिर संस्करण पर वापस ले जाना। इससे विफलताओं का प्रभाव कम होता है और सेवा शीघ्र बहाल हो जाती है।

Erlang की रोलबैक प्रणाली

Erlang रिलीज़ को रोलबैक का समर्थन करने के लिए डिज़ाइन किया गया है। जब आप हॉट अपग्रेड करते हैं, तो Erlang एक .relup स्क्रिप्ट बनाता है, जो संस्करणों के बीच जाने का तरीका बताती है। महत्वपूर्ण बात यह है कि यह उस स्क्रिप्ट को उलटकर वापस जाने का तरीका भी जानता है।

कोल्ड परिनियोजन में भी, आप अपनी रिलीज़ निर्देशिकाओं को व्यवस्थित करके और इच्छित संस्करण को पुनः आरंभ करके पिछले रिलीज़ पर वापस जा सकते हैं।

# Example of a rollback command using release_handler
# This would typically be part of a custom script or release tool

% release_handler:install_release("my_app-1.1.0").
% release_handler:make_permanent("my_app-1.1.0").

# Alternatively, for cold deployment:
# /path/to/my_app_1.1.0/bin/my_app start

अपनी समझ जाँचें

Erlang रिलीज़ के सामान्य कोल्ड परिनियोजन के चरणों को सही क्रम में लगाइए।

सारांश: संस्करण निर्धारण और परिनियोजन

आपने Erlang में रिलीज़ के संस्करण निर्धारण और परिनियोजन के महत्वपूर्ण पहलुओं के बारे में सीखा है:

  • संस्करण निर्धारण: परिवर्तनों को ट्रैक और प्रबंधित करने के लिए .app फ़ाइलों में vsn का उपयोग करें, आदर्श रूप से SemVer (MAJOR.MINOR.PATCH) का पालन करते हुए।
  • परिनियोजन: कोल्ड परिनियोजन (जिसमें सेवा बाधित रहती है) और हॉट अपग्रेड के बीच का अंतर समझें।
  • रोलबैक: सिस्टम की विश्वसनीयता सुनिश्चित करने के लिए हमेशा पिछले स्थिर संस्करण पर वापस जाने की योजना बनाएँ।

उत्पादन परिवेश में सुदृढ़ Erlang अनुप्रयोगों को प्रबंधित करने के लिए ये अभ्यास अत्यंत महत्वपूर्ण हैं!

शुरुआत निःशुल्क

एआई शिक्षक के साथ Erlang सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “रिलीज़ संस्करण-निर्धारण और परिनियोजन” पाठ निःशुल्क है?

हाँ — वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “रिलीज़ संस्करण-निर्धारण और परिनियोजन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“रिलीज़ संस्करण-निर्धारण और परिनियोजन” में मैं क्या सीखूँगा?

उत्पादन परिवेश में रिलीज़ का संस्करण-निर्धारण, अपडेट तैनात करने और रोलबैक प्रबंधित करने के सर्वोत्तम तरीके समझें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“रिलीज़ संस्करण-निर्धारण और परिनियोजन” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Erlang रिलीज़ बनाना
  2. हॉट कोड लोडिंग और अपग्रेड
  3. रिलीज़ संस्करण-निर्धारण और परिनियोजन
  4. रिलीज़ कॉन्फ़िगरेशन और बूट स्क्रिप्ट
← वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग पर वापस जाएँ