medibaを支える技術（2021年度） 


# はじめに

こんにちは。medibaのテクノロジーセンターでSrManagerをしている、@primunuです。
こちらの記事は[medibaアドベントカレンダー](https://qiita.com/advent-calendar/2021/mediba)の1日目の記事となります。

恒例となったmedibaを支える技術ですが無事6年目を迎えます。
20年度と比べ大きな変化はありませんが、技術スタック等の変化や21年度に始めた取り組みを重点的に記載します。

過去の記事は下記をご覧下さい。
[mediba を支える技術（2016年度）](https://qiita.com/medi-sugimoto/items/fb0209c87ad5dcd22dba)
[mediba を支える技術（2017年度）](https://qiita.com/medi-sugimoto/items/0a17fcd1e1f27a0c7247)
[mediba を支える技術（2018年度）](https://qiita.com/swa27-hijikata/items/21a09ae804232d3d1535)
[mediba を支える技術（2019年度)](https://qiita.com/swa27-hijikata/items/21a09ae804232d3d1535)
[mediba を支える技術（2020年度)](https://qiita.com/samuraiRed/items/bb6b7efef9d096b1f12d)


# エンジニア組織のビジョン
20年からエンジニア組織は、『「良いもの」を届け続ける』という明確なビジョンを掲げており、21年度も大きく方針は変えておりません。なお、弊社で『「良いもの」を届け続ける』組織とは以下を網羅しいます。一言でいうと”変化に強い、フレキシブルな組織​”となります。

- テクノロジーの引き出しが多い​
- 必要な人材を配置できる​
- 経営・事業に合わせた戦略​を協業し実現できる

# 事業組織 (2021年12月1日 現在)

20年度から大きく変わっておらず現在もマトリクス組織として運営されています。
![tumblr_85f837e8454e73f8226f20ec5972f6b6_40998b1c_540.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22063/b627adcf-633b-8fb6-fd63-965654eaccb8.png)

## テクノロジーセンター
それぞれのプロダクトやUnitとよばれる組織横断的な戦略を担うポジションで活躍するエンジニアが所属する組織です。
以下に、エンジニアが携わる主なプロダクトとUnitについて説明します。

### 主なプロダクト(掲載サービスは一部)
#### auスマートパス/auスマートプレミアム

![smpass_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22063/0a862d74-cfe4-1ad3-971e-7b1526d390e6.png)


​会員数1,500万人以上。国内有数の有料会員数を誇るスマートフォン向けサービス「auスマートパス」の企画・開発・編集と、サービス運営に関わる全般を担当しています。​

#### auウェルネス
![wellness_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22063/90500de3-3760-acec-a3a2-65c73684690c.png)

auウェルネスは、健康を目指すすべての方へ健康活動の習慣化をサポートするサービスです。iOS/Android/Watchアプリ各種機能のUIUX設計と開発、プロモーションなどサービス運営に関わるクリエイティブの制作を担当しています。​

#### ポイントためる
![tameru_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22063/bd4802ea-29c6-17f3-125b-8c0b19aef705.png)


「ポイントためる」は毎日まわせるポイントガチャやアプリの利用・アンケートなどでPontaポイントをためることができるサービスです。​コンテンツの企画・開発・運用全般を担当し、楽しくおトクにPontaポイントがためられるサービスを日々提供しています。​

#### Bratto
![Bratto_service_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22063/2b2e7757-e3db-a057-c863-cadafb212ed4.png)


Brattoは「やることのない休日が楽しみな休日に変わる」旅行・お出かけ動画アプリです。“次の休日に何しようかな”と誰もが一度は感じたことがあるそんな漠然とした思いに、みんなの共感できる”動画”を通じて、次の休日にやりたいことを見つけるヒントを提供します。​

#### 新規事業創出
“雑なものづくり“ をテーマに、Design Thinkingを通して様々なアイデアのタネを形にしていく部署です。

### 主なUnit
#### SRE Unit
「システムの品質を高く保ち続ける」をミッションに、各プロダクトのシステム信頼性を向上するために活動する部署。
ほとんどメンバーはプロダクトにアサインされ、プロダクトの信頼性向上のために活動しつつ、SRE Unit としての横断的な施策等にも尽力しています。

#### BPM Unit
社内の業務フロー自体を組み替えて冗長な作業を不要にするための部署。ビジネスオペレーションのレガシーを見つけて駆逐するのが業務です。

#### セキュリティ Unit
社内システムの導入、インフラの構築、保守運用全社のセキュリティ企画などを担当します。

- Microsoft Azure
- Cisco Systems
- ID 管理系など

#### 品質管理 Unit
「medibaが提供するサービスの品質を支える」をミッションとし、サービスのライフサイクルを通して品質向上のために活躍しています。

- お客さまに安心して利用いただけるサービス品質を確認し、リリース判定するプロセスの運営
- システムテストを通じた品質確認と品質向上活動
- 障害管理と障害ナレッジ共有
- プロダクトへ参画して早期からの品質作り込みのサポート

#### アウトソース Unit
他社とのシステム的なやり取りや、業務のアウトソース化などをメインで行います。
システムディレクターや、ブリッジSEが所属しています。

# 開発の進め方

### チーム制
プロダクトチーム構成は以下になります。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3231343738372f66323966383365332d343466652d363233372d333635302d3334646361323632653166322e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22063/8a8593d2-082a-5ee5-2d89-56468f7750aa.png)
プロジェクト事に異なると前提はありますが、Scrumをベースとしたアジャイル型とウォータウォール開発が半々です。21年度はリモートワーク中心としたワークフローが定着し各々のプロジェクトで改善が見られました。20年度から実施しているモブワークも普及し、複数のプロジェクトで実施しています。

### ツール
開発推進していく上で重要なツールとしては以下のものを利用しています。
※メインで使用しているツールを太字にしています

- タスク管理
   - **JIRA** , **Backlog** , Github Projects
- ドキュメント管理
   - **Confluence** , Github, SharePoint, Backlog, RedMine
- コミニュケーションツール
   - **Slack** , **Teams** , Zoom, miro, scrapbox

# 技術選定
使う技術・ツールの選定に関しては、プロダクトごとで構成されるチームに基本的には委ねられていますが、人材アロケーションの観点からガイドラインを定め、統一する動きがあります。この話は次年度で記載させていただければと思います。

## 開発言語
### サーバーサイド
Golang、Node.jsが中心となり、PHPはあまり採用しない傾向にあります。

- **Golang**
- **Node.js** , Express, NestJs
- PHP, Laravel

### フロントエンド
2020年度はReactとVue.jsが半々でしたが、最近はReact & Next.js、TypeScriptの
スタックがメインになっています。

- React & Next.js, Backbone.js
- Vue.js & Nuxt.js
- TypeScript
- styled-components, Sass,
- Apollo, graphql

### アプリ
Swift、Kotlinが中心ですが一部Flutterを使用しています。

- ios
   - Swift, SwiftUI
- android
   - Kotlin, Java, Dagger2
- クロスプラットフォーム
   - Flutter
   - React Native

## 利用サービス・利用ツール
### CI周り
CIはTravisCIが主流でしたが、Github Actionsを多く採用するようになりました。
また、殆どのサービスはコンテナで運営されており、素早く価値を提供するといった観点からECSを使用する事が多いです。

- ソース管理
    - GitHub Enterprise
- 構成管理
    - **ECS** , Docker, Kubernetes(Amazon EKS)
    - Terraform, CloudFormation, Ansible
- CI/CD
    - **Github Actions** , CodeDeploy
- デプロイ
    - CodeDeploy, Capistrano

### 監視・アラート
20年度はDatadogがメインでしたが、現在はNew Relicを導入し順次移管中です。

- **​​New Relic** , Datadog, Sentry, Twilio, Amazon Connect

### セキュリティ・試験周り

- アプリケーション脆弱性
   - OWASP ZAP

### ミドル脆弱性

- Vuls
 
### 性能試験

- **Gatling** , ApacheBench

### レスポンス速度

- Sitespeed.io

# 運営イベント
21年度から運営イベントが増えたのでご紹介させてください。
## KGDC Tech Conference​
![kgdc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22063/7b18363a-ac4d-7d02-be26-071e9a70adcf.png)
https://kgdc.connpass.com/

先日11月19日(金)に#1が開催されたKDDIグループ企業のDeveloperが集い、“エンジニアが楽しめる”イベントを提供するコミュニティとして発足したKDDI Group Developer Community。​

もちろんmedibaも参加しており、今回は裏方である配信周りを担当しました。
今後も継続して実施していくので参加の程お待ちしております。

## mediba Tech Café​
![tech cafe.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22063/c703fb0f-a5c5-b657-9881-4421702dc2c9.png)

https://mediba-tech-cafe.connpass.com/
mediba Tech Cafeは、medibaのエンジニアがエンジニアリングにまつわるさまざまな情報をYouTubeで幅広く発信していくオープンイベントです。お昼休みのお供にぜひお聞きください。
次回は12/09(木)で、テーマは”初めてのmedibaエンジニア女子会の巻”となっています。
medibaの中の人の声が聞けるイベントです。
興味がある方、そうでない方も参加して頂けると幸いです。

# mediba Creator x Engineer ブログ
2015/10/1からいわゆるテックブログを始めました。デザイン、フロントエンド、バックエンドの技術を中心に投稿しています。企業の情報や組織の雰囲気は、企業のWebページ以上にはなかなか手に入りにくいものです。我々medibaでは、日々の取り組みや気づきをメンバー自らが発信することで、社会への認知と自身へのフィードバックの場として積極的に取り組んでいます。
（ http://ceblog.mediba.jp/ ）

# 最後に

2019年から始まったリモートワーク、組織体制にも慣れてきた2021年。
個人的にはとても変化が大きく、マネージャーからシニアマネージャーに変わり
組織へのコミットがより求められるロールになりました。

それに見合ったバリューを発揮するべく奮闘した2021年でしたが、発揮できたのか些か疑問はあるもののエンジニア組織としては、牛歩かも知れませんが確かな成長があったと思っています。

引き継ぎユーザーに向き合いながら、技術を追いかけ、継続し、我々のビジョンである『「良いもの」を届け続ける』エンジニア組織を醸成して行けたらと考えています。

興味をもっていただいた方は、まず私とカジュアル面談しませんか。沢山の応募お待ちしております。
（ https://hrmos.co/pages/mediba/jobs ）