エンジニアHubPowered by エン転職

若手Webエンジニアのための情報メディア

【46選】あのサービス・アプリのアーキテクチャ・プログラミング言語・フレームワークを大調査!〔2019年始版〕

今やWebやアプリを構築する技術選択は、フロントエンドからインフラまで各領域で多岐に及びます。気になるあのサービスが利用している技術は何か? アンケート調査によるまとめの2019年新春バージョンです。

OGP image

エンジニアHubでは2017年4月に、国内注目サービスのアーキテクチャ大調査を掲載しました。それからおよそ2年が経ち、インフラでもフロントエンドでも新しい技術が次々と登場しています。

そこで今回は2019年始版として、46のサービスが利用しているプログラミング言語やフレームワーク、インフラ等の環境をまとめました。選定理由も回答いただいたサービスは合わせて掲載しています。どういった見地から技術選定を行っているのか。ぜひ今後の参考にしてください。

(※本記事は、2018年12月のメール取材をもとに作成しています)

コンテンツプラットフォーム
クックパッド、Ameba、はてなブログ、pixiv chatstory、connpass
ツール
Kibela、Issuehunt、Typetalk、Backlog、Cacoo、Mackerel、ImageFlux
情報サービス
グノシー、はてなブックマーク、DMM.com、AbemaTV、エムスリー、オミカレ
コマース・決済
楽天市場、BASE、minne、SUZURI、PAY.JP・PAY ID、paymo biz
ビジネス
kintone、Sansan、Eight、ノマドクラウド、Karakuri、Emotion Tech・Employee Tech
学習・人材
PyQ、Teambox LEAGUE、エムスリーキャリア、クラウドワークス
アプリ(コミュニケーション・コマース)
LINE、ヤフオク!、ラクマ、Omiai、タップル誕生
アプリ(情報)
SmartNews、Yahoo! JAPAN、Yahoo!ニュース、本のアプリStand、ルナルナ、AWA、Komerco

コンテンツプラットフォーム

クックパッド

レシピ検索No.1/料理レシピ載せるなら クックパッド

プログラミング言語 Ruby、Golang、Python、Java、Rust
フレームワーク Ruby on Rails、Spring Boot
インフラ AWS
Webサーバー nginx、Apache
APサーバー Unicorn
プロキシー nginx、H2O、Apache、Envoy
サーバーOS Ubuntu
DB・データ MySQL、Redis、Amazon Aurora、Amazon DynamoDB、Amazon Redshift
CI/CDツール Jenkins、AWS CodeBuild、mamiya
各種ツール Itamae、Codenize Tools、Docker (Amazon ECS+hako)、GitHub Enterprise、etc.

インフラはAWSを利用しており、なるべくマネージドなサービスを利用することでオペレーションコストを減らすようにしています。世の中で普及している技術スタックを使うことを心がけてはいますが、必要に迫られた場合はソフトウェアを内製しており、多くをオープンソースとして公開しています。またシステムのマイクロサービス化が進んでおり、利用しているプログラミング言語やフレームワークは多様化してきています。

Ameba

アメーバブログ(アメブロ)|Amebaで無料ブログを始めよう

プログラミング言語 Java、JavaScript、Golang、Lua、Scala、Kotlin、Swift
フレームワーク Spring Boot、Express、Gin、Lift、自作
インフラ CyCloud(オンプレミス)、Kubernetes on CyCloud、AWS、GCP、Microsoft Azure、Firebase;Akamai、Fastly
Webサーバー
プロキシー
Apache、nginx、Varnish
APサーバー Tomcat、Node.js、Netty
サーバーOS CentOS
DB・データ MySQL、Cassandra、MongoDB
CI/CDツール CircleCI、Jenkins
各種ツール Slack、GitHub Enterprise、Zeplin、Sketch、Asana、Jira、Redmine、esa、DocBase

はてなブログ

はてなブログ

プログラミング言語 Perl、JavaScript、TypeScript、Golang
インフラ AWS
Webサーバー nginx、ngx_mruby
APサーバー Starlet
プロキシー Squid、Varnish
サーバーOS Debian
DB・データ MySQL、Elasticsearch
CI/CDツール Jenkins
各種ツール GitHub Enterprise、Mackerel、Slack、Capistrano、Fluentd

pixiv chatstory

pixiv chatstory(ピクシブ チャットストーリー)

プログラミング言語 TypeScript、Swift、Ruby
フレームワーク Angular、Ionic 3、Ruby on Rails
インフラ Firebase Hosting、Cloud Functions for Firebase、Heroku、ImageFlux、Amazon CloudFront
Webサーバー
APサーバー
Heroku
DB・データ JawsDB (MySQL)
CI/CDツール CircleCI
各種ツール npm、Helpshift、Firebase Cloud Messaging、Swagger、Swagger Codegen

pixiv chatstoryではサーバーを完全にAPIサーバーとして運用し、Android PWA版とiOS版の機能と開発スタイルをほぼ同じにして開発し続けています。通常のHerokuは海外にしかインスタンスがないためレスポンスに時間がかかりますが、get系のAPIはAmazon CloudFrontでキャッシュするなど、クラウドの監視にコストをかけない利便性とユーザーの利便性どちらも良くなるように工夫しています。

connpass

connpass - エンジニアをつなぐIT勉強会支援プラットフォーム

プログラミング言語 Python
フレームワーク Django
Webサーバー nginx
CI/CDツール CircleCI
各種ツール Ansible、etc.

ツール

Kibela

Kibela - 個人の発信を組織の力にする情報共有ツール

プログラミング言語 Ruby、JavaScript、TypeScript、Kotlin
フレームワーク Ruby on Rails、React、React Native
インフラ AWS
Webサーバー
プロキシー
nginx
APサーバー Unicorn
サーバーOS Ubuntu
DB・データ PostgreSQL、Redis、Elasticsearch
CI/CDツール CircleCI、Sider
各種ツール Kibela、GitHub、Zeplin、Abstract、New Relic、Datadog、Sentry、Google Analytics、Mixpanel、Intercom、PhraseApp、Stripe、G Suite、Slack、Trello、Zoom、Docker

Ruby on Railsは使い慣れているエンジニアが多かったこと、React/React Nativeについては次の標準になりそうだったこと。使用する技術の選定については生産性が高く標準になりそうなものであること考えつつ、エンジニアが使いたい、という技術的欲求を満たせることも重視しています。

Issuehunt

IssueHunt

プログラミング言語 TypeScript
フレームワーク InversifyJS、Express、NestJS
インフラ
Webサーバー
APサーバー
プロキシー
Now.sh(DNSからload balancingまで全部管理してくれている)
サーバーOS Linux(Now.shが管理するのでサーバーOSを直接触る必要性がない)
DB・データ MongoDB、PostgreSQL
CI/CDツール CircleCI

Now.sh:デプロイ頻度が高くてインフラを気にする余裕のないスタートアップに最適である。AWSを直接使うより少し料金は高いが、DNSやインフラなどの設定の面倒が極めて少ないし、デプロイされているアプリのインスタンス管理もかなり簡単になる。
InversifyJSNestJS:サービスの特徴上、外部API(GitHubなど)を多く使っているため、テストがかなり難しい。これらのフレームワークからDependency Injectionを使うと、簡単にMockingができる。
TypeScript:JavaScript言語は型がないため、シンプルなアプリケーションにはいいが、サービスが大きくなると生産性と信頼性がかなり落ちる。しかし、TypeScriptを使うと型宣言のお陰で多くのバグを事前に突き止めることができる。また、TypeScriptで検証される部分はテストが要らなくなるので、場合によってはむしろコードの量を減らすことができる。
また、InversifyJSやNestJSを使うためにもTypeScriptが必要である。JS上ではReflectionがまだないが、TypeScriptではReflectionが使えるので、DIを簡単に具現できる。

Typetalk

ビジネスチャットツール | Typetalk(タイプトーク)

プログラミング言語 Scala
フレームワーク Play Framework
インフラ Amazon EC2
Webサーバー nginx
APサーバー Netty
サーバーOS Amazon Linux
DB・データ PostgreSQL
CI/CDツール Jenkins
各種ツール Backlog、Cacoo、Typetalk、Ansible、Fabric、Terraform

Backlog

タスク管理、ファイル共有もできるプロジェクト管理ツールBacklog

プログラミング言語 バックエンド:JavaからScalaに移行中(主要部分は完了)、フロントエンド:JavaScript+Haxe(次期バージョンはTypeScript)
フレームワーク バックエンド:Seasaa2からPlay Frameworkに移行中(同上)、フロントエンド:jQuery+Knockout.js(次期バージョンはReact)
インフラ Amazon EC2
Webサーバー nginx
APサーバー TomcatからPlay Framework内のAkka HTTPに移行中(同上)
サーバーOS Amazon Linux
DB・データ Amazon Aurora (MySQL)、Elasticsearch
CI/CDツール Jenkins
各種ツール Backlog、Cacoo、Typetalk、Ansible、Fabric、Terraform、Nagios、Mackerel、Fluentd、Kibana、Redash、PagerDuty

Seasar2:社長がSeesarファウンデーションの代表理事。
Scala:イミュータブルや関数型プログラミングの恩恵を受けつつ、Javaの資産を流用できるので。
Play Framework:Scalaのデファクトスタンダードなので。
Knockout.js:IE8で動く(当時サポートしていた)、既存の画面に組み込んで一部だけで利用しやすかった。
React:大規模なUIを構築している実績が多いので。

Cacoo

フローチャートが作れるオンライン作図ツール | Cacoo

プログラミング言語 Java、Golang、TypeScript、JavaScript、
フレームワーク Riot.js、Vue.js、Spring Framework
インフラ AWS、Kubernetes
Webサーバー nginx
APサーバー Tomcat
サーバーOS Linux
DB・データ PostgreSQL、Redis
CI/CDツール Jenkins
各種ツール Backlog、Typetalk、Ansible、Fabric、Terraform、RabbitMQ

Mackerel

Mackerel(マカレル): 新世代のサーバ管理・監視サービス

プログラミング言語 Scala、Golang、Python、TypeScript
フレームワーク Play Framework、Slick、AngularJS
インフラ AWS (Lambda、Kinesis Data Streams、DynamoDB、RDS、EC2、Elastic Load Balancing);ALB、NLB(ロードバランサー);Kubernetes、Skaffold、Kustomize、Helm、kubespray(コンテナオーケストレーション)
Webサーバー
APサーバー
プロキシー
nginx、squid、Akka HTTP
サーバーOS Debian
DB・データ PostgreSQL;Redis、Redis Cluster(データストア)
CI/CDツール Jenkins、Travis CI、AppVeyor、CircleCI
各種ツール Chef、Ansible、Capistrano、unbound、Keepalived、Fluentd、Mackerel、Diamond(内製TSDB)

ImageFlux

ImageFlux powered by pixiv|さくらインターネット

プログラミング言語 Golang、C
フレームワーク Vue.js
インフラ さくらインターネット
Webサーバー nginx、Apache Traffic Server
サーバーOS Linux
DB・データ MySQL
CI/CDツール CircleCI、GitHub

ImageFluxはピクシブとさくらインターネットが共同で行っている事業であり、さくらインターネットの基盤で運用されています。

情報サービス

グノシー(Web、App)

グノシー 無料で読めるニュースまとめ

プログラミング言語 Golang、Swift、Kotlin、TypeScript、Objective-C、Java、Python、Ruby
フレームワーク Goa、Django、Ruby on Rails、Spring Boot、Ktor、React、Vue.js、Apollo (GraphQL)
インフラ AWS、Akamai
Webサーバー nginx、Envoy
APサーバー Einhorn、Gunicorn、Unicorn
サーバーOS Linux
DB・データ Dynamo DB、Elasticsearch、Amazon Aurora (MySQL)、Presto/Hive (Hadoop)、Amazon Athena
CI/CDツール CircleCI、AWS CloudFormation、Terraform
各種ツール Datadog

はてなブックマーク

はてなブックマーク

プログラミング言語 Perl、Scala、TypeScript、JavaScript、Golang、Python
インフラ さくらインターネット、AWS
Webサーバー
プロキシー
nginx、Varnish
APサーバー Starlet、Jetty、Gunicorn
サーバーOS Debian
DB・データ MySQL、Redis、Memcached、nutcracker、Elasticsearch
CI/CDツール Jenkins
各種ツール Fireworq、Docker、droot、daemontools、Capistrano、Fluentd、Mackerel、Kibana、GitHub Enterprise、Slack

採用した理由は https://www.slideshare.net/oarat/2015-0801-scala におおまかに書いてあります。

DMM.com

DMM.com - ゲーム・動画・電子書籍・英会話・FX等の総合サイト

プログラミング言語 Python、PHP、Golang、Java、Kotlin
フレームワーク Flask、FuelPHP、Zend Framework、Echo、Spring Framework、Spring Boot
インフラ AWS、オンプレミス
Webサーバー Apache、nginx
APサーバー Golang、Tomcat、Jetty、Netty
サーバーOS CentOS、Amazon Linux
DB・データ Amazon DynamoDB、Amazon Aurora、MySQL、Elasticsearch
CI/CDツール CircleCI、AWS CodeBuild、Jenkins
各種ツール PagerDuty、Sentry、GitHub、ZenHub、Kibana、Bitbucket、Jira、Confluence、AppDynamics、Slack、New Relic、Rundeck、Embulk

AbemaTV

AbemaTV|国内最大の無料インターネットテレビ局

プログラミング言語 Golang、Java、JavaScript、Kotlin、Swift
インフラ AWS、GCP、Akamai、Fastly
Webサーバー nginx
APサーバー Golang、Node.js
プロキシー nginx、Varnish
サーバーOS Linux
DB・データ MongoDB、Redis Cluster、Cloud Bigtable
CI/CDツール CircleCI、Codecov、Codeship
各種ツール Prometheus、Grafana、GitHub、Slack、Jira、Terraform、Packer、Ansible、Docker、Bazel、etc.

エムスリー

<日本最大級>医師向け最新医学・医療情報サイト | m3.com

プログラミング言語 Scala、Java、Kotlin、Ruby
フレームワーク Play Framework、Spring Framework、Spring Boot、Ruby on Rails
インフラ オンプレミス、AWS
Webサーバー Apache、nginx
APサーバー Netty、Tomcat
サーバーOS CentOS、Amazon Linux
DB・データ PostgreSQL、Oracle、MySQL
CI/CDツール Jenkins、GitLab CI
各種ツール GitLab、Docker Hub、etc.

エムスリーは2000年創業のため、歴史的経緯でJavaが多数使われていました。そのため、順当なアップデートとしてJava/Spring Framework/Spring Bootを選択しています。
一方で、(Java8以降で変わってきた状況はあるものの)Java自体が言語として辛いという意見も長年あり、Ruby on Railsの活用を進めるチームやアップデート先として3〜4年前からScala/Playを、Javaの資産を活かせるため選択に加えているチームもあります。ただし、Scalaには難解な部分もあるので、最近はBetter JavaとしてKotlin/Spring Bootを選択する事例が多くなっています。
これ以外にもサービスによってさまざまな技術を採用していますが、各チームで最適なパフォーマンスが発揮できるように、という明確な意図をもって採用技術を決定するようにしています。

オミカレ

婚活パーティー、お見合いパーティーをまとめて検索 - オミカレ

Web
プログラミング言語 PHP 7.1
フレームワーク CodeIgniter 2
インフラ AWS
Webサーバー Apache 2.4
APサーバー mod_php
サーバーOS Amazon Linux 1
DB・データ Amazon Aurora 1
各種ツール Ansible(プロビジョニング兼デプロイのツールとして)

2011年からサービスを運営しており、CodeIgniterは当時のスタンダードなフレームワークだったため。AWSもサービス開始当初から使っており、シンプルなLAMPを実行するための環境となっている。シンプルなLAMPにこだわったのは開発者の環境構築をシンプルにするためで、サービス開始当初は外注を使うことも多かったため、素早いスタートを切る上で、シンプルな開発環境であることが重要だった。

API
プログラミング言語 Python 3.6
フレームワーク Django 2.0.4
インフラ AWS
Webサーバー nginx 1.14.0
APサーバー uWSGI 2.0.17
サーバーOS Ubuntu 18.04 LTS
DB・データ PostgreSQL 10.5 (Amazon RDS)

PostgreSQLに移行するにあたって、柔軟で強力なフルスタックフレームワークを選定した結果、Djangoになった。Ruby on RailsよりもPostgreSQLに親和性が高く、Ruby on Railsに負けないフルスタックっぷりと拡張の多さが採用の決め手。

コマース・決済

楽天市場

【楽天市場】Shopping is Entertainment! : インターネット最大級の通信販売、通販オンラインショッピングコミュニティ
Rakuten Global Market - Shop from Japan
Shop. Earn. Redeem. | Rakuten.com
Rakuten樂天市場購物網 - 日本必買網路購物網站、網購人氣商店街

プログラミング言語 Java、PHP、JavaScript、Node.js、Swift、Kotlin、Ruby
フレームワーク Spring Framework、Spring Boot、Laravel、React、AngularJS、Ruby on Rails、Mule、Play Framework
インフラ Marathon、Kubernetes(プライベートクラウド上)
Webサーバー Apache、nginx
APサーバー Tomcat、WebLogic、GlassFish
プロキシー Kong (nginx)
サーバーOS CentOS
DB・データ MySQL、Redis、Oracle Exadata、Memcached、RabbitMQ、Apache Kafka、Elasticsearch、Couchbase Server、Cassandra
CI/CDツール Jenkins
各種ツール Jira、Confluence、Git (Bitbucket)、Slack、Docker、Prometheus、Grafana、Fluentd、Firebase

BASE

BASE (ベイス) | ネットショップを無料で簡単に作成
BASE(ベイス)- とっておきが見つかるショッピングアプリ

プログラミング言語 PHP、Golang、TypeScript、Python、Swift、Kotlin
フレームワーク CakePHP、Vue.js
インフラ AWS (ECS、EKS、S3、Lambda、SNS、SQS、API Gateway、Fargate)
Webサーバー nginx、Apache
プロキシー HAProxy
サーバーOS CentOS
DB・データ Amazon Aurora (MySQL)、Amazon ElastiCache、BigQuery
CI/CDツール CircleCI、Bitrise、DeployGate
各種ツール Akamai、ImageFlux、Amazon S3(画像配信);Amazon CloudSearch(検索);AWS Lambda、Amazon S3、Firebase Cloud Messaging(モバイルプッシュ);Mackerel、Raygun、New Reric、Firebase、Redash(モニタリング);Wowza Streaming Cloud、Firebase(ライブ動画配信);GitHub(ソースコード管理);Terraform、Chef(構成管理);Slack(チャットツール);Asana(プロジェクト管理);DocBase、Zeplin、Abstract、Flinto(コラボレーションツール);Python (Pyro、PyTorch、Faiss、ONNX、Edward、XGBoost)(データ解析・戦略)

サーバサイドにおけるメインの技術は、AWS+PHP+CakePHPです。Webサービス用途におけるPHPのパフォーマンスや生産性の高さに乗りつつ、並列大規模処理やLambdaではGolangなどのPHP以外の選択も柔軟にとっています。
解決したい問題に合わせて適材適所の技術を使うことを重視し、プッシュ通知の配信システムでAWS LambdaとAmazon S3でサーバレスな構成にしたり、独自ドメインのショップをHTTPSでアクセスさせる仕組みにはLet's EncryptとRubyを組み合わせたり、データ解析ではPythonを使うなどしています。
アーキテクチャの設計においては1人のアーキテクトが担うのではなく、開発メンバ全員が設計・開発・運用できるスモールチームの集合体になることを目指しており、メンバがやりたいこととサービス方向性が正しく噛み合ってさえいれば、多様な開発技術の選択ができるようにしています。

minne

minne | ハンドメイド・手作り・クラフト作品のマーケット

プログラミング言語 Ruby、Golang、Swift、Objective-C、Java、Kotlin
フレームワーク Ruby on Rails、Vue.js
インフラ AWS、GCP、OpenStack
Webサーバー
プロキシー
nginx
APサーバー Unicorn
サーバーOS CentOS
DB・データ Amazon RDS for MySQL、Redis、Elasticsearch、Memcached
CI/CDツール Drone、Bitrise
各種ツール GitHub Enterprise、Slack、New Relic、Sentry、Mackerel、etc.

SUZURI

自分だけのオリジナルグッズを手軽に作成・販売 | SUZURI(スズリ)

プログラミング言語 Ruby、HTML、CSS、CoffeeScript、JavaScript、Swift
フレームワーク Ruby on Rails、Backbone.js、RxJS、Express
インフラ Nyah(自社プライベートクラウド)、Heroku
APサーバー Puma、Node.js
DB・データ PostgreSQL、Redis、Elasticsearch
CI/CDツール Drone
各種ツール GitHub Enterprise、Slack、Scrapbox、New Relic、Sentry、Mackerel、Google Analytics、Firebase、Metabase

PAY.JP・PAY ID

PAY.JP - 決済手数料2.59% クレジットカード決済代行サービス
PAY ID

プログラミング言語 Python 3、Kotlin、Swift、TypeScript
フレームワーク Pyramid、Vue.js
インフラ AWS
Webサーバー nginx、Elastic Load Balancing (ALB)
APサーバー Gunicorn
サーバーOS CentOS
DB・データ PostgreSQL
CI/CDツール CircleCI、AWS CodeDeploy、fastlane
各種ツール Mackerel、New Relic、BugSnag(監視);Ansible(構成管理);Slack(チャット);Celery(非同期タスク)

PAY株式会社にはPythonのスペシャリストが集まっており、主にPythonを活用してシステムを構築しております。Python以外を選択できないわけではなく、将来のフェーズに応じて適材適所で技術選択を行っていきます。

paymo biz

paymo biz | paymo biz(ペイモビズ)

メインサーバー
プログラミング言語 Ruby 2.5.1
フレームワーク Ruby on Rails 5.2.0
インフラ GCP、GKE(production/staging);Heroku Pipeline(テスト)*1
Webサーバー nginx
APサーバー Unicorn
サーバーOS Ubuntu
DB・データ Amazon Aurora (MySQL);Amazon ElastiCache(キャッシュサーバー)*2
CI/CDツール CircleCI、Bitrise、Cloud Build

paymo bizのメインサービスは、Rails+VueをGKE(Google Kubernetes Engine)上で動かす構成をとっています。この構成は、高速な機能開発と検証の実現を主眼として選択しています。一方で、決済というサービスの特質を踏まえて、テストコードの充実やモニタリング・ロギング・トレースなどは厚めにケアしています。
GCPを選択している理由としては、BigQuery、Dataflowを中心としたデータに基づくサービスの改善や、コンテナベースのアプリケーションの構築を志向した際に、AWSと比べてGCPそのものに、それを主軸に据える思想が含まれていると考えているためです。今後のアプリケーション開発の趨勢と、開発のアジリティを見据えて現在の構成としています。

*1 以前はAWS OpsWorksを利用していたが、2018年10月にGCPのGKEに移行し、kubernetes上で動かしている(一部のコンポーネントはAWSのものを利用)。テスト環境もGKEに移行予定。
*2 キャッシュサーバーはCloud Memorystore、またはマネージドサービスを選択せずPodに移行することを予定。

一部マイクロサービス
プログラミング言語 Golang 1.9、CleanArchitecture
フレームワーク gorilla/mux、govalidator、GORM
インフラ GCP、GKE
Webサーバー nginx
APサーバー なし(Golang)
サーバーOS Ubuntu
DB・データ MySQL (Cloud SQL)
CI/CDツール CircleCI

マイクロサービスにおいては、明確な責務を安定して果たせることを志向しています。paymo bizのサービスはPCIデータセキュリティスタンダードの審査対象となることも相まって、堅牢に書くことも意識した構成としています。

共通
各種ツール GitHub、Slack、Notion、Zeplin、Sketch(コミュニケーションツール);UptimeRobot、Opsgenie、Raygun、Datadog、Google Stackdriver、Amazon CloudWatch(モニタリング・エラーレポート);Accrete、Twilio、Sendgrid、Formspree(サービス内のサードパーティーツール);Airflow、TensorFlow、BigQuery、Redash(機械学習・分析);Docker、Kubernetes、Kustomize(コンテナ);Fastly、Cloudflare、Amazon S3/CloudFront

ビジネス

kintone

kintone - サイボウズの業務改善プラットフォーム

プログラミング言語 Java、JavaScript、Sass
フレームワーク Spring Framework、Closure Library、React
インフラ 自社開発、AWS
Webサーバー nginx
APサーバー Jetty
プロキシー Squid
サーバーOS Ubuntu
DB・データ MySQL、Solr、Elasticsearch
CI/CDツール Jenkins、CircleCI
各種ツール Git(バージョン管理);GitHub Enterprise、GitHub(リポジトリ管理、コードレビュー);Selenium(ブラウザテスト);PMD、JSHint、Closure Linter、scss-lint、Spotless(コード解析);JUnit、Karma、Mocha、Sinon.JS、Expect.js(ユニットテスト);New Relic(アプリケーション監視);kintone自身、Redash

Sansan

Sansan - 法人向けクラウド名刺管理サービス

プログラミング言語 C# 7、JavaScript
フレームワーク .NET Framework 4.6.1 (ASP.NET MVC、ASP.NET Web Forms、ASP.NET Web API、WPF)
インフラ AWS (EC2、S3、SQS、DynamoDB、SES、RDS、ElastiCache、etc.)
Webサーバー IIS
サーバーOS Windows Server
DB・データ PostgreSQL 9.6、Amazon Elasticsearch Service
CI/CDツール Jenkins
各種ツール GitHub、Icinga、Munin、Zabbix、New Relic、Fluentd、Chef

Eight

Eight - 名刺でつながる、ビジネスのためのSNS

プログラミング言語 Ruby、Python、JavaScript
フレームワーク Ruby on Rails、React
インフラ AWS
Webサーバー Apache、nginx
APサーバー Passenger、Puma
サーバーOS CentOS
DB・データ Amazon Aurora (MySQL)
CI/CDツール CircleCI
各種ツール GitHub、New Relic、Mackerel、Sider

ノマドクラウド

不動産仲介の顧客管理と営業支援のクラウドシステムならノマドクラウド

プログラミング言語 Ruby
フレームワーク Ruby on Rails、Vue.js
インフラ AWS
Webサーバー nginx
APサーバー Unicorn
サーバーOS Amazon Linux 2 (Amazon ECS-Optimized)
DB・データ MySQL
CI/CDツール CircleCI
各種ツール Amazon ECS、Docker

Railsを使っている理由は、Webサービスを作る上で必要な機能がある程度網羅されており、使うことで開発のスピードが上がるからです。

Karakuri

Karakuri(カラクリ) | AI搭載チャットボット

プログラミング言語 JavaScript、Python
フレームワーク Express、React、Falcon、Chainer、etc.
インフラ AWS (EC2、S3、Batch、etc.)*3
Webサーバー nginx
サーバーOS Amazon Linux 2
DB・データ MongoDB
CI/CDツール CircleCI
各種ツール GitHub

フレームワークに関しては開発メンバーが内部に至るまで精通しているため、開発をしていて無駄に時間を取られることがありません。また、開発のしやすさ(アップデートのしやすさ)を常に意識しており、この構成はその上でも、今のところとても良いと感じています。
立ち上げ当初は、コストの問題でGPUリソースをオンプレミスで運用しておりましたが、大手の案件が始まってからはセキュリティ上の理由もあり、完全にクラウドに移行しました。常時フルで使うのでない限りは、結局メンテナンスコストも含めて考えるとクラウドに移行してよかったと考えています。オンプレミスのGPUサーバーは、現在はR&Dチームで長時間回す計算などに活用しています。

*3 R&Dでは一部AzureやGCPを使用。

Emotion Tech・Employee Tech

株式会社Emotion Tech(エモーションテック) | NPSをはじめカスタマーエクスペリエンスの最適化支援サービス
Employee Tech | 従業員の定着率を向上させる新しい方法

プログラミング言語 Ruby、Python、TypeScript、R
フレームワーク Ruby on Rails、Angular
インフラ AWS (EC2、RDS、S3、Route 53、SQS、SES、Elastic Load Balancing、Elasticsearch Service、CloudFront、CloudWatch、Lambda、ECS、ECR、ElastiCache、Elatic Beanstalk)
Webサーバー
プロキシー
nginx
APサーバー Passenger
サーバーOS Amazon Linux
DB・データ MySQL、PostgreSQL、Redis
CI/CDツール Jenkins、Travis CI、Sider、Docker
各種ツール GitHub、Fluentd、Digdag、Embulk、Ansible、Terraform

メンバーのスキルや、当該技術のコミュニティが活発かどうか、将来性や保守・運用性、既存のプロダクトの利用技術など、さまざまな軸も追加して判断しました。機能要望を正確に満たすことや、開発として狙いたい効果、目的に合わせて、それぞれの場面で最適なアーキテクチャを選定しています。

学習・人材

PyQ(パイキュー)

PyQ - 本気でプログラミングを学びたい人のPythonオンライン学習サービス

プログラミング言語 Python (3)、Node.js (10)、JavaScript
フレームワーク Django (2)、Vue.js (2)、webpack (4)
インフラ AWS
Webサーバー nginx
APサーバー Gunicorn
サーバーOS Ubuntu
DB・データ Amazon Aurora
CI/CDツール CircleCI(一部)
各種ツール GitHub、Redash(コンテンツ改善のためのユーザー学習状況分析)、Marketo(学習コンテンツのリコメンドなど)、Re:lation(カスタマーサポート)

PythonやDjangoは強力でありながら、開発や学習のコストも小さめなので、全社的に採用しています。Node.jsは、一部の複雑な非同期処理を扱うために使っています。現状ではPythonのasyncioやaiohttpでも良いと思いますが、開発当初は非同期処理でNode.jsに大きな利点があったので採用しています。

Teambox LEAGUE

Teambox LEAGUE とは | Teambox

プログラミング言語 Kotlin、Python、JavaScript
フレームワーク Spring Boot、Pyramid、Vue.js
インフラ GCP (Google App Engine、Cloud SQL)
DB・データ MySQL
CI/CDツール CircleCI
各種ツール GitHub、Google Stackdriver、TrackJS、Redash、Zube、Slack

インフラやサーバ管理の人的コストを下げるためにもGoogle App Engineを採用し、マイクロサービス化しながら開発しています。その中で、堅牢さが求められるユーザー基盤はKotlin、常に新機能開発を求められる部分はPythonで開発するといった使い分けをしています。
フレームワーク(Pyramid、Vue.js)の選定は、開発メンバーの経験値によるところが大きいのですが、その中でもDDDの概念を取り入れて、変更容易性を高める努力をしています。
現在のWebシステム以外にも、GCP(Google Cloud Platform)の機械学習APIと研究開発している行動分析アルゴリズムを組み合わせた、社内向け機械学習ワークフローシステムの構築も行っています。

エムスリーキャリア

医師の求人、募集、転職|m3.com CAREER

プログラミング言語 Kotlin、Ruby、JavaScript
フレームワーク Spring Framework、Ruby on Rails、Vue.js
インフラ オンプレミス、AWS
Webサーバー Apache、nginx
APサーバー Jetty、Puma、Unicorn、Passenger
サーバーOS CentOS
DB・データ PostgreSQL、Redis、Elasticsearch
CI/CDツール GitLab CI
各種ツール Docker、GitLab、WordPress

クラウドワークス

クラウドソーシングは日本最大級の「クラウドワークス」

プログラミング言語 Ruby、JavaScript
フレームワーク Ruby on Rails、Vue.js
インフラ AWS、FlyData
Webサーバー
プロキシー
nginx
APサーバー Unicorn
サーバーOS Amazon Linux
DB・データ MySQL、Amazon Redshift、Redis、Memcached、Elasticsearch
CI/CDツール CircleCI、Sider
各種ツール GitHub、Slack、New Relic、Rollbar、Datadog、Docker、Quay.io、Zeplin、Sketch、Terraform、Qiita:Team、Redash、Sendgrid

アプリ(コミュニケーション・コマース)

LINE

コミュニケーションアプリ LINE(ライン)

LINE Messaging platform (LINE Server)
プログラミング言語 Java、Erlang/OTP 18+Elixir hybrid
フレームワーク Spring Framework
インフラ オンプレミス、プライベートクラウド(Verda
APサーバー Tomcat、Armeria
プロキシー On promise customized server
サーバーOS CentOS
DB・データ Redis customized cluster、HBase (Scalability and High availability)、MySQL
CI/CDツール Jenkins、On promise deployment manager
各種ツール Jira、Confluence、GitHub、On promise project management tool
LINE Client App (iOS、Android)
プログラミング言語 Swift、Objective-C、Kotlin、Java
フレームワーク Lottie、Yoga Layout、RxJava、ReactiveSwift、Firebase、Glide
CI/CDツール Jenkins
各種ツール Jira、Confluence、GitHub Enterprise、Zeplin、Xcode、Android Studio、SwiftLint、ktlint

ヤフオク!(アプリ)

ヤフオク!公式アプリ - ヤフオク!

プログラミング言語 Swift、Kotlin、Golang、PHP、Python
インフラ プライベートクラウド
Webサーバー Apache
APサーバー Golang
プロキシー Apache Traffic Server
サーバーOS Linux
DB・データ MySQL、Memcached
CI/CDツール fastlane、Concourse、Screwdriver
各種ツール GitHub、IntelliJ IDEA、Slack、Jira、Confluence、Firebase、Tableau、Fluentd

ラクマ

ラクマ(旧フリル) | 楽天のフリマアプリ - 中古/未使用品がお得!

プログラミング言語 Ruby、Golang、Rust、PHP、Objective-C、Swift、Java、Kotlin
フレームワーク Ruby on Rails、Riot.js、React
Webサーバー nginx
APサーバー Unicorn
プロキシー nginx、HAProxy
サーバーOS Linux
DB・データ MySQL、Memcaced、Redis、Elasticsearch、BigQuery
CI/CDツール CircleCI、Jenkins 2、Bitrise
各種ツール New Relic、Bugsnag、Kibana、Redash、Slack、Qiita:Team、GitHub、GitLab、Trello、Chef、Figma

Omiai

Omiai(おみあい) - Facebookで安心安全に出会える日本初&最大級の恋活・婚活・お見合いアプリ、登録無料

プログラミング言語 Java、PHP、Objective-C、Swift、Kotlin、Python、JavaScript、HTML5、CSS3、Sass
フレームワーク CakePHP
インフラ AWS
Webサーバー Apache、nginx
APサーバー Tomcat
プロキシー Squid
サーバーOS Amazon Linux
DB・データ MySQL、Redis、Memcached、Elasticsearch、BigQuery
CI/CDツール Jenkins
各種ツール GitHub、Ansible、Docker、gulp、Webpack、Fluentd、etc.

タップル誕生

タップル誕生 - 趣味でつながる恋活サービス

プログラミング言語 Node.js 9.x
フレームワーク Express 4.x
インフラ AWS
Webサーバー Amazon ECS+Node.js
APサーバー Amazon ECS+Node.js
DB・データ MongoDB、Elasticsearch
CI/CDツール CircleCI、Jenkins
各種ツール GitHub、Slack、Zendesk、esa、Asana、Zapier、Twilio

インフラ:もともとは自社のコスト安なプライベートクラウドを使っていたが、多機能なAWSに惹かれアプリ/データベース共に移設した
DB:マッチングアプリという特性上、異性の検索に複雑なクエリが求められるため、要件に合った検索エンジンであるElasticsearchを導入した

アプリ(情報)

SmartNews

SmartNews

プログラミング言語 Java、Objective-C、Scala、Kotlin、Golang、Ruby、Python、TypeScript、C++
フレームワーク Spring Boot、Play Framework、Finagle、Skinny Framework、Ruby on Rails、React、Vue.js、gRPC
インフラ AWS、GCE、Kubernetes (GKE)、Google App Engine、Akamai
Webサーバー nginx、Unicorn
APサーバー Tomcat、Jetty
プロキシー Squid
サーバーOS Amazon Linux、Ubuntu
DB・データ Amazon Aurora (MySQL)、Amazon RDS (MySQL)、Amazon ElastiCache (Memcached/Redis)、Amazon DynamoDB、Presto/Hive、Amazon Redshift、PipelineDB、Druid、Amazon CloudSearch、Amazon Elasticsearch Service、Cloud Bigtable
CI/CDツール CircleCI、Jenkins
各種ツール GitHub、Slack、Datadog、New Relic、PagerDuty、Chartio、Fabric、Runscope、Jira、Asana、Qiita:Team、Zapier、VAddy、Docker、Vagrant、Jupyter Notebook、Airflow、Fluentd、Chef、Itamae、Terraform、Serverless Framework、Hazelcast、Swagger、Hubot、Sentry、Flyway、SageMaker、Spark、Thrift、Protocol Buffers

創業以来JVM言語を利用していますが、徐々にマイクロサービス化を進めており、特定言語への縛りは設けていません。基本的にはマネージドサービスやSaaSを積極的に利用し、運用の管理コスト削減を狙っています。

Yahoo! JAPAN(アプリ)

Yahoo! JAPAN公式アプリケーション

プログラミング言語 Swift、Kotlin、JavaScript、Node.js、PHP、Java
フレームワーク Express、SlimFramework
インフラ プライベートクラウド
Webサーバー
APサーバー
Apache、Node.js、Tomcat
プロキシー Apache Traffic Server
サーバーOS Linux
DB・データ MySQL、Redis、Memcached
CI/CDツール Screwdriver、Jenkins、Chef
各種ツール GitHub Enterprise、IntelliJ IDEA、Trello、Pivotal Tracker、Abstract、Confluence、Slack、etc.

多数のサービスがあるため、社内で標準的に利用されている技術を主軸に、メンテナンスや技術エコサイクルを意識した選定を行っています。特にプッシュ通知などによる突発的な大量アクセスを効率的に捌ける、技術選定やアーキテクチャの採用を心がけています。また、大人数、複数チームでの開発がしやすいよう、レイヤードアーキテクチャやマイクロサービス化を採用しています。

Yahoo!ニュース(アプリ)

Yahoo!ニュース公式アプリ - Yahoo!ニュース

プログラミング言語 Swift、Kotlin、Node.js、PHP、Java
フレームワーク Express、React/Redux
インフラ プライベートクラウド
Webサーバー
APサーバー
Apache、Node.js
プロキシー Apache Traffic Server
サーバーOS Linux
DB・データ MySQL、Cassandra、Redis、Memcached
CI/CDツール Screwdriver、Jenkins、fastlane
各種ツール GitHub Enterprise、IntelliJ IDEA、Zeplin、Confluence、Slack、etc.

弊社には多数のサービスがあるため、社内で標準的に利用されている技術を主軸に、メンテナンスや技術エコサイクルを意識した選定を行っています。安定的な技術を使い続けるだけでなく、世間のトレンドを把握し、サービスの直面する課題を解決できる技術選定を心がけています。KotlinやReact/Redux、マイクロサービス化などが該当します。

本のアプリStand

本のアプリStand

プログラミング言語 Objective-C、Java、Ruby
フレームワーク Ruby on Rails
インフラ Digital Ocean、Amazon S3
Webサーバー
プロキシー
nginx
APサーバー Unicorn
サーバーOS CentOS
DB・データ MySQL
CI/CDツール CircleCI
各種ツール GitHub、Slack

ルナルナ

【ルナルナ】生理日・排卵日予測から妊活・育児・出産まで全ての女性をサポート!

プログラミング言語 C#
フレームワーク ASP.Net Core MVC
インフラ Microsoft Azure
CI/CDツール Azure Dev Ops
各種ツール DOMO(BIツール)

※Webサーバーその他の詳細については「クラウドサービスを利用している」とのこと

AWA

AWA - 音楽ストリーミングサービス|5,000万曲以上の音楽が無料で聴き放題!(登録不要)

プログラミング言語 Golang、Java、Python、Node.js (JavaScript、TypeScript)、PHP、Kotlin 1.3、Swift 4.2、Objective-C++
フレームワーク Gin、Echo、gRPC、Express、Electron、React、RxJS、Fluxible、Android Architecture Components、VueFlux
インフラ AWS、GCP
Webサーバー nginx
APサーバー Golang、Node.js
プロキシー nginx、Envoy、Golang
サーバーOS Amazon Linux、Ubuntu
DB・データ MongoDB、Redis、Elasticsearch、BigQuery、Cloud BigTable、MySQL、Amazon DynamoDB、Realm Database、SQLite
CI/CDツール Jenkins、Travis CI、CircleCI、Codecov
各種ツール Docker、Terraform、Packer、Vault、Consul、Ansible、Datadog、Kibana、Fluentd、GitHub、DocBase、Slack

サーバー:Golangは、ビルドするとワンバイナリになり、デプロイが簡単で、コンテナとの相性がよい。gRPCは、マイクロサービス間をRESTより高速に接続可能。Terraform+CircleCIは、Infrastructure as Codeとimmutable infrastructureを実現
PCアプリ:もはやスタンダードになりつつあるElectronを採用している。複雑なデータ要件を実現するため、RxJSを利用した独自のデータフローをベースに、ViewはReactでコンポーネント管理している。
Web:サーバーとクライアントで共通のコンポーネント管理をすることを主目的として、ReactとFluxibleでのIsomorphic構成にしているものが多い。
Android:アプリを大幅に作り変えるタイミングで、今後の可読性とメンテナンス性を考慮してフルKotlinで書き直している。
iOS:iOSアプリをほぼゼロから作り直す機会があり、そのタイミングでiOSエンジニア数が4名と多めだったので設計で実装方法を縛りたいと考えた。そのため各フレームワークを比較検討し、適度な規律のあるVueFluxを採用した。

Komerco

Komerco(コメルコ) 料理が楽しくなるマルシェアプリ

プログラミング言語 Swift(iOS);JavaScript、TypeScript(Web)
フレームワーク RxSwift(iOS);React、Next.js(Web);Atomic Design(デザイン)
インフラ Firebase (Authentication、Cloud Firestore、Storage、Cloud Functions、Hosting、Cloud Messaging)、GCP
Webサーバー Firebase (Hosting+Cloud Functions)
APサーバー Firebase (Cloud Functions)
DB・データ Cloud Firestore、BigQuery
CI/CDツール Jenkins、fastlane、βアプリ社内配布ツール
各種ツール Firebase (Analytics、Crashlytics、Remote Config、Dynamic Links、Performance)、Docker (Amazon ECS+hako)、GitHub Enterprise、Slack、Figma、FramerX
  • Komercoはクックパッドの新規サービスであり、素早く開発サイクルを回してユーザの価値につなげる必要があった
  • iOSエンジニアが主体のチーム編成でも、バックエンドを運用できる必要があった

これらの理由から、Firebaseのマネージドサービスをフルに活用するのが最善の選択と判断した。
また、Komercoでは購入用、出品用の2つのアプリを開発するため、共通化されたデザインの重要性が高く、少ないコストでデザインの管理や変更/修正をすばやく適応するためAtomic Designの思想を取り入れた。

取材協力:ZINE

関連記事