ネットワークエンジニアがpyATSを使えば実益につながり、プログラミングの世界の扉が開く
今回のセッションのテーマはハイブリッドエンジニア。ネットワークエンジニアからソフトウェアエンジニアへスキルやキャリアを広げた東村氏の経験も交えながら、ハイブリッドエンジニアに進むための方法を解説する。
しばらく前からネットワークの世界でプログラマビリティが急速に広がってきている。シスコであればCisco ACIやSD-WANがあり、近年ではNETCONF/RESTCONFをYANGモデルで制御するようになり、さらにpyATS(詳しくは後述)を使って自動化ができるようになっている。
かつてネットワークやインフラを専門とするエンジニアはコマンドでの作業が中心だったものの、今では自動化の必要性が高まり、プログラミングは不可欠なものとなってきている。例えばAPI、IaC(Infrastructure as Code)、コード管理のGitなど。
それでもネットワークエンジニアの中には「いやいや、プログラミングは経験したことがない」と敬遠する人もいる。しかしネットワークエンジニアでも、業務効率化のためにターミナルソフト(Tera Termなど)のマクロやExcel VBAを経験したことがあるのではないだろうか。東村氏は「これはもうプログラミングなのです」と言う。
プログラミング言語にはいろいろとある。どれを学ぶべきか。東村氏が「断然おすすめ」と推すのはPython。理由は情報量の多さと敷居の低さ。なかでもネットワークエンジニアにとって有用なツールとなるpyATSとの相性もいい。
pyATSはネットワークの自動化ツールだ。元々はシスコシステムズがシスコのネットワークOSをテストするためのツールとして開発したものだが、今ではOSSとして公開されておりマルチベンダー化も進んでいる。Linuxのようなコマンドからdiffのように差分を確認したり、自動化のためのコードを書いたりできる。また無料ツールでありながらログビューアーもついている。
ネットワークエンジニアがpyATSに出会うとどうなるか。東村氏は「ネットワークの自動化が実現できるようになるだけではなく、Pythonを駆使したプログラミングの世界へと踏み出せるようになります」と強調する。
とはいえネットワークエンジニアにとってプログラミングは敷居の高い世界だ。プログラミングスキルが必要だと言われても、ただ学ぶだけでは長続きしない。しかしpyATSを足がかりにすればExcel VBAで業務効率化するような感覚で、学習していくことができる。pyATSを足がかりにプログラミング(Python)のスキルを得ることができて、ソフトウェア開発の世界にも足を踏み入れることができるようになるというのだ。
もしpyATSを試すなら、シスコの開発者コミュニティ「DevNet」にあるSandboxを覚えておこう。シミュレーターで使えるオールインワンの環境が整えられており、無料で簡単に試すことができる。ネットワーク環境はそう簡単に準備できないので、シミュレーターとはいえ自由に使える練習の場があると頼もしい。
ここからはpyATSをより詳しく解説していこう。まずはpyATS CLI。その名の通りコマンドラインインターフェースなので、プログラミング知識なくても使うことができて、pyATSの大切なファーストステップとなる。例えば作業前と作業後で「learn」コマンドを実行して情報を取得しておき、「diff」コマンドで簡単に差分を確認することができる。コマンドのシンタックスさえ覚えておけば実行できる。
続いてYAMLベースで自動化ステップを記述するpyATS Blitz。こちらもコマンドさえ知っていれば使える。並列処理やループ処理を簡単に記述できる。
ここまでのところはプログラミング知識不要。「あれ? プログラミングはやらないの?」と思う方もいるかもしれない。東村氏は「重要なのはプロセス」と言う。自動化を目指すなら、まずはpyATS CLIを使ってみて、足りなければpyATS Blitzへとステップアップしよう。そして次のステップアップはいよいよpyATSにPythonを組み合わせる。Pythonでプログラミングできれば可能性は無限大に広がる。