Như được đặc tả trong RFC 6020, YANG là một ngôn ngữ mô hình hóa dữ liệu được dùng để mô tả các dữ liệu cấu hình và dữ liệu về trạng thái của thiết bị. Các dữ liệu này sẽ được thao tác bởi giao thức NETCONF. Động lực chính để YANG được phát triển chính là giúp chúng ta có một cách thức chuẩn để mô hình hóa các cấu hình và các dữ liệu hoạt động sao cho các thiết bị mạng có thể vận hành theo phương thức chuẩn và phổ biến.
Khi chúng ta cấu hình thiết bị mạng dùng CLI, cách dùng này có thể là thân thuộc với con người, tuy nhiên CLI không hỗ trợ tốt cho tiến trình tự động hóa trong hạ tầng mạng. Các nhà sản xuất thiết bị khác nhau có các giao tiếp dòng lệnh CLI khác nhau với các tính năng và các khả năng cũng khác nhau. Trước khi NETCONF và mô hình dữ liệu YANG ra đời, việc cố gắng tìm một cách thức chuẩn để tự động hóa việc cấu hình và giám sát các hạ tầng mạng hỗn hợp gồm nhiều nhà sản xuất là điều gần như không thể.
YANG là một ngôn ngữ được dùng để mô hình hóa dữ liệu cho giao thức NETCONF. Một mô-đun YANG định nghĩa một cấp bậc của dữ liệu để sử dụng cho các hoạt động của giao thức NETCONF. Nó cho phép chúng ta mô tả đầy đủ tất cả các dữ liệu được gửi giữa NETCONF client và server. YANG mô hình hóa tổ chức dữ liệu như một dạng cây trong đó từng nhánh đều được đặt tên và có một giá trị hoặc các nhánh con. YANG cho phép mô tả rõ ràng và chính xác từng nhánh và tương tác giữa các nhánh của cây.
YANG giúp cân bằng giữa mô hình hóa các dữ liệu ở mức cao và các cơ chế mã hóa ở mức thấp. Người đọc các dữ liệu hiển thị ở dạng YANG có thể thấy các dữ liệu ở mức cao và có thể hiểu dữ liệu có thể được hiển thị như thế nào trong các tác vụ của NETCONF.
YANG tổ chức các mô hình dữ liệu thành các mô-đun và các mô-đun con. Một mô-đun có thể nạp dữ liệu từ các mô-đun bên ngoài khác và nó có thể bao gồm dữ liệu từ các mô-đun con. Cấu trúc này có thể nhân rộng, cho phép một mô-đun có thể thêm vào các node dữ liệu được định nghĩa trong một mô-đun khác.
Một mô-đun YANG chứa ba loại phát biểu: Một phát biểu cho phần header, mô tả các thông tin về mô-đun và các thông tin về nó. Một phát biểu về phiên bản revision cung cấp các thông tin về lịch sử của mô-đun. Các phát biểu định nghĩa là phần thân của mô-đun, trong đó các mô hình dữ liệu thực sự được định nghĩa.
Một máy chủ NETCONF có thể triển khai một số các mô-đun hoặc có thể hiện thực chỉ một mô-đun trong đó định nghĩa tất cả các dữ liệu có sẵn. YANG hiển thị dữ liệu ở dạng XML, nghĩa là một phiên bản của YANG là một tài liệu XML.
Khi chúng ta cấu hình thiết bị mạng dùng CLI, cách dùng này có thể là thân thuộc với con người, tuy nhiên CLI không hỗ trợ tốt cho tiến trình tự động hóa trong hạ tầng mạng. Các nhà sản xuất thiết bị khác nhau có các giao tiếp dòng lệnh CLI khác nhau với các tính năng và các khả năng cũng khác nhau. Trước khi NETCONF và mô hình dữ liệu YANG ra đời, việc cố gắng tìm một cách thức chuẩn để tự động hóa việc cấu hình và giám sát các hạ tầng mạng hỗn hợp gồm nhiều nhà sản xuất là điều gần như không thể.
YANG là một ngôn ngữ được dùng để mô hình hóa dữ liệu cho giao thức NETCONF. Một mô-đun YANG định nghĩa một cấp bậc của dữ liệu để sử dụng cho các hoạt động của giao thức NETCONF. Nó cho phép chúng ta mô tả đầy đủ tất cả các dữ liệu được gửi giữa NETCONF client và server. YANG mô hình hóa tổ chức dữ liệu như một dạng cây trong đó từng nhánh đều được đặt tên và có một giá trị hoặc các nhánh con. YANG cho phép mô tả rõ ràng và chính xác từng nhánh và tương tác giữa các nhánh của cây.
YANG giúp cân bằng giữa mô hình hóa các dữ liệu ở mức cao và các cơ chế mã hóa ở mức thấp. Người đọc các dữ liệu hiển thị ở dạng YANG có thể thấy các dữ liệu ở mức cao và có thể hiểu dữ liệu có thể được hiển thị như thế nào trong các tác vụ của NETCONF.
YANG tổ chức các mô hình dữ liệu thành các mô-đun và các mô-đun con. Một mô-đun có thể nạp dữ liệu từ các mô-đun bên ngoài khác và nó có thể bao gồm dữ liệu từ các mô-đun con. Cấu trúc này có thể nhân rộng, cho phép một mô-đun có thể thêm vào các node dữ liệu được định nghĩa trong một mô-đun khác.
Một mô-đun YANG chứa ba loại phát biểu: Một phát biểu cho phần header, mô tả các thông tin về mô-đun và các thông tin về nó. Một phát biểu về phiên bản revision cung cấp các thông tin về lịch sử của mô-đun. Các phát biểu định nghĩa là phần thân của mô-đun, trong đó các mô hình dữ liệu thực sự được định nghĩa.
Một máy chủ NETCONF có thể triển khai một số các mô-đun hoặc có thể hiện thực chỉ một mô-đun trong đó định nghĩa tất cả các dữ liệu có sẵn. YANG hiển thị dữ liệu ở dạng XML, nghĩa là một phiên bản của YANG là một tài liệu XML.