MatsushitaTweetCNDT2019でSoftBankペイメントが事例を公開。2019では、クラウドネイティブなシステムがメインとなってツールやプラットフォームの紹介がなされたが、エンタープライズにおいては無条件にKubernetesが選択されるわけではない。Service)に関心が集まっていた時期がある。howという2015年5月のツイートが残っている。Haikuと紹介されており、アプリケーションを開発するデベロッパーにとって開発したソースコードがクラウド上で実行されることこそが重要で、その形式やインフラストラクチャーには注意を払う必要がない。Foundryである。筆者はそのような意味であると捉えている。Service)、Serverlessの区分けにはあまり意味がなく、必要な機能がどのように実行されるか、それが仮想マシンを要求するものか、コンテナで実行されるものか、サーバーレスとして実行可能なものか、それはユーザーが決めるべきという発言をしている。HatのOpenShiftはv3で方向転換を行い過去のコードを全て捨ててKubernetesのプラットフォームとして再出発し、大成功している。Foundationのコラボレーションプロジェクトとして活動を続けている。Servicesに発展を遂げている。Foundryはクラウドネイティブが目指していたものを早い段階で実現していたとも言える。そんな前口上はこのぐらいにして、2日目のセッションで発表されたSoftBankペイメントサービスのシニアアーキテクト、鈴木順也氏の講演内容を紹介しよう。~SpringとPCFで作るクラウドネイティブなシステム開発~」と題されたセッションである。鈴木氏の講演の主な内容2016年に設定されたチームとしての最初のゴールは「システム運用の効率化」であったという。2016年の段階では開発チームはSBペイメントの中にあったのではなく、外注化されており、開発は外部のベンダー、運用だけは社内チームという体制をとっていた。それを社内の開発チームに移管していくというのが、今回のタイトルの「内製化への旅」の意味するところだろう。これは日本の多くの事業会社が抱える共通の課題で、仕様策定は外部と社内の協業、開発は外部に委託、運用は社内の運用チームという体制でこれまで多くのシステム開発が行われてきたと思われるが、SBペイメントはそれを変えることに成功したという内容だ。最初の目的は運用作業の自動化そして2017年の段階で、Springをベースに開発を行うためのツール群の導入が終わり、これで開発の内製化、CIを回す体制が出来上がったという段階になった。Cloudを導入そして2年の準備の後、2018年に開発の内製化がスタートしたという。開発の内製化スタート開発したのは、決済システムの加盟店と決済機関の中間のハブとなる部分で、APIによって実装されるWebベースのシステムである。開発に際しては、かつてのベンダーに任せる形から自社での開発、開発~リリースのサイクルの高速化、監視が容易で障害に強いことなどが要点として挙げられていたという。Foundry(以下、PCF)とその純正CIツールであるConcourseを選択し、導入したと語った。ここでの選択肢には当然のようにKubernetesが入っていたという。KubernetesではなくPCFを選んだ理由として、当時のKubernetesの学習コスト、メンテナンスコストの高さ、構築に必要な時間、小さな規模のチームでは運用が困難という理由を解説した。Haikuのように、コードを書いてすぐに実行できる環境というポイントで、PCFがKubernetesに比べて優れていたことを紹介した。コードの開発に集中し、すぐにコードを実行できることが重要これは、Kubernetesを導入したいが自社のIT部門がそれほど大きくない中小企業には参考になるアプローチだ。組織によってはまずインフラストラクチャーからという選択肢があっても良いし、それはその企業の優先順位に依存すると言える。SBペイメントのように数名のエンジニアしか資源がないのであれば、選択肢は自明だろう。重要なのは導入と運用のサポートがあるかどうかそしてその少数のエンジニアの配分を解説したのが次のスライドだ。アプリ開発とインフラ担当の責任分担6名のうち2名をPCFの運用に、4名をアプリケーション開発に配分していることがわかる。開発するアプリケーションも、Pivotalが推奨する12ファクターアプリケーション、つまりKubernetesのようなステートレスなアプリケーションだけを開発するということが明記されている。ベンダーロックインを排除するということも書かれており、開発チームの強い意志を感じることができる。全体のアーキテクチャーもクラウドネイティブなコンポーネントで構成このアーキテクチャー図を見ると、中心となるプラットフォームのPCFをKubernetesに置き換えればそのままKubeConのユースケースと言っても通るくらいほどに、オープンソースソフトウェアで構成されている。加盟店と決済機関の中間に存在するシステムであることから、外的要因によってシステム障害が伝搬することを防ぐために、Hystrixが使われていることを紹介し、ここでも障害に強いシステムとなっていることが紹介された。Breakerのためのライブラリーだ。Foundryの開発に使っていることで有名なConcourseを使っており、この辺りもPCFとの相性の良さを重視した結果だと思われる。CIはパイプラインで管理できるConcourseを使用パイプラインはテスト環境と本番環境がキレイに分離されており、ここでも12ファクターアプリケーションの原則に則った運用が行われていることがわかる。Concourseによるパイプライン処理。テストと本番を分離システムの監視についてはPrometheus、Grafana、Zipkinなどを利用して、システム目線だけではなくサービス目線でのモニタリングが可能になっているという。これも参考にすべきポイントだろう。サービス目線のモニタリング最後に、内製化によって決済プラットフォームの構築が可能になったこと、そのためにPCFというすでに完成されたアプリケーション実行プラットフォームとサービス・サポートが重要と語って講演を終えた。Foundryを選んだことで目的を達成したというユースケースは、内製化を含むクラウドネイティブなシステムに移行したくても躊躇している企業のIT部門にとって非常に参考になる内容となった。PaaS、Kubernetes、そして今後はサーバーレスまで、多くの選択肢があることで悩むIT部門は多いだろう。メルペイが開発部門の効率を上げることを優先してマイクロサービス化したように、まずは開発運用部門の最適化を目指して選択を行うというのも一つの考え方である。この著者の記事一覧フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。DaysTokyo2019の展示ブースと初日のパーティを紹介。活気に満ちた雰囲気を感じて欲しい。2019:あえてK8sを選ばなかったSoftBankペイメント2019/10/21CNDT2019でSoftBankペイメントが事例を公開。2019:K8sコントリビューターになるために必要なことは?2019/10/15Kubernetesのアップストリームトレーニングのメンター6名にインタビュー。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。IT会員サービスの概要とメリットをチェック他にもこの記事が読まれていますキャリア・人材イベント関係人口と関係社員は人とのつながりから生まれる―「地域と企業と個人を豊かにする新しい関係づくり」レポート2020/2/18開発ツールイベントGitHub、エンタープライズ向けのイベントを国内で開催。企業向けに新機能を紹介2020/2/17キャリア・人材イベント幸福度ランキング上位のデンマーク。昭和女子大学ダイバーシティ推進機構セミナー2020/2/12システム開発イベント普段の仕事では得られない、新しい知見や発見がある。キャリアアップにもつながる。開発者なら「DevRel」をはじめよう!2020/2/7フリーランス/起業イベント旅するように働く。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。