[53選]国内注目のWebサービス・アプリを大調査! プログラミング言語、フレームワーク、アーキテクチャの一覧【2017年】
星の数ほど存在するWebサービスやアプリ。その裏側を覗いてみると、開発当時のトレンドや開発者の設計思想が見えてきます。53サービスのフレームワークやアーキテクチャ、開発効率化ツールを集めました。
国内だけでも星の数ほど存在するWebサービスやアプリ。その裏側を覗いてみると、開発当時のトレンドや開発者の設計思想が見えてきます。
今回は53サービス(追記を含む)のフレームワークやアーキテクチャ、開発効率化ツールを集めました。選定理由もお答えいただけたサービスについては、アーキテクチャを選んだ理由も紹介していきます。
- C2C、コマース
- メルカリ、ココナラ、BASE、Tokyo Otaku Mode、STORES.jp、Snapmart、IQON
- 情報サービス
- グノシー、価格.com、食べログ、イエウール、VICOLLE、SNAP by IQON、Retty、スタンバイ
- プラットフォーム(個人向け)
- クックパッド、はてなブログ、Qiita、note、CAMPFIRE、FIRESIDE
- プラットフォーム(企業向け)
- Tokyo Mirai Mode、UZOU配信サーバー、ビズリーチ、careertrek、Wantedly Visit、ビザスク、MedPeer、ヌリカエ
- スマートフォンアプリ
- ニュースパス、ママリQ、ビズリーチ・キャンパス、Wantedly People、HiNative、本のアプリStand、AWA、CureApp脂肪肝、pairs
- ツール・アプリケーション
- Mackerel、kintone、HRMOS、PAY.JP、Progate、SideCI、Misoca、トレタ、Gyazo、Scrapbox、Coincheck
- 追記
- スペースマーケット、Schoo、SAGOJO(以上を4月14日追加)、Qiita:Team(5月1日追加)
(※本記事は、2017年3月のメール取材をもとに作成しています)
C2C、コマース
メルカリ
プログラミング言語 | PHP、golang、Lua、Perl、Python、JavaScript |
---|---|
フレームワーク | DietCake、Dietcube |
インフラ | さくらインターネット、AWS、GCP |
Webサーバ | Nginx |
アプリケーションサーバ | Apache(mod_php)、golang |
プロキシサーバ | Nginx、OpenResty |
サーバOS | CentOS |
DB | MySQL |
CI/CDツール | Travis CI |
各種ツール | NewRelic、Mackerel、GitHub、Ansible、Apache Solr、memcached、Fluentd、Norikra、etc. |
§
ココナラ
プログラミング言語 | PHP、Ruby |
---|---|
フレームワーク | CakePHP、Ruby on Rails |
インフラ | AWS、Google Cloud Platform、Heroku |
Webサーバ | Apache、Nginx |
アプリケーションサーバ | Unicorn |
プロキシサーバ | - |
サーバOS | Ubuntu |
DB | MySQL |
CI/CDツール | Wercker |
各種ツール | GitHub、InVision、Zeplin、Sketch |
§
BASE
プログラミング言語 | PHP |
---|---|
フレームワーク | CakePHP 2.x |
インフラ | AWS |
Webサーバ | Apache 2 |
アプリケーションサーバ | PHP |
プロキシサーバ | Nginx、HAProxy |
サーバOS | CentOS |
DB | RDS(MySQL) |
CI/CDツール | CircleCI |
各種ツール | AWS Lambda、Fluentd、BigQuery、Firebaseなど |
BASEはなぜこのアーキテクチャを選んだのか?
メインの開発技術は、サービス開発初期から扱っているCakePHPを踏襲しております。Webサービス用途におけるPHPのパフォーマンスや生産性の高さには乗っていますが、並列大規模処理などではPHPの資産にはこだわりません。プッシュ通知の配信システムでAWS Lambdaを使ったり、メルマガ送信システムなどではRuby、データ解析ではPythonを使うなど解決したい問題にあわせて適材適所の技術を使うことを重視しています。
アーキテクチャの設計においては1人のアーキテクトが担うのではなく、開発メンバ全員が設計・開発・運用ができるスモールチームの集合体になることを目指しており、メンバがやりたいこととサービス方向性が正しく噛み合ってさえいれば、多様性ある開発技術の選択ができるようにしています。
§
Tokyo Otaku Mode
Tokyo Otaku Mode(otakumode.com)
プログラミング言語 | JavaScript、HTML5、CSS3、CoffeeScript、Jade、Stylus |
---|---|
フレームワーク | Express.js、Vue.js |
インフラ | AWS各種サービス、Ansible |
Webサーバ | Nginx |
アプリケーションサーバ | Node.js |
プロキシサーバ | Squid、Varnish |
サーバOS | Amazon Linux |
DB | MongoDB、Redis、Redshift、Elasticsearch |
CI/CDツール | CircleCI |
各種ツール | GitHub、Slack、Trello、esa.io |
§
STORES.jp
プログラミング言語 | Ruby |
---|---|
フレームワーク | Ruby on Rails、AngularJS |
インフラ | AWS |
Webサーバ | Nginx |
アプリケーションサーバ | Unicorn |
プロキシサーバ | Nginx |
サーバOS | Linux |
DB | MongoDB、PostgreSQL(RDS)、Redis、etc. |
CI/CDツール | CircleCI |
各種ツール | Capistrano、fluentd、GitHub、Slack、waffle.io、Trello、NewRelic、Qiita:Team、Heroku、SendGrid、etc. |
§
Snapmart
プログラミング言語 | Ruby 2.2、Swift 3.0、JavaScript(ES5、ES2015) |
---|---|
フレームワーク | Ruby on Rails 4.2 RSpec |
インフラ | AWS(EC2、RDS、S3、Lambda、Cognito、CloudFront、API Gateway、SQS)、Docker |
Webサーバ | Nginx(静的ファイルはNginxから返却) |
アプリケーションサーバ | Unicorn |
プロキシサーバ | Nginx |
サーバOS | Amazon Linux |
DB | MySQL(RDS) |
CI/CDツール | CircleCI、SideCI |
Snapmartはなぜこのアーキテクチャを選んだのか?
Railsは正しく使えば高速にウェブアプリケーションを実装できます。スタートアップはスピードが大事なところもあるので、この点は良い選択をしたと思います。インフラにはサーバレスアーキテクチャのAPI Gateway、Lambda、S3を利用。サーバーの管理コスト削減と、高負荷にも容易に耐えうる(オートスケールする)環境を実現させました。
§
IQON
プログラミング言語 | Ruby |
---|---|
フレームワーク | Ruby on Rails |
インフラ | AWS/GCP |
Webサーバ | Nginx |
アプリケーションサーバ | Unicorn |
プロキシサーバ | Nginx |
サーバOS | Ubuntu、CentOS |
DB | MySQL(Aurora、RDS)、MongoDB |
CI/CDツール | CircleCI、SideCI |
各種ツール | Newrelic、Mackerel、Sentry |
§
情報サービス
グノシー
情報キュレーションサービス「グノシー」(gunosy.com iOS Android)
プログラミング言語 | Objective-C、Swift、Java、golang、Python、Ruby、AngularJS |
---|---|
フレームワーク | Chainer、scikit-learn、gensim(機械学習、自然言語処理)、kami(golang)、Django、Ruby on Rails、ng-admin |
インフラ | AWS、Akamai |
Webサーバ | Nginx |
アプリケーションサーバ | einhorn、Gunicorn、Unicorn |
プロキシサーバ | Squid |
サーバOS | Linux |
DB | MySQL/Aurora、Redshift、Presto/Hive(Hadoop)、BigQuery、Athena |
CI/CDツール | Jenkins、CircleCI |
§
価格.com
プログラミング言語 | ASP.NET(C#)、ASP(VBScript) |
---|---|
フレームワーク | ASP.NET MVC、ASP.NET Web Forms |
インフラ | オンプレミス |
Webサーバ | IIS |
アプリケーションサーバ | IIS |
プロキシサーバ | Nginx(リバースプロキシ) |
サーバOS | Windows Server、CentOS |
DB | SQLServer |
CI/CDツール | Jenkins |
各種ツール | Visual Studio、JIRA、Confluence、Bitbucket |
§
食べログ
プログラミング言語 | Ruby |
---|---|
フレームワーク | Ruby on Rails |
インフラ | オンプレミス |
Webサーバ | Apache |
アプリケーションサーバ | Unicorn |
プロキシサーバ | - |
サーバOS | CentOS |
DB | MySQL |
CI/CDツール | Jenkins |
各種ツール | GitHub、Redmine |
§
イエウール
プログラミング言語 | Ruby 2.3、Java 8、PHP 5.6 |
---|---|
フレームワーク | Ruby on Rails 5系、Spring Framework、FuelPHP |
インフラ | IDCF、AWS |
Webサーバ | Nginx |
アプリケーションサーバ | Unicorn、jetty |
プロキシサーバ | - |
サーバOS | CentOS 7 |
DB | MariaDB |
CI/CDツール | Jenkins、CircleCI |
各種ツール | GitHub、Slack、Sentry、Ruboty |
イエウールはなぜこのアーキテクチャを選んだのか?
Rails採用の決め手となったのは学習コストの低さ。社内で使用しているチームが多いJavaとPHPは以前メインで使用していたため今でも一部システムで使われています。チャットボットフレームワークのRubotyはChatopsがRubyで書けるのが魅力です。
§
VICOLLE
プログラミング言語 | Ruby 2.3.1 |
---|---|
フレームワーク | Rails 5 |
インフラ | IDCフロンティア(インスタンス、CDN、ILB)、AWS(S3、Route53、Lambda、API Gateway) |
Webサーバ | Nginx |
アプリケーションサーバ | Puma |
プロキシサーバ | - |
サーバOS | CentOS 7 |
DB | MariaDB、Redis |
CI/CDツール | CircleCI、Jenkins |
各種ツール | GitHub、Treasure Data |
VICOLLEはなぜこのアーキテクチャを選んだのか?
アプリ用API、Webサイト、バックオフィスの管理ツールを一つのリポジトリで開発しています。アクセスするIP、ポートにてnginxで各サービスを切り分けており、開発スピードを優先するためこのような形にしました。今後はサービスが落ち着いてきたのちにマイクロサービス化していく予定です。
§
SNAP by IQON
SNAP by IQON / スナップ バイ アイコン(snap.ne.jp)
プログラミング言語 | Ruby |
---|---|
フレームワーク | Ruby on Rails |
インフラ | AWS/GCP |
Webサーバ | Nginx |
アプリケーションサーバ | Unicorn |
プロキシサーバ | Nginx |
サーバOS | Ubuntu、CentOS |
DB | MySQL(Aurora、RDS)、MongoDB |
CI/CDツール | CircleCI、SideCI |
各種ツール | Newrelic、Mackerel、Sentry |
§
Retty
プログラミング言語 | PHP、Java、Kotlin |
---|---|
フレームワーク | Zend Framework |
インフラ | AWS(EC2、Elastic Beanstalk、RDS、S3、ElastiCache、Route53、CloudFront etc.) |
Webサーバ | Nginx |
アプリケーションサーバ | - |
プロキシサーバ | - |
サーバOS | Linux |
DB | MySQL |
CI/CDツール | CircleCI |
各種ツール | GitHub、Qiita:Team、Trello |
§
スタンバイ
スタンバイ(jp.stanby.com、iOS Android)
プログラミング言語 | Scala、Python、Node.js、JavaScript、golang、Swift、Android Java |
---|---|
フレームワーク | Play2、akka、spark、React、Serverless Framework |
インフラ | AWS(EC2、ECS、AWS Lambda) |
Webサーバ | Nginx |
アプリケーションサーバ | Play2 |
プロキシサーバ | - |
サーバOS | Amazon Linux |
DB | MySQL、DynamoDB、Redis、memcached、Redshift、AWS athena |
CI/CDツール | Jenkins(Pipeline)、sbt、Bitrise |
各種ツール | GitHub、JIRA/Confluence、Slack、Elasticsearch、Hive、Presto、Docker、Ansible、Terraform、Vagrant、VirtualBox、Kibana、Re:dash、fluentd、IntelliJ IDEA、Mackerel、NewRelic、Airflow、Hubot、Vault AWS: Elastic Beanstalk、ECS、Lambda、StepFunction、KinesisStream、EMR |
スタンバイはなぜこのアーキテクチャを選んだのか?
メインのアプリケーションはScala/Playで統一しています。 現在、Docker化を推進している最中。細かいAPIやバッチでDBが必要ない部分などは積極的にサーバーレス(AWS Lambda、Python、Node.js)を導入しています。クラウドサービスに積極的に乗ることで作業、管理コストや維持コストを削減できています。
§
プラットフォーム(個人向け)
クックパッド
プログラミング言語 | Ruby、golang |
---|---|
フレームワーク | Ruby on Rails |
インフラ | AWS |
Webサーバ | Nginx、Apache |
アプリケーションサーバ | Unicorn |
プロキシサーバ | Nginx、h2o、Apache |
サーバOS | Ubuntu |
DB | MySQL、Redis、Amazon Aurora、Amazon DynamoDB、Amazon Redshift |
CI/CDツール | Jenkins、mamiya |
各種ツール | Itamae、Codenize Tools、Docker(Amazon ECS+hako)、GitHub Enterprise、etc. |
クックパッドはなぜこのアーキテクチャを選んだのか?
インフラは AWS を利用しており、なるべくマネージドなサービスを利用することでオペレーションコストを減らすようにしています。世の中で普及している技術スタックを使うのを心がけてはいますが、必要に迫られた場合はソフトウェアを内製しており、多くをオープンソースとして公開しています。
§
はてなブログ
プログラミング言語 | Perl、JavaScript |
---|---|
フレームワーク | - |
インフラ | AWS EC2 |
Webサーバ | Nginx |
アプリケーションサーバ | Starlet |
プロキシサーバ | Squid |
サーバOS | Debian |
DB | MySQL |
CI/CDツール | Jenkins |
各種ツール | Varnish、daemontools、Capistrano、Mackerel、Redis、memcached、Elasticsearch、fluentd、Babel |
§
Qiita
プログラマ向け技術情報共有サービス「Qiita(キータ)」(qiita.com)
プログラミング言語 | Ruby、CoffeeScript、C、Sass |
---|---|
フレームワーク | Rails |
インフラ | Amazon Web Services |
Webサーバ | Nginx |
アプリケーションサーバ | Unicorn |
リバースプロキシサーバ | Nginx |
ロードバランサー | AWS ELB |
サーバOS | Linux |
DB | AWS RDS、ElastiCache |
CI/CDツール | CircleCI |
各種ツール | GitHub、ZenHub、Trello、Slack、Qiita:Team、Docker、Heroku、NewRelic、Datadog、PagerDuty、Sentry、Zendesk |
§
note
プログラミング言語 | Ruby、JavaSript |
---|---|
フレームワーク | Ruby on Rails 4.2、AngularJS 1.4 |
インフラ | AWS |
Webサーバ | Nginx |
アプリケーションサーバ | Unicorn |
プロキシサーバ | Nginx |
サーバOS | CentOS 7 |
DB | Aurora |
CI/CDツール | CircleCI |
各種ツール | Qiita:Team、Jenkins、GitHub |
§
CAMPFIRE
CAMPFIRE(キャンプファイヤー)(camp-fire.jp)
プログラミング言語 | PHP、HTML、CSS、JavaScript |
---|---|
フレームワーク | CakePHP 2.6 |
インフラ | Amazon EC2、さくらインターネット |
Webサーバ | Apache、Nginx |
アプリケーションサーバ | - |
プロキシサーバ | - |
サーバOS | Amazon Linux、CentOS |
DB | MySQL |
CI/CDツール | - |
各種ツール | RDS、S3、CloudFront、ELB、CodeDeploy、EMR、SNS、Redis、memcached、GitHub、Capistrano、Ansible、Docker、Gulp、Webpack、Stylus、Pug |
§
FIRESIDE
FIRESIDE(ファイヤーサイド)(fireside.jp)
プログラミング言語 | Node.js、React.js、HTML5、CSS3、ActionScript3 |
---|---|
フレームワーク | Express |
インフラ | Amazon Web Service、さくらインターネット |
Webサーバ | Amazon EC2 + Node.js |
アプリケーションサーバ | 非公開 |
プロキシサーバ | - |
サーバOS | Amazon Linux(フロント[AWS])、CentOS(バックエンド[さくら]) |
DB | MariaDB |
CI/CDツール | - |
各種ツール | GitHubなど |
§
プラットフォーム(企業向け)
Tokyo Mirai Mode
Tokyo Mirai Mode(miraimode.com)
プログラミング言語 | JavaScript、HTML5、CSS3、CoffeeScript、Jade、Stylus |
---|---|
フレームワーク | Express.js、Vue.js |
インフラ | AWS 各種サービス、Ansible |
Webサーバ | Nginx |
アプリケーションサーバ | Node.js |
プロキシサーバ | Squid、Varnish |
サーバOS | Amazon Linux |
DB | MongoDB、Redis、Redshift、Elasticsearch |
CI/CDツール | CircleCI |
各種ツール | GitHub、Slack、Trello、esa.io |
§
UZOU配信サーバー
UZOU 配信サーバー(webmarketing-sp.jp/uzou/)
プログラミング言語 | golang |
---|---|
フレームワーク | - |
インフラ | AWS |
Webサーバ | Nginx |
アプリケーションサーバ | golang |
プロキシサーバ | - |
サーバOS | Amazon Linux |
DB | AWS Aurora、DynamoDB、Aerospike |
CI/CDツール | CircleCI、Jenkins |
各種ツール | - |
§
ビズリーチ
ビズリーチ(www.bizreach.jp iOS Android)
プログラミング言語 | Java8、JavaScript、TypeScript、Swift、Android Java |
---|---|
フレームワーク | Spring、Spring MVC、dbflute、Angular |
インフラ | AWS |
Webサーバ | Nginx |
アプリケーションサーバ | Tomcat-embed |
プロキシサーバ | - |
サーバOS | Amazon Linux、CentOS |
DB | MySQL(RDS)、Aurora、Redshift、DynamoDB、Redis(ElastiCache)、Cassandra |
CI/CDツール | Maven、Gradle、Jenkins、CircleCI |
各種ツール | Solr、Docker、Ansible、Vagrant、Oracle VirtualBox、Kibana、Re:dash、Fluentd、Sensu、Grafana、IntelliJ IDEA、GitHub、JIRA、Confluence、Slack |
§
careertrek
careertrek(キャリアトレック)(careertrek.com iOS Android)日刊キャリアトレック
プログラミング言語 | Java7、Java8、JavaScript、Swift、Node.js、Python、Ruby、PHP |
---|---|
フレームワーク | Spring3、Spring MVC、React/Redux |
インフラ | AWS |
Webサーバ | Nginx |
アプリケーションサーバ | Tomcat-embed、Spring Boot |
プロキシサーバ | Nginx |
サーバOS | Amazon Linux |
DB | MySQL、Redshift、DynamoDB、Redis |
CI/CDツール | Maven、Gradle、Jenkins |
各種ツール | Solr、Docker、Ansible、Vagrant、Oracle VirtualBox、Kibana、Re:dash、Fluentd、Sensu、Grafana、Eclipse、IntelliJ IDEA、GitHub、JIRA、Confluence、Slack |
§
Wantedly Visit
Wantedly Visit(www.wantedly.com)
プログラミング言語 | Ruby、Swift、Node.js、Objective-C、Java |
---|---|
フレームワーク | Ruby on Rails、React.js |
インフラ | AWS |
Webサーバ | Nginx |
アプリケーションサーバ | Unicorn |
プロキシサーバ | ALB and Nginx |
サーバOS | Container Linux(CoreOS) |
DB | PostgreSQL |
CI/CDツール | Wercker、Travis CI、CircleCI |
各種ツール | Redis、memcached、Capistrano、Treasure Data、BigQuery、Datadog |
§
ビザスク
プログラミング言語 | Python、TypeScript、JavaScript |
---|---|
フレームワーク | Django、AngularJS |
インフラ | Google App Engine、Google Compute Engine、AWS、Salesforce |
Webサーバ | Google App Engine、Salesforce |
サーバOS | Google App Engine |
DB | Google Cloud SQL、BigQuery、Elasticsearch |
CI/CDツール | CircleCI |
各種ツール | Mixpanel、Re:dash、Google Analytics、Slack、Qiita:Team、Docker |
§
MedPeer
プログラミング言語 | Ruby |
---|---|
フレームワーク | Ruby on Rails |
インフラ | AWS |
Webサーバ | nginx |
アプリケーションサーバ | Unicorn |
プロキシサーバ | Amazon ELB |
サーバOS | Amazon Linux |
DB | Amazon RDS |
CI/CDツール | CircleCI Enterprise、Capistrano |
各種ツール | New Relic、redash、GitHub、G Suite、Slack |
§
ヌリカエ
プログラミング言語 | Ruby 2.3 |
---|---|
フレームワーク | Rails 5 |
インフラ | AWS |
Webサーバ | Nginx |
アプリケーションサーバ | Puma |
プロキシサーバ | Nginx |
サーバOS | Linux |
DB | MySQL、Redis |
CI/CDツール | CircleCI |
各種ツール | コールセンター向けシステムでat+link社のBiztelなど |
ヌリカエはなぜこのアーキテクチャを選んだのか?
スタンダードに乗っかってる以外に強い理由は特にないですが、全社的にRubyを使う流れになって間もなく立ち上がった新規事業なので、当時のモダンなRubyによるWebアプリケーション開発を意識した構成になっています。
§
スマートフォンアプリ
ニュースパス
ニュース配信アプリ「ニュースパス」(iOS Android)
プログラミング言語 | Objective-C、Swift、Java、golang、Python、Ruby、AngularJS |
---|---|
フレームワーク | Chainer、scikit-learn、gensim(機械学習、自然言語処理)、kami(golang)、Django、Ruby on Rails、ng-admin |
インフラ | AWS、Akamai |
Webサーバ | Nginx |
アプリケーションサーバ | einhorn、Gunicorn、Unicorn |
プロキシサーバ | Squid |
サーバOS | Linux |
DB | MySQL/Aurora、Redshift、Presto/Hive(Hadoop)、BigQuery、Athena |
CI/CDツール | Jenkins、CircleCI |
§
ママリQ
プログラミング言語 | Kotlin、Swift、Python、PHP7 |
---|---|
フレームワーク | CakePHP 3 |
インフラ | AWS、GCP |
Webサーバ | Apache |
アプリケーションサーバ | - |
プロキシサーバ | - |
サーバOS | Linux |
DB | MySQL、Redis |
CI/CDツール | Travis CI |
各種ツール | GitHub、Mixpanel、Tableau、Pingdom、PagerDuty、Sentry |
§
ビズリーチ・キャンパス
プログラミング言語 | Java8、JavaScript(Babel)、Swift3(一部Python、Groovyなど) |
---|---|
フレームワーク | Spring Boot、Knockout、React/Redux、DBFlute(一部Spock、Geb) |
インフラ | AWS |
Webサーバ | Nginx |
アプリケーションサーバ | Tomcat-embed |
プロキシサーバ | - |
サーバOS | Amazon Linux |
DB | MySQL、Redshift、DynamoDB、Redis |
CI/CDツール | Jenkins |
各種ツール | Solr、Docker、Ansible、Vagrant、Oracle VirtualBox、Kibana、Re:dash、Fluentd、Sensu、Grafana、Eclipse、IntelliJ IDEA、GitHub、JIRA、Confluence、Slack |
ビズリーチ・キャンパスはなぜこのアーキテクチャを選んだのか?
Babel は誰も不幸にならない素晴らしいツールだと思いました。 React/Redux は導入時あまり普及していなかったこともあり、社内運用者向けの管理画面でのみ使用しています。DBFlute は事業立ち上げフェーズでの激しいテーブル変更(カラムの削除やテーブル削除)にも耐えうるので助かっています。
§
Wantedly People
Wantedly People(p.wantedly.com)
プログラミング言語 | C、C++、Objective-C、Swift、Java、Ruby、Python、golang、Node.js |
---|---|
フレームワーク | gin、Ruby on Rails、React.js |
インフラ | Kubernetes on AWS |
Webサーバ | Nginx |
アプリケーションサーバ | gin、Unicorn |
プロキシサーバ | ALB、ELB、Nginx |
サーバOS | Debian |
DB | PostgreSQL |
CI/CDツール | Travis CI |
各種ツール | Kubernetes利用する際のツール群(dtan4/k8stail、dtan4/k8sec) |
§
HiNative
HiNative(ハイネイティブ)(hinative.com)
プログラミング言語 | Ruby |
---|---|
フレームワーク | Ruby on Rails |
インフラ | AWS |
Webサーバ | - |
アプリケーションサーバ | - |
プロキシサーバ | - |
サーバOS | Amazon Linux |
DB | MySQL |
CI/CDツール | CircleCI、Bitrise |
各種ツール | Slack、Sneek、mixpanel、Trello、GitHub、Qiita:Team、その他 |
§
本のアプリStand
プログラミング言語 | Objective-C、Java、Ruby |
---|---|
フレームワーク | Rails |
インフラ | Digital Ocean、Amazon S3 |
Webサーバ | Nginx |
アプリケーションサーバ | Unicorn |
プロキシサーバ | Nginx |
サーバOS | Cent OS |
DB | MySQL |
CI/CDツール | CircleCI |
各種ツール | GitHub、Slack |
§
AWA
プログラミング言語 | golang、Node.js |
---|---|
フレームワーク | gin(golang)、express(Node.js) |
インフラ | AWS |
Webサーバ | - |
アプリケーションサーバ | golang、Node.jsで作ったAPIサーバ |
プロキシサーバ | Nginx(APIのリバースプロキシとして)、golangで作った画像変換プロキシ、ストリーミング用プロキシ |
サーバOS | Ubuntu、Amazon Linux |
DB | MongoDB |
CI/CDツール | Travis CI、CircleCI、Codecov |
各種ツール | Docker、Redis、Elasticsearch、Kibana、Fluentd、Terraform、Packer、Ansible、BigQuery |
AWAはなぜこのアーキテクチャを選んだのか?
golangは可読性が高く標準パッケージが非常に良いため採用。導入当時最も速く・柔軟なフレームワークだったginを利用しています。
§
CureApp脂肪肝
プログラミング言語 | ECMAScript 2015 |
---|---|
フレームワーク | React Native、LoopBack |
インフラ | AWS |
Webサーバ | 非公開 |
アプリケーションサーバ | 非公開 |
プロキシサーバ | 非公開 |
サーバOS | 非公開 |
DB | MongoDB |
CI/CDツール | CircleCI、Bitrise |
各種ツール | Redux、ESLint、flow、babel、mocha、power-assert、enzyme、nyc |
CureApp脂肪肝はなぜこのアーキテクチャを選んだのか?
スタートアップにとってスキルセットを限定することは採用や事業のスピードに非常に大きく影響します。弊社では ECMAScript 2015が書ければバリューを出していただけるよう、Universal JavaScript + DDD でドメインモデルをがっちり組み、React Native など各種フロントエンドでそれを使う、という開発スタイルをとっています。 React Native は現在メジャーバージョンが 0 ですが、プログラミングモデルの転換によるリソース競合の解決、Learn once、write anywhere によるスキルセットの限定、開発速度を落とさないための Scripting nativeという思想など、breaking change を補ってあまりある恩恵を受けています。
§
Pairs
プログラミング言語 | golang(サーバサイド)、TypeScript(フロントエンド)、Kotlin(Android)、Swift(iOS) |
---|---|
フレームワーク | AngularJS(フロントエンド) |
インフラ | AWS |
Webサーバ | Nginx |
アプリケーションサーバ | Nginx |
プロキシサーバ | Nginx |
サーバOS | Amazon Linux |
DB | MySQL、Aurora、DynamoDB |
CI/CDツール | Travis CI、CircleCI |
各種ツール | Slack、GitHub、JIRA、Trello、Qiita:Team |
§
ツール・アプリケーション
Mackerel
プログラミング言語 | Scala、golang、JavaScript |
---|---|
フレームワーク | Play Framework、Slick |
インフラ | オンプレミス、AWS EC2 |
Webサーバ | Nginx |
アプリケーションサーバ | Play Framework(netty) |
プロキシサーバ | Squid |
サーバOS | Debian |
DB | PostgreSQL |
CI/CDツール | Jenkins、Travis CI、AppVeyor |
各種ツール | daemontools、Capistrano、Docker、Graphite、Redis、TypeScript、AngularJS |
§
kintone
プログラミング言語 | Java、JavaScript、Sass |
---|---|
フレームワーク | Spring Framework、Closure Library、React.js |
インフラ | 自社開発 |
Webサーバ | Nginx |
アプリケーションサーバ | Jetty |
プロキシサーバ | Squid |
サーバOS | Ubuntu |
DB | MySQL |
CI/CDツール | Jenkins |
各種ツール | Git(バージョン管理)、GitHub Enterprise(リポジトリ管理、コードレビュー)、Selenium(ブラウザテスト)、PMD、JSHint、Closure Linter、scss-lint(コード解析)、JUnit、Karma、Mocha、Sinon.JS、Expect.js(ユニットテスト)、NewRelic(アプリケーション監視) |
§
HRMOS
プログラミング言語 | Scala、Python、JavaScript、TypeScript |
---|---|
フレームワーク | Play2、Akka、React/Redux、Angular |
インフラ | AWS、Firebase |
Webサーバ | Nginx |
アプリケーションサーバ | Play2 |
プロキシサーバ | - |
サーバOS | Amazon Linux |
DB | MySQL、Elasticsearch、Redis、memcached |
CI/CDツール | Jenkins、sbt |
各種ツール | Slack、Firebase、Raspberry Pi、Hubot、Kibana、Re:dash、fluentd、Docker、Ansible、Terraform、Sentry、Mackerel、NewRelic、Vault、GitHub、JIRA/Confluence、Elasticsearch、VirtualBox、IntelliJ IDEA AWS: Rekognition、Polly、AML、EC2、ECS、AWS Lambda、API Gateway、SQS、S3 |
HRMOSはなぜこのアーキテクチャを選んだのか?
サーバー側はScala/Playで統一しています。Scalaを全面採用することで強力な型システムの恩恵を受け品質が安定しますし、興味を示してくださる方も多いです。マイクロサービスも採用し、部分的に新しい技術にチャレンジしやすくしたり、エンジニアの裁量を大きくできています。
§
PAY.JP
プログラミング言語 | Python |
---|---|
フレームワーク | Pyramid |
インフラ | AWS |
Webサーバ | Nginx |
アプリケーションサーバ | |
プロキシサーバ | Nginx、HAProxy |
サーバOS | CentOS |
DB | RDS(PostgreSQL) |
CI/CDツール | CircleCI |
各種ツール | Ansible、GitHub、Slack |
PAY.JPはなぜこのアーキテクチャを選んだのか?
PAY.JPチームはPythonのスペシャリストが集まっており、主にPythonを活用したシステムを構築しております。1つの技術にこだわりをもつのではなく、技術選択そのものも適材適所で選択していくことを尊重しています。現在のシステムがすべてPythonで構築されている理由はPythonで問題解決が事足りているからであって、将来のフェーズに応じて適材適所で技術選択が行われていくものと考えています。
§
Progate
プログラミング言語 | Ruby、JavaScript、Python |
---|---|
フレームワーク | Ruby on Rails、React、Django |
インフラ | Amazon EC2 |
Webサーバ | Apache、Nginx、Gunicorn |
アプリケーションサーバ | - |
プロキシサーバ | - |
サーバOS | Ubuntu |
DB | MySQL |
CI/CDツール | Jenkins |
各種ツール | GitHub |
§
SideCI
プログラミング言語 | Rubyおよび、SideCIがサポートしている言語(PHP、Python、golang、JavaScript、Node.js、CoffeeScript、TypeScript、etc.) |
---|---|
フレームワーク | Ruby on Rails、React |
インフラ | AWS(Amazon EC2、RDS、ELB、SpotFleet、Elastic Beanstalk、ElastiCacheなど) |
Webサーバ | Nginx |
アプリケーションサーバ | Unicorn、puma |
プロキシサーバ | 非公開 |
サーバOS | Ubuntu |
DB | MySQL |
CI/CDツール | SideCI(コードレビュー自動化)、Travis CI、Jenkins、quay.io |
各種ツール | GitHub、Trello、Slack、Qiita:Team、Mackerel、NewRelic |
§
Misoca
クラウド請求管理サービス Misoca(ミソカ)(www.misoca.jp)
プログラミング言語 | Ruby 2.4、JavaScript(ES6) |
---|---|
フレームワーク | Rails 5、React、Redux |
インフラ | AWS |
Webサーバ | Apache 2.4 |
アプリケーションサーバ | Unicorn |
プロキシサーバ | AWS ALB |
サーバOS | Ubuntu |
DB | MySQL |
CI/CDツール | Jenkins、CodeDeploy |
各種ツール | GitHub(ソースコード管理)Trello(プロジェクト管理)Slack、esa.io、Google Hangouts(情報共有ツール)Elasticsearch(その他) |
§
トレタ
プログラミング言語 | Ruby、JavaScript、TypeScript、Swift、Objective-C |
---|---|
フレームワーク | Ruby on Rails、Angular |
インフラ | Heroku、Amazon Web Services(EC2、S3、ELB、RDS、SQS、SNS)、Google Cloud Platform(GCE) |
Webサーバ | Nginx、OpenResty |
アプリケーションサーバ | Unicorn |
サーバOS | Linux(Ubuntu) |
DB | Amazon Aurora、MySQL |
CI/CDツール | CircleCI、Jenkins |
各種ツール | GitHub、Docker、Vagrant、Pingdom、Mackerel、SendGrid、NewRelic、Ansible、Re:dash |
§
Gyazo
プログラミング言語 | Ruby、golang、Node.js、JavaScript(ES2017)、Sass |
---|---|
フレームワーク | Ruby on Rails 4.2、React、Bootstrap |
インフラ | Google Cloud Platform |
Webサーバ | Nginx |
アプリケーションサーバ | Unicorn |
プロキシサーバ | Nginx、自社製画像proxyサーバー |
サーバOS | Debian |
DB | MongoDB、Elasticsearch、Google Datastore |
CI/CDツール | CircleCI、drone.io、github-pr-release(npm) |
各種ツール | Gyazo自身、Slack |
Gyazoはなぜこのアーキテクチャを選んだのか?
生産性が必要なところはRuby on Rails、画像や動画などのバイナリファイルを扱うパフォーマンスの必要なところはGoというようにそれぞれをマイクロサービス化して組み合わせています。
§
Scrapbox
プログラミング言語 | JavaScript(ES2017)、Node.js、Sass |
---|---|
フレームワーク | Express、React、jQuery、socket.io、Bootstrap |
インフラ | Heroku |
Webサーバ | Heroku |
アプリケーションサーバ | Heroku |
プロキシサーバ | Heroku |
サーバOS | Heroku |
DB | MongoDB |
CI/CDツール | CircleCI、drone.io、Docker、DockerHub、github-pr-release(npm) |
各種ツール | Scrapbox自身、Slack、GitHub |
Scrapboxはなぜこのアーキテクチャを選んだのか?
frontendからbackendまですべてjsで書くことにより、scrapboxに必要なパーサーやバリデータ、同時編集機能で使われる差分データのやりとりのアルゴリズムなどが共用できます。 Herokuは開発に必要なツール群が簡単に設定できるので気に入っています。またアプリケーションをHerokuにデプロイできるように実装するとthe twelve-factor appに従ったポータビリティの高い設計になるので、production版から変更せずにオンプレミス版docker imageを作成して配れるようにし続ける為のちょうどよい縛りにもなります。
§
Coincheck
プログラミング言語 | Ruby(サーバサイド)、CoffeeScript(クライアントサイド)、Java(Android)、Swift(iOS) |
---|---|
フレームワーク | Ruby on Rails(サーバサイド)RSpec(サーバサイドテストフレームワーク)(CircleCIですべてのケースをテストしてリリースしています)、AngularJS、Butter Knife(Android)(UIの開発を効率化しています)、RxSwift(iOS) |
インフラ | AWS |
Webサーバ | Unicorn |
アプリケーションサーバ | Ruby on Rails |
プロキシサーバ | Nginx |
サーバOS | Ubuntu |
DB | MySQL |
CI/CDツール | CircleCI、Chef(すべてのサーバをChefで構築可能にしています)、Capistrano |
各種ツール | GitHub、Slack(アラートの通知、デプロイ状況のチェック、KPI監視に役立っています)、Trello、NewRelic、Bugsnag、Zendesk |
§
追記
記事公開後にアンケートの回答を送っていただいたサービスの情報を以下に追記します(※その他一部加筆・修正)。
スペースマーケット(C2C)
プログラミング言語 | Ruby、JavaScript、Python |
---|---|
フレームワーク | Ruby on Rails、React.js |
インフラ | AWS、Google Cloud Platform |
Webサーバ | Nginx、S3 |
アプリケーションサーバ | Nginx、Passenger |
プロキシサーバ | - |
サーバOS | Linux |
DB | memcached、Redis、BigQuery |
CI/CDツール | CircleCI |
各種ツール | Elasticsearch、Docker、Algolia Search、Cloudinary、NewRelic、Stripe、AirBrake、Mackerel、Pusher、OneSignal |
§
Schoo(情報サービス)
プログラミング言語 | PHP、Ruby、golang、JavaScript |
---|---|
フレームワーク | Ruby on Rails、React.js |
インフラ | AWS、Google Cloud Platform |
Webサーバ | Nginx |
アプリケーションサーバ | Nginx(php-fpm)、golang |
プロキシサーバ | Nginx |
サーバOS | Amazon Linux、Ubuntu |
DB | Amazon RDS(Aurora)、MySQL |
CI/CDツール | CircleCI |
各種ツール | GitHub、Docker、Prometheus、Elasticsearch、BigQuery、Firebase、AWS Lambda、Slack、など |
Schooはなぜこのアーキテクチャを選んだのか?
Schooでは、サービス開設当初からPHPおよびフレームワークとしてCodeIgniterを利用しています。 これらのバージョンアップが現在の課題ではありますが、PHPの生産性の高さからもメインのサービスではこれからも利用し続けると思います。
その他、法人向けのツールでは管理ツールということもあり、規約のもとで素早く作成することができるRuby on Railsを利用していたり、スマートフォンアプリ向けのバックエンドとしてgRPCの実装でgolangを利用していたりといくつかの言語を利用していますが、構築の容易さや用途やユーザ体験に合わせた言語やフレームワークを選択しています。
これらの選択においては、適切な理由の上ですべてをプロジェクト内のエンジニア自身が考え、各種の設計のうえで実装までを担っています。
§
SAGOJO(プラットフォーム 個人向け)
すごい旅人求人サイト「SAGOJO」(www.sagojo.link)
プログラミング言語 | PHP、JavaScript |
---|---|
フレームワーク | Symfony2、Riot.js |
インフラ | AWS(EC2、Route53、S3、CloudFront、RDS、ElastiCache、Elastic Beanstalk) |
Webサーバ | Nginx |
アプリケーションサーバ | php-fpm |
プロキシサーバ | ELB、Apache(WebSocketサーバーのSSLトンネリング用途として使用) |
サーバOS | Amazon Linux |
DB | MySQL(RDS)、Redis(ElastiCache) |
CI/CDツール | - |
各種ツール | Bitbucket、Slack、backlog、Docker、Vagrant |
SAGOJOはなぜこのアーキテクチャを選んだのか?
サーバーサイド開発のフレームワークは、Symfony2を採用しています。他のメジャーなフレームワークと同様に、高い生産性とモダンな設計を提供してくれています。
また、SPAのような機能を提供するページでは、UIライブラリとして、riot.jsを使用しています。Reactではなくriot.jsを採用した理由は学習コストの少なさと、Reactと比べてHTMLの構造が残せるので、JavaScriptが分からないフロントエンドエンジニアでもビューを整えることができるためです。
なるべくエンジニアには、開発に専念できるような環境を用意するように心がけており、インフラはAWS、開発環境はDocker+Vagrantを導入することで、環境設計の手間を省きエンジニアのオペレーションコストを減らしています。
§
Qiita:Team(プラットフォーム 企業向け)
みんなが手軽に書ける情報共有ツール「Qiita:Team」(teams.qiita.com)
プログラミング言語 | Ruby、CoffeeScript、C、Sass |
---|---|
フレームワーク | Rails |
インフラ | Amazon Web Services |
Webサーバ | Nginx |
アプリケーションサーバ | Unicorn |
リバースプロキシサーバ | Nginx |
ロードバランサー | AWS ELB |
サーバOS | Linux |
DB | AWS RDS、ElastiCache |
CI/CDツール | CircleCI |
各種ツール | GitHub、ZenHub、Trello、Slack、Qiita:Team、Docker、Heroku、NewRelic、Datadog、PagerDuty、Sentry、Zendesk |
§
おわりに
開発チームが異なれば開発の方針もさまざま。自分でサービスを作るときや、今後のスキルアップの参考にしてみてください。
【修正履歴】Qiita:Teamのリンク設定に誤りがあり、ご指摘により修正しました。(2018年6月19日20時45分)
編集:薄井千春(ZINE)