CodeZine(コードジン)

特集ページ一覧

インフラエンジニアがPythonを身につけOSSにも貢献しよう! 目指すはハイブリッドエンジニア【デブサミ2021夏】

【C-8】インフラエンジニアだけで終わらない。目指すはプログラミングも出来るハイブリッドエンジニア

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/09/17 12:00

 Cisco Systems Canadaの東村誉氏は少しユニークなエンジニアだ。データセンター企業を経て日本のシスコシステムズ(以降、シスコ)に転職し、2014年にカナダへ移住して今ではカナダにあるシスコに勤務している。ネットワークエンジニア歴20年以上、ソフトウェアエンジニア歴5年。今ではPythonを駆使してpyATSの開発も行う。日本とカナダ、ネットワークとソフトウェア開発、日本語と英語、いろんな意味でハイブリッドを実践している。今回はネットワークエンジニアがソフトウェア開発の世界に踏み入れるためのステップを解説する。

目次
Cisco Systems Canada Co. ソフトエンジニアリング部 テクニカルリーダー 東村誉氏
Cisco Systems Canada Co. ソフトエンジニアリング部 テクニカルリーダー 東村誉氏

ネットワークエンジニアが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でプログラミングできれば可能性は無限大に広がる。


関連リンク

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:【デブサミ2021夏】セッションレポート

もっと読む

著者プロフィール

  • 加山 恵美(カヤマ エミ)

    フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレータ...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5