国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ バックエンド開発 Golang DevOps の旅を始めるための Go-lang プロジェクトの引用

DevOps の旅を始めるための Go-lang プロジェクトの引用

Dec 12, 2024 pm 02:21 PM

? 導(dǎo)入

DevOps の世界へようこそ! ?今日は、DevOps タスクの実踐的なプログラミングをさらに深く掘り下げるのに役立つ、別の刺激的なブログに戻ってきました。前回のブログでは、DevOps 自動化の基礎(chǔ)を築く 3 つの Python プロジェクトについて説明しました。

さあ、ギアを変えて、Go-lang のパワーを探ってみましょう!このブログでは、実用的で初心者にも優(yōu)しい 3 つの Go-lang プロジェクトの構(gòu)築について説明します。

  • ストレージ統(tǒng)計を追跡するための ディスク使用量の監(jiān)視 ツール。
  • HTTP サーバー を使用して履歴書 Web サイトをホストしています。
  • DevOps ツールを管理するための RESTful API プログラム。

それでは、お気に入りのコード エディターを入手して、始めましょう! ?


?前提條件

これらのプロジェクトの構(gòu)築に入る前に、環(huán)境がセットアップされ、準備ができていることを確認してください。必要なものは次のとおりです:

1. Go (Golang)
Go をシステムにインストールする必要があります。オペレーティング システムに基づいて次の手順に従ってください:

Windows

  • 公式 Web サイトから最新の Go インストーラーをダウンロードします。
  • インストーラーを?qū)g行し、畫面上の指示に従います。
  • コマンド プロンプトまたは PowerShell を開いて次のように入力して、インストールを確認します。
go version

Ubuntu

  • ターミナルを開いて次を?qū)g行します。
sudo apt update  
sudo apt install -y golang
  • インストールを確認します:
go version

macOS

  • Homebrew を使用して Go をインストールします。走る:
brew install go
  • インストールを確認します:
go version

2. Go の基本的な理解

専門家である必要はありませんが、変數(shù)、関數(shù)、構(gòu)造體などの Go の概念を基本的に理解していると、スムーズに進めることができます。 Go を初めて使用する場合は、Go ツアーを參照して簡単に紹介することをお勧めします。

これらの前提條件が満たされていれば、これらの素晴らしい Go-lang プロジェクトの構(gòu)築を開始する準備が整いました。 ?


?ディスク使用量を監(jiān)視するアプリ

最初のプロジェクトであるディスク使用量監(jiān)視ツールから旅を始めましょう。このプログラムは、システム上の指定されたディレクトリのディスク使用量を分析するのに役立ちます。

ソース コードは私の GitHub リポジトリにあります。まず、disk_usage.go という名前のファイルを作成し、次のコードを追加します。

package main

import (
    "fmt"
    "os"
    "syscall"
)
func getDiskUsage(path string) {
    var stat syscall.Statfs_t
    err := syscall.Statfs(path, &stat)
    if err != nil {
        fmt.Println("Error Fetching Disk Usage:", err)
        return
    }
    total := stat.Blocks * uint64(stat.Bsize)
    free := stat.Bfree * uint64(stat.Bsize)
    used := total - free
    percentUsed := float64(used) / float64(total) * 100
    fmt.Printf("Disk usage of %s:\n", path)
    fmt.Printf("Total: %d GB\n", total/1e9)
    fmt.Printf("Used: %d GB (%.2f%%)\n", used/1e9, percentUsed)
    fmt.Printf("Free: %d GB\n", free/1e9)
}
func main() {
    path := "/"
    if len(os.Args) > 1 {
        path = os.Args[1]
    }
    _, err := os.Stat(path)
    if os.IsNotExist(err) {
        fmt.Printf("Error: '%s' Path doesn't exist.\n", path)
        return
    } else if err != nil {
        fmt.Printf("Error occurred while accessing path %s: %v \n", path, err)
        return
    }
    getDiskUsage(path)
}

プログラムの仕組み:

  • プログラムは syscall.Statfs 関數(shù)を使用して、合計スペース、使用済みスペース、空きスペースなどのディスク統(tǒng)計を取得します。
  • 使用されているディスク容量の割合を計算し、使いやすい方法で出力をフォーマットします。
  • 指定されたパスが存在するかどうか、またはそのパスへのアクセスに問題があるかどうかを確認するために、エラー処理が実裝されています。

プログラムの実行
プログラムを?qū)g行するには、次のコマンドを使用します:

  • 特定のディレクトリのディスク使用量を確認します。
go version
  • パスが指定されていない場合、プログラムはデフォルトでルート ディレクトリ (/) に設(shè)定されます。
sudo apt update  
sudo apt install -y golang

xciting Go-lang Projects to Kickstart Your DevOps Journey

パーティションが 1 つあるため、異なるパスを指定しても同じ結(jié)果が得られます。

このプロジェクトは、Go がシステムの基盤となる API とどのように対話できるかを示し、システム監(jiān)視タスクの優(yōu)れた出発點となります。 ?


? HTTP サーバー プログラム: ポートフォリオ Web サイトのホスティング

2 番目のプロジェクトには、ポートフォリオ Web サイトをホストする HTTP サーバーを Go で作成することが含まれます。このプロジェクトでは、監(jiān)視用のヘルス チェック エンドポイントを組み込みながら、靜的 Web サイトを構(gòu)築して提供する方法を示します。

ソース コードは私の GitHub リポジトリにあります。

HTTP サーバーを構(gòu)築する手順

  • http_server.go という名前のファイルを作成し、次のコードを追加します。
go version

仕組み

  • 靜的ファイル サーバー: http.FileServer 関數(shù)は、./static ディレクトリからファイルを提供します。
  • ヘルス チェック エンドポイント: /health ルートは、単純なヘルス チェック メトリックを提供するために定義されています。
  • サーバーのセットアップ: サーバーはデフォルトでポート 8090 をリッスンし、起動中のエラーはすべてログに記録されます。

ポートフォリオ Web サイトの作成

  1. 構(gòu)造: 靜的フォルダー內(nèi)に以下を作成します:

    • index.html
    • スタイル.css
    • profile.jpeg という名前のプロフィール寫真を含む、images という名前のフォルダー。
  2. 次のコンテンツをファイルに追加します:

index.html:

brew install go

プログラムの実行

  • 次のコマンドを使用して HTTP サーバーを起動します。
go version
  • あなたのポートフォリオ Web サイトは次の場所から利用できるようになります。 ローカルホスト:8090

ヘルスチェックへのアクセス
サーバーの狀態(tài)を確認するには、
にアクセスしてください。

package main

import (
    "fmt"
    "os"
    "syscall"
)
func getDiskUsage(path string) {
    var stat syscall.Statfs_t
    err := syscall.Statfs(path, &stat)
    if err != nil {
        fmt.Println("Error Fetching Disk Usage:", err)
        return
    }
    total := stat.Blocks * uint64(stat.Bsize)
    free := stat.Bfree * uint64(stat.Bsize)
    used := total - free
    percentUsed := float64(used) / float64(total) * 100
    fmt.Printf("Disk usage of %s:\n", path)
    fmt.Printf("Total: %d GB\n", total/1e9)
    fmt.Printf("Used: %d GB (%.2f%%)\n", used/1e9, percentUsed)
    fmt.Printf("Free: %d GB\n", free/1e9)
}
func main() {
    path := "/"
    if len(os.Args) > 1 {
        path = os.Args[1]
    }
    _, err := os.Stat(path)
    if os.IsNotExist(err) {
        fmt.Printf("Error: '%s' Path doesn't exist.\n", path)
        return
    } else if err != nil {
        fmt.Printf("Error occurred while accessing path %s: %v \n", path, err)
        return
    }
    getDiskUsage(path)
}

xciting Go-lang Projects to Kickstart Your DevOps Journey

このプロジェクトでは、Go-lang を使用して靜的コンテンツをホストする機能的な Web サーバーを作成し、ヘルス チェック エンドポイントによる追加の監(jiān)視を行う方法を紹介します。 ?


? RESTful API プロジェクト: DevOps ツールの管理

このブログの最後のプロジェクトでは、DevOps ツールのリストを管理できる RESTful API を作成します。このプログラムは、Go の net/http パッケージを使用して RESTful ルートを処理し、データを管理する方法を示します。

完全なソース コードは私の GitHub リポジトリで入手できます。

RESTful API の構(gòu)築
ステップ 1: メインプログラム
main.go という名前のファイルを作成し、次のコードを追加します:

go version

ステップ 2: データの処理
tools ディレクトリに、data.go という名前のファイルを作成し、以下を追加します:

sudo apt update  
sudo apt install -y golang

ステップ 3: ハンドラー
tools ディレクトリに、handler.go という名前の別のファイルを作成し、以下を追加します:

go version

モジュールの初期化

プログラムを?qū)g行する前に、Go モジュールを初期化します。

brew install go

これにより、プロジェクトで project/tools パッケージを使用できるようになります。

プログラムの実行
次のコマンドを?qū)g行してサーバーを起動します:

go version

API のテスト

  1. すべてのツールをリストする ツールのリストを取得するには、次を使用します。
package main

import (
    "fmt"
    "os"
    "syscall"
)
func getDiskUsage(path string) {
    var stat syscall.Statfs_t
    err := syscall.Statfs(path, &stat)
    if err != nil {
        fmt.Println("Error Fetching Disk Usage:", err)
        return
    }
    total := stat.Blocks * uint64(stat.Bsize)
    free := stat.Bfree * uint64(stat.Bsize)
    used := total - free
    percentUsed := float64(used) / float64(total) * 100
    fmt.Printf("Disk usage of %s:\n", path)
    fmt.Printf("Total: %d GB\n", total/1e9)
    fmt.Printf("Used: %d GB (%.2f%%)\n", used/1e9, percentUsed)
    fmt.Printf("Free: %d GB\n", free/1e9)
}
func main() {
    path := "/"
    if len(os.Args) > 1 {
        path = os.Args[1]
    }
    _, err := os.Stat(path)
    if os.IsNotExist(err) {
        fmt.Printf("Error: '%s' Path doesn't exist.\n", path)
        return
    } else if err != nil {
        fmt.Printf("Error occurred while accessing path %s: %v \n", path, err)
        return
    }
    getDiskUsage(path)
}

xciting Go-lang Projects to Kickstart Your DevOps Journey

出力:

go run disk_usage.go /path/to/directory
  1. 新しいツールを追加する 新しいツールを追加するには、次を使用します。
go run disk_usage.go

xciting Go-lang Projects to Kickstart Your DevOps Journey

出力:

package main
import (
    "fmt"
    "net/http"
)
func healthCheckHandler(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusOK)
    w.Write([]byte("OK"))
}
func main() {
    fs := http.FileServer(http.Dir("./static"))
    http.Handle("/", fs)
    http.HandleFunc("/health", healthCheckHandler)
    port := "8090"
    fmt.Printf("Starting server on port %s....", port)
    err := http.ListenAndServe(":"+port, nil)
    if err != nil {
        fmt.Println("Error starting server:", err)
    }
}
  1. フェッチツールの詳細 特定のツールの詳細を取得するには、次を使用します。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Pravesh Sudha - Portfolio</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <header>
        <div>



<p><strong>style.css:</strong><br>
</p>

<pre class="brush:php;toolbar:false">body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    line-height: 1.6;
    color: #333;
    background-color: #f9f9f9;
}

header {
    background: #4caf50;
    color: #fff;
    padding: 20px 0;
    text-align: center;
}
header .profile-picture {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    margin-bottom: 15px;
}
header h1 {
    font-size: 2.5em;
    margin: 0;
}
header .subtitle {
    font-size: 1.2em;
    margin: 0;
}
main {
    padding: 20px;
    max-width: 800px;
    margin: 20px auto;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
main .about,
main .links {
    margin-bottom: 20px;
}
main .links ul {
    list-style: none;
    padding: 0;
}
main .links li {
    margin: 10px 0;
}
main .links a {
    color: #4caf50;
    text-decoration: none;
    font-weight: bold;
}
main .links a:hover {
    text-decoration: underline;
}
footer {
    text-align: center;
    padding: 10px 0;
    background: #333;
    color: #fff;
}

出力:

go run http_server.go

xciting Go-lang Projects to Kickstart Your DevOps Journey


?結(jié)論

このブログでは、ソフトウェア開発のさまざまな側(cè)面を?qū)g際に體験するのに役立つ 3 つの実踐的な Go プロジェクトを検討してきました。ディスク使用量の監(jiān)視から、シンプルな HTTP サーバーの構(gòu)築、ポートフォリオ Web サイトのホスティング、そして最後に DevOps ツールを管理するための RESTful API の作成に至るまで、これらのプロジェクトは、Go プログラミング スキルを磨きたい人にとって強固な基盤を提供します。

  • ディスク使用量監(jiān)視アプリケーションでは、Go でのシステム コールと基本的なファイル処理について紹介し、マシンのファイル システムと対話する方法について説明しました。
  • HTTP サーバー プロジェクトでは、靜的ファイルの提供方法と基本的なヘルスチェック エンドポイントの処理方法を?qū)W習でき、Go で Web 開発を始めるのに役立ちます。
  • RESTful API プロジェクトは、API を構(gòu)造化し、同時実行制御でデータを管理し、POST リクエストと GET リクエストを通じてアプリケーションをインタラクティブにする方法を示しました。

これらの各プロジェクトは、実際のアプリケーションに合わせて拡張できる構(gòu)成要素です。システムの監(jiān)視、Web アプリケーションの開発、API の構(gòu)築に興味がある場合でも、Go は効率的な開発に必要なシンプルさとパワーを提供します。

?さらに有益なブログについては、Hashnode、X(Twitter)、LinkedIn でフォローしてください。

それまで、ハッピーコーディング!!

楽しく學習してください! ?

以上がDevOps の旅を始めるための Go-lang プロジェクトの引用の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Golangサービスを既存のPythonインフラストラクチャと統(tǒng)合するための戦略 Golangサービスを既存のPythonインフラストラクチャと統(tǒng)合するための戦略 Jul 02, 2025 pm 04:39 PM

統(tǒng)合されたservicesと統(tǒng)合されたpothonistoninfrastructure、userestapisorgrpcforinter-servicecommunication、goandpythonappstoStoStosandizedprotocols.1.userestapis(Frameworkslikeginingoand flaskinpython)またはuserestapisを許可します

Web APIのGolangとPythonのパフォーマンスの違いを理解する Web APIのGolangとPythonのパフォーマンスの違いを理解する Jul 03, 2025 am 02:40 AM

Golangofferssuperiorporformance、nativeconconcurrencyviagoroutines、および効率的なresourceusage、makingitidealforhigh-raffic、low-latencyapis;

Golang Frontendまたはバックエンドです Golang Frontendまたはバックエンドです Jul 08, 2025 am 01:44 AM

Golangは主にバックエンド開発に使用されますが、フロントエンドフィールドで間接的な役割を果たすこともできます。その設(shè)計目標は、高性能、同時処理、システムレベルのプログラミングに焦點を當てており、APIサーバー、マイクロサービス、分散システム、データベース操作、CLIツールなどのバックエンドアプリケーションの構(gòu)築に適しています。 GolangはWebフロントエンドの主流言語ではありませんが、Gopherjsを介してJavaScriptにコンパイルしたり、Tinygoを介してWebAssemblyで実行したり、テンプレートエンジンを備えたHTMLページを生成してフロントエンド開発に參加できます。ただし、最新のフロントエンド開発は、JavaScript/TypeScriptとそのエコシステムに依存する必要があります。したがって、Golangは、コアとして高性能バックエンドを備えたテクノロジースタック選択により適しています。

GOのインストール方法 GOのインストール方法 Jul 09, 2025 am 02:37 AM

GOをインストールするための鍵は、正しいバージョンを選択し、環(huán)境変數(shù)を構(gòu)成し、インストールを検証することです。 1.公式Webサイトにアクセスして、対応するシステムのインストールパッケージをダウンロードします。 Windowsは.msiファイルを使用し、macosは.pkgファイルを使用し、Linuxは.tar.gzファイルを使用し、 /usr /localディレクトリに解凍します。 2.環(huán)境変數(shù)を構(gòu)成し、linux/macOSで?/.bashrcまたは?/.zshrcを編集してパスとgopathを追加し、Windowsがシステムプロパティに移動するパスを設(shè)定します。 3.政府コマンドを使用してインストールを確認し、テストプログラムを?qū)g行してhello.goを?qū)g行して、編集と実行が正常であることを確認します。プロセス全體のパス設(shè)定とループ

リソース消費(CPU/メモリ)典型的なGolang vs Python Webサービスのベンチマーク リソース消費(CPU/メモリ)典型的なGolang vs Python Webサービスのベンチマーク Jul 03, 2025 am 02:38 AM

Golangは通常、Webサービスを構(gòu)築するときにPythonよりもCPUとメモリを消費します。 1. GolangのGoroutineモデルは、スケジューリングに効率的であり、強力なリクエスト処理機能を備えており、CPUの使用量が少ない。 2。GOはネイティブコードにコンパイルされ、ランタイム中に仮想マシンに依存せず、メモリの使用量が小さくなります。 3. Pythonは、GILと解釈実行メカニズムのために、同時シナリオでより大きなCPUとメモリオーバーヘッドを持っています。 4. Pythonには高い開発効率と豊富なエコシステムがありますが、低リソースを消費します。これは、並行性要件が低いシナリオに適しています。

GolangでGraphQL APIを構(gòu)築する方法 GolangでGraphQL APIを構(gòu)築する方法 Jul 08, 2025 am 01:03 AM

GOでGraphQlapiを構(gòu)築するには、GQLGenライブラリを使用して開発効率を向上させることをお勧めします。 1.最初に、スキーマに基づいた自動コード生成をサポートするGQLGENなどの適切なライブラリを選択します。 2。次に、graphqlschemaを定義し、投稿の種類やクエリメソッドの定義など、API構(gòu)造とクエリポータルを説明します。 3。次に、プロジェクトを初期化し、基本コードを生成して、リゾルバにビジネスロジックを?qū)g裝します。 4.最後に、graphqlhandlerをhttpserverに接続し、組み込みの遊び場を介してAPIをテストします。メモには、プロジェクトのメンテナンスを確保するためのフィールドネーミング仕様、エラー処理、パフォーマンスの最適化、セキュリティ設(shè)定が含まれます

マイクロサービスフレームワークの選択:Kitex/Gomicro vs Python Flask/Fastapiアプローチ マイクロサービスフレームワークの選択:Kitex/Gomicro vs Python Flask/Fastapiアプローチ Jul 02, 2025 pm 03:33 PM

マイクロサービスフレームワークの選択は、プロジェクトの要件、チームテクノロジースタック、パフォーマンスの期待に基づいて決定する必要があります。 1.高性能の要件を考えると、GoのKitexまたはGomicroが優(yōu)先されます。特にKitexは複雑なサービスガバナンスと大規(guī)模システムに適しています。 2. PythonのFastapiまたはFlaskは、小規(guī)模チームやMVPプロ??ジェクトに適した、急速な発展および反復(fù)シナリオにより柔軟に対応しています。 3.チームのスキルスタックは選択コストに直接影響し、すでに蓄積している場合、より効率的になり続けます。 Pythonチームの発疹転換は、効率に影響を與える可能性があります。 4. GOフレームワークは、サービスガバナンスエコシステムでより成熟しており、將來的に高度な機能に接続する必要がある中および大規(guī)模システムに適しています。 5.単一の言語やフレームワークに固執(zhí)することなく、モジュールに従ってハイブリッドアーキテクチャを採用できます。

GO SYNC.WAITGROUPの例 GO SYNC.WAITGROUPの例 Jul 09, 2025 am 01:48 AM

sync.waitgroupは、ゴルチンのグループがタスクを完了するのを待つために使用されます。そのコアは、3つの方法で協(xié)力することです。追加、完了、待機です。 1.ADD(n)待機するゴルチンの數(shù)を設(shè)定します。 2.done()は各ゴルチンの端で呼び出され、カウントは1つ減少します。 3.wait()すべてのタスクが完了するまでメインコルーチンをブロックします。使用する場合は、注意してください。Goroutineの外部で追加する必要があります。重複を避け、Donが呼び出されていることを確認してください。 Deferで使用することをお勧めします。これは、Webページの同時クロール、バッチデータ処理、その他のシナリオで一般的であり、並行性プロセスを効果的に制御できます。

See all articles