チーム勉強会で Feature Flag とトランクベース開発の話をしました (追加訂正と書かれているスライドは、勉強会後議論した結果を反映したものです)
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。Yahoo!広告 ディスプレイ広告(以下、ディスプレイ広告)エンジニアの池田です。 本記事では、ディスプレイ広告において広告主の予算に対する課金処理・配信制御に使われるRelational Database(以下、RDB)を障害を起こさずにサービス無停止で移行した事例について紹介します。無停止でのRDBの移行を検討されている方がいらっしゃったらぜひ参考にしていただければと思います。 サービスを停止できない理由 今回、私たちが運用していたOracle Database(以下、OracleDB)のハードウェアのEOLおよびソフトウェアのEOLに伴うバージョンアップ(Oracle12c→Oracle19c)などの理由により、
機能リリースにあたって”フィーチャーフラグ”を使って、特定のユーザにのみリリースをしたりするやり方が一般的になってきたように思う。 また、launchdarklyのようなフィーチャーフラグに特化したサービスなども出てきている。 https://launchdarkly.com/ トレジャーデータでもフィーチャーフラグを利用して顧客にサービス提供を行なっているが、今まで経験してきた中で、こんなフィーチャーフラグを作ってしまうと後々困るから気をつけようね。って話をしてみる。 ちなみにここではオペレーションの観点からフィーチャーフラグの気をつけないといけない点を挙げる。 また、下記でいうところの"Experiment"または"Permission"に当たることが多い。 Feature Toggle Types | Unleash 1 - え、PMが機能リリース後にやめちゃった。 正確なデータがあ
フロントエンドにおけるフィーチャーフラグ標準化のための「OpenFeature Web SDK v1」がリリース。CNCFから Cloud Native Computing Foundation(CNCF)は、Webアプリのフロントエンドにおいて、任意の機能のオンオフを管理するフィーチャーフラグ標準化のための「OpenFeature Web SDK v1」をリリースした。 ソフトウェアの機能追加や変更を行う際に、いきなり全ユーザーに新機能や変更を展開するのではなく、展開する範囲や時期をコントロールするための仕組みとして「フィーチャーフラグ」がしばしば用いられます。 例えば、最初は少数のユーザーにのみフィーチャーフラグをオンにすることで試験的に新機能を試し、問題がなければ全ユーザーに拡大する、といった場合などに用いられます。 クラウドネイティブの普及や推進のための団体「Cloud Nativ
はじめにTIG DXユニット真野です。 CNCF連載の2本目はクラウドネイティブなフィーチャーフラグの標準とAPI、SDKを提供するOpenFeatureについてです。 フィーチャーフラグとはフィーチャーフラグとはコードを変更せずに、フラグを使って機能を有効/無効化する開発/デプロイ手法のことです。一般的なユースケースとしては、特定のユーザーに対して再起動とか再デプロイをせずに、新機能を有効化したいといった場合に役立ちます。信頼度が高くなったらより段階的に広範囲に対象を広げていくと安心ですね。この使い方だけであれば、カナリアリリースを想像しますが、他にも次のようなユースケースが考えられます。 初期から契約している特別な顧客(あるいはプレミアムプランに契約している顧客)に向けて開発した機能を提供する バグが見つかったので、該当機能を無効化してアプリの振る舞いをロールバックする 繁忙期にシステ
What's a Feature Flag?Feature flags are a software development technique that allows teams to enable, disable or change the behavior of certain features or code paths in a product or service, without modifying the source code. What's OpenFeature?OpenFeature is an open specification that provides a vendor-agnostic, community-driven API for feature flagging that works with your favorite feature flag
フィーチャーフラグAPIの標準化を目指す「OpenFeature」がCloud Native Computing Foundationのインキュベーティングプロジェクトに昇格 KubernetesやContainerdなどクラウドネイティブ関連ソフトウェアの開発をホストするなど、クラウドネイティブの普及や推進のための団体「Cloud Native Computing Foundation」(CNCF)は、フィーチャーフラグAPIの標準化を目指す「OpenFeature」がこれまでのサンドボックスプロジェクトから、新たにインキュベーティングプロジェクトに昇格したことを発表しました。 The CNCF TOC has voted to accept OpenFeature as a CNCF incubating project! Congratulations @OpenFeature ht
EngineeringHow we ship code faster and safer with feature flagsAt GitHub, we're continually working to improve existing features and shipping new ones all the time. From our launch of GitHub Discussions to the release of manual approvals for GitHub… At GitHub, we’re continually working to improve existing features and shipping new ones all the time. From our launch of GitHub Discussions to the rel
こんにちは、Analytics Infra チームの @yaginuuun です。主にA/Bテスト周りの改善や Recommendation 関連の分析を担当しています。 当ブログは 2021/07/28 に開催された Retty ✕ Mercari Analyst Talk Night! におけるLT内容を改めて少し補足を加えながらブログの形に書き起こしたものです。 当日の資料はこちらです。 A/Bテストとは A/Bテストは Randomized Controlled Trial (RCT) とも呼ばれる効果検証手法です。最も単純な例をあげると、二つの群を用意し片方の群にのみ何かの変更を加えることでその変更による数値変動を評価します。 A/Bテスト自体は医学や農業の分野など幅広く行われています。特に医学の領域においては Level of Evidence という考え方があるようですが、A
はじめに こんにちは、森茂です。 先日公開したmicroCMSのWebフロントエンドにクリーンアーキテクチャを採用した話【前編】に引き続き、今回は後編として前編で紹介させていただいた構成にあわせて、実際にどのような実装とチームへの浸透を行っていったかについて紹介いたします。 なお、記事内に記載している仕様、ソースコードは説明用として省略や変更、部分的な引用を行っています、実際のサービスとは異なる箇所もある点をあらかじめご了承ください。 前編より 前編ではmicroCMSのフロントエンドアーキテクチャをどういった背景、構成で採用したかを紹介しました。実装の段階に進むにあたっては、その中でもとくに責務(関心)の分離と負担なく開発を進めことができるかを意識することにしました。 また、前編でも紹介の通り、クリーンアーキテクチャという概念に振り回されないことも重要と考えています。完璧な設計を求めるこ
昔のflag管理 AWS AppConfigの導入 feature flagの管理 feature flagの利用 まとめ ソフトウェアエンジニアの浦川です。 clusterではサービス開発にfeature flagが活用されており、常時10+個程度のflagが並行して使われています。 これまでflagはgoのコードとしてハードコードされていたのですが、AWS AppConfigを利用してコードを修正することなく動的に変更できるようにしました。 昔のflag管理 ハードコードされたflagは1つのstructにまとめて定義されていて // feature flagを集めたもの type FeatureFlag struct { IsAvatarXxx bool // アバターを良い感じにする IsEventXxx bool // イベントを良い感じにする // (大量のフラグ) } app
2019.11.05 週刊Railsウォッチ(20191105前編)Rails 6のデフォルト設定解説、DHHも消したいaccepts_nested_attributes_for、スライド『実践Railsアプリケーション設計』ほか こんにちは、hachi8833です。今年の3連休は昨日のでおしまいだそうです。 実を言うと今年の祝日はもうだめです。 突然こんなこと言ってごめんね。 でも本当です。 この週末から月曜にかけて 3連休が来ます。 それが終わりの合図です。 3週間後に土曜日に潰される祝日が来るので 気をつけて。 それが過ぎたら、もう今年が終わるまで 祝日はありません。 — usa (@unak) November 1, 2019 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のよう
ABEMAのNativeチームでAndroidアプリの開発を担当している木永(@fuji_kinaga)と國師(@ronnnnn_jp)と高鼻(@go_takahana)です。 CyberAgent Developers Advent Calendar 2021 24日目のクリスマスイブは、ABEMAで行われたリニューアルプロジェクトについて、Androidアプリ開発の内容に特化してお話します。 目次 リニューアルプロジェクトの概要 リニューアルプロジェクトの開発項目 開発トピック1: ホーム画面のUI実装 開発トピック2: オンボーディングのアクセシビリティ対応 開発トピック3: リリースに至る開発戦略と開発Tipsのまとめ おわりに リニューアルプロジェクトの概要 始めに、2021年、ABEMAで行われた大規模なUI/UX刷新のリニューアルプロジェクト(通称: Phoenix) につい
はじめに パフォーマンス改善についての参考文献 実機計測 フィーチャーフラグ 計測・プロファイリング 効果見積 効果計測 おわりに はじめに こんにちは、クラスター株式会社のソフトウェアエンジニアのsotanです。今回はUnityクライアントのパフォーマンス改善の取り組みについて紹介します。ユーザーの皆さまに快適な体験を提供できるように、新機能の開発や既存機能の拡張・修正と並行して、パフォーマンス改善に取り組んでいます。具体的な改善点や改善方法を全て紹介することはできないのですが、どのような雰囲気で進めているのかを知ってもらえればと思います。 パフォーマンス改善についての参考文献 Unityアプリケーションのパフォーマンス改善に必要となる基礎知識やノウハウについては、 【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術(docswell, YouTube) Unityパ
株式会社サイバーエージェントでバックエンドエンジニアをしている江頭です。 今回、私たちのチームにトランクベース開発という手法を取り入れることによって、デリバリーの速度と開発効率が上がり1日に多いときで15回以上本番デプロイができました。 この記事では、トランクベース開発とはどのような手法なのかご説明したあとに、実際に導入してわかったことをご紹介したいと思います。 トランクベース開発とは トランクベース開発とは、ソースコードのバージョン管理手法です。現在一般的な手法であるGitflowでは、機能毎にブランチを作成し 1つの機能実装が完了するまでそのブランチで作業し、コードレビュー完了後に各役割ごとに存在するブランチへマージします。 Gitflowでは1つのブランチへ長時間にわたり変更を加えるため、次のような課題があります。 メインブランチへのマージの際に差分が多くコンフリクトが発生する可能性
Bucketeer is an open-source platform created to help teams make better decisions, reduce deployment lead time and release risk through feature flags. Control your featuresFeature Flags are a software development tool that ensures an efficient, low-risk release cycle by enabling or disabling features in real time without deploying new code. Bucketeer offers advanced features, such as dark launch an
※ それぞれ課金モデルが異なり、プランも複数存在するので比較が困難である。間違いや更新があった際にコメントをいただければ幸いです。 比較した所感 採用しても良いと思ったSaaS編 ・DevCycle(パフォーマンス、DX、UXが最も優れている) ・LaunchDarkly(インテグレーションの数、熟成度高いが料金も) ・ConfigCat(シンプル、安価) ・Statsig(料金体系が魅力的) メンテされているOSS編 セルフホストをする運用力の余裕がある企業なら、OSSも一つの選択肢。 Unleash(OSSの中で勢いが最もあるが、SaaS版は高い) FlagSmith(SaaS版は良心的な料金) Bucketter(弊社から公開されたばかりで期待のOSS) Flipt(シンプル・SaaS版はない) メンテされなくなったOSS編 両方OSSともCloudflare Workersを前提と
クラスター株式会社でSoftware Engineerをしている thara です。 私たちは今年、clusterのシステム分割という重要なプロジェクトを完了しました。この取り組みは、私たちのメタバースプラットフォームの進化と持続可能な成長にとって欠かせないものでした。 本記事では、システム分割の技術的なアプローチとその過程で直面した課題とプロジェクトの結果について説明します。 背景 解決策 システム分離プロジェクトにおける課題 課題を解消するための実施手法 Gatewayによる隔離 dual writeによる段階的移行/dual readによる差分検証 状態スナップショットによる差分検証 諦めの局所化 分離プロジェクトの結果と反省 今後の展望 背景 clusterがリリースされて6年が経過しました。 prtimes.jp 当初はバーチャルイベントプラットフォームとして展開されていましたが
Darklaunchという便利なものと、その未来 3行要約 スタディサプリのRubyバックエンドで気軽に誰でも使える、"Darklaunch"という Feature toggles 機構がある 4年強ほど運用してきて、様々な知見、多様なユースケース、問題などが明らかになった 知見を活かして、近い将来Darklaunch v2というのを社内で作って公開予定 (HTTP APIであり、Rubyバックエンドだけでなく全環境から直接利用可能) Feature togglesとは Feature togglesとかFeature flagsとかchankoとかcanary releaseとかA/BテストとかlaunchdarklyとかflipperとかDarklaunchなどという言葉を見聞きした機会のある方は多いと思います。ちょっとそれぞれレイヤーやカバレッジは違いますが、ようするに「コードの変更
こんにちは!エンタメ領域のDXを進めるブロックチェーンスタートアップ、Gaudiyでエンジニアをしている椿(@mikr29028944)です。 僕が所属しているExperienceチーム(ユーザー体験に関わる開発を担う)では、リリースのサイクルを極力短くして、ユーザーの方になるべく早く価値をお届けできるように「フィーチャーフラグ」を活用しています。 今年の7月頃から導入し、チームで運用を続けてきましたが、その中でいくつかの課題も見えてきました。そこで今回は、実際に直面した課題と、Gaudiyがそれに対してどのようにアプローチし、解決してきたかについて、お伝えできればと思います。 フィーチャーフラグを導入してみたけれど、うまく運用できていないチームや、フィーチャーフラグの導入を検討する上で、どのような課題が起こり得るのか把握したい方などにご参考になると嬉しいです! 1. フィーチャーフラグを
Feature Flag とは パラメータによって動作を変更するための実装手法です。 カナリアリリース, A/B テスト を目的として使用されます。 SaaS や OSS も提供されています。利用することでオンデマンドでの変更を可能とし、対象となるユーザの制限もできます。 注意事項 多用してしまうことにより、コードの品質や可読性に影響を及ぼす可能性があります。 また、一時的な機能の有効化は障害調査の枷となる可能性があります。 実験や検証を目的とし、リリース管理やユーザ毎の挙動に使うことは望ましくありません。 マーティン・ファウラーは機能トグルは最後の手段であるべきとして、機能トグルを利用する前に次のような手段を検討すべきと述べている 機能を小さく分割して段階的にリリースしていく方法 新機能へのエントリーポイントとなる UI を最後に作る方法 やってみた 1. サンプルアプリの構築 今回は
Now that we know how feature flags can help us release faster, it’s time to dive into the actual implementation details. How can we easily define feature flags? How to configure them both locally as remotely? And use them in our testing? This post will present a simple, powerful architecture to manage feature flags and comes with a full example on Github. This blog post is part of a series on feat
実運用でのテスト、トランクベースの開発、デフォルトでのフィーチャーフラグの使用 - これらは全て、フィーチャーフラグのベストプラクティスです。今すぐ詳細を学び、あなたのフィーチャーフラグ体験を可能な限り有益なものにしましょう! これまでにも、「意外と知らないフィーチャーフラグの5つの活用例」「フィーチャーフラグを使った本番環境でのテスト」「Progressive Delivery。 Canariesとフィーチャーフラグ 」など、フィーチャーフラグについて多くの記事を書いてきました。 しかし今日は、チームが成熟し、フィーチャーフラグを立てることが標準になってきたときに、よりよい結果を得られるよう、より高度なフィーチャーフラグのベストプラクティスを提供するために時間をとりたいと思います。 これらのヒントは、ソフトウェアチームが、機能トグルの実装、機能テストの拡張、アクセス制御のためのシステム動
こんにちは!クラスター株式会社でソフトウェアエンジニアをやっているTAATです。 今回はiOSDC Japan 2023にスポンサーセッションで登壇させていただきましたので、久しぶりのオフライン参加の様子や発表した内容について紹介します。 iOSDC Japanとは? iOSDC Japanは年に1回開催されるiOS関連技術をテーマとしたデベロッパーのためのカンファレンスです。コロナ禍になってからオンラインのみの開催となってしまいましたが、昨年からオフライン+オンラインのハイブリッド開催に戻りました。オフライン会場は早稲田大学理工学部 西早稲田キャンパスで、オンラインではニコニコ生放送で配信されています。 今年は9/1〜9/3の3日間開催され、初日はday0として夕方から前夜祭とトークセッションでしたが、day1,day2ではトークセッション以外にも名物のLT大会があり、今年はとくに盛り上
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く