Colorkrewの自社サービスを支えるエンジニアの、仕事、取り組み、ポリシー。
彼等が日頃どんなマインドでプロジェクトを進め、チャレンジをしているのかをご紹介します。
「MSP」プロジェクト
MSPプロジェクトはColorkrewのクラウドマネジメントサービスである「くらまね」を遂行するプロジェクトです。
「くらまね」は、クラウドの販売サービス、システム環境の構築、 24時間365日(以下24/365)の運用・監視をお客様のご要件・ご要望に合わせてトータルにサポートするフルマネージドサービスです。
AWS/Azure/GCPの3大パブリッククラウドを扱うマルチクラウド対応が特徴で、エンタープライズのお客様を中心にサービスをご活用いただいております。
近年はVMベースのIaaSだけではなく、サーバレスアーキテクチャーを採用するお客様も増加しており、多様なシステム設計を行っております。
海外で開催されるカンファレンスへの参加などを通して最新技術のキャッチアップし、クラウドベンダーが開催している展示会への出展やセッション登壇を行う機会もあります。
環境
メンバー内訳:設計・構築チームメンバー12人、運用チームメンバー15人、監視チームメンバー15人、サポートチームメンバー2人
クラウド:AWS、Azure、GCP、その他国産クラウド
OS:REHL、CentOS、ubuntu、Amazon Linux、Windows Server
ミドルウェア:Apache、nginx、php、php-fpm、IIS、redis、memcached、java、mysql、postgresql、SQL Server、fluentd、elasticsearch、kibana、Active Directory、LDAP
プログラミング・スクリプト言語:Python、C#、ASP.NET、ruby、shell、PowerShell
監視ツール:Zabbix、Datadog、Opsramp、mackerel、クラウドベンダーのモニタリングツール
ツール: GitHub, terraform、ansible、chef、jenkins、Docker、slack、Teams
チームの特徴
オンプレ時代のインフラ・ネットワークエンジニアをベースとしたメンバーが中心です。
クラウドファーストの時代、DevOpsにも注力すべくプログラマ出身のメンバーも参画しています。
チーム内では設計チーム、運用チーム、監視チームのカテゴライズをしています。
設計チームのエンジニアは、「くらまね」のお客様へ営業同行し、プリセールスエンジニアとしての側面も持っています。
受注に至った際は、そのまま設計・構築フェーズでも作業を行い、運用チームへ運用を引き継ぎます。
設計チーム内では2人以上でバディを組み、お互いの長所を引き出せるように業務を進めています。
クラウドベンダーの展示会で登壇することもあります。
運用チームは、「くらまね」のお客様のシステム運用の役割を担います。
モニタリング結果からの改善提案やお客様との定例会などへの参加も行います。
定常運用や技術的なお問い合わせについては、平日営業時間帯に対応します。
障害発生時のサポート対応は24/365で対応を行っています。
監視チームは、お客様のシステムを24/365で監視します。
お客様のシステムで異常が確認できた場合は運用チームエンジニアへのエスカレーションを行います。
手順書が準備されているシステムについては、監視チームが手順書に従い復旧作業を実施することもあります。
このプロジェクトのチャレンジ
MSPプロジェクトリーダーの赤川です。
日々進化・改善していくクラウド界隈の情報をキャッチアップし、未知の領域に挑んでいます。
“脱・TOEIC難民!500点以上UPしたエンジニアのサクセスストーリー”
クラウドインテグレーション
徐々にインフラのベースがクラウドへと移行していますが、現状は既存の構成をそのままクラウドへと移行しているものが大半です。
リフト&シフトという言葉があるように、これからは次のフェーズとしてクラウドネイティブな構成へとシフトし、高負荷時やコスト効率化に融通の利くクラウドならではの提案も求められます。
場合によっては、オンプレとクラウドのハイブリッドが最適だったり、未知の領域のものはPOCを通して実現性を検証する、といった提案もしています。
日々進化・改善していくクラウド界隈の情報をキャッチアップし、お客様が実現したいことにマッチした提案を行い、未知の領域でもチャレンジして取り組む場面が多いプロジェクトです。
“3大クラウドに挑む、インフラエンジニア”
脱旧来型のインフラエンジニア
Infrastructure as Codeが提唱されてからAnsibleやChefなどに取り組んできましたが、teraform、CloudFormationによるコードでの構成管理はもちろん、PythonでFunctionを書く機会も増えてきています。
インフラの中身の構成管理からクラウド全体の構成管理、場合によってはイベント駆動のコードを書く、デプロイ環境を整える等、お客様のニーズにより今実現できる最適な構成を提案から運用ができるエンジニア集団を目指しています。
“時代に合わせたクラウド設計、ハイブリッドクラウドで新たな挑戦”
エンジニアとして目指しているもの
Colorkrew以前は移動体通信事業のサポートデスクやSIer様にインフラエンジニアとして常駐するSESの事業会社にいました。
前職でAWSを検証する機会があり、ポチポチするだけでサーバを起動できることに衝撃を覚え、これは来る・・・、と思ったのがきっかけでColorkrewに転職しました。
入社してすぐに、「オンプレ環境の案件かAWS環境の案件か、どちらが良い?」と聞かれた時に即答で「AWSで!」と答えました。
AWSの実務経験ないのに。
新規案件の営業同行にも手を上げ、手に汗を握りながらこなしていきました。
プリセールス経験ないのに。
子供が産まれたばかりなのに、親会社関連子会社(当時)のシンガポールにおける事業サポートエンジニアの募集に手を上げ、シンガポールのエンジニアに対してAWSのスキルトランスファーを行いました。
英語できないのに。
興味あるけど、やったことないからやらない、のではなく、やってみて苦労して振り返って判断すればいいんじゃないか。
ちょっと乱暴ですが(当然サービス影響あることには慎重ですよ・・・)、そんな信念を元に働いています。
よく今後AIに奪われる仕事が取り上げられますが、クラウドベンダーの進化によってインフラエンジニアもニーズが減っていくと思っています。
「不要な管理をなくし、事業に集中してもらうこと」がクラウドベンダーの提供したい未来であり、私もその流れに進んでいくことに異議はなく、そうあるべきであると思っています。
インフラエンジニア達にとってはあまり明るい話ではないかもしれません。が、世の中の変化は止められないので自分たちが変わるしかないと思っています。
直近の話でいうと、インフラのコード化や従来手組みでやっていた運用の自動化、レポート作成、IaaSにとらわれないシステム提案などですかね。
クラウド・世の中の変化を敏感にキャッチアップし、やってみるの精神を忘れずに自分自身も変化し続けることを目指していきます。
“障害にマルチ対応、運用監視のスペシャリスト”
「Mamoru」プロジェクト
『Mamoru』は、ユーザビリティーとセキュリティーを両立した認証&ワークススタイルイノベーションサービスの統一ブランドです。
今回は MamoruシリーズのQRコードで働き方をワクワク、スマートに。名もなき仕事を減らすビジネスコンシェルジュツール "Mamoru Biz"についてご紹介します。
Mamoru Bizには、ワークスタイルに関連したヒト・モノ・カネの名もなき仕事を減らすために、座席表/予約機能、スケジュール機能、備品管理機能、社内決済機能を提供しています。
例えば、
環境
Back-end: PHP8, MySQL, Redis, Laravel, SQL Server
App: Swift, Kotlin
Infrastructure : Azure (Docker, Kubernetes, SQL Database, Redis)
Tools: GitHub, Docker, MS Teams
チームの特徴
まず技術面から。
Mamoruには、プッシュ通知&QR認証サービスのMamoru PUSHとビジネスコンシェルジュツールのMamoru Bizがあり、これらは全て同じチームで開発しています。
Mamoruの各サービスが発展途上にあるため、それぞれのメンバーは「昨日はサービスAの機能を開発して」「今日はサービスBのバグ修正をする」ということがざらです。 そのため、なるべく多くのメンバーがどのサービスも開発できる状態をつくるようにしています。
それぞれのメンバーが技術的に得意領域を持ちつつ、重なる部分を広げていくイメージです。
Azureで新しい技術を導入する際には Azureを得意とするメンバーが関わりますが、既存環境に手を入れるような場合は他のメンバーが作業を行うこともあります。
普段コードを書かないメンバーも、場合によってはGitHubにPullRequestを送ります。
コードレビューは誰かが行うスタイルで、マージすると社内で利用しているステージング環境にリリースされ、その後本番環境へリリースする手順を取っています。
それぞれが得意な技術を深堀りしつつ、技術の幅を広げる。メンバーの冗長化という側面もありますが、Colorkrewが大事にしている"成長"の機会を促進する意図も含んでいます。
ビジネス面では、各サービスのドメイン知識が豊富なPLが中心に施策を打っています。
業界との繋がりも多く、最近では某セキュリティー団体をリードされている外部の方に勉強会を開いていただきました。こういった貴重な機会を得ることができるのは、Mamoruチームならではかもしれません。
開発リーダーへのインタビューブログ:
開発に採用に育成に!多方面に活躍するMr.リーダブルコード
このプロジェクトのチャレンジ
インフラを担当している秋山です。
技術的なチャレンジとして、Mamoru BizでDockerを本番環境に導入しました。
なぜ導入したか
Docker を動かすインフラはMicrosoft AzureのWeb App for ContainerというDockerのPaaSサービスを採用しています。
Mamoru Biz の開発にDockerを採用した理由としては、MamoruがAzureを全面的に利用していることが前提ではありますが、Docker によって開発環境や本番環境を同じ環境にし、かつ特定クラウドにロックインされないポータビリティが得られる点にあります。
Web App for Containerは2017年9月に正式リリースしたばかりですが、私が Mamoruとは別のプロジェクトで取り組んでいるインフラ事業でもお客様環境で利用しており、導入への抵抗はほとんどありませんでした。
ほぼ同じ構成を採用している別のサービスについて書いたColorkrewのブログ(Colorkrew Blog)記事は下記です。
“LAMPのシステムをAzureの PaaSに移行しました”
導入障壁
Dockerをプロダクションで採用するとなると、プログラマーがそれに対応できるかが問題になりがちですが、ともにMamoru Biz
を推進していたメンバーはDocker採用に前のめりだったため、僕らには問題になりませんでした。
Web App for ContainerはひとつのDockerコンテナを動かす Webに特化した PaaSなのですが、Mamoru BizのDockerfileは彼に用意してもらい、私はレビューするだけでした。Web App for ContainerはひとつのDocker コンテナを動かすWebに特化したPaaSです。Mamoru BizのDockerfileはメンバーが用意し、私はレビューするだけでした。
デプロイフローは今回Docker Hubのプライベートリポジトリを利用しています。Git Hubからのインテグレートがどのように動くか、メンバーに使ってもらい、体感してもらいながら託していきました。
デプロイフローについても Colorkrew Blogに書いています。
“Azureエンジニアから見たDockerを取り巻くDevOpsサービスのまとめ”
Colorkrewのエンジニア
こういったようにプロジェクトを進める際は、基本的な Azureサービスの使い方やポイントとなる部分を私がプログラマーに説明し、プログラマーには自分で使って慣れてもらう、という形を取ることが多いです。
多くの人がほかのプロジェクトを兼任しているため、同時にひとつの作業に向き合う時間は限られます。ナレッジを共有しつつもそれぞれが「自走できるエンジニア」としてふるまうことがColorkrew では求められるといえるでしょう。裁量が大きいことを好む方には合っているかもしれませんね。
エンジニアとして目指しているもの
もともとプログラマーをやっていた経験があり、今はインフラ寄りのエンジニアをやっています。
DRY, YAGNIといった原則をサービスの機能という意味だけではなく、プロジェクト活動の中でも常に念頭に置いて日々の業務を進めています。
たとえば、Azureはクラウド市場でAWSを追い上げる2番手ですが、同時に、AWS経験があるエンジニアはColorkrewに限らず世の中にあふれています。
Azureを追っているエンジニアは、入社時のColorkrewには多くなく、私がその領域を切り開くことで活躍の機会が多くなるのではないかと考え、率先して Azureへの理解を深めました。
また、インフラエンジニアでプログラムを書くことに抵抗がなかったり、サービス開発をしていてインフラにどういうものを求めるかの肌感覚を持っている人はそこまで多くないように感じます。
インフラの視点とプログラマーの視点、両方を持つエンジニアとして、Colorkrewへフィードバックできるものがあると考えています。
あとは、個人としてもちょっとしたハックを何かしら続けるようにしています。
Railsや Electron, React, RaspberryPiなど、そのとき気になったものに触れてきました。
ITの世界では遊びで触っていた技術を1年後に仕事で使うことになる、といったことはザラに起きるもの。フットワークの軽い取り組み、マインドを持ち続けることが大切。
「やったことがいつか自分に返ってくる」瞬間を実感できるのは、とてもうれしいですね。
「Goalous」プロジェクト
Goalousは目標への活動プロセスを見える化するSNS型目標管理ツールです。
OKRを発展させた独自の目標管理メソッド「GKA」を採用。
業務上の目標を「Goal」として定め、ゴール到達に必要な指標を「KR (Key Result) 」として設定します。
そしてゴール達成に向けての日々の活動を「Action」として、写真を使いながら投稿・共有します。
メンバーの活動がリアルタイムに見える化されることで、目標管理の効率化、理念浸透や相互理解によるチームの団結、透明性の高いプロセス評価、効果的なコーチングなどが実現でき、組織力が向上します。
環境
バックエンド: PHP, CakePHP, MySQL, Redis
フロントエンド: Angular, React, jQuery
インフラ: AWS (EC2, ALB, OpsWorks, RDS, ElastiCache, S3, etc)
ツール: GitHub, TravisCI, JIRA, Confluence
チームの特徴
日本人に加えて、中国人、オランダ人、マレーシア人、ウズベキスタン人、韓国人、ブラジル人など多国籍なメンバーで構成されており、開発チーム内でのコミュニケーションは英語で行なっています。
月に1度のスプリントで開発することを決定し、各メンバーが責任を持ってそれらのタスクを受け持ちます。
週に1度の進捗ミーティングは全員参加で行なっていますが、個別の相談事など日々頻繁にコミュニケーションが取られています。
Colorkrew全体としてもそうですが、何か相談を受けた時などは快く応じる文化があり、新メンバーがチームに溶け込むのもあっという間です。
具体的な開発に関すること以外にも、Goalousにこういう機能を入れた方がいいのではないか、こういう売り方をした方が良いのではないかなど、開発の枠に捉われないビジネス寄りの会話も日常的に行われており、実際にエンジニアからの提案で機能実装されることもよくあります。
世界のシゴトをたのしくするサービスを作っているGoalousチームが世界で一番シゴトを楽しんでいる。そんなチームでありたいと思っています。
開発リーダーへのインタビューブログ:
楽しくなけりゃ続かない!チームを愛する開発リーダー
エンジニアに必要なものは、日々変わってゆく技術を自らの興味の向くまま追いかけるドライブ力。
けれどそれだけでは偏ってしまうし視野も狭い。では、どうするのか。
Colorkrewで行われているオープンなナレッジ交換をご紹介します。
このウェブサイトでは、よりよいユーザー体験のためにCookieを使用しています。詳細は、Cookieに関する方針をご参照ください。OK をクリックまたは本サイトの利用を続行することで、我々がCookieを使用することに同意したとみなされます。