見出し画像

お客様に安心してご利用いただくために我々は妥協しない

はじめに

Micoworks株式会社でSRE(Site Reliability Engineering)を担当している陳(チェン)と申します。

これまでプライベートや業務経験を含め、以下に挙げる多くの開発経験を積んできました。

  • Lispというプログラミング言語で処理系の作成やGitHubの機能のみでCMS(コンテンツマネジメントシステム)の作成

  • 既存のCRM(Customer Relationship Management)から互換性のない暗号化方式のシステムにユーザーデータ(パスワード含む)の移行

  • シフトレフトで最初からセキュリティ機能を搭載する社内開発基盤を開発

  • 大規模な予約サービスの構築をリードする実務

現在、今まで経験してきたコンフォートゾーンを離れて、自分自身の限界を広げるために、Micoworksで新しいことにチャレンジしています。

今回の入社エントリではMicoworksでのチャレンジについて紹介します。

プロフィール
■氏名: 陳 瀚 (チェン ハン)
■所属部署:プロダクト統括本部 SREチーム

2005年に留学で来日。日本語学校を経て神戸大学大学院を修了。
2010年から大阪の会社でWebアプリケーション開発に関わる。
2015年に神戸デジタル・ラボに入社し、2017年からは社内開発基盤の開発をメイン担当する。その後、2022年12月 Micoworks株式会社にSRE(Site Reliability Engineering)としてジョイン。

エンジニアを志したきっかけ

コンピューターに興味を持ったのは、子どもの頃パソコンゲームにハマったことがきっかけです。その後、映画「マトリックス」の影響でハッカーに憧れをもち、エンジニアを目指すようになりました。
大学では情報科学を学び、卒業のタイミングで両親から「日本に留学してみないか?」と提案を受け、私自身も異なる環境で学びたいと考えていたことから、日本への留学を決断します。来日後、友人から個人掲示板のメンテナンスをお願いされ、一年半ほどボランティアでWebサイトの管理を担当することに。その際、「国境をまたいでいても人々は繋がれる」、「そして自分もその繋がりをつくっている」と手応えを感じたことで、Webアプリケーション開発への興味が一層深まりました。そうした背景もあり、就職してからは一貫してWebアプリケーション開発をメインとするエンジニアとして働いています。

ソフトウェアの複雑性との向き合い方

私はエンジニアとして、さまざまなソフトウェアのメンテナンスやシステム構築・設計を経験してきました。その中で最も考慮すべき問題だと考えているのが、「ソフトウェアの複雑化」です。

ソフトウェアが複雑化する要因は大きく以下に分類できると考えています。

  • ソフトウェアで解決するための業務仕様自体(最も重要)

  • ソフトウェアで提供する機能群の切り分け方

  • ソフトウェアで提供する機能を実現するためのプログラムの実装方法(実現するためのロジック)

  • ソフトウェアを構成する要素間(AWSで提供されている機能など)の連携方法

基本的にはどのようなソフトウェアにおいても複雑化は避けられないものです。
しかし、多くのプロジェクトで複雑度を下げるために問題を単純化しようとした結果、逆に複雑度が高まるケースを見てきました。

例えば、改修を繰り返すうち、画面仕様が複雑になった機能を単純化して機能を分割するという対応。機能を分割化することで逆に機能間の境目がわかりづらくなり、仕様がより複雑化するリスクも伴います。

何度もこうした事象に直面してきた私は、ソフトウェアの複雑性をコントロールしたいと考えるようになります。そのためには、サービス全体を担保する方法論、つまりSRE(Site Reliability Engineering)の経験が必要だと考え、次のキャリアではSRE分野に携わることを希望しました。

Micoworksを選んだ理由

次のキャリアとしてMicoworksを選んだ理由は大きく2つあります。一つはSREの専属チームで働けること、もう一つは社長のエネルギーです。

・SREの専属チームで働けること
私はエンジニアとしてのスキルを磨くため、特にSRE分野の専門性を深めることを重視していました。そのため、SREチームが整備され、採用を進めている組織を探しており、その中で目にとまったのがMicoworksです。

Micoworksは急速に成長するSaaSサービス(MicoCloud)を提供しています。
それは、サービス安定後だけに見られる課題ではなく、急速に成長しているフェーズ固有の課題と向き合う必要があることを意味します。

たとえば、利用するユーザー数が急速に増えることで、扱うデータ量も爆発的に増加し、サービスのパフォーマンスに課題が出ることが考えられます。
成長フェーズにある組織で多種多様な課題を通じて学びを深め、スキルを磨き、プロダクトや事業成長に貢献ができるMicoworksに強く惹かれました。

・社長のエネルギー

転職活動の中で様々な企業の方と会話しましたが、MicoworksのCEOである山田との面談が強烈でした。とにかくすごいエネルギーを感じたんです。「社長にこれだけの熱量があれば、会社は必ず成長する」と確信し、そして、自分自身も成長できるのではと強く思いました。

Micoworksに入社してから

入社後は、MicoCloudを開発しているアグレッシブな開発プロジェクトに配属されました。

入社してまず担当したのは、データベースをNoSQLからNewSQLに移行する案件です。
データベースで扱う情報の形式を変更することで、お客様が保有する大量の情報の検索結果などを素早く返す改善が目的です。
この対応を行わない場合、データ量に耐えきれずお客様の配信速度が落ちる可能性や、不具合発生などの影響が出る恐れがありました。

参画当初、お客様に安心してMicoCloudを利用していただくために我々は妥協したくないと考え、パフォーマンス向上のためにデータベースの統合や切り替えを開発チーム内で議論しました。

当時、MicoCloudというプロダクトではDynamoDBとRedshiftを使っていましたが、期待したパフォーマンスを引き出せなかったのです。システムの複雑度が高くなり、これらの機能をうまく使いこなせていないという背景がありました。

開発チームで議論した結果、TiDBに統合して移行するトライをしようと話し合いました。

運用面も考慮して最終的に移行先はTiDBCloudになりましたが、検証作業や社内の稟議の確認なども必要で一刻も早く移行を進める必要がありました。

まずはEKS(Amazon Elastic Kubernetes Service)でTiDBを構築して、移行環境作りからはじめ、アプリケーションの改修を進めました。
アプリケーションの改修はSREメンバーの岡田の素晴らしい頑張りもあり、順調に進み、わずか1ヶ月での移行を完了できました。

補足となりますが、データベースはシステムの根幹となるので移行作業は難易度が高いものです。安全に倒す場合は検証期間を含めて1年くらいの時間を確保することも。今、振り返ってみても勇気のある決断だったと改めて思います。

その後、無事にリリースを迎え、サービスの安定運用を支える作業をSREチームの一員として行っています。

サービス側で発生する問題があれば、TiDBを調査したり、(TiDB運営会社の)PingCAPの担当者と連携を取ることもありますし、SREチームとして継続的にパフォーマンスの検証を行い、事前にチューニングしたり、回避策を取ることもあります。

また、TiDBへの移行プロジェクトに関してTiDB User Dayというテックカンファレンスに登壇し、お伝えしました。登壇した際には移行プロジェクトに加えて、運用で得た知見の共有も行っています。


私からみたMicoworksの魅力

  • 定期的な商談同席でお客様のペインをリアルに聞くことができる

私が特に気に入っている、「新規商談同席」というユニークな制度があります。
私たちエンジニアも月に一度、お客様との商談に同席する機会が設けられています。商談同席の場ではエンジニアから積極的に発言する必要はなく、無理なく参加できます。

この制度のおかげで、お客様のペイン、すなわちお客様が興味を持っていたり、困っている事柄を直接聞く機会があります。エンジニアにとってお客様の声を直接聞く機会はなかなか得難いですが、「新規商談同席」を通じてお客様の課題への理解が進み、よりビジネスへの解像度が高まっていると感じています。

  • 月に1回の全社総会で会社の状況を確認できる

Micoworksは月に1回全社総会があるので、新鮮に感じています。
( 私が過去に在籍していた会社では、全社総会は年に1回開催する会社がほとんどでした。)

毎回、全社総会の時に、今会社に何が起きているのか、どんなことが進んでいるのか、
どんなことが課題なのかを聞けるのは、スタートアップならではの強みだと思います。

おわりに

MicoCloudは多くのお客様にご利用いただいているサービスです。だからこそ、向き合わなければならない課題も数多く存在しています。。その課題を解決することでお客様に安心していただき、エンジニアとしても成長できる環境がMicoworksにはあります。

私はお客様に安心してサービスをご利用いただくことも、自身のキャリアアップにも妥協しません!

難易度の高いことにチャレンジし、成長することに共感できる方、そして、お客様の理解度を高めてお客様のビジネスに貢献することに興味がある方にぜひ仲間になっていただきたいと思っています。これから一緒にチャレンジできる仲間を探しているので、興味がある方はぜひ一度お話しましょう!

この記事が参加している募集

入社エントリ