ユアマイスター株式会社エンジニアブログ

ユアマイスター株式会社のエンジニアが日々徒然。

【2019年冬版】ユアマイスター最新の技術スタックをご紹介します。

f:id:yourmystar_engineer:20191120154437j:plain

どうも。ユアマイスター星(@inase17000)です。

最近エンジニアを積極採用中でして、色々な方に弊社の環境についてご紹介する場面が増えております。せっかくなのでブログに記録を残しておこうと思います。なお、ここに記載の無いシステムや、内緒のプロジェクトも結構存在しています。採用面接に来てもらえましたらオフレコでお話しできることもありますので、ご興味ありましたらTwitterにDMか下記サイトからご連絡ください。

▼お気軽にご連絡ください▼

RECRUIT | ユアマイスター株式会社

プロダクトの紹介

ユアマイスターでは現在、下記の4つのプロダクトを運営、開発しています。

  • あなたのマイスター
  • RELIVERS
  • ミツモ!
  • マイスターアプリ

それぞれのサービス紹介は、HPに任せるとして、今回はどんな開発環境かをご紹介していこうと思います。

Web

あなたのマイスター

f:id:yourmystar_engineer:20191120155319p:plain

RELIVERS

f:id:yourmystar_engineer:20191120155349p:plain

技術スタック、開発環境

  • インフラ : EC2, S3, ElastiCache, RDS, ELB
  • アプリケーション : PHP7, CakePHP3, jQuery, Bootstrap3, Vue.js, Wordpress
  • 検索 : Elasticsearch, Redis 
  • CI : Circle CI, Sider, PHP Unit 
  • ミドルウェア : ApacheMySQL, Nginx, Imagemagick 
  • 監視:Mackerel, Bugsnag
  • コード管理 : GitHub 
  • タスク管理 : GitHub Issue, Backlog 
  • コミュニケーション : Slack, Viber
  • 静的コード解析ツールを活用し、最低限のコード品質チェック
  • 1日あたり3〜5回リリース実施

あなたのマイスターは、多くの部分をCakePHP3系で実装されています。過去にサーバー処理のパフォーマンス改善のために、PHPバージョンアップや各種キャッシュ機構の導入を行なってきました。 Vue.jsも一部導入しています。SEO観点でクローラ対策のため、GoogleにインデックスしてほしいページはVueの導入を部分的に控えています。(まだSSRを実装するまでに至らず)今後JS周りのトレンドはキャッチアップ必須の技術であると考え、エンジニアたちは自習+業務以外のアウトプットでも鍛錬を積んでいる状況です。

RELIVERSはWordpressをベースに運用しています。CMS部分はWordpressをそのまま使っており、ユーザーに表示するところや記事検索に関しては、あなたのマイスターと同じ構成で動かしています。同じエンジニアチームで開発しているので、開発環境をまとめることで開発効率を上げられていると思います。また、WordpressREST APIを活用していたのですが、アクセス数が増えると耐えられないことがわかったので冗長構成をとったESやRedisを組み合わせながら負荷対策も行なっています。今後ユーザー数はどんどん増えていくので、近いうちにまたキャパシティ増大のための施策を打っていかねばならない、という状況です。

アプリ

ミツモ!(iOS/Android

f:id:yourmystar_engineer:20191120155336p:plain

マイスターアプリ(iOS/Android

f:id:yourmystar_engineer:20191120155431j:plain

技術スタック、開発環境

  • 言語: Kotlin, Swift, Dart (Flutter)
  • インフラ : EC2, S3, RDS, ELB
  • サーバーサイド : Ruby on Rails
  • ミドルウェア : MySQL, Nginx
  • 監視:Mackerel
  • CI : Bitrise, Sider
  • コード管理 : GitHub
  • タスク管理 : GitHub Issue
  • コミュニケーションツール : Slack, Viber
  • MVVM, Clean Architectureなどモダンなアーキテクチャを採用
  • コードベースでのUI実装, Embedded Frameworkを活用したマルチモジュール化
  • 静的コード解析ツールを活用し、最低限のコード品質チェック
  • 週1回の継続的なリリースを実施

ミツモ!は2019年2月リリースのユーザー向けのアプリで、iOSはSwift、AndroidはKotlinと異なる言語で書かれています。サーバーサイドは共通でRoRAPIを立てています。データベースはあなたのマイスターのMySQLと共有しているため、Web側のデータベーススキーマ変更の際にはRoRのプロジェクトにもモデル変更が発生することがあります。

マイスターアプリに関しては、つい最近リリースしたばかりでもともとWeb版で提供していたパートナー様(あなたのマイスター出店企業)用管理画面をアプリで提供するために生まれました。開発期間は2ヶ月強という爆速で、それを実現したのもFlutterを活用できたことが要因です。またUIに関してもMaterial-UIをベースにするのと、クロスプラットフォーム開発を行うことにより、少ないリソースでiOS/Androidともにリリースまでたどり着きました。

今後アプリ担当を増やし、Webに追いつく/追い越す勢いで拡大したいと考えています。ご利用いただく方々に満足いただける方法を週次で改善していきます。

まとめ

ユアマイスター が運営するサービスはこれからも拡大していく予定です。(そのためにエンジニアを積極的に採用していく)

ちなみに、詳細は書けませんが、特許をとって積極的に投資をしていこうとしている分野もあります。ユアマイスター のエンジニアチーム

技術を使ってお客様や出店企業様の課題解決ができるよう、これからエンジニアの仲間を増やしていこうと思ってます。少しでも興味がわきましたらぜひ星(@inase17000)にDMください。お気軽にオフィス見学やカジュアル面談も可能ですのでお声がけください。

ユアマイスター では一緒にはたらくエンジニアを募集しています。

▼お気軽にご連絡ください▼

https://corp.yourmystar.jp/recruit

お気軽にご連絡お待ちしてます!!