Developer's Blog

超高速プッシュ配信エンジン BoltzEngine を本日リリースしました

BoltzEngine_Poster-500

こんにちは。アプリケーション共同開発部の門多です。
本日、超高速プッシュ通知配信エンジン BoltzEngine をリリースしました。
開発者自身が製品を紹介するのは緊張著しいですが、ご紹介します。

BoltzEngine って何?

BoltzEngine は、モバイルアプリにプッシュ通知を行うための超高速プッシュ通知配信エンジンです。
現在は、iOS と Android 両方のプッシュ通知に対応していて、
1 秒間で 3.5 万端末へ送信することができます。

これまで一般的なライブラリを用いた開発では、
通知を受信する端末数に比例して送信の時間も長くなってしまっていました。
たとえば、30 万、40 万通あたりになると、全部送り切るまでに分単位の時間がかかっていました。
この問題の解決を目標として開発し、様々な案件で洗練されてきた製品が BoltzEngine です。

BoltzEngine なら、40 万通を 10 秒前後で送り切ることができますし、
それでも速度が不足するなら、サーバを複数台で構成して分散送信させることもできます。

※ 送信性能はサーバ・ネットワーク性能に依存します

BoltzEngine と他のサービスは何が違うの?

現在、プッシュ通知は ASP や mBaaS などのクラウドサービスとして提供されているものは多くある中、
フェンリルがなぜ新しく BoltzEngine を提供するかというと、
「短時間で大量の端末へ通知をしたい」ということ、
「どんな環境でも利用できる」というものを同時に満たすものがなかったからです。

私が所属するアプリケーション共同開発部は、多くの企業様と共同開発をしていますが、
ASP サービスや mBaaS サービスでは要件を満たせないことが多くありました。
特に、セキュリティポリシーの問題でクラウド環境にサーバーを置くことができない企業では、
これらのサービスを選択することはできません。

BoltzEngine は ASP サービスではなく、送信エンジン本体と、
そのサンプルである管理画面・アプリと組み合わせてのご提供となり、
既存のアプリや新しいアプリに対して柔軟・手間をなるべく減らして組み込みができるようになっています。

BoltzMessenger-Poster-500

サンプルの実装をそのまま使うこともできますし、
業務にあわせて、独自にカスタマイズすることも可能です。
カスタマイズする場合は、以下のように、短い Go のコードで実現できます。

req := &Request{
    Addr:       "gateway.push.apple.com:2195",
    Credential: config.Credential(),
    Messages:   []*Message{},
}
for i, token := range tokens {
    msg := &Message{
        ID:      uint32(i),
        Token:   token,
        Payload: []byte(`{"aps":{"alert":"hello"}}`),
    }
    req.Messages = append(req.Messages, msg)
}
c, err := rpc.Dial("tcp", "boltz-server:13010")
if err != nil {
    log.Fatal("Dial:", err)
}
defer c.Close()

var resp apnsproto.Response
err = c.Call("BoltzEngine.BroadcastMessagesToAPNs", req, &resp)
if err != nil {
    log.Fatal("Call:", err)
}

Go 言語で開発されていることで、高速性を実現しているだけでなく、
Linux や Windows や Unix など、サーバの OS を問わずに動作します。
Red Hat Enterprise Linux 7 以上、CentOS 7 以上には RPM パッケージを、
Windows Server 2012 以降にはインストーラもご用意しています。

(今後対応する OS も拡大する予定です)

BoltzEngine についてもっと知りたい

BoltzEngine についての詳細は、以下ウェブサイトをご覧ください。

BoltzEngine

プレスリリース

また、いま開催されているスマートフォン&モバイルEXPO
フェンリルブースでもご紹介しております。
ご来場される方でご興味をお持ちでしたら、お気軽にご相談ください。

サービスを一緒に開発する仲間も募集中

フェンリルでは、BoltzEngine を使ったアプリや、
BoltzEngine 本体を一緒に開発してくれるエンジニアを募集しています。

BoltzEngine を使用した新サービスのアプリを開発するだけでなく、
Go 言語を使って BoltzEngine 本体の高速化と、企業に求められる機能を充実してきます。
アプリ開発はもちろん、Go 言語を使った開発にも興味のある方にはぴったりだと思います。
ご興味のある方は是非ご応募ください。

採用情報

フェンリルのオフィシャル Twitter アカウントでは、フェンリルプロダクトの最新情報などをつぶやいています。よろしければフォローしてください!

Copyright © 2019 Fenrir Inc. All rights reserved.