कोड के रूप में इन्फ्रास्ट्रक्चर हमें उन उपकरणों का उपयोग करने के लिए कहता है जो आपके बिल्ड को स्वचालित करते हैं। महान। अंतर को हल करने के दौरान इन्फ्रास्ट्रक्चर , शेफ , कठपुतली , नमक के ढेर और अन्य जैसे उपकरण हमें लिखने की दिशा में आगे बढ़ाते हैं कि बुनियादी ढांचा कैसा दिखता है।
साल्ट स्टैक में उन बिट्स को स्टेट्स कहा जाता है । यदि राज्य वास्तविकता से मेल नहीं खाता है, तो उपकरण हमारे लिए इसका समाधान करेगा। दूसरे शब्दों में - हम अपने बुनियादी ढांचे के लिए एक परीक्षण लिख रहे हैं और यदि परीक्षण विफल हो जाता है, तो उपकरण इसे अपने आप ठीक कर देगा। कम से कम यही विचार है।
XP हमें TDD का उपयोग करना सिखाता है और सवाल यह है कि क्या यह बुनियादी ढांचे पर लागू है? टूलींग से पता चलता है कि यह है।
मैं कुछ प्रकार के परीक्षणों की कल्पना कर सकता हूं जो बहुत उपयोगी हो सकते हैं।
हम धूम्रपान परीक्षण लिखते हैं जो तैनात सेवा के साथ बंडल किया जाता है ताकि यह सुनिश्चित किया जा सके कि तैनात सेवा कार्य समाप्त हो सके और अपेक्षित रूप से चले। यह एक एपीआई कॉल या / और systemctl जाँच होगी ताकि यह सुनिश्चित किया जा सके कि हम अभी क्या काम करते हैं। इस कार्यक्षमता का एक बहुत ही राज्यों में कवर किया जा सकता है क्योंकि ansible जैसे उपकरण यह सुनिश्चित करने के लिए हैं कि कोई सेवा चल रही है।
प्रोजेक्ट मॉलेक्यूल है जो डॉकटर या एक अन्य अस्थायी वर्चुअलाइजेशन इंजन के खिलाफ व्यक्तिगत भूमिका (जैसा कि उसके राज्यों को कॉल करता है) चलाने की अनुमति देता है । यह भूमिका को कम करने के लिए मजबूर करता है और उन पर काम करते समय उन्हें प्लेबुक से अलग करने की अनुमति देता है। टेस्ट ज्यादातर उन चरों को मजाक में लेने की अनुमति देते हैं जिनकी भूमिका काम करने वाली होती है। अन्य उदाहरणों से एक इंजन के दोहराव की तरह प्रतीत होता है, हालांकि (एक फ़ाइल उपयोगकर्ता की है ...)।
ThoughtWorks तकनीक रडार अभी जैसे उपकरणों की प्रशंसा inspec , serverspec या गॉस मान्य है कि सर्वर कल्पना को पूरा करती है के लिए। लेकिन हम एक युक्ति लिख रहे हैं, क्या हम नहीं हैं?
यदि राज्यों / भूमिकाओं में बुनियादी ढाँचे का वर्णन किया जाता है तो क्या आगे के बुनियादी ढाँचे का परीक्षण करने की बात है? मुझे संदेह है कि यह बड़े संगठनों में अधिक आवश्यक हो जाता है, जहां एक टीम कल्पना और अन्य प्रकार प्रदान करती है, या यदि भूमिकाओं का एक बड़ा सेट है, तो शायद आप उनमें से एक सबसेट चलाना चाहते हैं और परीक्षणों से गति लाभ प्राप्त करना चाहते हैं? मैं यह देखने के लिए संघर्ष कर रहा हूं कि यदि आप एक ही प्रश्न को ध्यान में रखते हुए भूमिका / स्थिति बना सकते हैं तो आप एक परीक्षा क्यों लिखेंगे।
goss
। उदाहरण के लिए, RPM इंस्टॉल किया गया है (ansible) और फिर परीक्षण किया जाता है कि क्या अपेक्षित डिफॉल्ट फ़ाइल को रखा गया है, या सेवा एक विशिष्ट पोर्ट के लिए चल रही है और सुन रही है। मैं इस तरह के मुद्दे को स्वचालित रूप से ठीक नहीं करना चाहता, लेकिन अधिसूचित किया जाना चाहिए और प्रगति को रोकना चाहिए। श्योर एन्सिबल आपके लिए भी सिस्टम का परीक्षण कर सकता है, बस आपको इसके बारे में स्पष्ट होने की आवश्यकता है, लेकिन हमारे मामले में, हमgoss
कंटेनर के भीतर सेवा के व्यवहार का परीक्षण करने के लिए उपयोग करते हैं