ホームページ  >  記事  >  バックエンド開発  >  Golang はデプロイが簡単です

Golang はデプロイが簡単です

王林
王林オリジナル
2023-05-19 09:19:37421ブラウズ

近年、クラウド コンピューティングの急速な発展に伴い、高可用性、柔軟なスケーリング、シームレスな拡張という利点を実現するために、アプリケーションをクラウドに展開することを選択する企業が増えています。多くのプログラミング言語の中でも、Go 言語は、その高性能、強力な同時実行性、シンプルで読みやすいコードのため、開発者の間でますます好まれています。では、Go 言語がブームになっている今日、Go アプリケーションをクラウドに迅速にデプロイするにはどうすればよいでしょうか?次に、私の実践と考えについてお話します。

適切なクラウド サービス プロバイダーを選択する

まず、自分に合ったクラウド サービス プロバイダーを選択する必要があります。一般的に、現在市場に出回っている主流のクラウド サービス プロバイダーには、Alibaba Cloud、Tencent Cloud、Huawei Cloud などが含まれます。これらのクラウド サービス プロバイダーは、クラウド サーバー ECS、コンテナ サービス、データベース、ロード バランシング、CDN などの多くのクラウド製品を提供しています。ニーズに応じて選択できます。

さらに、Go アプリケーションを迅速かつ簡単にデプロイするために、PaaS プラットフォームまたはコンテナ サービスを提供するクラウド サービス プロバイダーを選択できます。例えば、Alibaba CloudのACM、Tencent CloudのTKEコンテナサービス、Huawei CloudのCCEコンテナエンジンなどです。

Dockerfile の作成

Go アプリケーションをデプロイするプロセスでは、通常、Docker コンテナー テクノロジを選択します。 Docker コンテナ テクノロジーを使用すると、アプリケーションとオペレーティング環境をパッケージ化して、迅速な導入、移行、拡張を実現できます。したがって、Go アプリケーションを開発するときは、Dockerfile を使用してアプリケーションを記述する必要があります。

簡単な Dockerfile の例を以下に示します。

# 基础镜像
FROM golang:1.16.2-alpine3.13 AS builder
# 设置工作目录
WORKDIR /app
# 将应用代码复制到容器中
COPY . .
# 编译
RUN go build -o /app/main

# 运行环境
FROM alpine:3.13
# 设置工作目录
WORKDIR /app
# 复制二进制文件
COPY --from=builder /app/main .
# 设置环境变量
ENV PORT 8888
# 暴露端口
EXPOSE 8888
# 启动应用
CMD ["./main"]

上記は、alpine に基づいた Go アプリケーションの Dockerfile です。このうち、最初の段階のベースイメージとして golang:1.16.2-alpine3.13 を使用し、 go build を使用してコンパイルできるようにします。次に、第 2 段階のベース イメージとして alpine:3.13 を使用し、コンパイルされたバイナリをそこにコピーしました。最後に、環境変数と公開ポートを設定し、アプリケーションを起動しました。 Dockerfile では、ニーズに応じて適切な変更を加えることができます。

Docker イメージをデプロイする

Dockerfile を作成した後、それをビルドしてイメージ ウェアハウスにプッシュする必要があります。ここでは、パブリック クラウド イメージ ウェアハウス (例: Alibaba Cloud の Container Registry、Tencent Cloud のイメージ ライブラリ、Huawei Cloud のイメージ サービスなど) またはプライベート イメージ ウェアハウスを選択できます。ここでは、Alibaba Cloud の Container Registry を例として取り上げます。

  1. まず、Alibaba Cloud コンソールで独自のミラー ウェアハウスを作成します。
  2. 次に、ローカル端末でログイン コマンドを実行します:
$ docker login --username=<your_username> registry.cn-hangzhou.aliyuncs.com

ここで、05c91d808bf6c7782f3777ff44434dbd は Alibaba Cloud アカウントのユーザー名です。

  1. 次に、Dockerfile が配置されているディレクトリに入り、ビルド コマンドを実行します:
$ docker build -t registry.cn-hangzhou.aliyuncs.com/<your_namespace>/<your_repo>:<tag> .

このうち、b392a228e3c198cb5aa5646b74de8d17 は、ミラー ウェアハウスが存在する名前空間です。 f5a1f37b3b31bb3b6950f6bc23ab299e はイメージ ウェアハウスの名前、8bf259f5a6144433b921fb8b7de94970 はビルドしたイメージのバージョン番号です。上記のコマンドでは、ビルド コンテキストとして現在のディレクトリを使用することを示すために「.」を使用しています。

  1. 最後に、プッシュ コマンドを実行します:
$ docker push registry.cn-hangzhou.aliyuncs.com/<your_namespace>/<your_repo>:<tag>

この時点で、イメージは Alibaba Cloud のコンテナ レジストリに正常にプッシュされました。

クラウド コンテナ サービスの使用

Docker イメージのプッシュに成功したら、迅速なデプロイのためにクラウド コンテナ サービスの使用を選択できます。

Alibaba Cloud の Kubernetes を例に挙げると、最初にコンソールで Kubernetes クラスターを作成し、次にイメージ ウェアハウス名、バージョン番号、その他の情報をデプロイメント構成ファイルに構成し、最後に kubectl apply - を実行する必要があります。デプロイする f コマンド。

Tencent Cloud では、TKE コンテナ サービスは非常に豊富なコンソール操作インターフェイスを提供し、コンテナのデプロイと管理をより便利に行うことができます。

同様に、他のクラウド サービス プロバイダーも、私たちが使用できる豊富なコンテナ サービスを提供しています。

結論

要約すると、Go 言語を使用してアプリケーションをデプロイするのは非常に便利であり、今日のクラウド時代では、Docker コンテナとクラウド コンテナ サービスを使用することでデプロイの効率を向上できることがわかります。 . そして操作のしやすさ。実際には、忍耐強く探索して学習し、変化するビジネス ニーズに適応するために導入計画を常に最適化する必要があります。

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

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