株式会社ずんだもん技術室AI放送局

AIやテクノロジーのトレンドを届けるPodcast。平日毎朝6時配信。朝の通勤時間や支度中に情報キャッチアップとして聞いてほしいのだ。

株式会社ずんだもん技術室AI放送局 podcast 20241129

2024年11月29日

MP3ファイルをダウンロード

内容紹介

AIやテクノロジーに関する記事を紹介 大人数チームで意思決定のスピードアップのためにやったこと、本番DBのマスターデータを全行ぶっとばすやらかしをしたときのお話、その反省、Raspberry Pi Compute Module 5 cranks up the power – and the heat

出演者

ずんだもん
ずんだもん

関連リンク

食べログの予約サービスチームは、利用者増加に伴う組織拡大により、コミュニケーションコスト増大、情報伝達の遅れ、開発スピードの遅延といった課題に直面していました。 これらの課題解決のため、チームは組織編成と情報共有方法に工夫を凝らしました。

まず、2名のエンジニアリングマネージャー(EM)と、複数の小チーム(ユニット)からなるユニット制を採用しました。 EMはそれぞれ異なる領域(運用・改善、プロダクト開発)を担当し、責任範囲を明確化することで、意思決定の迅速化を図りました。 さらに、チームリーダーを配置することで、チーム全体の方針やルールの決定を効率化しました。 ユニットの規模を小さくすることで、リーダーの管理コスト軽減と、リーダーが自ら開発に携われる環境を整備しました。意思決定はボトムアップ型を取り入れ、メンバー、リーダー、マネージャーの各レベルで適切な権限と責任を明確化することで、スピードアップを図りました。

情報共有は、日次と週次の2段階で行われます。 日次では、ボトムアップ型で情報を集約し、重要な課題や意思決定事項を迅速に共有します。 週次では、各ユニットからの情報をEMが集約し、チーム全体に展開することで、チーム全体の状況把握を容易にしました。 他チームとの情報共有は、ユニットリーダーとEMが窓口となり、効率的な情報伝達を実現しています。

今後の展望としては、他チームとのコミュニケーション改善、システムのリモデリングによるドメイン整理、エンジニアリングへの集中を促進するための更なるコミュニケーション改善に取り組むとしています。 これらの取り組みを通じて、開発スピードの向上とエンジニアの生産性向上を目指しています。 本記事は、大規模チームにおける組織設計と情報共有の改善に悩む日本のエンジニアにとって、貴重な参考事例となるでしょう。

引用元: https://tech-blog.tabelog.com/entry/2024/09/tabelog-engineer-information-communication

この記事は、本番DBのマスターデータを誤って全行削除してしまった事例とその反省について記述しています。深夜帯に稼働するSNSサービスにおいて、マスタデータのJSON型カラムを全てブランク値で上書きする作業中に事故が発生しました。原因は、開発環境での動作確認を省略した、UPDATE文によるデータ更新スクリプトの誤作動です。

復旧はRDSのスナップショットからの復元で行われましたが、データ容量が大きかったため1時間程度を要しました。この経験から、以下の反省点が挙げられています。

  1. バックアップの不足: 作業前にSequel ACEによるレコードエクスポートや、CSV形式でのバックアップ(Copy Insert SQL機能活用)を行うべきでした。大量データの場合は、LIMITOFFSETを使用して分割バックアップが推奨されます。

  2. トランザクションの未活用: START TRANSACTIONCOMMIT/ROLLBACKによるトランザクション処理を行うべきでした。これにより、更新クエリ実行後のデータ確認を行い、問題なければコミット、問題があればロールバックすることで、データの整合性を確保できます。

  3. スクリプトからの直接クエリ実行: Pythonスクリプトで直接更新SQLを実行する実装は、事故発生時の影響が大きいため避けるべきです。スクリプトはクエリの生成のみとし、実行は手動で行うべきです。

  4. 開発環境での動作確認の省略: 過去に同様のスクリプトを使用していたため、開発環境での動作確認を省略しましたが、これは重大なミスでした。時間的制約があっても、開発環境での動作確認は必須です。

この事例は、本番環境での作業におけるリスクと、それを回避するための対策を学ぶ上で非常に貴重な教訓となります。新人エンジニアは、この経験から学び、本番作業前に必ずバックアップを取得し、トランザクション処理を行い、開発環境での動作確認を徹底するよう心がけましょう。

引用元: https://zenn.dev/kazutosakagami/articles/78d1649389c868

Raspberry Pi Compute Module 5 (CM5)がリリースされました。CM4とほぼ同じサイズながら、大幅な性能向上を実現しています。BCM2712 Cortex-A76 64-bit SoCを2.4GHzで動作させ、メモリは2GBから16GB (16GBは2025年以降)、eMMCストレージは8GB、16GB、32GB、64GBのオプションがあります。eMMCストレージを持たないCM5Lite版も存在します。

CM5はRaspberry Pi 5と同じチップを使用しており、性能は向上していますが、高負荷時には発熱も大きくなります。そのため、強制空冷と冷却ヒートシンクの使用、またはモジュールを金属筐体などに熱伝導性良く接続することが推奨されています。

CM4からの変更点として、2レーンCSI-2とDSIポートが削除され、USB 3.0ポートに置き換えられているため、CM4からCM5への置き換えは、ソフトウェアの修正が必要になる可能性があります。特に、BCM270x GPIOレジスタを直接操作している場合は、より多くの作業が必要になります。libgpiodやlibcameraなどの標準ベースのライブラリを使用している場合は、比較的容易に移行できる可能性が高いです。

価格はCM4から若干上昇しており、2GB RAMのCM5Liteが45ドル(税別)、8GB RAM + 64GB eMMCの最上位モデルが95ドルです。開発にはIOボードも必要になります。新しいIOボードには電源ボタン、ファンヘッダ、USB 3.0 Type-Aポートへの切り替えスイッチ、USB-C電源コネクタ、M.2スロット、カメラ/ディスプレイポートが追加されています。HDMIポート、イーサネットポート、GPIOピンなどは引き続き利用可能です。

Raspberry PiはCM5の供給について、発売後も継続的な供給が見込まれると述べています。

引用元: https://www.theregister.com/2024/11/27/raspberry_pi_compute_module_5/

(株式会社ずんだもんは架空の登場組織です)