Doubling Down on Differentiated Code
文化
ShareThis は、この5年間で驚異的な成長を遂げました。 もう何百万ものドメインを数えるのはやめました。 しかし、私たちの文化は絶えず向上しており、それがここで働くことを特に楽しくしています。 私たちの文化は、ShareThis のエンジニアリングの一員であることの意味を定義しています。 この文化があるからこそ、私たちは自分たちの仕事ができるのです。
差別化コード
最近では、差別化されたコードを中心とした大きな改善が行われています。 差別化コードとは何でしょうか? 簡単に言えば、会社に価値をもたらすコードのことです。 価値を生まないコードを書くべきではありません。 もし、MySQLインスタンスを管理するために多くのコードを書いていたら、時間を無駄にしています。 この失われた時間は、給料という意味でのドルの損失だけではなく、機会という意味での時間の損失なのです。
では、MySQLインスタンスを管理する必要がある場合はどうすればいいのでしょうか。 もともと私たちは、コスト削減とベンダーロックインの回避のために、インフラストラクチャの管理に力を入れていました。 しかし、これは賢明ではありませんでした。 大規模なシステムをすべて維持するためのコストは、自分のマシンを管理することで得られる節約よりも大きくなってしまいました。 ShareThis のように、私たちは反復しました。 現在は、すべてのMySQLインスタンスをAmazonのRDSに移行しているところです。 他のサービスについても同様で、HadoopクラスターはGoogle BigQueryへ、DockerのプライベートリポジトリはDocker Hubへ、特殊なジョブにはEMRを使用しています。
自分たちでやってみようかな?
会社の規模が大きくなってオペレーション部門が必要になったら、自社で持つ意味があるのかもしれませんが、どうでしょうか。 一見したところ、コストが高いように思えます。 5,000ドル/月のサーバーバンクを、25,000ドル/月のサービスに置き換えるのですから。 しかし、人件費を考慮すると、5,000ドル/月のコストは、サービスの設計、保守、トラブルシューティングに費やすエンジニアの時間の損失として3,000ドル/月になってしまいます。 これは規模が大きくなるとさらに悪化し、冗長性、オンコール、危機的状況下でのコンサルティング料などにますます多くの費用を費やすことになります。
では、何に時間を使うのか?
データベースやパイプライン、サービスを構築していないときは、何をしているのでしょうか。 インフラへの影響を最小限に抑えながら、差別化されたコードを書いています。 エンジニアは代わりに、パブリッシャーに直接価値をもたらすアプリケーションコードを書いています。
このような問題を解決することに興味のある方は、ぜひご参加ください。 私たちのチームに参加してください。