SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2018 福岡】セッションレポート (AD)

「アジャイル開発はあくまでゴール達成のための手段」――Yahoo!カード天神チームがたどり着いた開発スタイルと技術【デブサミ2018 福岡】

【A-5】Yahoo!カード天神チームの立ち上げからこれまで

  • X ポスト
  • このエントリーをはてなブックマークに追加

モダンになったYahoo!カードのシステム。そこで採用された技術とは

 このようなプロジェクトを通してモダンになったYahoo!カードのシステム。どのような技術が採用されたのについても山崎氏は解説した。変更前、変更後の技術は図をみれば一目瞭然だが、言語はPHPからJavaに、アーキテクチャはモノリシックからマイクロサービスに、サーバはVMからコンテナへ変わっている。

 Javaを採用した理由の第一は可読性を向上するため。「Javaは型が厳格なため変数の値が明瞭になるからだ」と山崎氏は言う。第二はJavaのデファクトスタンダードのフレームワーク「Spring Framework」の存在。「Spring Bootが開発されて、開発がしやすくなったことも大きい」と山崎氏は説明する。

 次にアーキテクチャをモノリシックなサービスからマイクロサービスへ移行したのは、次のメリットが得られるからだという。メリットの第一は、「影響範囲が限定されるようになるため」と山崎氏は説明する。例えば言語のメジャーバージョンアップをする場合、モノリシックサービスだと全体に影響するが、マイクロサービスだとサービス単位でバージョンアップができるようになる。「影響範囲が大きいと消極的になってしまうが、影響範囲が小さいと心理的にも安心で、積極的にチャレンジしていける」と山崎氏は言う。

 2つめのメリットは、「テスト実行時間の短縮」である。現行のシステムだとテストが1分程度で完了するようになったという。だが、デメリットもある。それは「コードの共有がしにくいこと」。そこで共通コードをライブラリ化し、それを社内のリポジトリ管理ツール(Artifactory)で管理し、各サービスにダウンロードするような形で共有化を図っているという。さらにアプリケーション構築の初期コストの削減も実現している。「初期構築の手順のほとんどを自動化したことで、従来は2時間ぐらいかかっていた初期構築を、約30分でできるようになった」(山崎氏)

 また、サーバにDocker+Kubernetesというコンテナ技術を採用したことで、スケーラブル(アプリケーションのポッドを自由に増減できる)、オートヒーリング(障害が発生したポッドを自動的に削除し新たなポッドを作成するため、ポッドの障害に対応が不要)、ローリングアップデート(アプリケーションを無停止で更新できる)といったメリットが得られるようになったという。このため「サーバの保守運用が非常に楽になった」と山崎氏は言う。

 それでも課題もあった。それは「IPアドレスが定まらないので、IPアドレスによるアクセス制御ができないこと」である。この課題を解消するため、ロールベースの認証システムに変更。ログはSplunkに集約し、アプリケーションログの検索や参照はSplunkで行っているという。

 こういった刷新を行うことで、「扱いやすいシステムになり、開発スピードも向上した」と山崎氏は言い切る。

変更前と変更後の採用技術★モノシリック⇒モノリシックと修正頂けますでしょうか?★
変更前と変更後の採用技術

 最後はアジャイル開発についても、山崎氏なりの考えが語られた。山崎氏はアジャイル開発を「やり方ではなく、より良いやり方を見つけていく姿勢だと捉えている」と言う。よくアジャイル開発をプロジェクトに取り入れると、それをやることが目的になってしまうことがあるという。プロジェクトのゴールは、あくまでもプロジェクトを成功させること。アジャイル開発はそのための手段でしかない。「アジャイルにこだわる必要はない。ゴールが達成できればチームにあったやり方をやっていけばいい」と山崎氏。

 アプリケーション開発に正解はない。だが、ゴールに向かって工夫することはできる。そういう工夫ができるから「アプリケーション開発は楽しい」と熱く語り、セッションを締めた。

お問い合わせ

 Yahoo! JAPAN

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【デブサミ2018 福岡】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11096 2018/10/01 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング