この記事は、Software Development の Director である Edwin Zhang によるブログ「The Best 3 New Tools We’ve Added to the DevNet Tech Stack」(2021/5/24)の抄訳です。
シスコ DevNet は、絶えず更新されるシスコの API ドキュメント、1,100 以上の Code Exchange エントリ、54 の DevNet サンドボックス、そして 740 の Learning Lab がホストされるプラットフォームです。この DevNet コミュニティでは、ここで教わることを実践することが重要だと考えています。そのため、このプラットフォームは、進化し続ける最新のハイブリッド インフラストラクチャ上に構築されています。私たちは、この意欲的な一連のサービスを構築、改良する上で、多くのことを学びました。
DevNet は 100 を超えるオンプレミスおよびクラウドベースのマイクロサービス上で構築され、エンジニア、デザイナー、そしてコンテンツクリエイタのチームにより、リアルタイムでアップデートされます。 このサイトを運用するために私たちが使用するツールにはいくつかの新しいツールがあり、非常に役立つことが証明されています。ここでは、新しいツールのベスト 3 と、私たちがそれらから学習した興味深いことをいくつかご紹介します。
いつも常に素晴らしい出来ではなかった
前述のとおり、DevNet は進化し続けるアーキテクチャをベースとしています。2014 年にリソースを立ち上げた際には、データセンターのサーバ上で仮想マシンにホストされていました。そのシステムは成長期にすぐに余裕がなくなりました。ユーザの成長に合わせてスケールアップされず、サービスに新しい機能を追加することが次第に難しくなりました。
2017 年に DevNet は、Kubernetes を使用するクラウドにホストされたマイクロサービスに移行されました。現在は、Prometheus、Elastic Search、Kibana、Grafana などのクラウドネイティブ プラットフォームを使用しています。この設定の持ち前のフレキシビリティにより、そして DevOps 開発モデルを使用することにより、新しいサービスやアプリケーションを DevNet に追加すること、そして増え続けるユーザの要求に歩調を合わせるキャパシティを追加することが簡単になりました。
最近私たちは、アプリケーションのパフォーマンスや、DevNet 上のユーザエクスペリエンスの拡大を推進してきました。すなわち、パフォーマンス モニタリング、フルスタックの可観測性、そしてスタックを越えて他のソリューションによって作業することです。ここからは、ツールと、私たちが学習したことについてお話します。
ThousandEyes
developer.cisco.com はグローバルコミュニティにサービスを提供します。そのパフォーマンスやエクスペリエンスは、ユーザがどこに居るかによって大きく異なる可能性があります。大規模なグローバルデプロイメントの責任者はよくご存じのことと思いますが、局所的なパフォーマンスの問題は、サービスの停止、局所的な接続性問題、あるいは数えきれない他の問題によって発生します。私たちは、ThousandEyes Cloud Agents を使用しています。これは、ユーザのエンドポイントからクラウドにホストされた私たちのアプリケーションまで、私たちのアプリケーションが使用する下層ネットワークパスの可視性を実現します。Cloud Agents により、特定のグローバルな地域におけるユーザエクスペリエンスを理解できるようになります。
私たちにとって重要なことは、ThousandEyes の「合成」テストが理論上のものではまったくないことです。これはリアルタイムなインターネットモニタリングに基づくもので、極めて大きな価値があります。
DevNet 用の ThousandEyes パス可視化ビュー。この図は、
ThousandEyes のエージェントが、世界中のさまざまな場所から、
DevNet アプリケーションページを開いた際に表示されるネットワークパスを示します。
私たちは、ThousandEyes 合成トランザクションテストを UI テストの自動化にも使用しています。そうでなければ、このプロセスは繰り返しの多い手作業になっていたでしょう。ThousandEyes は、ユーザのブラウザインタラクションの記録に使用できる Recorder と IDE を備えており、CI/CD パイプラインに統合されるトランザクションテストを作り上げます。 レポジトリの変更を進める一方で、ThousandEyes はテストを連続的に実行することができます。そして、この連続 UI テストは、ユーザの接続元であるグローバルな地域で行われます。
ThousandEyes は非常に実務的な問題を解決し、私たちはそれを適用する新しい方法を継続的に見出しています。たとえば、ThousandEyes のアラートを AppDynamics インターフェイスにプッシュできます。このことは、ネットワークとアプリケーションパフォーマンスの問題を 1 枚の窓ガラスに統合し、NetOps と AppOps が問題の根本原因を迅速に特定するために垣根を取り払うことを可能にします。
AppDynamics (「AppD」)
ユーザエクスペリエンスを最適化するためには、どこでアプリケーションのパフォーマンスを最適化できるか知る必要があります。以前私たちは、カスタム Grafana ダッシュボード付きの Prometheus を使用して、Kubernetes クラスタをそれぞれのマイクロサービスの CPU、メモリ、その他のリソースの使用量を含めてモニタリングしていました。しかしこの組み合わせでは、アプリケーション改善のための洞察に必要なパフォーマンスデータが得られませんでした。
今日、シスコ AppDynamics により、個々の API コールからのレスポンスタイム、またはマイクロサービスやデータベース – たとえば私たちの Learning Lab サービス、動画システム、クイズエンジン、進捗追跡マイクロサービス、MySQL サーバを呼び出す教育コンテンツの配信 – を運用する、完全なビジネストランザクションのための時間などの、極めてきめ細かく価値の高いデータを取得しています。AppD により、私たちのアプリケーションのエンドユーザ エクスペリエンスからデータセンターのインフラストラクチャまでモニタリングできます。
このレベルのインテリジェンスは、とてつもない価値があります。労力を正確に適切な場所に集中させることによって、ユーザエクスペリエンスの反応性を最適化できるのです。
AppD は、アプリケーションスタックの種々の部分を計測およびモニタリングするさまざまな方法を提供します。たとえばブラウザアプリケーション UI をモニタリングするために Javascript エージェントを使用します。また、AppD の SDK for Go を、Golang で書かれたほとんどのマイクロサービスに使用します。Cassandra や MongoDB など、いくつかの異なるデータベースサービスを使用しますが、AppD はこれらのプロセスのためのエージェントを備えています。
このモニタリング機能のスイートを使用して、エンドツーエンドなアプリケーション パフォーマンスをモニタリングできます。このことは、私たちにはとてつもない価値があります。パフォーマンスの問題をピンポイントで迅速に解決するために役立ち、新しいハイパフォーマンスなサービスを作り上げることが容易になるのです。
DevNet AppDynamics Developer Center を参照
AppD を使用する DevNet アプリケーションパフォーマンスモニタリング。この図は、フロントエンドからバックエンドまでの、そしてデータベースの完全なパフォーマンスモニタリングに、DevNet が AppD を活用する方法を示します。
Istio サービスメッシュ
昨年、非実働環境での Istio のテストを始めました。このテストでプラットフォームが組み込まれたマイクロサービスの管理を行っています。そして素晴らしいメリットを見つけました。ますます複雑化するソフトウェアの構造を管理し、バランスを取り、トラブルシューティングするために役に立つということです。
しかし同時に、このツールを使用するための学習には時間がかかります。そして、大きな賭けでもあります。サービスメッシュの構成ミスは、ネットワークやアプリケーションに深刻な影響を及ぼす可能性があるからです。
しかし、ツールの学習に時間を投資することに価値を見出しました。Istio は、私たちの主要な診断および管理ツールの 1 つとなりました。マイクロサービス構成の微妙な変化となり得るインターサービス トラフィックへの影響を解析するためにこのツールを使用しています。必要に応じて、ワークロードをシフトするために自動化を適用することができます。セキュリティが高くサービス間の接続を再構築する必要はありません。
また Istio は、マイクロサービス全般にわたってポリシーベースのアクセス制御を、プログラム制御の下で構成することもできます。
特に多くの可能性があるパイロットが 1 つあります。安定したアプリや構成と新しいアプリや構成との間のトラフィックをさまざまな比率で動的に分割するために、Istio を A/B テストに使用しています。テストの構成や実行が非常に容易で効率的になり、アプリケーション開発のペースを改善するために役立っています。このことはエンジニアの手間を省き、エンジニアは他のプロジェクトの作業により速く取りかかることができます。
まとめ
DevNet はシスコの戦力を倍増させます。開発者のリソース、ドキュメンテーション、それに多くのシスコ製品を取り巻くコミュニティを集結させることが可能になるのです。DevNet プラットフォームを構築し、改良し、継続的に進化させることは、胸が躍るような過程でした。私たちは、DevNet をより価値のあるものとし、ユーザエクスペリエンスを向上させるために、Tech Stack 上で引き続き新しいツールを評価します。
私たちが最近採用した 3 つの重要なツールのこれらの洞察がお役に立てば幸いです。皆さんは、これらのツールをどのようにお考えですか? そして他に価値があることが分かったツールがありますか? コメントをお願いいたします。
ぜひご意見をお聞かせください。ご質問やご意見は下記にお寄せください。
また、Cisco DevNet のソーシャルネットワークにも参加してください。Twitter @CiscoDevNet | Facebook | LinkedIn
新しい Developer Video Channel を見る