Categories: 社会貢献

2020年度インターンシップインタビュー:CML + pyATS で実現する Network CI/CD

シスコ ジャパン サービスプロバイダ SE 部門では、2020年7月1日から 9月30日までの 3か月間、2名のインターン学生を受け入れ、第一線で働く現場 SE とともに、シスコの最新製品・技術を用いたソリューションの開発に取り組んで頂きました。

今回の記事では、インターンに参加した橘 直雪さんが取り組んだソリューションについて詳しく紹介していただきました。

なお、シスコのインターンシップ プログラムや会社・社員に対して抱いた感想については、ラウンドテーブルに掲載していますので、合わせてご覧いただければと思います。

(聞き手: 佐々木俊輔)

佐々木: 今回のインターンで取り組んだ内容について教えてくれますか?

橘: 成果発表のタイトルは「CML + pyATS で実現する Network CI/CD」でした。シスコが提供する仮想ラボシミュレータである Cisco Modeling Labs と、テスト自動化フレームワークである pyATS を使って、企業ネットワークの導入テストの自動化を実現するソリューションを作りました。さらに、ファイルの管理に Gitlab と、それが備える Gitlab CI 機能を活用することで、人手を介さないテスト環境の自動構築、テストの自動実行ができることを示すことができました。

ソリューション全体像

 

CML 2.0 によるネットワークのシミュレーション

 

pyATS blitz によるテストコードを Gitlab レポジトリ管理

 

Gitlab CI/CD による自動テストの実行

佐々木: これまでなかった新しい点はどのような点ですか?

橘: Network CI/CD 自体が、最近注目され始めた新しい取り組みだと考えています。アプリケーション開発・運用の世界では、Git によるコード管理や CI/CD による継続的なアプリケーションコードの開発・テスト・展開はすでにずいぶん前から常識になっています。ネットワーク設計・運用の世界でも、OS のプログラマビリティの実装が進んできたことで、同様の開発手順が採用できるようになったと言えると思います。

また、ツールという面では、5月にリリースされたばかりの CML 2.0 を利用したのは新しい点だと考えています。CML 2.0 は前バージョンよりも API が使いやすくなっており、開発者にとっては嬉しいアップデートでした。

さらに、pyATS の blitz と呼ばれる比較的新しい機能を使ってテストを記述したのも新しい試みでした。多くの企業では、ネットワークのテストは、スプレッドシートに書かれた「試験手順書」を、人がコピー&ペーストで実行していくような作業を今でも行っています。pyATS blitz ではそうした手順を YAML で記述してそのまま実行することができます。高度なプログラミングの知識がなくてもテスト自動化が実現でき、Network CI/CD に取り組むハードルを大きく下げてくれたと思います。

佐々木: 今回開発したソリューションは、大学や企業でどのように活用できるでしょうか?

橘: 企業・大学・通信事業者を問わず、あらゆる組織のネットワーク部門で設計・開発・運用の自動化に活用できるソリューションだと考えています。
IT 人員不足や IT部門の生産性向上はあらゆる組織で課題になっています。今回のような自動化に取り組むことは IT 部門の人員の労力を減らすだけでなく、ヒューマンエラーを削減し、ネットワーク品質の向上に役立つと考えています。
また、アプリケーション開発者が使うツールとの共通化が進むことは、エンジニアのキャリアにとっても大変有益です。コードを書きこなせる優秀な人材がネットワーク業界、アプリケーション業界の垣根を越えて移動しやすくなると思います。学生としては、ネットワークエンジニアの職業としての魅力が増えることにもつながると考えています。

佐々木: 時間があれば、今回の成果に加えて、どういった内容を盛り込みたかったですか?

橘: 今回の成果物は、インターン期間の都合もあり、とてもシンプルなテストケースを実装しただけでした。実際の企業ネットワークでは、もっと複雑なトポロジーやテストパターンを扱う事も多いと思います。実際に活用してもらうために、より実践的な内容を盛り込む時間があったらよかったと思っています。

また、昨今のネットワークのトレンドでもある SDN 製品の利用まで成果に盛り込むことはできませんでした。シスコには、Cisco DNA Center や Cisco ACI、Cisco NSO といった面白そうな SDN 製品があり、pyATS には連携機能も備わっていました。次の機会があれば、それら SDN 製品を組み込んだソリューションを開発したいです。

佐々木: 良い結果が出て素晴らしいですが、苦労した点もありますか?

橘: 週 2回、3ヶ月間、すべてリモート勤務という環境だったにもかかわらず、最初に成果目標を相当チャレンジングなものに設定してしまいました(笑)。今回使った CML や pyATS は今回初めて触れたものだったので、使い方の習熟から始めなければならず、苦労しました。

佐々木: インターンでのシスコの開発支援体制については、どうでしたか?

橘: ラボの仮想環境の提供や Gitlab レポジトリの作成、シスコのソフトウェア ダウンロードなど、開発環境の構築に必要なものを一通り提供してもらえました。
また、シスコでは、過去に起こった問題や知見をブログで共有したり、事例をドキュメント化してストックしていくことが積極的に行われていました。Google で検索するよりも純度が高い情報が見つかり、開発作業中に情報の検索で困ったことはありませんでした。他の会社では、Wiki が乱立してなかなか情報にたどり着かないこともあると聞いています。

佐々木: 最後にインターンでソリューション開発に取り組んだ感想をお願いします

橘: 楽しかったです。シスコの充実した環境でやりたいことに取り組ませてもらえました。シスコの製品を自由なダウンロードして利用したり、シスコ社員のサポートがもらえる状態でソリューション開発に取り組めるという貴重な経験ができました。ハッカソンでも取り組んだ、自動化というテーマを突き詰めるという取り組みができたのも良かったです。

佐々木: ありがとうございました。

インターン学生のご紹介

 直雪さん

慶應義塾大学環境情報学部4年生。村井純研究室所属。Cisco DevNetアイデアソン&ハッカソン2020 東京優勝。興味分野は、高速ネットワーキング、ネットワークプログラマビリティ。研究テーマは、「XDP + SmartNICを用いたソフトウェア割り込み高速化」。

 

佐々木 俊輔

2008 年にシスコ入社。

サービスプロバイダー担当のアカウント SE として7年間、モバイルネットワーク、データセンター、法人ネットワークなど様々なお客様・部署へのプリセールス活動に従事。その後、シスコの買収した製品群に合わせてNFV / SDN / Automation 領域での知識を活かした経験を積み、サービスプロバイダ部門全般を担当するアーキテクトとして活動中。

学生時代は地球惑星物理学を専攻、物理現象のコンピュータモデリングとシミュレーションに取り組む。

最近の趣味はロードバイク。