7月22日~27日の技術ログ
7/22(月)
FluentBitについて基礎学習
- FluentBitでログをstdarrに出力するような基礎的なコンテナを作成する
- confファイルでINPUT, FILTER, OUTPUTを書いて調整する
- ローカルで立ち上げてみる必要がある
- VPSのログをFluentBitで収集してCloud Loggingに保存する一例
Firelens を使用してECS (Fargate) 上にデプロイしたプロジェクトのログを S3 に収集する方法
- Laravel, Nginx, Fargateで運用するアプリをFluentBitで収集する例
- S3にログを出力するタスク定義が参考にできる
7/23(火)
- php-fpm, fluent-bitのDockerfileの構築とECRへのpushをGithub Actionsで自動化
- FluentBitコンテナをECSタスクに追加
- flulrinoが採用されている
- 使ったことがない 興味
AWS CDK にコントリビュートしようとして挫折したので供養する - サーバーワークスエンジニアブログ
- OIDCのL2のコントリビューションをやろうとしていた記事
ペパボでもオブザーバビリティ研修を実施してます - Pepabo Tech Portal
- オブザーバビリティとは
- システムの外部出力からシステムの内部状態を推測できる度合い
- コードの変更なくデバッグができるか
- 異常調査に行き詰まりがないか
- システムの外部出力からシステムの内部状態を推測できる度合い
- オブザーバビリティを高めるために
- テレメトリーの収集調査をできるようにする
- オブザーバビリティがないとエンジニアの感覚や経験に頼ることになる
- SaaSとしてDatadog,New Relic, Mackerel
- OSSとしてGfaranaがある
【開催報告】 オンライン化によって進化する次世代自販機のご紹介 | Amazon Web Services
- AWS IoT GreengrassをRasberry Piにインストールして処理を実装
- 状況などのデータをAWSに送信する
- 可視化やダイナミックプライシングを行うなどをCloudで実装
7/24(水)
自分が管理する全 OSS の Issue や Pull Request を 1 つの GitHub Project に集約
- 複数のプロジェクトをProjectに集約するにはWorkflowだけでは厳しい
- Workflowは制限が厳しい
- 公式Actionsがある
Playwrightの調査
# インストール
npm init playwright@latest
npx playwright install
npx playwright install-deps
- スペックが足りないのとまったくチューニングをしていないからか遅く、サクッと導入するのは難しそうだった
- 近いうちにPCスペックが上がる可能性があるので今後再チャレンジする。
- チューニングするためにも個人で使って知見を集めておく
7/25(木)
Failure Analysis Assistant – AIOps で障害分析を効率化してみよう – | Amazon Web Services
- AI/MLを使用した障害分析
- メリット
- 障害特定の迅速化
- 属人化からの脱却
- 複数システムですぐに活用可能
- Bedrock+LambdaでS3やCloudWatch、XRay等を参照し通知する
【開発生産性Conference 2024】New Relicで実現できること | iret.media
- オブザーバビリティプラットフォーム
- APM(アプリケーションの稼働状況を監視)
- Browser(Webページにアクセスしたユーザのブラウザ上のパフォーマンスを監視)
- インフラストラクチャ監視
- ログの一元管理など
「エンジニア組織を強くする開発生産性の教科書」を読んで - 虎の穴開発室ブログ
- 自分がやっていきたいと思っている内容がまとまった本のように思える
- 読む
Playwright+GitHub Actions*E2E with VRT 環境構築とCI/CD連携の知見
- E2EとVRTは別(混同していた)
社内用GitHub Actionsのセキュリティガイドラインを公開します | メルカリエンジニアリング
- pull_requestで発火するActionは攻撃が仕掛けられる可能性が高い
- ESLintでもローカルファイルスキャンの可能性もあった
【AWS CDK】GitHub の Release をトリガーに CodePipeline を起動する(GitHub ソースアクション Version 2 版) | DevelopersIO
- GitHub ソースアクション Version1を2に上げるために参考にする
- Version 2 では、アクセストークンの代わりに CodePipeline 側で「GitHub コネクション」というものを作成して、GitHub への接続
- CodeStarを使っている
Qiita 受賞
https://blog.qiita.com/qiitaengineerfesta-2024-presents/
sponsored by Qmonus Value Stream アプリケーション開発に注力するための工夫をシェアしよう!のテーマでBest Value Stream賞を受賞しました。
7/26(金)
GitHub ProjectやIssueを利用したワークフローの提案のため調査
GitHubでPullRequestを使った開発フロー - Qiita
- 紹介されている流れ
- issue -> branch -> 開発 -> push -> pull request
GitHub Projects を使用してissueとpullRequestの見える化に取り組んだ話|いしま
- フィールドの追加をしている
- Codefix
- priority
- delivery
- memo
【GitHub】Issueドリブン開発を個人開発に取り入れてみた話
- 紹介している手順
- Issue の作成。(タスクの作成)
- main ブランチから Issue に基づいたブランチを作成。
- 作成したブランチで開発を行い、コミットする。
- プルリクエストを作成し、マージする。
- 手順1.に戻る。
GitHub Projects を利用したタスク管理 - 一休.com Developers Blog
- Custom FieldとしてSprintを区切りになる開発期間として設定し種別にはIterationを設定している
- タスクの進め方
- タスクの洗い出し
- 見積もり
- タスクのアサイン
- 開発
- タスクの整理
- タスクのチケット化・見積もりをする癖をチームに作るのが最初の課題
- スプリントごとにやることを決め、そのチケットを見ながら朝会などで会話する
- スプリントでどの程度タスクをこなせたのかを測り、いつ頃までに開発が完了するのかが分かるようになる
GitHub Projects を導入した話 - KAKEHASHI Tech Blog
- 以下の点を満たすからProjectを使っている
- スプリントを設定したい
- GitHub とのシームレスな連携が行いたい
- ベロシティを計測したい
- 進捗状況を視覚化させたい
- チームの透明性を確保したい
- 作業状況の分析が可能 … Insights
GitHub Projects勉強会を開催しました - ROUTE06 Tech Blog
- 「見るべき人」と「フェーズ」に着目したフロー
- Issueを作成したらNewのViewに追加
- LeaderがNewをBacklogに追加・優先度を決定
- 優先度順に並んだIssueを表示し、Sprintとして期間を設定する
チームに提案するための資料を作成した。
読んだ記事
営業電話についての最新ITテクノロジーを使った解決策を真剣に考えてみた - Qiita
「封筒」で送られる情報には、情報以上の価値がある時代になっている。 - Qiita
みんなが「見聞色の覇気」を習得できる社会になるには? - Qiita
成長に必要なのはティーチング?それともコーチング? - Qiita
-
GROWモデル
・Goal(目標)
・Reality(現状把握)
・Options(選択肢の検討)
・Wil(意志確認)
フロントエンド開発者のためのパッケージマネージャー比較:npm vs yarn vs pnpm
Cloudflareスタックをモリモリ使ってアバター画像生成サービスを作った話
- 構成
- サイトはRemix
- それなりのトラフィックに低価格で抑えるためにPagesを採用
【AWS CDK】BucketDeploymentのpruneの設定値はデフォルトでtrueであることに注意しよう | DevelopersIO
- ローカルファイルのS3へのアップロードに
aws_s3_deployment.BucketDeployment
NATゲートウェイの通信内容を調査して対策し、コストを約60%削減した話 - ZOZO TECH BLOG
- EC2その他 の内訳はAPIオペレーションをディメンションに設定する。
- NatGatewayを利用した通信のコストは予想以上に高い
- Firehoseを利用したfluent Bitのログの転送の際にVPCエンドポイントがなかったことが原因でNatGatewayのコストが高くついた
- VPCエンドポイントも時間単位の起動に料金がかかる
イベント参加
Sansan vs サイボウズ 開発生産性Tips夏祭り (2024/07/26 19:00〜)
-
イベントストーキング
- 有識者とともに業務フローを明らかにし、コンテキストと集約を行う
- 付箋・ホワイトボードなどを用意する
-
10分でわかる生産性向上チーム
10 分でわかる生産性向上チーム in 2024 | ドクセル
- モブプロを実施している。→ 属人性や集合知を生かすことができる
-
可視化から始める開発生産性向上の取り組み
- 背景
- プロダクトと組織の急拡大
- 自分たちの開発生産性が高いか低いかわからない
- 見えないものは改善できない
- 生産性の定義から行う
- 仕事量
- 期待付加価値
- 実現付加価値
- 可視化
- アウトカム … 目標設定に利用。 現状を把握する
- 一定期間のプルリク数
- プロセス … 現状の課題
- プルリクのリードタイムの改善
- アウトカム … 目標設定に利用。 現状を把握する
- 可視化にはFindyのツールを利用
- 成功体験を各チームに横展開していく
- 背景
-
GitHub Projectsを自動化するGitHub CLIテクニック
- Projectsの使い方
- バックlog管理
- 複数プロジェクトの集約と管理
- それぞれ専用のビューを作成
- 主導でやることを覚えておく必要が減れば、それだけプロジェクトは最新の状態に保たれることになる
- 自動化
- 組み込みの自動化 Workflow
- API/Actionsを使用
- v4(GraphQL)を使用する
- gh api graphqlコマンドが使いやすい
- スプリントを自動更新する
- 他チームへの展開
- コピペ運用がきつい
- 自動化の保守コストが高くなり崩壊→手動に戻り→新しいメンバーが自動化
- 再利用しやすくパッケージングする
- シェルでやる
- gh extensionsを使う
- CLIに独自コマンドを追加する
- goで公式ライブラリが利用できておすすめ
- 拡張機能を作って、そのコマンドでActionsを置き換えていく
- 部分的に置き換えて
- コマンドを拡張機能に追加して
- さらに置き換える
- Projectsの使い方
-
参加した感想
- ちょうどGitHub Projectsを会社で進めようとしていた
- gh extentionsを初めて知った
- GoをActionsように勉強してみようかな…
- TypeScriptでもできるならそっちの方がいいな…
7/27(土)
読んだ記事
Honoを使ってAWS Lambda + API Gateway環境でAPI開発に使ってみた
- HonoをAPIGatewayで利用した事例
- 軽量であることと、Open APIのドキュメントを活用することに言及している。
- やはりDB操作用にDrizzleを採用している
Playwright で作成したテストのパフォーマンスを改善する - Qiita
- ヘッドレスモードの有効化
- ブラウザを閉じる処理を有効にすることでメモリの枯渇を防止できる
- 個人開発で導入したい
markdown AIの使用感と(子どもによる)活用方法の考察 - Qiita
- 個人開発の使用方法の説明用資料の作成に活用できそう
markdown AIを使って夏休みの自由研究内容をウェブ公開してみる - Qiita
markdown AI で子ども向けのクリエイティブツールを公開 - Qiita
TestRailに乗り換えて1年:Excelからの移行で見えたメリットと使い勝手 - Qiita
- 高額
- 工数実績からテスト全体の完了予測日を自動で計算できる
TestRail実践!テスト自動化と管理で生産性を劇的改善してみた - Qiita
- Github Actionsとも連携
- cypressを実行して結果をアップロードしている
CodeAGI、テキトーExcel設計書でも動くのか? - Qiita
- CodeAGIはテキトーでも動く
- 骨組みを作らせてリファクタリングから進めるのはありかもしれないとのこと
CodeAGIや他の生成AIを組み合わせて開発してみた - Qiita
- CodeAGIは設計書・機能定義書がないと利用ができない
【生成AI】知らないと後悔する、GPT-4oだけでシステム開発を300%効率化するハック【CodeAGI】 - Qiita