۳۰ آذر ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

نحوه استقرار نرم افزار در دستگاه های IoT مبتنی بر لینوکس در مقیاس

استقرار نرم افزار در ناوگان بزرگ دستگاه های مبتنی بر لینوکس یک فرآیند پیچیده و حیاتی است که نیاز به برنامه ریزی دقیق و اجرای خودکار دارد. با این بهترین شیوه ها شروع کنید.

استقرار نرم افزار در ناوگان بزرگ دستگاه های مبتنی بر لینوکس یک فرآیند پیچیده و حیاتی است که نیاز به برنامه ریزی دقیق و اجرای خودکار دارد. با این بهترین شیوه ها شروع کنید.

اینترنت چیزها ( IoT) نحوه تعامل ما با جهان را تغییر داده است و دستگاه های بی شماری را به اینترنت متصل می کند، از ترموستات های هوشمند در خانه های ما تا سنسورهای صنعتی در کارخانه های تولیدی. بخش قابل توجهی از این دستگاه‌های اینترنت اشیا به دلیل انعطاف‌پذیری، استحکام و ماهیت منبع باز آن به سیستم عامل لینوکس متکی هستند.

استقرار نرم‌افزار در دستگاه‌های مبتنی بر لینوکس، در مقیاس، فرآیندی پیچیده و حیاتی است که نیازمند برنامه‌ریزی، فرآیندهای سنجیده‌شده و پیروی از بهترین شیوه‌ها برای اطمینان از ثبات، امنیت و مدیریت ناوگان اینترنت اشیا است. در این مقاله، برخی از بهترین روش‌ها را برای استقرار نرم‌افزار در ناوگان بزرگ دستگاه‌های IoT مبتنی بر لینوکس بررسی می‌کنیم.

از ظروف استفاده کنید

برای استقرار اولیه خود، از یک رویکرد استقرار کانتینری استفاده کنید. این شامل بسته‌بندی نرم‌افزار و وابستگی‌های آن در یک تصویر ظرف است که می‌تواند به طور منظم در دستگاه‌های IoT مستقر شود. کانتینرهای Docker به سرعت به یک انتخاب محبوب برای استقرار برنامه‌های IoT تبدیل شده‌اند، زیرا مزایای بسیاری از جمله:

  • ایزوله: جداسازی برنامه در یک ظرف به بهبود امنیت و قابلیت اطمینان کمک می‌کند.
  • قابلیت حمل: کانتینرهای Docker را می توان در هر پلتفرمی که از Docker پشتیبانی می کند مستقر کرد و استقرار برنامه های IoT را در دستگاه های مختلف آسان می کند.
  • تکرارپذیری: کانتینرهای Docker قابل تکرار هستند، به این معنی که می‌توانند به طور مداوم در محیط‌های مختلف ایجاد و مستقر شوند.
  • کارآمد: کانتینرهای Docker از نظر منابع بسیار کارآمد هستند و آنها را برای دستگاه‌های IoT که حافظه و فضای ذخیره‌سازی محدودی دارند ایده‌آل می‌کند.
  • بالغ: فناوری Docker بالغ، درک شده و به خوبی پشتیبانی می‌شود.

از یک پلت فرم مدیریت متمرکز استفاده کنید

یک پلت فرم مدیریت متمرکز می تواند برای خودکارسازی فرآیند نظارت و مدیریت ناوگان دستگاه های اینترنت اشیا شما استفاده شود. داشتن یک داشبورد متمرکز که یک نمای کلی از سلامت ناوگان و همچنین توانایی دریافت جزئیات ارائه می‌دهد، می‌تواند مقدار قابل توجهی در زمان و تلاش صرفه‌جویی کند و در عین حال خطر خطا را کاهش دهد.

هنگامی که با صدها یا هزاران دستگاه کار می‌کنید، می‌خواهید که تصاویر نصب شده فوق بر روی دستگاه‌های اینترنت اشیا به طور خودکار با پلتفرم مدیریت «خانه تماس بگیرند» و به روشی ایمن در پلتفرم ثبت نام کنند.

تعدادی پلتفرم مدیریت متمرکز مختلف، هم تجاری و هم منبع باز وجود دارد. هنگام انتخاب یک پلتفرم، مهم است که نیازهای خاص سازمان خود را در نظر بگیرید. آیا این پلتفرم می‌تواند از نسخه لینوکس مورد استفاده شما پشتیبانی کند؟ آیا می‌تواند از انواع دستگاه‌هایی که انتخاب کرده‌اید پشتیبانی کند؟ آیا سطح امنیتی مورد نیاز شما را فراهم می کند؟ آیا به خوبی با گردش کار توسعه موجود و آینده شما ادغام می شود؟

استقرارهای خود را بخش بندی کنید

هنگام مدیریت ناوگان های بزرگ، توانایی ایجاد ساختارهای سلسله مراتبی برای گروه بندی و زیر گروه بندی برای مدیریت مقیاس پذیر ضروری است. گروه بندی امکان سازماندهی دستگاه ها را بر اساس ویژگی های مشترک فراهم می کند که نظارت کارآمد، پیکربندی و به روز رسانی نرم افزار را تسهیل می کند. گروه‌بندی را می‌توان بر اساس مکان، نوع دستگاه، سیستم عامل، نسخه برنامه و غیره سازمان‌دهی کرد. امکان مشاهده گروه‌های خاص از داشبورد مرکزی، مقیاس‌بندی را بسیار قابل کنترل‌تر می‌کند.

به روز رسانی خودکار نرم افزار

مدتی پس از استقرار اولیه، ناگزیر باید نرم افزار را در دستگاه های مستقر شده به روز کنید. باز هم، اتوماسیون ضروری است. برای انجام این کار می‌توانید اسکریپت‌های زیادی بنویسید، اما آنها همچنان باید به‌طور خودکار دستگاه‌ها را برای به‌روزرسانی پیدا کنند، آنها را به‌طور ایمن وصل کنند و به‌روزرسانی‌ها را به این دستگاه‌ها فشار دهند – که امیدواریم با موفقیت به‌روزرسانی شوند. قبل از رفتن به این مسیر، پیچیدگی کار، خطر اشکالات، زمان و منابع مورد نیاز، و عدم پشتیبانی احتمالی را هنگام تکیه بر تخصص توسعه دهندگان اسکریپت ها در نظر بگیرید.

Astro 4.2 قابلیت دسترسی و ویژگی های بهینه سازی تصویر را افزایش می دهد

رویکرد بهتر استفاده از پلتفرم مدیریت اینترنت اشیا برای خودکارسازی این است. تعدادی پلت فرم تجاری و منبع باز مدیریت اینترنت اشیا وجود دارد که می تواند فرآیند به روز رسانی نرم افزار را برای شما خودکار کند. این پلتفرم‌ها معمولاً تعدادی ویژگی را ارائه می‌دهند که آنها را نسبت به اسکریپت‌های سفارشی قابل اعتمادتر و کارآمدتر می‌کند، مانند:

  • ثبت و کشف دستگاه: پلتفرم‌های مدیریت اینترنت اشیا می‌توانند به‌طور خودکار دستگاه‌های شما را ثبت کنند و نیازی به ردیابی و به‌روزرسانی دستی موجودی دستگاه‌های اینترنت اشیا شما را از بین ببرند. برای دستگاه‌های IoT که در سایر شبکه‌ها و فایروال‌های عمومی یا خصوصی قرار دارند، به یک پلتفرم امن برای ایجاد و مدیریت ارتباطات با این دستگاه‌ها نیاز است، حتی زمانی که آدرس‌های IP آن‌ها مخفی شده و توسط فایروال‌ها محافظت می‌شود.
  • برنامه‌ریزی و هماهنگ‌سازی به‌روزرسانی نرم‌افزار: پلتفرم‌های مدیریت اینترنت اشیا می‌توانند به‌طور خودکار به‌روزرسانی‌های نرم‌افزار را برای دستگاه‌های IoT شما برنامه‌ریزی و هماهنگ کنند. این تضمین می کند که به روز رسانی ها به شیوه ای کنترل شده و کارآمد اجرا می شوند.
  • به‌روزرسانی‌های خارج از هوا (OTA): این ممکن است بدیهی به نظر برسد، اما ارزش تأکید دارد. به روز رسانی های ایمن OTA نیاز به دسترسی فیزیکی به دستگاه ها برای استقرار به روز رسانی ها را برطرف می کند. این بدان معناست که تیم شما می‌تواند به‌روزرسانی‌ها را در هر دستگاهی از هرجایی اجرا کند.
  • بخش‌بندی و نسخه‌سازی: با ناوگان بزرگ دستگاه‌های اینترنت اشیا، انواع و پیکربندی‌های دستگاه‌ها می‌تواند به طور گسترده‌ای متفاوت باشد، با ابزارها، نسخه‌ها، وابستگی‌ها و حتی عملکردهای مختلف. پلتفرم مدیریت باید بتواند به‌روزرسانی‌های مختلف را برای بخش‌های مختلف دستگاه‌ها مدیریت کند، حتی اگر ممکن است هزاران دستگاه در ناوگان وجود داشته باشد، و به‌روزرسانی‌ها باید به اندازه کافی عمومی باشند تا انواع و پیکربندی‌های مختلف را مجاز کنند.
  • امنیت: پلتفرم‌های مدیریت اینترنت اشیا معمولاً تعدادی ویژگی امنیتی برای محافظت از دستگاه‌های اینترنت اشیا در طول فرآیند به‌روزرسانی نرم‌افزار ارائه می‌دهند. یک اتصال رمزگذاری شده و تبادل توکن ایمن برای تأیید صحت آنها شروع خوبی است. اما به‌روزرسانی‌های نرم‌افزار باید فراتر از رمزگذاری باشد تا انطباق و آسیب‌پذیری نرم‌افزار را نیز بررسی کند.

اگر در مدیریت به‌روزرسانی‌های نرم‌افزار اینترنت اشیا جدی هستید، توصیه می‌کنم از یک پلت‌فرم مدیریت اینترنت اشیا اثبات‌شده استفاده کنید. این پلتفرم‌ها می‌توانند در درازمدت در زمان، هزینه و سردرد شما صرفه‌جویی کنند.

برنامه بازگشتی داشته باشید

به‌روزرسانی دستگاه‌های اینترنت اشیا به دلیل مکان‌های دور و اتصالات شبکه ناسازگارشان ممکن است چالش‌برانگیز باشد. به همین دلیل مهم است که در صورت بروز مشکلی در به‌روزرسانی‌های استقرار، یک برنامه بازگشت به عقب داشته باشید. یک طرح بازگشت باید به سرعت دستگاه ها را به حالت قبلی خود بازگرداند. اگر برنامه بازگشتی ندارید و قطعی شبکه باعث توقف به‌روزرسانی می‌شود، می‌توانید با دستگاه‌های زیادی مواجه شوید که دیگر کار نمی‌کنند و به بازدیدهای میدانی پرهزینه نیاز دارند. در صورت بروز رسانی ناموفق، دستگاهی که به درستی مستقر شده است باید به طور خودکار به حالت کار قبلی خود برگردد.

می‌توانید یک تصویر بازگشتی را حفظ کنید و سعی کنید آن تصویر را دوباره در دستگاه‌ها منتشر کنید. با این حال، این گزینه حتی با برنامه‌نویسی کاملاً دستی و خسته‌کننده به نظر می‌رسد و فرض می‌کند که می‌توانید به دستگاه خراب دسترسی پیدا کنید. برخی از پلتفرم‌های مدیریت اینترنت اشیا، یک کلاینت هوشمند را برای کمک به مدیریت اتصالات ایمن به دستگاه، از جمله توانایی بازگرداندن دستگاه به حالت قبلی پس از به‌روزرسانی ناموفق، مستقر می‌کنند.

درآمد Google Cloud به بیش از 6 میلیارد دلار رسید

DevOps را برای اینترنت اشیا بپذیرید

ممکن است توسعه اینترنت اشیا آنقدر نوپا باشد که ممکن است هنوز بخشی از جریان اصلی فرآیندهای DevOps شما نباشد—شاید هنوز در مراحل اولیه آزمایش باشید. هنگامی که آماده مقیاس‌سازی شدید، باید اینترنت اشیاء را به قسمت DevOps بیاورید. نیازی به گفتن نیست که مقیاس و هزینه های مربوط به برخورد با هزاران دستگاه مستقر شده قابل توجه است.

DevOps یک رویکرد مهم برای اطمینان از ارائه یکپارچه و کارآمد توسعه نرم‌افزار، به‌روزرسانی‌ها و پیشرفت‌ها به دستگاه‌های IoT است. با ادغام توسعه اینترنت اشیا در یک گردش کار ایجاد شده، همکاری، چابکی، تحویل مطمئن، کنترل و قابلیت ردیابی را که بخشی از فرآیند DevOps مدرن است، بهبود یافته به دست خواهید آورد.

فرآیند استقرار خود را ایمن کنید

استفاده از فرآیند استقرار ایمن برای محافظت از دستگاه‌های اینترنت اشیا در برابر دسترسی غیرمجاز، آسیب‌پذیری‌های سهوی و بدافزار بسیار مهم است. یک استقرار ایمن باید شامل روش های احراز هویت قوی برای دسترسی به دستگاه ها و پلت فرم مدیریت باشد. داده هایی که بین دستگاه ها و پلت فرم مدیریتی منتقل می شود باید با رمزگذاری محافظت شود. نحوه اتصال دستگاه های سرویس گیرنده به پلتفرم پس از استقرار نیز همیشه باید رمزگذاری شود.

برای اطمینان از معتبر بودن یک دستگاه اینترنت اشیا و اینکه پلتفرم مدیریتی که با آن در ارتباط است نیز معتبر است، باید برای تأیید کلاینت و پلتفرم، توکن‌هایی مبادله شود. به عبارت دیگر، دستگاه و پلتفرم باید هم توکن هایی تولید کنند و هم مبادله کنند که منحصر به فرد هستند و جعل آنها دشوار است. سپس می‌توان از این نشانه‌ها برای تأیید هویت دستگاه و پلتفرم استفاده کرد.

فراتر از رمزگذاری، باید امنیت خود نرم افزار را نیز در نظر بگیرید. آیا نرم افزار عاری از آسیب پذیری است؟ آیا قبل از استقرار برای آسیب پذیری های احتمالی اسکن شده است؟ آیا این کار در طول فرآیند توسعه انجام شد؟ اگر از نرم افزار منبع باز استفاده می کنید، پایگاه داده های آسیب پذیری مانند cve.org و vulndb که اطلاعاتی را در مورد بسته های نرم افزاری خاص ارائه می دهد.

علاوه بر خود نرم افزار، پیکربندی نادرست استقرار احتمالی که می تواند دستگاه ها را در برابر حملات آسیب پذیر کند، بررسی کنید. برای خودکار کردن این فرآیند، از تجزیه و تحلیل ترکیب نرم افزار (SCA) برای اسکن آسیب پذیری ها، و شاید یک ابزار تست امنیتی برنامه استاتیک (SAST) که می تواند به توسعه دهندگان کمک کند تا نقاط ضعف کد خود را خیلی زودتر از قبل پیدا کنند. گسترش. در حالی که این ابزارها مفید هستند، گاهی اوقات می توانند توسعه دهندگان را با موارد مثبت کاذب غرق کنند. برای کاهش هشدارهای نادرست – و جلوگیری از اتلاف وقت و تلاش – ابزار مدرنی بیابید که می‌تواند زمینه کاربرد نرم‌افزار را در نظر بگیرد.

اسکن‌های امنیتی باید به‌طور مداوم در طول چرخه عمر توسعه نرم‌افزار انجام شود – از کدگذاری تا استقرار. ایجاد فرآیندهای امنیتی خودکار در فرآیندهای DevOps شما تا حد زیادی به سمت استقرار ایمن خواهد رفت. ادغام DevOps و SecOps معمولاً به عنوان DevSecOps نامیده می‌شود و باید در توسعه نرم‌افزار امروزی به عنوان یک روش استاندارد در نظر گرفته شود.

نظارت و هشدارهای خودکار

نظارت بر ناوگان بزرگ اینترنت اشیا برای اطمینان از عملکرد، امنیت و قابلیت اطمینان آنها ضروری است. با جمع‌آوری و تجزیه و تحلیل مداوم داده‌ها از دستگاه‌های اینترنت اشیا، سازمان‌ها می‌توانند بینش‌هایی در مورد الگوهای استفاده خود به دست آورند، مشکلات احتمالی را شناسایی کنند و اقدامات اصلاحی انجام دهند. با توجه به مقیاس، توانایی خودکارسازی فرآیند نظارت و هشدار باید یک الزام باشد. آیا یک دستگاه آفلاین است؟ آیا از آستانه های از پیش پیکربندی شده دستگاه برای استفاده از CPU، دیسک یا حافظه فراتر رفته است؟ آیا یک فرآیند خاص در حال نظارت هنوز فعال است؟ با خودکار کردن نظارت و هشدارهای همه دستگاه‌ها، می‌توانید قبل از تشدید مشکلات، جلوی مشکلات را بگیرید.

بزرگترین گلوگاه در مدل های زبان بزرگ

اجرای دسترسی از راه دور

کار میدانی گران است. تا حد امکان باید از هزینه های پرسنل، زمان و سفر فیزیکی اجتناب شود. به همین دلیل است که دسترسی از راه دور به دستگاه ها کلیدی است. در صورت خرابی دستگاه که نیاز به مداخله دستی دارد، دسترسی به ترمینال از راه دور می‌تواند روز را نجات دهد زیرا توسعه‌دهنده می‌تواند به طور یکپارچه به دستگاه دسترسی داشته باشد، گویی روی میز خود است. رایج ترین روش استفاده از SSH (Secure Shell) است. SSH یک پروتکل امن است که به شما امکان می دهد به یک کامپیوتر راه دور متصل شوید و اسکریپت ها و دستورات را مستقیماً روی دستگاه اجرا کنید. باید مطمئن شوید که دستگاه بر اساس آن پیکربندی شده است تا از این پشتیبانی کند.

وقتی دستگاه‌ها در پشت فایروال‌ها، در شبکه‌های خصوصی مستقر می‌شوند، آدرس IP دستگاه را نمی‌دانید یا نمی‌توانید با SSH استاندارد از فایروال عبور کنید. روش متداول استفاده از تونل SSH معکوس است که به عنوان ارسال پورت SSH نیز شناخته می شود. این به شما امکان می دهد از یک میزبان محلی به یک میزبان راه دور متصل شوید، حتی اگر میزبان راه دور پشت یک فایروال باشد. این کار با ایجاد یک تونل SSH از دستگاه به دستگاه خارجی شما شروع می شود. این تونل به شما امکان می‌دهد به دستگاه دسترسی داشته باشید، گویی در همان شبکه دستگاه شما قرار دارد.

یک گزینه حتی بهتر، مدیریت ناوگان خود با یک پلتفرم مدیریت قوی اینترنت اشیا است که سابقه اثبات شده ای در توسعه و استقرار برنامه های کاربردی با شرکت ها دارد. این پلتفرم برای هر دستگاهی که می‌خواهید نظارت و مدیریت کنید، یک برنامه عامل سبک وزن و هوشمند را به کار می‌گیرد. این عامل می تواند اتصال، امنیت، نظارت، هشدارها و اطلاعات معکوس SSH ضروری برای دسترسی از راه دور ایمن به دستگاه را کنترل کند. سپس داشبورد مرکزی یک نمای کلی از کل ناوگان را ارائه می‌دهد و دید و چارچوب لازم برای مطابقت با مقیاس و نیازهای در حال تحول شما را ارائه می‌دهد.

به تنهایی اقدام نکنید

به عنوان یک توسعه دهنده، ممکن است وسوسه شوید که پلتفرم سفارشی و عامل هوشمند خود را برای مدیریت ناوگان اینترنت اشیا خود بسازید. این امر مستلزم زمان، تخصص و سرمایه گذاری قابل توجهی از اعتماد به چند متخصص داخلی است. برای به روز رسانی، کنترل و مدیریت ناوگان های بزرگ و حیاتی اینترنت اشیاء، همکاری با یک فروشنده اختصاصی و مستقر با سابقه اثبات شده عملی تر است. این کار تیم توسعه شما را آزاد می‌کند تا به جای ایجاد و نگهداری زیرساخت‌های مدیریت آن‌ها، روی ساخت اپلیکیشن‌های عالی اینترنت اشیا تمرکز کند.

روی آلفاسی مدیر محصول و متخصص اینترنت اشیا در JFrog است.

انجمن فناوری جدید مکانی را برای رهبران فناوری – از جمله فروشندگان و سایر مشارکت‌کنندگان خارجی – فراهم می‌کند تا فناوری سازمانی نوظهور را در عمق و وسعت بی‌سابقه بررسی و بحث کنند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه پرس و جوها را به doug_dineley@foundryco.com.