サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
おみそ汁
mixi-developers.mixi.co.jp
こんにちは。MIXI 開発本部 SREグループの riddle です。 以前 Flutter on the Web と WidgetBook をGCSを使って Pull Request 単位にセキュアに公開する | MIXI DEVELOPERS という記事を書きましたが、今度は Cloud Run で似たことをやってみます。 単に Cloud Run を Pull Request ごとに作るのは簡単ですが、Identity-Aware Proxy を使うところが難しいのでそこに焦点をあてて紹介します。 <目次> 作った全体の構成仕組み 2.1 Developer が https://XXXXX.example.com にアクセス 2.2 Identity-Aware Proxy が Developer の認証を行う 2.3 Nginx による Cloud Run へのリバースプロキシ 2
既知の不具合として Cloud Run でカスタムドメインを利用するとレイテンシーが高くなる問題があります。 Cloud Run の既知の問題 | Cloud Run のドキュメント | Google CloudCustom Domains latency impact for asia-northeast1, australia-southeast1 and northamerica-northeast1 [64458939] — Issue Trackerとはいえ直接カスタムドメインマップする機能はプレビューリリースなので仕方ありません。(カスタム ドメインのマッピング | Cloud Run のドキュメント | Google Cloud) この記事ではなぜレイテンシーが高くなるのかを調べてみます。 ※この記事は2023/11/30時点の調査のものです <目次> 先に結論予備知識 2.
本記事は、2023年9月29日に開催された SRE NEXT 2023 に登壇させていただいた みてねプロダクト開発部 基盤開発グループ SREチーム 杉本(@kohbis)のセッションを、文字起こしをベースにブログ記事にまとめたものです。 セッションについてタイトル1,800万人が利用する『家族アルバム みてね』におけるK8s基盤のアップグレード戦略と継続的改善 セッション概要『家族アルバム みてね』(以下、『みてね』)のインフラは、2021年始めにAWS OpsWorksからAmazon EKSのマネージドK8s基盤へと移行しました。K8sの採用は大きな恩恵がある一方で「運用コストが高くなる」と一般的に言われています。その理由としてあげられやすい4ヶ月に一回のマイナーリリースへの追従については、K8sクラスタの運用経験のある方であれば少なからず苦労した思い出があるのではないでしょうか。
研修資料・動画一覧Git研修 ( 動画 / スライド )データベース研修 ( 動画 / スライド1, 2 / リポジトリ )テスト・設計研修 ( 動画 / スライド )コンテナ研修 ( 動画 / スライド1, 2 )iOSアプリ開発研修 ( 動画 / スライド / リポジトリ )Androidアプリ開発研修 ( 動画 / スライド / リポジトリ )Flutter研修 ( 動画 / スライド / リポジトリ )フロントエンド研修 ( 動画 / スライド / リポジトリ )ゲーム開発(Unity)研修 ( 動画 / スライド1, 2, 3, 4, 5, 6, 7 / リポジトリ )AI研修 ( スライド / リポジトリ)データマネジメント研修 ( 動画 / スライド )セキュリティ研修 ( スライド )インシデントハンドリング研修 ( 記事 )チーム開発研修 ( スライド )Git研修チーム
こんにちは、株式会社 MIXI 開発本部 CTO 室 SRE G 所属の yhamano0312 です。 SRE G では全社横断でのサービス運用における効率化/自動化をミッションに掲げています。その活動の一環として AWS 利用料金 Slack 通知ツールを全社利用できるようにしたので、こちらの作成背景やアーキテクチャを紹介します。 ツールを作成した背景MIXI では様々なサービスを展開しており、そのうちのいくつかは AWS 上で稼働しています。AWS に限らず従量課金のクラウドサービスを利用する場合は定期的に利用料金を確認しコスト最適化を行うことで、サービス運用費用を最小限にしていくことが望ましいです。 今回作成した AWS 利用料金 Slack 通知ツールは定期的な利用料金確認を開発チーム内で行う一助となることを目的としています。 通知内容AWS 利用料金 Slack 通知ツールから
移行のゴールは単純で「ユーザの資産の引き継ぎ & 新バージョンで遊べるようにする」 です。ただし、いくつか追加、変更、削除された資産もあるので、補填を含めて対応する必要があります。 新しいバージョンの差分バージョンアップに伴い、データベースに以下の変更がありました。 テーブルの追加、削除インデックスの追加、変更、削除カラムの追加、削除またマスターデータも大幅に更新がありました。 マスターデータとは ゲームで使用するさまざまなパラメータ(敵や経験値、マップなどユーザ全員が共通して利用するもの)を保存したデータのことを指します。形式はゲームによってさまざまで、KVS・DB・CSVなどで管理されます 実際にどう進めたのか?実施した内容を、時系列順に紹介します。
最近は日本でも、時々耳にするようになった DevRel ( Developer Relations ) という職種。 でも多くの方は、DevRel が企業組織の中でどんな役割を持ち、どんなことを行っているのか、ご存知ないかと思います。 MIXI では、約4年前から DevRel の名前のついた組織が存在します。組織といってもつい最近まで2名、現在で3名体制ですが…。 正式に DevRel チームとなるまでは、採用・技術広報として、エンジニアの採用担当と連携しながら、カンファレンスへの協賛やエンジニアの登壇サポートなどを行っていました。その後、エンジニアブログの立ち上げや YouTube で海外カンファレンスの現地からのレポートを配信するなど試行錯誤を重ねる中、一方的な情報発信やPR活動だけではなく、社内エンジニア同士や社内外エンジニア同士のコミュニケーションについても目を向けるようになり、
ユーザーの増加を喜んでいたら、いつの間にかクラウドコストが高額になっていた!という経験や、コスト削減の結果、安定したサービス運営に必要な部分まで削ってしまわないか不安になった経験はありませんか? 多くの事業にとって、クラウドサービスは欠かせないものになりましたが、何も気にせずに使っているとクラウドコストは右肩上がりで高くなってしまいます。 今や『コスト最適化の知恵』は誰しもが持っていて損が無いもの。ですが、養うのは中々難しい。 こんな時は詳しい人に聞くしかない!ということで、酸いも甘いも知るベテラン SRE のおふたりに、クラウドコスト最適化術について聞いてみました。 クラウドコスト削減のアイデアが欲しい闇雲にコスト削減を目指すのではなく、『コスト最適化』の考え方が知りたい方は、ぜひご覧ください。 ※この記事は「MIXI DEVELOPERS Advent Calendar 2022 」
こんにちは。MIXI 開発本部 SREグループの riddle です。 自分の所属するプロダクトでは、ビルドツールとして Bazel を利用していたのですが、いろいろあって make に変えたので「Bazel をなぜ導入してなぜやめたのか?」 を紹介します。 <目次> Bazel とはどこに Bazel を使ってたのか?なぜ Bazel をやめたのか? 3-1. Bazel の運用コストが高かった 3-2. Bazel の速度問題 3-3. Bazel ではできないことがあるmake に移動したわけまとめBazel とは Bazel は Google が開発したビルドツールで、Java、C++、Go、Android、iOS、その他多くの言語とプラットフォームを使用してビルドとテストができます。 ローカルやリモートのキャッシュをうまく用い、アプリケーションのビルドやコンテナイメージの生成、テ
本記事は、世界規模の情報セキュリティコンテスト『SECCON』のインフラチームで活躍する2名のエンジニアへのインタビューです。 ◎前編はこちら 前編では、おふたりのSECCONでの活動内容や、SECCONインフラチームとしての今後の展望などについてお話いただきました。 後編では、「なぜそこまでセキュリティに惹きつけられるのか」や「セキュリティとプロダクト開発、ふたつの主軸を得た先で目指すエンジニア像」など、おふたりのセキュリティに対する興味の根幹に迫るインタビューをお送りしていきます。 ━セキュリティへの強い興味、そしてふたりに共通する「プロダクト開発も大事にする」という考え方の源泉は?━━後編では、おふたり自身についてお聞きしていきます。まずは、セキュリティに興味を持ったきっかけを教えてください。 浅野:最初のきっかけで言うと、確か小学校入学前に家でパソコンを触っていて、マルウェアに感染
今年も技術研修資料と動画を公開します!MIXIの新卒技術研修の方針や、LayerX様との合同研修についても紹介します! 研修資料・動画一覧Git研修( 動画 / スライド )データベース研修( 動画 / スライド1, 2 / SQL演習環境 )設計・テスト研修( 動画 / スライド )コンテナ研修( 動画 / スライド1, 2 )iOSアプリ開発研修( 動画 / スライド / リポジトリ )Androidアプリ開発研修( 動画 / スライド / リポジトリ )フロントエンド研修( 動画 / スライド / リポジトリ )ゲーム開発(Unity)研修( 動画 / スライド1, 2, 3, 4, 5, 6 / リポジトリ )Flutter研修( 動画 / スライド / リポジトリ )AI研修( スライド1, 2, 3, 4 / リポジトリ )セキュリティ研修( スライド )チーム開発研修( スラ
こんにちはミクシィの 開発本部 SREグループ の riddle です。 今回は先日作った TODOリストの Dapps を Hardhat を使って動かしたいと思います。(最近は Hardhat が結構使われているよと教えてもらった) 先日のやつ → Dapps TODO リスト をSolidity で作ってみた今回のコードはこちら → lirlia/solidity-hardhat-todo目次◆ Hardhat とは? ◆ Hardhat に移行してみる ◆ MetaMask の準備 ◆ フロントエンドの準備 ◆ 動かしてみる ◆ まとめ Hardhat とは?Hardhatは Ethereum ソフトウェアをコンパイル、デプロイ、テスト、およびデバッグするための開発環境です。 Truffle と異なり Hardhat 自体が Ethereum 互換のネットワーク(ローカルイーサリア
こんにちはミクシィの 開発本部 SREグループ の riddle です。 私が所属するチームではインフラを Terraform で管理しています。 https://www.hashicorp.com/brandTerraform の実行は CI で管理されており、GitHub の Pull Request(以下PR) が作成・修正されると Terraform plan CIを実行し、PRのマージ時には Terraform apply CI を実行するようにしています。 今のままでも便利なのですが、より快適にするべくいくつかの目標をたてて改善することにしました。 可能な限り Terraform plan / apply を高速にしたいTerraform plan を並列に実行したいCI の価格を抑えたい(plan / apply ジョブの実行時間を最小にしたい)Terraform の運用を簡
昨年同様ミクシィの22新卒技術研修の資料と動画を公開していっています。まだ研修中なので、一部の公開にはなりますが、ぜひゴールデンウィーク中の学習にお使いください。
ショックを受けた riddle公式では Go 製の「External Secrets Operator(ESO)」が推奨されていますが、Kubernetes-SIGSにはSecret Store CSIという同じく外部の Secret 格納庫からデータを引っ張るプロダクトが存在しています。 2022/02/12時点の比較そこで今回はKES を移行するにあたって「どちらのほうが良いのか?」を検討してみたので紹介します。 先に結論を書いておくと私達のユースケースでは「External Secrets Operator(ESO)」が良さそうでした。 目次◆アーキテクチャの違い ・KES -> ESO で変わったこと ・GKE で使用する場合の権限 ◆Kubernetes Secrets Store CSI Driver ・ExternalSecret と異なる点 ◆ExternalSecret
モンスターストライク(以下、モンスト)のバックエンドの開発・運用チームでは、大小様々なツールをモノレポで管理しています。 また、モノレポにビルドツールの Bazel を導入して、プログラムのビルドやテストの実行などを統一したインターフェースで行えるようにしています(詳しくは過去の記事「Bazelとモノレポ」を参照してください)。 モノレポにある多くのツールは Go で書かれています: ちなみに、Perl も多いのは SNS mixi 時代のツールを引き継いでるからっぽいですGo と Bazel の相性はよく、公式からも Bazel + Go の開発を支援するツールが提供されています(e.g. Gazelle)。 モンストのバックエンド本体は Ruby で書かれており、いくつかのツールも Ruby で書かれています。 現状、モノレポにある Ruby 製ツールには Bazel が導入されていま
こんにちは。ミクシィの 開発本部 SREグループ の riddle です。 最近は Kubernetes Manifest のスキーマチェックができる kubeconform の布教活動をしています!(主にブログで) kubeconformを使ったKubernetes Manifestの型チェックをCIに仕込んでレビューを楽にしよう!kubeconform の asdf プラグインを作成しました kubeconform image by @eyarz is licensed under the Apache-2.0 License.スキーマチェックは Manifest のミスを発見できるので、CI と非常に相性が良いです。しかし 「新しい Manifest を追加したときに、新しいスキーマを手動で追加する」 のが面倒です。 具体的には以下の作業が必要です。 カスタムリソース(CR)が含まれ
『モンスターストライク(以下モンスト)』では、App Store Server Notifications Version 2への対応を2022年1月より進め、2022年3月に対応を完了しました。対応にあたっては、 Rubyではruby-jwtを使いJWSの検証を行うことができるApp Store Connectの設定反映にはタイムラグがあるということが分かりました。この記事では詳細について、実際のコードを交えて紹介します。 · App Store Server Notificationsとは · バージョンアップについて ∘ Version 2での変更点 · Appleから提供されたJWSを検証する ∘ ruby-jwtによる検証方法 · 対応のリリース ∘ 設定後数時間はVersion 1とVersion 2の通知が混在する · まとめ App Store Server Notific
※注意※ この話はGitHub 自体の脆弱性ではなく私達の設定に起因する脆弱性です また特にこの話に関連したインシデントは発生していません こんにちはミクシィの 開発本部 SREグループ の riddle です。 私達は GitHub による Pull Request(PR) ベースの開発を行っております。同様にインフラも Terraform コードを GitHub で管理しています。 Terraform を管理するリポジトリには2種類のCIがあります。 PR の作成・更新で動く terraform plan の CImain ブランチへのマージで動く terraform apply のCI※ terraform plan : 設定に従ってインフラを変更できるか? をチェックするコマンド ※ terraform apply : 設定に従ってインフラを変更するコマンド 何があったのか? 私達
こんにちは ミクシィの 開発本部 SREグループ の riddle です。 ※こちらで自己紹介を簡単にしていますのでよろしければご覧ください 今回は私が技術書典12で書いた同人誌の内容を一部ご紹介します。 ※無料でダウンロードできますのでどうぞ → リンク クイックスタートビルドクイックスタートビルド とはあらかじめ起動している Google Compute Engine (以降 GCEと略します) 上ですぐにビルドジョブを開始できる Cloud Build の機能です。 ※プロビジョニングの遅延とは GCE が起動するまでの待ち時間のことです) マシンタイプが e2-medium の GCE のみが対象で、ほかのマシンタイプよりも高速にビルドを開始できます。(あくまで起動が早いだけなので CPU や メモリが必要な場合は適切なマシンタイプを使う必要があります) どれぐらい早いのか?実際に
本記事は「ミクシィグループ Advent Calendar 2021」の15日目の記事です <目次> Kubernetes の Manifest チェックの話Manifest の Validation を行うメリットkubeconform の裏側の仕組みkubeconform のインストール方法カスタムリソース定義もチェックしよう 5.1 例: cert-manager の カスタムリソースを使ってみる 5.2 CRD の用意 5.3 スキーマを作成するkubeval との比較まとめKubernetes の Manifest チェックの話Kubernetes では様々な Manifest ファイルを書く必要があります。 様々な Manifest ファイルよく使うリソースはわかっても、たまにしか利用しないリソースの修正を行う場合など人力でのチェックには限界があります。 そんなManifest
いつの間にか弊社のブログ記事がnoindexになっていて、色々試してnoindexが外れるまでのお話。下のツイートの裏側のお話です。 最終的にこうやるとnoindexが外れるのではと書いてありますが、あくまで確証はなく、他の記事を見ているといつの間にかnoindexが外れていたりしたので参考程度にしてください。 noindexの発覚ある日会社のslackにこんな投稿が。 なんかふと検索してたら気づいたんですけど、Medium にあげた最近の記事ってググっても引っ掛からなくないですか?? 最初はインデックスされるのが遅れてるのかなぐらいの気持ちでしたが、記事のソースを見てみるとまさかのnoindexが。もちろん自分たちでそのような設定をしたわけでもなく、関係しそうな設定も見当たりません。 さらに調査を進めた結果、 最近の記事だけではなく、過去の記事も含めて見たところほぼ全記事がnoindex
研修資料・動画一覧git研修(動画、スライド)データベース研修(動画、スライド、SQL演習環境)設計・テスト研修(動画、スライド)iOSアプリ開発研修(動画、スライド、リポジトリ)Androidアプリ開発研修(動画、スライド、リポジトリ)フロントエンド研修(動画、スライド、リポジトリ)ゲーム開発(Unity)研修(動画、スライド1、スライド2、スライド3、スライド4、スライド5、リポジトリ)git研修チーム開発でのGit(+GitHub)の使い方とGitの内部的な挙動についての講義と、Git Challengeから厳選した問題を解くハンズオン。 講義部分の動画とスライドを公開しています。
家族アルバムみてね でエンジニアをしていますロクネム( @_rockname ) です この度、2021年度のミクシィ新卒iOS研修にて SwiftUIによるiOSアプリ開発 をテーマに講義を行いました iOS研修以外にもミクシィでは多くの新卒研修を実施していて、なんとそれらで取り扱った 研修資料および講義の動画は(ほぼ)すべて公開 しています 詳しくは以下の記事をご参照ください
CS部CREグループ・マネージャーの豊川です。 今日はカスタマーサポート(CS)の現状の問題点とこれからのCSについて考えていることをお話しします。 KPIの罠CSに関わる他社の方とお話ししたりイベントに登壇したりすると、必ず話題に挙がるのがKPIです。「御社のKPIはなんですか?」と。 KPIによく使われる指標としては「時間あたりの対応件数」「第1報返信時間」「解決率」「NPS(ネット・プロモーター・スコア)アンケート」などがあります。 KPIに興味を持ち、目標達成に取り組むのは正しい姿勢です。 でもちょっと待ってください。そのKPIを達成すれば本当に良いCSと言えるのでしょうか? 私の経験からお話ししましょう。以前、少し残念だなと感じたこんなやりとりがありました。 私「つい先週Aという商品を買ったのだけれど、EXパックが付属した商品A+が今セールで同額になっている。私が購入したときにセ
「家族アルバム みてね」のSREチームの清水です。これは、ミクシィグループAdvent Calendar 2020、14日目の記事です。あまり時間がなく若干殴り書きとなっているので、抜け漏れ、誤りがあったらごめんなさい。 少し前にTwitterでこんなことをつぶやきました。 この内容について、もう少し掘り下げてみたいと思います。 インフラ障害への対応インフラに携わっている多くの方が何らかの障害を経験したことがあるのではないでしょうか。インフラの障害は全く起きないことが理想ではあります、絶対に起きないという保証はなかなかできません。提供するサービスの形態によってはSLAをかなり厳しくして、多少の障害点があったとしてもサービスが継続できる形をとっているケースもあるかと思いますが、すべてのサービスがそうであるわけではありません。かけられるコストとのバランスを考えて、多少のエラーレートを許容してい
家族アルバムみてね というサービスでiOSをメインに開発しているエンジニアの ロクネム(@_rockname) です みてねではiOS14の公開に伴い、目玉機能の一つである「ウィジェット」を開発してリリースしました (iOS14公開日からかなり遅れてしまいましたが…) 実装前は、かなり簡単に実装できるのでは?と考えて開発に着手したのですが、意外と面倒な部分もいくつかあり、、、 本記事ではそういった「ウィジェットを開発する前に知っておきたかったと感じたポイント」を6つほど紹介します みてねウィジェットとは?その前に、簡単にどういったウィジェットを開発したのか説明させてください そもそも家族アルバムみてねとは、家族で子どもの写真や動画を共有することができるアプリです ユーザー数もおかげさまで800万人を突破しています
次のページ
このページを最初にブックマークしてみませんか?
『MIXI DEVELOPERS』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く