概要
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を使用しているプロジェクト |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
始める
DevOps & SREに関するGoの書籍
監視とトレース
-
open-telemetry/opentelemetry-go
監視と分散トレースのためのベンダーニュートラルなAPIとインストルメンテーション
-
jaegertracing/jaeger-client-go
Uberによって開発されたオープンソースの分散トレースシステム
-
grafana/grafana
監視と可観測性のためのオープンソースプラットフォーム
-
istio/istio
オープンソースのサービスメッシュと統合可能なプラットフォーム
CLIライブラリ
-
spf13/cobra
強力なモダンCLIアプリケーションを作成するためのライブラリと、GoでアプリケーションおよびCLIアプリケーションを生成するプログラム
-
spf13/viper
Goアプリケーション向けの完全な構成ソリューションで、アプリケーション内で構成ニーズと形式を処理するように設計されています。
-
urfave/cli
コマンドラインGoアプリケーションを作成し整理するための最小限のフレームワーク