Jibaja)による、「ストリーミングデータ分析でソフトウェア開発を加速する」です。イヴァンは現在、ビッグデータ分析の技術リードを努めています。開発チームに所属しており、初期の製品開発を支えました。セールスリードの大浦です。Jibaja)による、「ストリーミングデータ分析でソフトウェア開発を加速する」です。イヴァンは現在、ビッグデータ分析の技術リードを努めています。開発チームに所属しており、初期の製品開発を支えました。彼らが限られた開発リソースの中でどのようにしてソフトウェア開発を加速させたのか、その秘密をご紹介します。ピュア・ストレージでは、ソフトウェア開発を加速し、新機能を迅速に提供できるようにすることは、お客様の満足度向上につながると考えています。最優先されるのはソフトウェアの品質です。ピュア・ストレージでは、開発の初期段階から継続的統合モデルを採用し、テストの自動化に十分な投資を行うことで、高品質なソフトウェアの開発を目指しています。テストのエラーからはさまざまな知見を得られますが、障害注入テストやソフトウェアシステムの複雑さが原因でデバッグが困難になることもあります。エンジニアリングチームの規模やインフラストラクチャが拡大するにつれ、実行するテストの数は増大します。デバッグのための手作業でのログ調査は、膨大な作業量を伴うため滞りがちになります。インフラストラクチャを構築しました。秒以内にフィードバックを提供できるようになりました。このブログでは、私たちがソフトウェアの自動テストインフラストラクチャをどのように活用したかを説明します。規模を拡張する過程で発生した問題や、それらの問題を解決するために、ビッグデータのリアルタイム分析を使って自動テストインフラストラクチャを拡大した方法についても説明します。開発を始めたばかりの頃、私たちはまだ小規模なエンジニアチームでした。数台の製品プロトタイプと数台のサーバーを使ってお客様の負荷のシミュレーションを行っていましたが、この段階で既に、開発中のテストはできるだけ自動化しようと決めていました。当初の目標は、ソフトウェア開発のための継続的統合モデルを含む、高速反復サイクルを確立することでした。日のテストランは数百回にのぼりました。リリースするまでの間、アジャイル開発サイクルを可能にしてくれたので、迅速にバグを特定し、修正することができました。これが、製品の品質向上につながりました。対するお客様の需要が急増したため、それに合わせて、エンジニアリングチームの規模を拡大し始めました。エンジニアの人数が増えるに従って、並行して開発する機能の数も増えていきました。)も増えていきました。機能シミュレーションシステムへも投資しなければなりませんでした。人必要にどのようなテストにも、複数の障害点があります。FlashBlade、ネットワーク、クライアント、コード行、テストケース、などです。これら多くの要素が、テストで発生したエラーの原因特定(トリアージ)を複雑な作業にしています。分かかるとしましょう。人のエンジニアチームにフルタイムで働いてもらわなければなりません。革新的な新機能やソリューションの市場投入の機会が増すごとに、エンジニアリングチームが増大することになり、この問題はさらに大きく、より複雑になります。人で現在、私たちのトリアージチームには数人のメンバーしかいません。トリアージを自動化していなければ、テストエラーの多くはトリアージされないまま残されているでしょう。ソフトウェアの品質を確保するには、自動化されたテストフレームワークが不可欠でした。私たちが自動化ソリューションの構築に着手したのはこのためです。私たちの目標とするシステムは次のようなものでした。エラーを起こすことがあります。人のエンジニアがそれぞれ手作業でトリアージを行なっていたら、それは作業の重複になります。そこで、このような重複を最小限に抑えるシステムを構築することにしました。システムは、ある不具合を特定するパターン(シグネチャ)を使用して、その不具合を原因とする過去および未来のテストエラーをすべてトリアージします。将来の使用に備えてログを保存する:開発サイクルにおける非常に早い段階(数年前)に入り込んだ不具合が、システムの新しい部分と想定外の相互作用を引き起こしたケースがありました。万が一、あるシグネチャの最初の出現記録を時をさかのぼって見つけなければならなくなった場合に備えて、システムはインフラストラクチャ関連のログをすべて、長期間にわたって保存しておく必要があります。