2021年11月1日月曜日

開発環境をAzureに移行したらテレワーク中の出社が減りました 「オンプレはもう限界」──ゲーム企業が成し遂げたクラウド移行の舞台裏。After migrating the development environment to Azure, the number of employees who are teleworking has decreased. "On-premise is already the limit" ── Behind the scenes of the cloud migration achieved by game companies. 

 After migrating the development environment to Azure, the number of employees who are teleworking has decreased. "On-premise is already the limit" ── Behind the scenes of the cloud migration achieved by game companies. 


 

Published at 07:00 on September 21, 2021
Daiki Yoshikawa , ITmedia]

 A game studio (Minato-ku, Tokyo) that develops smartphone games. In June 2020, the development department "1st Business Headquarters 2nd Development Department" that uses the game engine "Unreal Engine" shifted the development that had been done on the in-house server to the development platform centered on IaaS "Microsoft Azure". As a result, trouble-shooting has disappeared, and the number of employees attending telework has decreased.

photoNobuhiro Saito (S Group Leader, 2nd Development Department, 1st Business Headquarters, left), Hiroshi Tohari (Sub Leader, 2nd Unit, 2nd Development Department, 1st Business Headquarters, Right)

 “We have a shortage of server engineers, so we needed to keep down infrastructure maintenance costs, and we couldn't continue on-premises anymore.” ── Mr. Hiroshi Tohari of the company (1st Business Headquarters No. 2) Development Department S Group 2nd Unit Sub-Leader) talks about the process of cloud computing.

 On the other hand, it was difficult to get the understanding of the superior due to problems such as migration costs, and it was not possible to realize cloud computing until now. How did the second development department realize "cloud migration with fewer attendances"? We talked to Mr. Tohari and Mr. Nobuhiro Saito (S Group Leader, 2nd Development Department, 1st Business Headquarters).

"No one can manage it as it is" Server inspection puts pressure on business

 Before introducing Azure, the 2nd development department built a development environment on the in-house server, and in the event of trouble, the information system department basically went to the server room to handle it. However, due to the lack of specialized human resources, such work was a burden on the business.

 When the corona wreck spreads and teleworking begins, the burden of troubleshooting increases further. Despite the corona illness, he had to go to work once every two weeks. "When something goes wrong, it's getting harder and harder to get to work, and I'm wasting travel time. I can see that no one can manage it as the number of servers increases, partly because there aren't many people available. "(Mr. Tohari)

 However, the cost of introducing the cloud was high, and at first it was not understood by the superior. Therefore, Mr. Saito and his colleagues re-examined the cost of operating the server on-premises and persuaded their superiors.

photoNobuhiro Saito (S Group Leader, 2nd Development Department, 1st Business Headquarters)

 "On-premises looks cheap at first glance, but there are many hidden costs and man-hours such as electricity bills and labor costs for people who commute on holidays due to maintenance. Make these numbers as visible as possible so that you can understand the merits of clouding. "(Mr. Saito)



"Use with version control tool" is the trigger for Azure selection

The confusion of "combined version control tools" triggered the selection of Azure

 In this way, the 2nd Development Department has moved to a multi-cloud environment that uses "Google Cloud Platform" (GCP), etc., centered on Azure, under the leadership of Mr. Tohari, who has been conducting cloud research independently for some time. There are several reasons for choosing Azure as the main foundation.

 One is compatibility with version control tools. Originally, "Subversion" was used as a version control tool in the 2nd development department, but it was changed to "Git" in 2018 at the request of employees. However, it didn't go well with Unreal Engine, and it wasn't well received by some employees, so I ended up using the two tools together.

 On the other hand, troubles such as data inconsistency due to the combined use of tools have been occurring one after another, and it is said that they have been busy dealing with them. Therefore, we are considering the version control tool "Helix Core" provided by Perforce Inc. in the United States as a further migration destination. We decided to adopt it after testing compatibility with Unreal Engine on an in-house server.

 When unifying the version control tools, we also checked the cooperation with "Azure AD Premium", which was adopted by Game Studio as an in-house authentication platform. Since it was judged that security could be ensured even in a telework environment, it was decided to adopt Azure as an easy-to-operate platform for both Azure AD Premium and Helix Core.

photoHiroshi Tohari (Sub-Leader, 2nd Unit, S Group, 2nd Development Department, 1st Business Headquarters)

 The other is to build an integrated environment for "DevOps". DevOps refers to a method of automatically building and testing source code while developing. Initially, Mr. Tohari was considering IaaS such as "Amazon Web Services" (AWS) and GCP as the main foundation, but since he wanted to activate DevOps with the opportunity of cloud computing, DevOps called "Azure DevOps" He said he chose Azure, which has a managed service for.

For a multi-cloud system that combines Azure and GCP

 In the new development environment built based on this background, DevOps, Helix Core, etc. are Azure, and the server of the game itself, API server, etc. are operated by GCP. The reason for using GCP together is that since open source is often used for API development, it is judged that GCP, which also has many managed services based on open source, has a higher affinity.

 In addition to GCP, IaaS with a fixed monthly fee is also used as a device to reduce operating costs. By operating Helix Core's proxy server on this IaaS and accepting employee access once here, it is possible to prevent the charge of Azure, which is a pay-as-you-go system, from increasing. However, the IaaS service name used in this mechanism is not disclosed.

 "One project handles hundreds of gigabytes of files, so if you have a team of 50 or 100 people and everyone exchanges data directly from Azure, it's a lot of money. Put a proxy server on another IaaS. And, because the cache does not go to Azure (access), I use it as a trick. "(Mr. Tohari)

 The office floor has also been reduced because the server room is no longer required due to the cloud computing. Through these efforts, costs have been reduced, and "on-premises may be cheaper for normal operating costs, but considering the costs involved in the event of a breakdown, the cloud is (cost-effective) better," he said.

Two things that have come in handy with cloud migration

 A new development environment for the 2nd Development Department, which was built by combining three types of IaaS centered on Azure. In this new environment, there are two main points that are more convenient than the old environment.

 First, with Azure DevOps, you can do many builds that you could only do once a day in your on-premises environment. In the new environment, the Azure service "Azure Virtual Machine Scale Set" is used. Any number of virtual servers with the software required for build installed can be automatically scaled at a cost.

 In the on-premise environment, it was possible to build once a day and only at night, but in the new environment, it is possible to build 20 to 30 times during the day. In addition to load balancing, this has made it possible to quickly respond to errors found after the build.

 The other is that it is now possible to handle troubles remotely.

 "If you really have to deal with it, you can do it remotely in the cloud. There are few trouble-shooting offices these days. It's great that you can take immediate action without traveling time." (Mr. Tohari)

 On the other hand, there are also problems. Recently, the number of external human resources living in the United States and Europe is increasing in game studios, but since the new environment uses the domestic region of Azure, the delay tends to increase when accessing from overseas.

 To solve this problem, the company will install servers in overseas regions by the end of this year. The policy is to make it possible to mirror servers in overseas regions by utilizing the Azure function "VNET peering" that connects virtual networks.

Considering Unity support and expansion to other departments

 The 2nd Development Department has improved its ability to respond to troubles by utilizing IaaS. Currently, it is operated as a development platform limited to Unreal Engine, but in the future, it is considering support for the game engine "Unity". He says he wants to use the know-how of this migration to expand the environment where DevOps is possible to other departments.

 "Some departments in the company only handle Unity. All that is required for Unity support is to change the software installed on the virtual server, so by making it possible to reuse the development environment, at least (to which I belong) is the first. 1 Business Headquarters wants to standardize the DevOps environment. "

[Editing history: September 21, 2021 3:55 pm Initially, the title etc. stated that "after migrating the development environment to Azure, holiday commuting decreased", but it was changed based on additional interviews. Also, Helix Core was provided by Epic Games in the US, but it was corrected because it was Perforce in the US. ]

ーーーー


2021年09月21日 07時00分 公開
[吉川大貴ITmedia]

 スマートフォンゲームなどの開発を手掛けるゲームスタジオ(東京都港区)。ゲームエンジン「Unreal Engine」を使う開発部署「第1事業本部第2開発部」では2020年6月に、これまで社内サーバで行っていた開発をIaaS「Microsoft Azure」中心の開発基盤に移行。その結果、トラブル対応がなくなり、テレワーク中の出社が減ったという。

photo斎藤信弘さん(第1事業本部第2開発部Sグループリーダー、左)、戸張宏さん(第1事業本部第2開発部Sグループ第2ユニットサブリーダー、右)

 「うちはサーバエンジニアが不足している状態にあるため、インフラのメンテナンスコストを抑える必要があり、これ以上オンプレミスを続けることは限界だった」──同社の戸張宏さん(第1事業本部第2開発部Sグループ第2ユニットサブリーダー)はクラウド化の経緯についてこう話す。

 一方、移行コストなどの問題で上長の理解がなかなか得られず、これまではクラウド化を実現できていなかったという。そんな第2開発部による“出社が減るクラウド移行”はどのように実現したのか。戸張さんや斎藤信弘さん(第1事業本部第2開発部Sグループリーダー)に話を聞いた。

「このままでは誰も管理できなくなる」 サーバ点検が業務を圧迫

 第2開発部ではAzureを導入する前、社内サーバ上に開発環境を構築しており、トラブル時などは基本的に、情報システム部がサーバルームに行って対応していた。しかし専門人材が少ないことから、こういった作業が業務の負担になっていたという。

 コロナ禍が広がりテレワークが始まると、トラブル対応の負担はさらに増加。コロナ禍にもかかわらず、2週間に一度は出社が必要だったという。「何か問題が起きたときに出社するのがだんだん難しくなり、無駄な移動時間も出てきた。対応できる人員が少ないこともあり、サーバが増えると誰も管理できなくなるのが目に見えていた」(戸張さん)

 しかしクラウド導入に掛かるコストが大きく、当初は上長から理解が得られていなかった。そこで斎藤さんたちはオンプレミスでのサーバ運用に掛かっているコストを改めて洗い出し、上長を説得したという。

photo斎藤信弘さん(第1事業本部第2開発部Sグループリーダー)

 「オンプレミスは一見安く見えるが、電気代やメンテナンスで休日出勤する人の作業時間・人件費など、隠れたコストや工数が多い。これらの数字をできるだけ可視化し、クラウド化のメリットを理解してもらった」(斎藤さん)



「バージョン管理ツール併用」がAzure選定のきっかけに

「バージョン管理ツール併用」の混乱がAzure選定のきっかけに

 こうして第2開発部は、以前からクラウドの研究を独自に進めていた戸張さん主導の下、Azureを中心に「Google Cloud Platform」(GCP)などを併用するマルチクラウド環境に移行した。メインの基盤としてAzureを選んだのにはいくつかの理由があるという。

 一つはバージョン管理ツールとの相性だ。第2開発部ではもともとバージョン管理ツールとして「Subversion」を使っていたが、社員の要望を受け18年に「Git」に移行。しかしUnreal Engineとの相性が悪く、こちらも一部の社員から不評だったことから、結局2つのツールを併用する形を採用していた。

 一方でデータの不整合など、ツールの併用によるトラブルも相次いでおり、対応に追われていたという。そこで、さらなる移行先として米Perforce社が提供するバージョン管理ツール「Helix Core」を検討。社内サーバでUnreal Engineとの相性などをテストした上で採用を決めた。

 バージョン管理ツールの一本化に当たっては、ゲームスタジオが社内の認証基盤として採用していた「Azure AD Premium」との連携もチェック。テレワーク環境下でもセキュリティが確保できると判断できたことから、Azure AD PremiumとHelix Coreの両方を運用しやすい基盤としてAzureの採用を決めたとしている。

photo戸張宏さん(第1事業本部第2開発部Sグループ第2ユニットサブリーダー)

 もう一つは「DevOps」に向けた統合環境の構築だ。DevOpsとは開発しながら自動でソースコードをビルドしたり、テストしたりする手法を指す。戸張さんは当初、「Amazon Web Services」(AWS)やGCPといったIaaSもメインの基盤として検討していたが、クラウド化を機にDevOpsを活発化させたいと考えていたため、「Azure DevOps」というDevOps用のマネージドサービスがあるAzureを選んだという。

AzureやGCPを組み合わせたマルチクラウド体制に

 こういった背景を踏まえ構築した新しい開発環境では、DevOpsやHelix CoreなどはAzureで、ゲームそのもののサーバや、APIサーバなどをGCPで運用する構成を採用。GCPを併用する理由は、API開発などでオープンソースの活用が多いことから、同じくオープンソースをベースにしたマネージドサービスが多いGCPの方が親和性が高いと判断したためという。

 運用コストを減らす工夫として、GCPに加えて月額固定料金制のIaaSも併用。このIaaS上でHelix Coreのプロキシサーバを運用し、社員のアクセスを一度こちらで受け付けることで、従量制であるAzureの料金がかさむことを防いでいる。ただし、この仕組みで使っているIaaSのサービス名は非公開。

 「一つのプロジェクトで何百GBのファイルを扱うので、チームの規模が50人や100人になり、全員がAzureから直接データをやりとりすると、かなりのコストになる。別のIaaSにプロキシサーバを乗せると、キャッシュの分はAzureに(アクセスが)行かないので、裏技的に使っている」(戸張さん)

 クラウド化によってサーバルームが不要になったことから、オフィスのフロアも削減。こういった取り組みによりコストも削減し「普段の運用コストだけならオンプレミスの方が安いかもしれないが、故障したときにかかるコストなども踏まえると、クラウドの方が(コストパフォーマンスが)良い」という。

クラウド移行で便利になった2つの点

 Azureを中心に、3種類のIaaSを組み合わせて構築した第2開発部の新しい開発環境。この新環境では、旧環境に比べて便利になった点が大きく分けて2つあるという。

 一つは、Azure DevOpsを採用したことで、オンプレ環境では1日1回だけしかできなかったビルド作業を何度もできるようになったことだ。新環境ではAzureのサービス「Azure仮想マシンスケールセット」を活用。ビルドに必要なソフトウェアをインストールした仮想サーバを、コストをかければ何台でも自動スケーリング可能にした。

 オンプレ環境では1日に1回、夜間にしかビルドできなかったが、新環境では日中に20~30回のビルドが可能に。これにより、負荷分散に加え、ビルド後に見つかるエラーへの迅速な対応が可能になったという。

 もう一つは、リモートでトラブルに対応できるようになったことだ。

 「どうしても対応しなくてはいけなくなった場合、クラウドならリモートでも対応できる。トラブル対応の出社も最近はほとんどない。移動時間がなく、即時対応できるのも大きい」(戸張さん)

 一方で問題点もある。ゲームスタジオでは昨今、米国や欧州に住む外部人材の起用が増えているが、新しい環境ではAzureの国内リージョンを使用しているため、海外からアクセスすると遅延が大きくなる傾向にあるという。

 この問題を解決するため、同社は年内をめどに海外リージョンにもサーバを設置。仮想ネットワーク同士を接続するAzureの機能「VNETピアリング」を活用し、海外リージョンのサーバをミラーリングできるようにする方針だ。

Unity対応や他部署への展開も検討

 IaaSの活用により、トラブルへの対応力を上げた第2開発部。現在はUnreal Engine限定の開発基盤として運用しているが、今後はゲームエンジン「Unity」にも対応を検討中だ。今回の移行のノウハウを活用し、DevOpsが可能な環境を他部署にも展開したいという。

 「社内にはUnityしか扱っていない部署もある。Unity対応に必要なのは、仮想サーバにインストールするソフトウェアの変更だけなので、開発環境を使い回せるようにしていくことで、少なくとも(自分が所属する)第1事業本部ではDevOps環境を標準化していきたい」

【編集履歴:2021年9月21日午後3時55分 当初、タイトルなどで「開発環境をAzureに移行したら休日出勤が減りました」としておりましたが、追加の取材に基づき変更しました。またHelix Coreの提供元を米Epic Gamesとしておりましたが、正しくは米Perforceだったため訂正しました。】



0 コメント:

コメントを投稿