Site Production Engineering

システムは動かし始めた瞬間から老朽化していく


放っておくと壊れるし、よくわからない状態になる


システムを ”利用可能” かつ “役に立つ” 状態にしておくには、多くの設備や機材と同じく、 プロフェッショナルによる継続的なメンテナンスが必要


「システムを ”利用可能”かつ“役に立つ” 状態にし続けること」に名前をつけたい


Site Production Engineering と呼ぶことにしよう!


Hashtag: #prodeng

Aspect

Site Production Engineeringに関連するさまざまな観点の例

Monitoring Observability On-call Management Data Analysis Customer Success

Availability Reliability Site Reliability Engineering

Performance Monitoring Performance Analysis Performance Improvement

Vulnerability Management Supply Chain Security Pentesting Abuse Response

Cost Monitoring Cost Optimization Vendor Management Price Negotiation

Carbon Footprint Monitoring Carbon Footprint Optimization

Developer eXperience Developer Productivity DevOps DevSecOps BizDevOps QAE Productivity User Support Productivity Markeing Productivity Data Analysis Democratization

Technology Upgrade OS Version Management Container Runtime Version Management Middleware Version Management Program Runtime Version Management Application Library Version Management


What someone should do

誰かがすべきこと

もし誰もやらないなら Site Production Engineer がしたいこと

システムの定点観測

ユーザークレーム前のパフォーマンスチューニング

アラート対応でない範囲のモニタリング改善

監査で指摘されない範囲のセキュリティ向上

コード内のTODOやFIXMEをやっつける

利用しているライブラリのメジャーバージョンアップ

HTTPSで利用可能なアルゴリズムの更新

CI/CD高速化

flakyなテストの改善

課題解決に適した新技術の検証・導入(例:クラウドサービス、BaaS)

課題解決に適した新技法の検証・導入(例:CI/CD、GitOps)


Resource

https://shopify.engineering/why-shopify-moved-to-the-production-engineering-model

We adapted ideas to suit our scale with three key goals in reorganizing the teams:

  • Focus on automation over manual toil
  • Reducing the number of disconnected teams with operational responsibility; and,
  • Producing ready to use tools and infrastructure for all Shopify developers

The resulting model was a new organization called Production Engineering. This organization brought together the various teams that previously split operations responsibility, along with a roughly equal number of developers from other development teams. 

https://engineering.fb.com/category/production-engineering/

Production Engineering was created at Facebook to work with engineering teams and partners to champion the Reliability, Scalability, Performance, and Security posture of production services. PEs are hybrid software and systems engineers; they are the glue holding things together, whether that’s infrastructure and software or teams and processes.

The true power of Production Engineering comes from developing strong relationships with partner engineering teams and valuing collaboration and knowledge sharing to build technical expertise and community. PE’s write production code and solve hard problems in systems serving billions of people across Facebook, services like Instagram, WhatsApp, and Oculus, and in diverse infrastructure areas like machine learning/inference, storage, and networking.

https://speakerdeck.com/netmarkjp/sre-inhuranandakedomouwu-jie-saretiyatuteru-kara-devopsxin-shi-zhuang-tosite-site-production-engineering-haikagadesiyou

認識を共有したい、この世界の真理

  1. システムは動かし始めた瞬間から老朽化していく。 放っておくと壊れるし、よくわからない状態になる
  2. システムは動かし始めがスタートライン
  3. システムを ”利用可能” かつ “役に立つ” 状態にしておくためには、多くの設備や機材と同様に、プロフェッショナルによる継続的なメンテナンスが必要

システムを”利用可能”かつ“役に立つ”状態にし続ける
→ SREでもいいんだけど、コンテキストによってはSite Production Engineering と呼ぶとスムーズ!

SREと何が違うの?
→ ユーザ体験のために技術領域の壁・運営組織の壁を越えていくという意味で同じ

https://blog.cybozu.io/entry/2022/08/26/100000

開発チームが改善活動を進めづらかった

サイボウズであった生産性向上を妨げる障壁

  • 開発に必要なサービスの導入ハードルが高い
  • 改善に必要なコストが高い
  • 最新技術をキャッチアップする時間が確保できない

組織横断で開発基盤を整備する・改善活動をするチームの必要性

生産性向上チーム爆誕!