Feature
Enable schedule-based management
I'm a paragraph. Click here to add your own text and edit me. It’s easy. Just click “Edit Text” or double click me to add your own content and make changes to the font. I’m a great place for you to tell a story and let your users know a little more about you.
Various Network Topology
Models
I'm a paragraph. Click here to add your own text and edit me. It’s easy. Just click “Edit Text” or double click me to add your own content and make changes to the font. I’m a great place for you to tell a story and let your users know a little more about you.
Feature
Enable schedule-based management
OpenNaEF のデータベースは次の特徴を持ちます。柔軟かつ拡張が容易なオブジェクトモデルサポート、オンメモリDB、スケジュール管理、履歴管理。
すべてのオブジェクトは属性と関連を持ち、デバイスの構成管理のような単純なモデルだけでなく、複数レイヤを統合したネットワーク構成のような複雑なモデルでも表現できます。
すべてのオブジェクトにスケジュールと関連づいた属性・参照を持たせることができます。「今こうなっている」情報だけではなく「今こうなっていて、12/01 にはこう変わり、さらに 12/15 にはまたこう変わる」という将来の予定管理も行うことが可能です。
すべてのオブジェクトは変更履歴を保持しており、いつ、誰がデータを変更したのかを容易に追跡できます。
スケジュールと変更履歴の両方をネイティブでサポートする DB は業界でも OpenNaEF のものが唯一です。
このような履歴×スケジュールの「2次元時間軸」管理機能によってネットワークインフラに関わる将来の設計や過去の状況の追跡が可能になりネットワークサービスのライフサイクル管理に大いに役にたつものとなっています。
Various Network Topology
Models
OpenNaEFは MVO の上に汎用的なネットワークモデル構成要素をネイティブに保持しています。この構成要素を適切に組み合わせることで、ほぼすべてのネットワークプロトコルをモデル化することができます。IP, VLAN, MPLS のような一般的なネットワークのみならず、Q-in-Q, Overlay, Virtual Router も表現可能です。
この構成要素は本質的で実際の実装経験に裏打ちされているため、現時点で知られているすべてのネットワークが表現可能です。そのため新たなプロトコルが登場したとしても, 既存プロトコルと同じ方法で扱え、プロトコルサポートを追加するのが容易になっています。
基本要素としては、Node, Hardware, ProtocolPort (if), Network, Link, Network ID Pool からなり、その関係は Cross Connection, Containment, Stack, Owner (Children), Alias から構成されています。これらのサブクラスやバリエーションによって LAG のような論理ポート, PseudoWire, VLAN, VPLS, VRF, IP-Subnet などのネットワークや VXLAN, EVPN, TRILL などの最新技術までをサポートすることが可能です。
またこれらのモデルはユーザーの用途に合わせて必要なところは細かく・必要のないところは粗く管理することができ (解像度を変えることができ)、必要のないところまで細かく管理させる既存の NMS や資産管理システムと一線を画しています。
Manipulate all network objects
オブジェクトストレージに格納されたオブジェクトは、スケジュール時間軸、バージョン時間軸をすることで取得・操作することが可能です。オブジェクトを操作するインターフェースとしてはDTO(Data Tranfer Object)を利用しRPC経由で操作する方法、restful APIによる操作、NaEFシェルを利用したコマンドラインインターフェースによる操作が可能です。
restful APIでは、各種オブジェクトの追加・削除・変更からTargetTime(将来予定)を指定したオブジェクトの変更予定を操作することも可能です。NaEFシェルではコマンドでオブジェクトモデルの操作を可能にするだけでなく、実機へのコンソール接続も可能です。直接実機にコンソール接続し変更した結果をコマンドでNaEFオブジェクトモデルに反映することも可能です。
オブジェクトを操作はトランザクショナルに実行することが可能で、複数の機器やノードにまたがって初めて意味のある設定を競合を気にすることなく操作することができます。
OpenNaEF は, アプリケーション要求に応じて必要な情報を渡す pull 操作だけでなく, 一定条件を満たしたときにアプリケーションに通知を出す push 操作をサポートしています。リソース枯渇や競合発生などの放置できないイベントがあったときに, OpneNaEF が能動的にユーザに注意することができます。この push 操作をトリガーとして各種スクリプトを実行することも可能です。現在は独自方式による push 通知を実装していますが, 近い将来 gRPC による push 通知をサポートします。
Best Platform for Best DevOps
最小のコストで最大の差別化要因を生み出せる DevOps プラットフォームとして活用できるように OpenNaEF は注意深くデザインされています.
従来製品は非プログラマが使えるという点が売りでした。しかしそのせいで、型にはまった運用しかできず、柔軟性に欠け、最終的には製品を導入したせいで運用が面倒になることも多々発生していました。
OpenNaEF でも従来製品のように使うこともできますが, 言語非依存の API を活用して, 簡単なプログラミングで最大限の効果を得ることができます. DevOps を実践し, プログラムとデータ構造を段階的に進化させることにより, Google/Azure クラスのオペレーション効率を自ら達成することも可能です.
Automation
今日、コンピューティング・ネットワーキング環境のスケールでは自動化は避けて通れません。自動化を行うには投入すべきパラメータの検証が正しく行われなければなりません。
局所的な変更が全体に及ぼす影響がないかは、現在の状態と予定している状態の整合性を取る必要があり、そのためにOpenNaEFで提供するLifecycle orchestration engineは、履歴×スケジュールの「2次元時間軸」管理機能によってネットワークインフラに関わる将来の設計や過去の状況の追跡が可能になりネットワークサービスの自動化に大きく役に立つものです。
Abstraction
OpenNaEFは、基本的なネットワークモデルを構成するオブジェクトクラスを持っています。これらはプロトコルモデルをそのままモデルとして表現しているため、特殊構成と思われるQ-in-Q, OverlayやVirtual Routerも表現可能です。
あらゆるプロトコルモデルに共通する特徴を抽出して 4 パターンですべてのネットワークを表現可能であることを基にデザインされています。
そのため新たなプロトコルが登場したとしても、 既存プロトコルと同じ方法で扱え、プロトコルを追加するのが容易になっています。
素直なモデル化と高度な抽象化を同時に実現している点に NAEF の特徴があります。
Autonomy
ネットワークインフラの自律運用はこのプロジェクトの最終的な目標です。OpenNaEFと各種オープンソースを組み合わせることで、ネットワークインフラに関わる将来の設計や、過去の状況の追跡の起点となる構成情報と、各種ログ(トラフィック、サーバーログ、設定履歴など)が突合可能になります。
OpenNaEF のオブジェクトモデルと各種オープンソースプロダクトを組み合わせると、構成とイベント・統計とを組み合わせた、「ノイズ」の少ない高精度の情報が手に入ります。
将来の運用自動化への最短ルートがそこにはあります。
A* is ....
Support various type scripts,Ansible,
Groovy,Python
full RESTful サポート, gRPC サポート(予定), 汎用的な CLI ベースの shell インターフェースにより, 任意の言語から OpenNaEF のフル機能を活用できます。OpenNaEF を使うために特定言語のエキスパートになる必要はありません。
トランザクション単位またはオブジェクト単位でスクリプトを関連づけ、スケジュールにもとづいたスクリプトを実行することも可能です。設計は今日やっておくが、実機への反映は深夜 3:00 みたいなオペレーションをすることができます。
このスクリプトバインディングは、Ansible, Groovy, Fabric のようなインフラ構成ツールや, Ruby, Python, Javasdcript 等各種軽量言語スクリプトから利用可能です。スクリプトにはオブジェクトの内容が動的に埋め込むことができ、通知された変更内容をスクリプト内で利用することでNaEFで行われた変更を実機に反映することが可能です。過去の案件にて利用してきた各種テンプレートも open source として提供します。