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

概要

Goは企業の自動化とスケーリングを支援します

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

サイト信頼性エンジニアリング(SRE)はGoogleで生まれ、同社の「大規模サイトをより信頼性が高く、効率的で、スケーラブルにする」ためにと独立系DevOpsコンサルタントのSilvia Fressard氏は書いています。「そして、彼らが開発したプラクティスはGoogleのニーズに非常にうまく対応したため、AmazonやNetflixのような他の大手テクノロジー企業もそれらを採用しました。」SREには開発と運用のスキルを組み合わせる必要があり、「ソフトウェア開発者が本番環境でのアプリケーションの日常的な運用を所有することを可能にします。」

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

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

主なメリット

Goの堅牢な標準ライブラリと静的型付けで小さなスクリプトを簡単に構築

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

Goの高速なビルド時間でCLIを迅速にデプロイ

すべてのサイト信頼性エンジニアは、「一度だけ使う」スクリプトが、毎日数十人の他のエンジニアが使用するCLIになった経験があるでしょう。そして、小さなデプロイ自動化スクリプトは、ロールアウト管理サービスになります。Goを使用することで、DevOps/SREはソフトウェアのスコープが必然的に拡大するときに成功する可能性が高まります。Goから始めることで、それが起こったときに成功する素晴らしい位置に立つことができます。

Goの低いメモリフットプリントとドキュメントジェネレーターで大規模なアプリケーションをスケーリングし、維持

Goのガベージコレクターは、DevOps/SREチームがメモリ管理について心配する必要がないことを意味します。そして、Goの自動ドキュメントジェネレーター(godoc)はコードを自己文書化し、メンテナンスオーバーヘッドを削減し、最初からベストプラクティスを確立します。

顧客 簡単な紹介 Goを使用しているプロジェクト
Docker Docker Docker DockerはGoで書かれたSaaS(Software-as-a-service)製品であり、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アプリケーションを作成し整理するための最小限のフレームワーク

さらに表示
さらに表示