会社の略歴
New Relicは現在のCEOであるLew Cirne(ルー・サーニー)により2008年に設立されました。New Relicという会社名は彼の名前のアナグラムになっています。2013年に上場、2014年にニューヨーク証券取引所(NYSE)にて株式を公開しました。
パブリッククラウドの利用が進む中、Amazon Web Service、Microsoft Azure、Google Cloud Platform、IBM Cloud、Pivotal Cloud Foundryといったクラウドプロバイダーとの戦略的提携を行っています。
現在、カリフォルニア、アトランタ、ポートランド、シドニー、ダブリンなど世界中に16箇所の拠点を持っており、その中の一つが2018年に設立されたNew Relic株式会社の拠点である東京です。
製品の歴史
New Relicの製品はお客様のアプリケーションを助け、お客様がより良い価値をエンドユーザーに届けられるよう、その時に応じたものを提供するよう進歩を続けてきました。例えば、APMからMobile, Browser, Infrastructureへ、監視SaaSから可観測性プラットフォームへ、といった流れです。
New RelicはRailsアプリケーションの先進的なアプリケーションパフォーマンス監視(APM)の業界分野で初めてSaaSとして公開しました。これが2009年のことです。ただ、LewのQuoraへの投稿を読むと、SaaSモデルが重要というわけではなく、あくまで数分で起動できてデータが見え始めるという「すぐにうまくいく」ことが確認できる、のが重要で、SaaSモデルは派生的なものと語っています。その後、対応言語も増えていきます。現在公開しているリリースノートの履歴を見る限り、2011年にはRuby, Java, PHP, Pythonをサポートしていました。2012年にC# (.NET Framework), 2013年にnode.js、2016年にGoがリリースされています。また、2019年にはCのSDKをリリースしています。これはC言語そのもので使うこともできますが、C SDKのAPIを実行することでNew Relicが製品として対応していない言語でも利用できるようにするものです。さらに、言語としてのサポートに加えて、New Relicはフレームワークやライブラリのサポートも拡充しています。使っているフレームワークやライブラリがサポートされていれば、コードの変更をせずに、もしくはするとしても最小限の変更でアプリケーションの計測ができるようになります。
2010年代はAndroidやiOSでのモバイルアプリが広く使われるようになり、Webアプリもよりリッチな処理を行うようになっていきます。APMでサーバーサイドのアプリケーションの計測だけができていればよかった時代から、フロントエンドでのパフォーマンスの計測も必要になってきました。その中、New Relicは2013年にAndroidとiOSむけにモバイルアプリのパフォーマンス監視ツールであるNew Relic Mobileの一般利用を公開し、翌年2014年にはWebアプリのフロントエンドパフォーマンス監視のNew Relic Browser、外形監視のNew Relic Syntheticsを公開しています。
2010年代は同時にパブリッククラウドの利用が一気に進んだ時代でもあります。New RelicはSaaSなので、パブリッククラウド上のアプリの計測に相性が良かったことがあり導入も進みました。すると、アプリだけではなくそのアプリが動くインフラ環境の計測も必要だということで、2015年にインフラストラクチャーのリアルタイム監視のためにOpsmatic社を買収し、2016年にNew Relic Infrastructureを公開しました。Infrastructureは、オンプレミス・パブリッククラウド問わずOSレイヤーの監視ができます。さらに、パブリッククラウド連携によりパブリッククラウドのパフォーマンスとアプリケーションのパフォーマンスを同時に計測できるようになります。さらに、On-Host Integrationという機能でデータベースやメッセージキューといったミドルウェアの計測も可能にしました。Infrastructureの視点でいうと、Dockerやkubernetesといったコンテナの利用も進みました。2018年にCoScale社を買収しマイクロサービスとkubernetesへの対応を強化し、同年Infrastructureの一機能としてkubernetes Cluster Explorerを公開しました。
ログの収集・分析という機能でいうと、New Relic Logsをリリースしたのが2019年であり他と比べて少し遅く感じるかもしれません。これは、New Relicにはカスタムイベントという機能があり、ある時刻に発生したイベントの情報をNew Relicに送信し、New Relicで可視化することができました。APM、Browser、MobileなどNew Relic Agentを導入したアプリケーションからはログではなくイベントを使うことで、より強力なNew Relicの可視化機能を他のNew Relic製品と合わせて使うことができるためでした。昨年公開したNew Relic Logsは例えばkubernetes本体のようなNew Relic Agentを導入できないようなツールの出力する情報をNew Relicプラットフォームで収集し、kubernetesの上あるいはその周辺で動くアプリケーションの計測を強化するものです。Metrics、Logs、Tracesの三要素が可観測性に必要な三要素という話もありますが、New Relicではこれにイベントを加えたMELTが可観測性に必要な四要素だと考えています。
今出てきた可観測性が最後のキーワードです。当初は少数の大きなアプリケーションを「監視」していれば十分という考えもありました。しかし、マイクロサービス化が進みアプリケーションというよりサービス全体を構成する要素(エンティティとNew Relicでは呼んでいます)の数が爆発的に増えた状態では個々の要素を製品単位で監視するだけでは不十分です。サービス全体の状態を計測し、把握し、必要なアクションを取れる状態にしておく必要があります。これを可観測性と呼びます。可観測性という言葉が出てくる前からNew Relicは可視化に力を入れており、2014年にカスタマイズしたデータ分析やダッシュボードを作るNew Relic Insightsを公開しました。そして、2019年に個別の製品という切り口ではなく、あらゆるエンティティを共通して可視化できるプラットフォームとしてNew Relic Oneを公開しました。InsightsにあったNRQLによるデータ分析とダッシュボード機能はより強化してNew Relic Oneに搭載された他、APM、Browser、Mobile、Syntheticsの既存製品の機能もNew Relic Oneからアクセス可能になります。さらにNew Relic Oneのコンポーネントをプログラム可能なものとすることで、多くの開発者の方自身がコンポーネントを作ることができるようになりました。
New Relic One公開後も「A More Perfect Internet」を実現すべくより先進的な機能を公開しています。2020年には、Proactive DetectionとIncident IntelligenceをAIOpsの機能として公開しました。また、New Relic Edgeというクラウドネイティブで動作するHeadベースの分散トレーシングを業界に先駆けて一般公開しています。
技術の歴史
New RelicはLewがRubyアプリケーションを開発していて、監視するための便利なサービスがないということで作り始めたのがきっかけです。以前使われていたNew Relicサービスのサブドメイン名rpmはRuby Performance Monitoringの略とも言われています。業界で初めてクラウドプラットフォームとして公開しましたが、アーキテクチャとしてはRubyのモノリスなアプリケーションでデプロイの頻度も少ないものでした。
その後、まずAPM分野で.NET Frameworkおよび.NET Core (C#)、Java、PHP、Python、node.js、Go、Cと対応言語および対応ランタイムを増やしていきます。その過程で、それらの言語の専門エンジニアが開発・サポートを行っています。
New Relicのクラウドプラットフォームそのものに目を向けると、当初のモノリスな構成からマイクロサービスに変化しています。これは現在進行形で続いています。その過程で、DockerやGo言語をいち早く導入しています。また、2017年の時点で1時間あたり数十億件のイベントを処理していますが、これはKafkaの大規模クラスターにより実現しています。
New Relicはこのような技術の変遷で得た経験をさまざまな形で公開し、エンジニアに共有しています。Kafka Summit SF 2017、SRECon 18 Europeといった登壇もそうですし、ブログでもDockerの導入やOpenTelemetryの解説も行っています。
監視プラットフォームでは監視データの形式がベンダー依存するため、監視ツール間で互換性がないという問題があります。最近、APMのメトリクスとトレースの分野でOpenTelemetryと標準化プロジェクトがCNCFプロジェクトの一つとして活動していますが、New RelicはOpenTelemetryにも参加しています。また、分散トレースのためのトレースデータの標準化としてW3C Trace Contextという規格の批准が間近ですが、New Relicはw3cメンバーの一つであり、New Relic Agentではサポートしている全ての言語で従来のNew Relic形式と標準化された形式の両方が利用できるようになっています。
ぜひお伝えしておきたいのが、New RelicはNew Relicというサービスの(おそらく)最大の利用者でもあります。New RelicのクラウドプラットフォームそのものをNew Relicで監視しています。これはドッグフーディングであるとともに、この規模のクラウドプラットフォームを健全に保てるのにNew Relicが非常に効果的でもあるからです。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。