読者の皆さんは、テストについてどのようなイメージをお持ちでしょうか。「開発の後に行う確認作業」といったイメージを持たれている方もいるかと思います。 しかし、開発しようとしているソフトウェアに不具合の混入を防ぐには、もっと早い段階でテストについて考えることが必要です。こういったテスト活動は、プログラムを1文字も書いていないときから始めることができるのです。 本記事では、2016年に提唱された継続的テストモデルを紹介しつつ、アジャイルとも親和性のあるシフトレフトなテスト活動について解説していきます。 DevOpsにおけるテストの考え方 DevOpsのループ図とは何か? 継続的テストモデルとは何か 継続的テストモデルにおいてテストは「活動」である シフトレフトなテスト活動とシフトライトなテスト活動 シフトレフトなテスト活動としてのテスト駆動開発 コード実装を始める前から行うテスト活動 シフトレフ
こんにちは!ファインディでFindy Team+開発チームのEMをしている浜田です。 昨今、開発生産性を高めるための取り組みを行っている組織が増えてきていると感じています。 開発生産性を向上させるためには、まずは定量的に可視化することが重要です。 可視化することで現状を把握して、開発組織の伸びしろを発見したり、課題を明らかにし、改善活動に取り組みやすくなります。 一方、定量的な指標に焦点を当てすぎてしまい本質的ではない対応をしてしまい、指標は向上したものの実際の生産性は向上していなかったり、むしろ悪化してしまうこともあります。 この記事では、開発生産性指標を向上させるためにやってはいけないアンチパターンについて紹介します。 デプロイ頻度を向上させるために、デプロイプロセスは変更せずに実施回数を増やした デプロイ頻度はDORAが提唱するDevOpsの4つの指標(Four Keys)の1つであ
OpenTelemetryでTraceとればロックインを回避できてコストカットができると考えて会社で進めている。その中でよく受ける質問として、CollectorのSideCarが落ちたらデータがロストするのではないか、みたいな事をいわれる。 これは調べると半分あっていて、半分間違っているように見える。 データロストを防ぐ方法としては、RetryとBufferingがよく使われるが、OpenTelemetryではどのように実装されているかを確認する。 SDKでやっていること OpenTelemetryのSDKはTraceを作成して、logsにもtrace idやspan idを付与している。 このtrace idやspan idを利用する事でTraceやLogを一貫してみることができるようになっている。 これは仕組みとしてはTracerProviderというTracerを生成するAPIがあり
なおこの「Credits」という単位は serverless.yml ファイルのregion,stage,serviceパラメータの組み合わせによって定義されるようです。 したがって、例えば開発者やチケット毎の検証環境をstageで分けている場合は、その分Creditsが嵩むという形になります。 また、serviceもどのように分割するかで総Credit数が変わってきますので、この辺は見積りのし辛さに繋がってくるのかなと思います。 例えばregionとして東京, シンガポールを用意し、stageとしてprod, stg, dev, user1, user2があり、serviceとしてxxx, yyyがある場合、単純に掛け算をすると2x5x2の20 Creditsとなります。 また、Serverless Dashboardの機能を使うと、トレース50,000あたりで1 Credit、メトリク
CTO室所属の高橋と申します。皆からはニャンさんと呼ばれております。そして私は特に無茶振りはされていません。 さて、developブランチに変更が入ったらdev環境にリリース、mainブランチに変更が入ったら本番環境にリリースを行う仕組み、いわゆる継続的デリバリーを構築しているプロジェクトは多いことと思う。我々のチームではCircle CIで行なっていたが事情があってGithub Actionsに移行することになった。ところがGithub Actionsではdevリリースと本番リリースの手順をどう共通化すればいいのか分からず迷ってしまった。 近年のソフトウェア開発の現場ではCI/CDは当たり前になっているが、もはや当たり前すぎて逆にまとまった情報がネット上にないのかもしれない。であれば得られた知見は共有しておくべきだろう。 結論から言うとジョブの共通化には再利用可能なワークフロー用いるのが
はじめに 以下記事を読んで、OpenAPI Specをもっとフロントエンド側で活用できたら良いなと思いました。 そこで、同じようにGitHub Actionsを使って、GitHub PagesにReDocを配置、Mock Server(Prism)をCloud Runへデプロイしてみることにしました。 なお、Mock Server(Prism)のデプロイ先をCloud Runにしたのは、最小インスタンスを0にする(つまり、アクセスが無い時はインスタンスが落ちている状態にできる)ことができ、課金を抑えられると思ったからです。 ReDocとは? ReDocは、OpenAPI Specからドキュメントを生成してくれるツールです。 同じようなツールで、Swagger UIもありますが、Swagger UIはリファレンス要素が強く、ReDocはガイド要素が強い(見易さ重視)印象を受けました。そのため
当社では複数の SaaS プロダクトを開発・稼働するための環境として、主に AWS を利用しています。AWS 等のシステムにかかるコスト構造を正確に把握することは、プロダクト原価の算定や適正なプライシングを行う上で非常に重要です。 今回、カスタム定義のコストカテゴリ体系を各種 AWS リソースにかかるコストに適用し、継続的にモニタリングするための仕組みを構築してみたので、本記事ではその内容についてご紹介したいと思います。 概要 まず、実装を試みたコストカテゴリ設計の考え方について説明します。 次に AWS Cost Categories で実装する際の課題感に触れた後、今回利用する AWS Cost and Usage Report (CUR) について紹介します。 コストカテゴリ設計 コストカテゴリのレベルとして、以下の 3 つを定義しました。 Level-1 ... プロダクト原価を構
OpenAPIのYAMLファイルから可読性の高い・静的なHTMLを生成するツールはいくつかありますが、そのうちの一つがredoclyです。 非常にきれいなHTMLファイルにしてくれるので便利なのですが、他人に共有するにはYAMLを修正する度に redoclyを実行→HTMLファイルをアップロード していたので非常に面倒でした。 そこで、GitHub Actionsのお試しがてらGitHub上での自動出力を試してみたのでそのメモです。 ファイル構成 サンプルとしてOpenAPIのリポジトリから petstore.yaml を持ってきました。以下の通り配置しています。 $ tree -a . |-- .git |-- .github | `-- workflows | `-- build-redocly-html.yml |-- README.md `-- petstore.yaml name
GitHub Actions内でPytestを実行して失敗したテストの詳細をPR内で直接表示させよう!DjangopytestGitHubActions 概要 GitHub Actionsを使ってテストを実行する際に失敗したテストはログを見るかと思います テストが少なければいいですがプロジェクトが大きくなるにつれてどんどん探すのが困難になってくるので PR内で書いたテストコードに失敗したテストの実行内容が表示されたら便利かと思います 今回はとあるライブラリを使って実現する方法について解説していきます 前提 フレームワークはDjangoを使用 テストフレームワークはPytestを使用 pytest-github-actions-annotate-failures pytest-github-actions-annotate-failuresを使うと
Ansible Tips: データ構造変換にはjinja2 for loopとfrom_yamlフィルターの組み合わせが使いやすいjinja2Ansibleansible-playbook 備忘 Ansibleはプログラミング言語ではないので、loopなどを伴うデータ変換は苦手。 その様な際には、jinja2 loopを利用してYAMLとしてデータを構成し、データに変換し直すとうまくいくことがある。 例 以下の様なデータ変換を行う 元データ - - hoge1 - - foo: FOO1 bar: BAR1 - foo: FOO2 bar: BAR2 - - hoge2 - - foo: FOO3 bar: BAR3 - foo: FOO4 bar: BAR4
著者の自己紹介 著者はイナバくん。 株式会社ニジボックスのフロントエンドエンジニア。 登山家でもあり、禁煙家でもあります。 某アパレル企業に2年ほど常駐していて、自社プロダクトを開発しております。 この記事で話すこと GitHub Actionsを使ってVRTを実現する方法をお話しします。 この記事で話さないこと VRTとは何か? について GitHub Actionsの基本的な使い方や文法について storycap・reg-suitなどの基本的な使い方について また、VRTの構成として有名な下記のサービスたちは使っていません。 Chromatic: Storybookのホスティングサービス AWSのS3: VRTのスクショやレポートのアップ先としてよく使われます あくまでGitHubのみでVRTを実現する方針となります。 VRT導入の背景 私の参画しているプロダクトでは、フロントエンドは
Storybook + CodeBuild + PlaywrightでVisual Regression Testをやってみたテスト自動化フロントエンドstorybookVisualRegressionTestPlaywright 概要 フロントエンド開発をしていると、「コンポーネントのUIに意図しない変更が反映されていないか」と気になることが何度かあります。 しかし数多くあるコンポーネントを一つずつ目視で確認するのは骨が折れますね... そこでGitHubにpushするたび、自動的にUIの差分の有無を確認できるテスト(Visual Regression Test)をできるように設定します! 使用技術 Storybook Playwright reg-suit Slack Webhook AWS CodeBuild S3 CloudFront
[レポート] ワークショップ – GitHub Actionsを使ったIAMポリシーの検証と分析の自動化 #IAM452 #AWSreInforce あしざわです。 米国フィラデルフィアで開催されている AWS re:Inforce 2024 に参加しています。 本記事は AWS re:Inforce 2024 のワークショップ 「Automating IAM Policy Validation and Analysis using GitHub Actions」のレポートです。 セッション概要 In this builders’ session, learn how to automate the validation of AWS Identity and Access Management (IAM) policies using the IAM Policy Validator f
こちらは 2024年6月に https://flutterninjas.dev/ で登壇した資料です。 SLI/SLO is often heard as a SRE word, but it is not familiar to mobile app development. In my product, the failure rate is high, and I needed a mechanism to detect and solve the problems as early as possible. So I adapted the SLI/SLO mechanism to fit mobile apps and created a mechanism to detect poor user experience. This mechanism allows for imm
概要 一つのコメントを更新する 実装例 制限事項 複数のコメントを更新する 実装例 参考 概要 GitHub Actionsでコメントを更新する方法をまとめる サードパーティアクションはなるべく使わない 一つのコメントを更新する gh pr commentの--edit-lastを使う gh --version gh version 2.49.2 (2024-05-13) https://github.com/cli/cli/releases/tag/v2.49.2 https://cli.github.com/manual/gh_pr_comment --edit-last Edit the last comment of the same author 実装例 GitHub Actionsで下記のように書けば 初回はコメントを書く すでにコメントがあったらアップデートする という処理が
The simplest way to build resilient applications.As regular functions and services, in your existing infrastructure. On FaaS, K8s, servers, containers. Self-hosted or fully managed. Restate meets you where you are.
Darren EvansEMEA Practice Solutions Lead, Application Platform ※この投稿は米国時間 2024 年 5 月 30 日に、Google Cloud blog に投稿されたものの抄訳です。 なぜ新しいトピックに対して否定的になってしまう人がいるのか、その理由は、群盲象を評すの寓話からわかります。その人自身の視点からのみで物事を見てしまうと、その全体像を見失ってしまうということです。プラットフォーム エンジニアリングはソフトウェア デリバリーの比較的新しい手法です。現在、IT 組織やソフトウェア エンジニアのチームの多くがプラットフォーム エンジニアリングについて検討している段階にあるのですが、プラットフォーム エンジニアリングとは何なのか、プラットフォーム エンジニアリングで何ができるのか、プラットフォーム エンジニアリングを導入す
23卒でバックエンドエンジニアをしているたかしゅんです。(@1341Shun) 先日、株式会社サイバーエージェントAI事業本部の2024年度 エンジニア新卒研修でシステム運用に関する講義を行いました。 そこで話した内容とスライドを完全公開したので、内容について解説します。 90分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 実際の資料はこちらになります↓ 自己紹介 こんにちは、たかしゅんと言います。2023年度入社で今年で2年目になります。株式会社サイバーエージェントのAIオペレーション室で新規立ち上げをやっております。 入社して最初に広告プロダクトに配属し、PipeCDの導入などのDevOps業務を中心に行なっておりました。 記事もあるのでもしよろしければ、ご覧ください。 2月中旬からAIオペレーション室に移動し、新規立ち上げのインフラ環境の構築からCI
developer-productivity-engineering.connpass.com こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。 会の概要 会の様子 DRE Favorable Context 生産性を高めるために必要な3要素 データ、情報、知識の関係性 アクティビティ、アウトプット、アウトカム、インパクトの関係性 失敗事例 意味ある分析をするために メトリクスの罠 社内で議論のきっかけになるメトリクス メトリクスを使う注意点 Q&A メトリクスの中で特に重視しているステップや項目はあるか? DORAメトリクスを使った測定は、Spotifyやその他の国際的な企業では標準的な手法と考えられているのか?それとも一部企業が行っているものか? オンボーディングタイムは具体的にどのように計算するのか? 全体を通した感想 会の概要 来る6月28日(金)-29
MIXI で運用管理しているとある AWS Organizations にて AWS IAM Identity Center (以下 IdC)を導入しました。また、各 AWS アカウント管理者の裁量によって IdC の権限設定を可能にするためにセルフサービス化を行いました。 本記事では IdC の概要、IdC の権限設定をセルフサービス化した理由と実現方法について記載します。 AWS IAM Identity Center 概要 IdC は AWS アカウントへのシングルサインオン(SSO)を提供するサービスです。IAM User による AWS アカウントログインを代替することが可能で、IdC を導入することで以下のようなメリットが挙げられます。 複数 AWS アカウントへのログインがスムーズ IdP と連携させることでユーザ/グループ管理を IdP 側に任せられる AWS CLI v2
はじめに こんにちは、サイボウズ24卒の@yuasaです。 サイボウズでは開発・運用系チームに所属する予定の新卒社員が研修の一環として、2週間を1タームとして3チームの体験に行きます。新卒社員の私が生産性向上チームの体験に行った際に、チーム内でGitHub Actionsを利用する際の脅威と対策について調査を行い、ドキュメント化した上で社内への共有を行いました。本記事では、そのドキュメントの一部を公開します。 対象読者 本記事の主な対象読者としては、以下のような方を想定しています。 GitHub Actionsを組織で利用しているが、特にセキュリティ対策を実施していない方 GitHub Actionsを組織で利用しており、部分的にセキュリティ対策を実施しているが、対策が十分かどうか分からない方 本記事がGitHub Actionsのセキュリティ対策を検討する上で参考になれば幸いです。 本記
はじめに 近年、様々な分野で機械学習の利用が進む中、モデルの品質を担保し、継続的な学習を行うための施策が重要視されています。そのため、機械学習のためのDevOpsであるMLOpsの必要性が高まっており、AI事業本部でも研修内容に取り入れています。 より良いMLOpsを構築するためには、アプリケーションやインフラの知識も必要です。そのため、今年は昨年までと異なり、MLエンジニアだけでなくソフトウェアエンジニアも講義に参加しました。また、新たに実践編が加わり、より業務を意識した講義が追加されました。 Container編 基礎編 応用編 実践編 そこで、今回は研修で行われた各講義の資料を公開したいと思います。 Container編 Container編では、コンテナにまつわる技術に対しインデックスを張ることと、イメージ作成や運用時のTipsを学び実業務に役立てることを目的としています。 そのた
最近読んだ「入門 継続的デリバリー」がとても良かったので紹介しますね, というエントリーです. 入門継続的デリバリー良かったです. 「継続的デリバリー(Continuous Delivery)」とか「DevOps」ってどこから学ぶかわからんな!? というのは割とあるあるだと思っています, そもそもめちゃくちゃ難しい話なので(ちゃんと学ぼうとすると). そんな中, 「入門 継続的デリバリー」がよく説明できてて良かったので感想と関連する書籍を紹介できればと思っています. TL;DR 入門 継続的デリバリー 我々はなぜCDをするのか? 具体的なプラクティス 入門後に読むべき良著 Kubernetes CI/CDパイプラインの実装 継続的デリバリー チームトポロジー 結び - 我思うCDとDevOps TL;DR 「入門 継続的デリバリー」は継続的デリバリーの大切さと概念, 手法を現実にありそうな
本記事は 【プルリクウィーク】 3日目の記事です。 💻 2日目 ▶▶ 本記事 ▶▶ 4日目 📚 はじめに チーム構成と使用ツール レビューに入る前に考えるべきプラットフォームエンジニアリング レビュアー側が意識したいこと レビューイ側が意識したいこと まとめ はじめに こんにちは。髙橋です。 プルリクウィークというイベントに執筆依頼を頂いたので、私が普段業務でプルリクエストをレビューする/レビューされるときに意識していることを書いてみようと思います。 あくまで私が意識していることという意味合いであり、全員こうすべき!と押し付ける意図はありません! チーム構成と使用ツール まず前提の認識を揃えるために、私が普段どういった環境で業務をしているか説明します。 チーム人数:7名 チーム構成:PM×1、PL×1(私)、開発メンバー×5 課題管理ツール:JIRA ソースコード管理:GitLab 私
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く