開発運用とサイト信頼性エンジニアリング

概要

Goはエンタープライズによる自動化とスケーリングを支援します

開発運用(DevOps)チームは、エンジニアリング組織がタスクを自動化し、継続的インテグレーションと継続的デリバリーおよびデプロイメント(CI/CD)プロセスを改善するのを支援します。DevOpsは開発のサイロを打破し、ツールと自動化を実装して、ソフトウェアの開発、デプロイメント、およびサポートを強化できます。

サイト信頼性エンジニアリング(SRE)は、Googleで生まれ、同社の「大規模なサイトをより信頼性が高く、効率的で、スケーラブルにする」ために考案されました。シルビア・フレッサード氏(独立系DevOpsコンサルタント)が書いています。「そして、彼らが開発したプラクティスはGoogleのニーズに非常にうまく対応したため、AmazonやNetflixなどの他の大手テクノロジー企業も採用しました。」SREには開発と運用スキルが混在しており、「ソフトウェア開発者をエンパワーメントし、本番環境でのアプリケーションの継続的な日常運用を所有できるようにします。」

Goは、高速なビルド時間と簡潔な構文からセキュリティと信頼性のサポートまで、DevOpsとSREの両方を支援します。Goの並行処理とネットワーク機能は、クラウドデプロイメントを管理するツールにも理想的であり、開発インフラストラクチャが時間の経過とともに成長するにつれて、自動化を容易にサポートしながら、速度とコードの保守性を向上させることができます。

DevOps/SREチームは、小さなスクリプトからコマンドラインインターフェース(CLI)、複雑な自動化とサービスまで、さまざまなソフトウェアを記述しており、Goの機能セットはあらゆる状況でメリットがあります。

主な利点

Goの堅牢な標準ライブラリと静的型付けにより、小さなスクリプトを簡単に作成できます

Goの高速なビルド時間と起動時間。Goの広範な標準ライブラリ(HTTP、ファイルI/O、時間、正規表現、exec、JSON/CSV形式などの一般的なニーズのパッケージを含む)により、DevOps/SREはビジネスロジックにすぐに取り組むことができます。さらに、Goの静的型システムと明示的なエラー処理により、小さなスクリプトでも堅牢性が向上します。

Goの高速なビルド時間により、CLIを迅速にデプロイできます

すべてのサイト信頼性エンジニアは、「一度限りの使用」スクリプトを作成し、それが毎日数十人の他のエンジニアによって使用されるCLIになりました。そして、小さなデプロイメント自動化スクリプトは、ロールアウト管理サービスになります。Goを使用すると、ソフトウェアの範囲が必然的に広がった場合でも、DevOps/SREは成功するのに最適な立場にあります。Goから始めることで、そのような状況でも成功するのに最適な立場に立つことができます。

Goの少ないメモリフットプリントとドキュメントジェネレーターを使用して、より大規模なアプリケーションをスケーリングおよび維持できます

Goのガベージコレクターにより、DevOps/SREチームはメモリ管理を心配する必要がありません。また、Goの自動ドキュメントジェネレーター(godoc)により、コードは自己文書化され、メンテナンスのオーバーヘッドが削減され、最初からベストプラクティスが確立されます。

顧客 簡単な紹介 Goを使用するプロジェクト
Docker Docker Docker Dockerは、Goで記述されたサービスとしてのソフトウェア(SaaS)製品であり、DevOps/SREチームはこれを活用して、「大規模な安全な自動化とデプロイメントを推進」し、CI/CDの取り組みをサポートします。
Drone Drone Drone Droneは、コンテナテクノロジー上に構築された継続的デリバリーシステムであり、Goで記述されており、シンプルなYAML設定ファイル(docker-composeのスーパーセット)を使用して、Dockerコンテナ内でパイプラインを定義および実行します。
etcd etcd etcd etcdは、分散システムまたはマシンのクラスタによってアクセスする必要があるデータを格納するための信頼性の高い方法を提供する、強く整合性のある分散キーバリューストアであり、Goで記述されています。

開始

DevOpsとSREに関するGo書籍

  • open-telemetry/opentelemetry-go

    監視と分散トレースのためのベンダーニュートラルなAPIとインストルメンテーション

  • jaegertracing/jaeger-client-go

    Uberが開発したオープンソースの分散トレーシングシステム形式

  • grafana/grafana

    監視と可観測性のためのオープンソースプラットフォーム

  • istio/istio

    オープンソースのサービスメッシュおよび統合可能なプラットフォーム

詳細を見る
  • spf13/cobra

    強力な最新のCLIアプリケーションを作成するためのライブラリ、およびGoでアプリケーションとCLIアプリケーションを生成するためのプログラム

  • spf13/viper

    Goアプリケーションのための完全な構成ソリューション。アプリケーション内で動作し、構成のニーズと形式を処理するように設計されています。

  • urfave/cli

    コマンドラインGoアプリケーションの作成と整理のための最小限のフレームワーク

詳細を見る
詳細を見る