در مورد یانگ چه می دانید؟

پیشنهاد ویژه
[button color="primary" size="big" link="https://nabfollower.com/buy-real-follower/" icon="" target="true" follow="false"]خرید فالوور واقعی[/button][button color="primary" size="big" link="https://nabfollower.com/buy-instagram-like/" icon="" target="true" follow="false"]خرید لایک اینستاگرام[/button][button color="primary" size="big" link="https://nabfollower.com/buy-instagram-views/" icon="" target="true" follow="false"]خرید ویو اینستاگرام[/button][button color="primary" size="big" link="https://nabfollower.com/" icon="" target="true" follow="false"]خرید فالوور اینستاگرام[/button]
شما ممکن است JSON و YAML و نحوه استفاده از آنها برای نوشتن تنظیمات برنامه را بشناسید. اما وقتی صحبت از دستگاه های شبکه می شود ، ما چیزی مشابه به نام یانگ (با این حال نسل بعدی دیگر) داریم.
در نبرد فرمت های پیکربندی ، JSON و YAML در حال گذر از پس از آن هستند – یانگ در اینجا مدیریت کل محل را انجام می دهد.
اگر تا به حال با دستگاه های شبکه و پروتکل های پیکربندی روبرو شده اید ، یا فقط تعجب کرده اید که چگونه غول های بزرگ از راه دور موفق به صحبت در یک زبان مشترک در میلیون ها دستگاه می شوند – سلام به یانگ.
یانگ (یکی دیگر از نسل بعدی) یک زبان مدل سازی داده است ، که در درجه اول برای مدل سازی پیکربندی و داده های حالت دستکاری شده توسط پروتکل NetConf استفاده می شود. یانگ را به عنوان طرح JSON در شبکه اما با فرمالیسم اضافی و سختگیرانه تر فکر کنید.
این یک فناوری حاشیه ای نیست ؛ این ستون فقرات اتوماسیون شبکه مدرن ، قدرت SDN (شبکه تعریف شده از نرم افزار) ، Cloud Infra ، تنظیمات IoT و هر سناریویی است که در آن Zillions دستگاه های شبکه نیاز به عاقلانه ماندن و همگام سازی دارند
🎨 چگونه به نظر می رسد؟
در اینجا یک طعم سریع وجود دارد:
module example-device {
namespace "http://example.com/device";
prefix dev;
container device-config {
leaf hostname {
type string;
}
leaf enabled {
type boolean;
default true;
}
}
}
خواندن آسان ، درست است؟ فقط آن را به عنوان یک طرح تایپ شده و ساختار یافته توصیف کنید:
- چه نوع داده/پیکربندی وجود دارد (ظروف ، لیست ها ، برگ ها)
- چه نوع (int ، string ، boolean ، enums و غیره)
- محدودیت ها (پیش فرض ، دامنه ، منحصر به فرد بودن) \
🎯 آیا باید یانگ را یاد بگیرید؟
بله ، اگر:
- شما در حال غواصی در نرم افزار اتوماسیون شبکه ، SDN یا TELCO هستید.
- شما می خواهید ابزار آگاهانه شبکه ایجاد کنید (به عنوان مثال ، افزونه های قابل حمل ، سیستم های نظارت).
- شما ایده مدل های اعلانی و ساختاری را کنترل می کنید که مادون های فیزیکی را کنترل می کنند.
نه ، اگر:
- شما در برنامه Pure Dev Land خوشحال هستید و سخت افزار شبکه را لمس نکنید.
- شما کهیر XML دریافت می کنید. (خروجی های یانگ اغلب از پروتکل های مبتنی بر XML استفاده می کنند.)
🕹 چرا Devs اهمیت می دهد؟
بیایید درک کنیم که چگونه به توسعه دهندگان کمک می کند.
1. جادوی پیکربندی خنثی فروشنده
از نوشتن کد سفارشی برای چرخ دنده های فروشنده شبکه خسته شده اید؟ یانگ یک قالب استاندارد ارائه می دهد ، بنابراین ابزارهای پیکربندی مانند مشتریان NetConf می توانند به صورت پویا با دستگاه ها سازگار شوند.
2. نسل API
مدل های Yang می توانند API های REST (از طریق RESTCONF) تولید کنند و جعبه های گنگ را به سیستم های قابل برنامه ریزی و API تبدیل کنند.
3. اعتبار سنجی و نسخه
فکر کنید Json Schema ، اما بهتر است. یانگ قوانین اعتبار سنجی پیچیده ، نشانگرهای استهلاک و تغییرات سازگار با عقب مانند یک حرفه ای را اداره می کند.
4 اتوماسیون
DevOps + NetOps = Yang + NetConf + Ansible/Puppet Integrations = استقرار کاملاً خودکار شبکه.
📜 تفاوت آن با JSON یا XML چیست؟
- یانگ بسیار قوی تر تایپ شده است.
- این از واردات و شامل آن پشتیبانی می کند.
- دارای محدودیت های محکم و سلسله مراتب داده است
- هدف ساخته شده برای داده های پیکربندی شبکه/حالت.
use استفاده در دنیای واقعی
- غول های مخابراتی: نوکیا ، هواوی ، سیسکو – همه از مدل های یانگ استفاده کنید.
- ارائه دهندگان ابر: خودکار سازی سوئیچ ها و روترهای مرکز داده.
- کنترل کننده های SDN: OpenDaylight ، Onos – آنها یانگ را نفس می کشند.
- شبکه های IoT: اطمینان از میلیون ها دستگاه پیکربندی یکپارچه شده است.
thoughts افکار نهایی:
یانگ ممکن است طاقچه به نظر برسد ، اما این زبان Lingua Franca از شبکه های مدرن است. این ظریف ، اعلامیه ، نسخه و مقیاس پذیر است. اگر Infra زمین بازی شماست ، یانگ ابزاری است که به شما امکان می دهد دقیقاً آن زمین بازی را توصیف کنید.
می خواهید عمیق تر شیرجه بزنید؟
RFC 7950 – که 1.1 مشخصات
مدل های OpenConfig (در واقع از IRL استفاده شده است)