サーバー群の経緯と将来計画について

8sMQwJs7_400x400.jpgofer2(Niantic)
2020/02/15 06:16
ロサンゼルスのイングレスチームでエンジニアを務めるオフェル・ツーと申します。先に発生したサーバー障害とその対処時間に関してコミュニティの皆さんの誤解を防ぐため、今回はその舞台裏をお伝えすることで現状と今後の展望を明らかにしておきたいと思います。

まず、些か経緯はありました。イングレスはグーグル社内の小規模チームとして発足し、当初は「グーグルアースがコンピュータ・ゲームであったならどうなるか」を題材とした独立ユニットでした。このゲームへ参加するためにはファンアートを紹介せねばならず、ヒストリアル・マーカー・データベースを元にしたポータルを確保していました。このゲームはグーグルの資産基盤のうえに構築されたもので、私たちはそれをクラシック・サーバー群と呼んでいます。

その後、ナイアンティックはグーグル社から独立することで次段階へと移行し、ゲームチームもイングレスで培った経験をもとに第2のゲームとなるポケモンGOを開発するうえで新たな資産基盤を構築しました。この新たなプラットフォーム・サーバー群は、より多くのプレイヤーをサポートできるよう設計されつつ、高性能でありながら低コストなものとなりましたが、イングレスは引き続きクラシック・サーバー群で動作していました。

ポケモンGOが正式に導入されて程なくして、イングレス・チームは中核機能のサポートが失われてしまったことを受けてクライアントの再構築を担うこととなりました。クラシック・サーバー群と同様に当初のクライアントも継続的な開発には向かず、コストのかかる手法で設計されたものだったのです。そこでサーバーチームはクラシック・サーバー群からプラットフォーム・サーバー群へ移行させイングレス独自のリンク形成やフィールド構築といった機能も新たに追加させることにしましたが、残念なことにクライアントとサーバーの双方を移行させるには当初想定していたより遥かに長期間を要すものとなり、iOSのサポートが失われる危険性のあったクライアントが最も優先すべきものとなりました。

イングレスプライムが実装され、チームは不具合修正やサーバー更新に注力することとなりましたが、新サーバーは難題に直面することで1年近くも移行を達成できぬままとなっています。コミュニティの皆さんに失望され、新たな機能実装を先送りさせる危険を冒してまで新サーバーへの移行を目指し続ける必要が果たしてあるのでしょうか。

私たちはコミュニティの皆さんや新機能の実装を優先させることにし、結果として新たなアーキテクチャへ移行せずにクラシック・サーバー群でコスト削減の道を探ることへ移行したのです。しかし、この判断にもまた大きな代償が伴うこととなりました。例を挙げれば、イングレスでは他のゲームで自動的に組み込まれるような新サーバー群を用いた素晴らしい機能は活用できず、不足する機能は全て労力を割いて実装しなければならないのです。

クラシック・サーバー群でのコストを削減させるため、高コストなコンピューター環境から低コストな環境へと移行させることにしましたが、サーバー環境の変更は2枚の写真から違いを見分けるようなものです。見つけ出した箇所は全て修正しましたが、どのような影響が生じるかは予測の難しいことでした。そこで様々な検証が行われ、インテルマップの機能のようにいったん元の状態に差し戻した例もあります。インテルマップも新環境へ組み込まれましたが、まず主要情報が必要となることで結果として遅延が生じることが分かりました。主要情報に関しては達成も間近と楽観視できる状況ですが、依然として解消すべき課題は残されています。

変更するためのコードは既に作成されており、私たちのチームではソフトウェア側への新たな影響を調査するとともに遥かにコスト効率に優れた環境でのクラシック・サーバー群の再導入に注力しているところです。これには引き続き検証と不具合修正が必要であり、その後公開されることでしょう。火曜日に次の検証を実施する予定であり、その後はインテルマップの検証、最終的にはクライアント・サーバー群の検証へ立ち戻る見込みです。そうした末にクラシック・サーバー群を遥かに低コストで運用できるようになり、ゲームを盛り上げていく機能の実装へと注力できるようになるでしょう。新たな機能には既に取り掛かっており、コミュニティの皆さんにご紹介できる準備が整えば、喜んでいただけることでしょう。

今回お伝えしたことで、私たちのチームの意思決定と、どのようにイングレスの新たな将来を形作るかについて、より深くご理解いただければ幸いです。

ofer2
2020/02/15 06:16(Forum)
About the Ingress Server - History and Plans
Hi, I'm @ofer2 and I'm an engineer on the Ingress team in LA. In an effort to be more transparent and open with the agent community about recent server issues and maintenance windows, I wanted to share a behind-the-scenes look to help clarify where things are today, and where we're heading.

First, a little bit of history: Ingress started out as a small team within Google. We were originally an autonomous unit trying to answer the question, "What if Google Earth were a videogame?" The community shared fan art for game invites, captured portals seeded from the Historical Marker Database (HMdb.org), and the game began to grow. The game was built on Google's infrastructure, and it's what we refer to as our classic servers.

Later, Niantic spun out from Google as an independent startup. While Niantic transitioned to its next phase, our game team used lessons learned from Ingress and created new infrastructure for our second game: Pokemon GO. This new set of platform servers was designed to support even more players, and is both high performance and low cost. Meanwhile, Ingress continued to run on our classic servers.

Shortly after the successful launch of Pokemon GO, our Ingress team was tasked with rewriting the client because its foundational core was no longer supported. Like the classic servers, the original client was also designed in a way that made continued development more difficult and costly. On our server team, we made the decision to also move from the classic servers to our platform servers, and write new Ingress-specific features (like links and fields) on top of it. Unfortunately, both client and server transitions took much longer than expected, with the client being the most pressing need due to the risk of losing iOS support. .

Once Ingress Prime was released, the team began refocusing on fixing bugs and server updates. However, the new server still appeared to be roughly a year away from completion leading to a difficult question: Should we continue moving towards the new server at the risk of further disappointing the community and delaying new significant game features?

We decided to prioritize our community and the implementation of new features, resulting in a complete shift to finding cost reductions on the classic server rather than move onto the new architecture. This decision did still come with a hefty price. For example, Ingress cannot take complete advantage of awesome features that are automatically built-in for our other games utilizing the new server, so we must manually implement all of the missing functionality.

In order to reduce the costs of our classic servers, we chose to move our servers out of a high-cost compute environment into a low-cost one instead. Changing environments is like playing a game of spot the difference with those two pictures: we've fixed all the things we found, but with a picture large enough, changes small enough, and some changes mattering while other don't matter, it has been very difficult to anticipate what impacts will occur, which has led to various cases of testing and then rolling back features such as Intel. Intel was deployed into the new environment but the team discovered a central piece was needed first, resulting in the delay. We are optimistic that the central piece is very close but still need to hammer out some remaining issues.

All of the code for the changes have already been written and our team is currently focused on re-deploying the classic servers in this much more cost-friendly environment as well as evaluating the new impacts on the software side. We still need to test, fix bugs, and then publish. We will be starting our next round of testing on Tuesday. Once done, we will go back to testing Intel and eventually, the client servers. At that point, we will be running on a much lower cost for the classic servers which enables us to focus on features that will revitalize the game. New feature specs are already in the works that we hope the community will be excited for once it's ready to be shared.

I hope this update has provided more clarity into the decision-making of our team and clearer transparency into how we're actively shaping a new future for Ingress.

Fumi
2020/02/15 11:01(Twitter)
"About the Ingress Server - History and Plans" by Ofer2, engineer on the #Ingress team.
https://community.ingress.com/en/discussion/9267/about-the-ingress-server-history-and-plans

 

前へ

スキャナー変更事項一覧(v2.40.1)

次へ

ディダクト・アルティメイタム:手掛かり