ホームページ  >  記事  >  バックエンド開発  >  golang コードのデプロイメント

golang コードのデプロイメント

PHPz
PHPzオリジナル
2023-05-27 18:25:40928ブラウズ

クラウド コンピューティング テクノロジの継続的な開発と応用により、ますます多くの企業がアプリケーションをクラウドに展開し始めています。効率的で軽量かつ高効率な言語として、golang はますます多くの企業に支持されています。では、golang アプリケーションをクラウドにデプロイする場合、どのように操作すればよいのでしょうか?この記事では、golang コードのデプロイプロセスと関連する技術的なポイントを詳しく紹介します。

    #準備作業
golang コードのデプロイを開始する前に、次の準備作業を完了する必要があります:

1.1 クラウド サーバーを決定する

まず、クラウド サーバーが選択されていることを確認します。現在市場で主流のクラウドサービスプロバイダーには、Tencent Cloud、Alibaba Cloud、Huawei Cloudなどがあり、安定したパフォーマンス、手頃な価格、豊富な機能を備えたクラウドサーバーを選択できます。一般に、クラウド サーバーの構成が高くなるほどパフォーマンスは向上しますが、それに応じて価格も高くなります。

1.2 golang 環境のインストール

golang コードがコンパイルされ、正常に実行できることを確認するために、クラウド サーバーに golang 環境をインストールします。

    golang コードのコンパイル
上記の準備が完了したら、golang コードのコンパイルを開始できます。 Golang は各プラットフォーム用のコンパイラを提供するため、ローカルまたはクラウド サーバー上でコンパイル プロセスを完了できます。 golang コードをコンパイルするための一般的なツールには、「go build」コマンドと「go install」コマンドが含まれます。通常、以下に示すように、「go build」コマンドを使用して golang ソース コードを実行可能ファイルにコンパイルします。

$ cd $GOPATH/src/github.com/user/hello
$ go build

このコマンドは、現在のディレクトリ ドキュメントに

hello という名前の実行可能ファイルを生成します。 「go install」コマンドを使用すると、golang は生成された実行可能ファイルを $GOPATH/bin ディレクトリに自動的にインストールします。

$ cd $GOPATH/src/github.com/user/hello
$ go install

この時点で、実行可能ファイルは $GOPATH/bin ディレクトリにインストールされます。

    実行可能ファイルをクラウド サーバーにアップロードする
実行可能ファイルをコンパイルした後、クラウド サーバーにアップロードする必要があります。一般的に使用されるアップロード方法には、scp と rsync があります。

3.1 scp を使用してファイルをアップロードする

まず、ローカル端末に次のコマンドを入力して、hello ファイルをリモート サーバーにアップロードする必要があります。

$ scp -P <port> hello <user>@<host>:<path>

パラメータの説明:

    -P: ssh ポート番号を指定します
  • 298c9bd6ad6e8c821dc63aa0473d6209: クラウド サーバーの ssh ポート番号
  • hello : ローカル実行可能ファイル
  • be1cdaf6779910b92a0a47fc24e82b4f: クラウド サーバーのユーザー名
  • f7e6dec31ab1a0471d06c55afaca8d77: クラウド サーバーの IP
  • 98953a78f52873edae60a617ec082494: アップロードされたターゲット パス
例:

$ scp -P 22 hello root@192.168.10.10:/root

上記のコマンドを実行すると、実行可能ファイル hello がクラウド サーバーの /root ディレクトリにアップロードされます。

3.2 rsync を使用してファイルをアップロードする

rsync は、scp よりも効率的なリモート ファイル同期ツールです。 rsync を使用して実行可能ファイルをアップロードするには、まずクラウド サーバーに rsync をインストールする必要があります。次に、ローカル端末で次のコマンドを入力します:

$ rsync -avP -e 'ssh -p <port>' hello <user>@<host>:<path>

パラメータの説明:

    -avP: コンテンツを同期します
  • -e: ssh 通信を使用します。-p は、ssh 通信を使用します。 ssh ポート番号
  • 298c9bd6ad6e8c821dc63aa0473d6209: リモート サーバーの SSH ポート番号
  • hello: ローカル実行ファイル
  • be1cdaf6779910b92a0a47fc24e82b4f: リモート サーバーのユーザー名server
  • f7e6dec31ab1a0471d06c55afaca8d77: リモート サーバーの IP
  • 98953a78f52873edae60a617ec082494: アップロード先のパス
例:

$ rsync -avP -e 'ssh -p 22' hello root@192.168.10.10:/root

After上記のコマンドを実行すると、実行ファイル hello がクラウドサーバーの /root ディレクトリにアップロードされます。

    実行可能ファイルの実行
実行可能ファイルをクラウド サーバーにアップロードした後、クラウド サーバー上で実行する必要があります。 SSH を使用してクラウド サーバー上のターミナル ウィンドウを開き、次のコマンドを入力します。

$ ./hello

ここで、

hello はアップロードした実行可能ファイルの名前です。すべてがうまくいけば、プログラムの実行結果が表示されるはずです。

    プログラムはバックグラウンドで実行されます
一般に、ターミナル ウィンドウを占有するのではなく、バックグラウンドでプログラムを実行したいと考えます。 nohup コマンドを使用すると、プログラムをバックグラウンドで実行できます。たとえば、hello プログラムをクラウド サーバーのバックグラウンドで実行する場合は、次のコマンドを入力します。

$ nohup ./hello &

プログラムはバックグラウンドで実行され、出力情報が nohup.out に保存されます。ファイル。

    スーパーバイザー管理プログラム
nohup コマンドを使用してプログラムをバックグラウンドで実行しますが、プログラムでエラーやクラッシュが発生した場合、すぐに通知を受け取ることができず、扱う。したがって、管理ツールを使用してプログラムを管理する必要があります。より一般的に使用されるツールの 1 つは Supervisor です。

6.1 Supervisor のインストール

Supervisor は、公式 Web サイトから最新のインストール パッケージをダウンロードできます。インストールプロセスは比較的簡単で、さまざまなオペレーティングシステムに応じて、対応するインストール方法を選択できます。

たとえば、Centos7 システムでは、次のコマンドを使用してインストールできます:

$ yum install -y python-setuptools
$ easy_install supervisor

インストールが完了したら、次のコマンドを使用してバージョンを確認できます:

$ supervisord -v

6.2 スーパーバイザの設定

スーパーバイザ設定ファイルは /etc/supervisord.conf です。このファイルに次のコンテンツを追加して、プログラムをスーパーバイザーに登録できます。

[program:hello]
command=/path/to/hello
directory=/path/to/hello/dir
autostart=true
autorestart=true
stdout_logfile=/var/log/hello.stdout.log
stderr_logfile=/var/log/hello.stderr.log

パラメータの説明:

  • [program:hello]:程序名
  • command:启动命令
  • directory:程序所在目录
  • autostart、autorestart:表示程序是否自动启动和重启
  • stdout_logfile:标准输出日志的路径
  • stderr_logfile:错误日志的路径

以上配置中,我们将程序名设置为"hello",command设置为hello可执行文件路径,directory设置为hello可执行文件所在目录,让程序自动启动和重启,同时将标准输出日志和错误日志分别保存到/var/log/hello.stdout.log和/var/log/hello.stderr.log。

6.3 启动Supervisor服务

配置完成后,我们需要启动Supervisor服务。在Centos7系统中,可以使用以下命令启动:

$ systemctl start supervisord.service

此时,我们的程序已经可以通过Supervisor进行管理。

  1. 优化应用程序

最后,我们可以使用以下方法来进一步优化我们的应用程序。

7.1 使用HTTPS协议

在应用程序中使用HTTPS协议可以加强应用程序的安全性。我们可以在应用程序中添加TLS/SSL证书,使其支持HTTPS协议。

7.2 使用Nginx反向代理

使用Nginx反向代理可以提高应用程序的性能和稳定性。Nginx可以作为负载均衡器,将流量均衡到多个应用程序实例中,提高并发量和可用性。

7.3 使用Docker容器

使用Docker容器可以更加方便地管理和部署应用程序。我们可以在Docker容器中运行应用程序,在容器内部实现应用程序的依赖及配置管理,使得应用程序在不同环境中的部署更加简单和便捷。

综上所述,golang代码部署主要包括编译代码、上传到云服务器、运行程序、使用管理工具进行程序管理等步骤。我们需要根据应用场景选择适合的云服务器和相关技术选项,并对应用程序进行优化,以提高效率和稳定性。

以上がgolang コードのデプロイメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。