ソフトウェア開発の雑記帳:2024/09/01〜

プロフィール画像清らかなほぐし水

作成日時:2024-09-01 00:35:29

各人が知っているソフトウェア開発時のプラクティスや経験則等を共有してください。

書き込み|DashBoard|スレッド一覧に戻る

レスポンス一覧

プロフィール画像 清らかなほぐし水 - 2024-09-14 00:05:01, 502
ロギング:Papertrail(ペーパートレイル)

https://papertrailapp.com

・ログ収集SaaS
・PHPであればMonologを利用した例が公式ドキュメントに紹介あり
・「特定の検索条件と発生頻度のしきい値を設定したアラート」がインテグレーションの例
・これを利用してPugerDutyやSlackやDiscordへアラートイベントを通達可能
・S3などのオブジェクトストレージへの自動ダンプ機能もある
プロフィール画像 清らかなほぐし水 - 2024-09-14 00:01:29, 501
アラート:PagerDuty
https://www.pagerduty.com/


・インシデント発生時のエスカレーション機能、アラート機能の豊富さ
・オンコール、オフコールを設定しておくことで障害発生時の担当者をアサイン
・状況進展に応じて自動でアサインをリアサインする
・アラート機能はメール、電話、専用モバイルアプリなどチャネルはさまざま
プロフィール画像 清らかなほぐし水 - 2024-09-13 23:58:26, 500
エラー管理:Sentry
https://sentry.io/welcome

・アプリケーションエラー収集・管理するためのSaaS
・自動的に類似したエラーを集約し管理するIssue機能
・個別エラーごとも発生時コンテキストやバックトレースなどの詳細を表示
・柔軟にカスタムして通達を行えるアラート機能
プロフィール画像 清らかなほぐし水 - 2024-09-13 23:56:05, 499
Mackrel(マカレル)

・株式会社はてなが提供している監視サービス
・インフラや運用経験の乏しいエンジニアでも直感的分かりやすいUIになっている
・データ利用のためのAPIも提供されている
プロフィール画像 清らかなほぐし水 - 2024-09-13 23:53:52, 498
外形監視:Pingdom

・Pingdom上に表示するサイト名
・監視対象のエンドポイントURL
を設定可能。

詳細設定機能
・監視間隔
・成功とみなすべき条件(文字列一致、もしくは部分一致)
・失敗とみなす条件
・リクエスト時に利用するBASIC認証やカスタムヘッダ、POSTリクエスト時のボディ
・リクエスト送信元(欧米、北米、欧州、アジア、中南米から1つ)

サーバダウン時のアラート
・PageSpeedレポート
・アラート先インテグレーションWebhook
・チーム単位でのメンバー管理
プロフィール画像 清らかなほぐし水 - 2024-09-13 23:48:07, 497
GitHubFlow
https://www.kagoya.jp/howto/it-glossary/develop/githubflow/
プロフィール画像 清らかなほぐし水 - 2024-09-13 23:47:18, 496
リグレッションテスト
※回帰テスト

・単体テストで新規実装した機能が問題ないことを確認できたとしても、システム全体としてはリグレッション(既存実装が無効になること)やデグレード(既存機能が劣化すること)が生じているかも
・リグレッションテストを自動化するまでコストが大きなかかり細部まで自動テストを書くと仕様変更やデザイン変更にもろくなる傾向になる

・チーム内での稼働工数と相談しながらであるが、人力でリグレッションテストを実施することが重要
・「これまで通りシステムが動作しているのか」という目的で何本かのシナリオを書き、そのシナリオに沿ってテストを実施するのが鉄則
・タイミングとしては
 ・「developブランチがReleaseブランチにマージされたタイミングで検証する」
 ・「1週間に1回などの頻度で、定期的に主要機能を中心に全体動作を検証する」※フルリグレッションテスト
プロフィール画像 清らかなほぐし水 - 2024-09-13 23:38:07, 495
PHPMD

静的解析ツールを導入しソースコード品質チェックツールの導入
https://tech.innovator.jp.net/entry/2023/07/12/123232
プロフィール画像 清らかなほぐし水 - 2024-09-13 23:35:23, 494
スロークエリ検出

MySQLでスロークエリのログを出力し遅いSQLを特定・可視化すること。
my.cnfに下記を記述し0.2s以上かかったSQLをスロークエリとして/var/log/mysql/slow.logに出力できる

ーーーーーー
[mysqld]
slow_query_log=ON
slow_query_time=0.2
slow_query_log_file=/var/log/mysql/slow.log
ーーーーーー

上記実行後、mysqldプロセス再起動(sudo systemctl restart mysqld)
スロークエリログファイルはElasticSearch+Kibanaを使って簡単に可視化する方法もあり、この可視化をしておけば開発メンバーが気軽に閲覧しスロークエリに気づけます。
このような可視化をすることで予期しない性能劣化にも早期に気づくことができます。
プロフィール画像 sei6sei - 2024-09-01 07:47:48, 355
(OS限定になるけど)http://www.uefi.org/specificationsを熟読する