こんにちは。レンティオの神谷です。レンティオでは、カメラや家電製品全般をレンタルできるECサイトを運営しておりして、ECサイトや社内向けシステムを社内でスクラッチ開発しています。
ちょうど去年の今頃、レンティオで採用している技術スタックを紹介する記事を公開したのですが、採用技術にいくつかのアップデートがあったため、改めて2021年版を公開してみたいと思います。
コアとなる技術はそこまで変わっていないのですが、一部新しい技術を採用したり、また部分的に掲載内容の見直し等も入れています。
Web
ECサイトはRuby on Railsを中心に開発を行っています。またフロントエンドはReactです。このあたりはとても有名な技術ですので説明不要かもしれません。商品検索や商品一覧画面にはAlgoliaという全文検索Saasも使っています。最近は日本語化にも力を入れているようでいい感じです。
ちなみに当社が運営するオウンドメディアではGatsby.jsというSPAサイトジェネレータを使っています。日本ではあまりメジャーではない印象ですが、世界的には採用数もかなり多いようです。Gatsby.jsについては以前noteにも書いていますのでもし興味あればご覧いただけますと嬉しいです。
CI/CD
コードはGithubで管理しています。プルリクエストが立つとRspecとCircle CIによるテストが実行されます。その後ランダムでレビュアーがアサインされApproveするとマージされるみたいなよくあるフローです。
図には載せておりませんがRubocopとbrakemanによる静的解析も実行しています。コーディング規則は必要以上に厳しくすることなく、あくまでもベースとなる記法を揃えることでチーム全体の生産性を向上させることを目的としています。
デプロイはconvoxというツールがいい感じに面倒を見てくれており、コマンドを実行することでAWS上に展開されます。
インフラ
サーバーはDockerをECS上で動かすという最近よく見かける構成です。またデータベースにはAWS Auroraを活用しています。
2019年末にGAを迎えたAWS CDK(Cloud Development Kit)を2020年に採用しまして、Typescript書式によるインフラのコード化を推進しています。CloudFormationと比べても可読性が高く管理もしやすいので、今後もCDKのカバー範囲をどんどん広げてゆきたいと思います。
またアセット類はS3に配置したものをCloudFrontやFastly経由で配信する形をとっています。Fastlyも2020年に導入したのですが、ブラウザに応じて最適な画像形式を自動で判別して配信したり、操作も直感的にできるのが良いですね。
分析
BigQuery上に作ったデータウェアハウスに対してRedashやGoogle Data Portalでビジュアライズしています。またSlack上のbotと連動させることで定期的なKPI通知を行っています。
ツール
掲載した以外にも多くの開発ツールを採用しておりますが、代表的なものをピックアップして紹介します。
プロジェクト管理にClubhouseというツールを2020年に導入しました。日本ではあまりメジャーではない印象ですが、スクラム開発を行ううえで必要な機能を一通り揃えており、さらにUIが使いやすい&APIが豊富というまさにかゆいところに手の届くサービスです。
コードを書かなくても済みそうな案件は極力Integromatのようなノーコードツールを用いて実装することもあります。世の中には多くのノーコードツールがありますが、その中でもIntegromatは機能が豊富で柔軟にいろいろなことができるのが特長かと思います。反面設定項目が多く、初学者や非エンジニアには少しハードルの高いツールかもしれません。
またアプリやJavascriptのエラーはBugsnagに通知しており、緊急性の高いものはSlackに通知が届くといった仕組みにしています。
以上となります。
当社ではチームの生産性向上につながる技術やサービスを積極的に導入しており、提案があれば積極的に検証していこうというカルチャーとなっています。ある程度の土台はできているという印象ではありますが、開発チームの生産性向上は今後のサービス改善に欠かせない条件だと思いますので、より仕事をしやすい環境を目指して改善に取り組んでいきたいと思います。
もし興味を持っていただけましたら他にも技術的記事をWantedlyのストーリーやnoteに公開していますので、そちらもご覧いただけましたら嬉しいです。
またレンティオでは開発職をはじめ、全職種積極採用中です。採用スライド等も公開しておりますので興味があればそちらも合わせてご覧ください。