Heim  >  Artikel  >  Backend-Entwicklung  >  Golang ist einfach bereitzustellen

Golang ist einfach bereitzustellen

王林
王林Original
2023-05-19 09:19:37420Durchsuche

Mit der rasanten Entwicklung des Cloud Computing haben sich in den letzten Jahren immer mehr Unternehmen dafür entschieden, ihre Anwendungen in der Cloud bereitzustellen, um die Vorteile hoher Verfügbarkeit, elastischer Skalierung und nahtloser Erweiterung zu nutzen. Unter vielen Programmiersprachen wird die Go-Sprache aufgrund ihrer hohen Leistung, starken Parallelität und einfachen und leicht lesbaren Code zunehmend von Entwicklern bevorzugt. Wie kann man angesichts des Go-Sprachbooms heute schnell eine Go-Anwendung in der Cloud bereitstellen? Als nächstes werde ich über einige meiner Praktiken und Gedanken sprechen.

Wählen Sie einen geeigneten Cloud-Dienstanbieter

Zunächst müssen wir einen Cloud-Dienstanbieter auswählen, der zu uns passt. Im Allgemeinen gehören Alibaba Cloud, Tencent Cloud, Huawei Cloud usw. zu den Mainstream-Cloud-Dienstanbietern, die derzeit auf dem Markt sind. Diese Cloud-Dienstanbieter bieten viele Cloud-Produkte an, wie z. B. Cloud-Server-ECS, Containerdienste, Datenbanken, Lastausgleich, CDN usw. Wir können nach unseren Bedürfnissen wählen.

Um Go-Anwendungen bequem und schnell bereitzustellen, können wir außerdem Cloud-Dienstanbieter auswählen, die PaaS-Plattformen oder Containerdienste bereitstellen. Zum Beispiel ACM von Alibaba Cloud, TKE-Containerdienst von Tencent Cloud, CCE-Container-Engine von Huawei Cloud usw.

Docker-Datei schreiben

Bei der Bereitstellung von Go-Anwendungen entscheiden wir uns normalerweise für die Docker-Containertechnologie. Die Docker-Containertechnologie kann unsere Anwendungen und Betriebsumgebungen zusammenfassen, um eine schnelle Bereitstellung, Migration und Skalierung zu erreichen. Daher sollten wir bei der Entwicklung von Go-Anwendungen Dockerfiles verwenden, um unsere Anwendungen zu beschreiben.

Ein einfaches Beispiel für eine Docker-Datei finden Sie unten:

# 基础镜像
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"]

Das Obige ist eine Docker-Datei für eine Go-Anwendung, die auf Alpine basiert. Unter anderem verwenden wir golang:1.16.2-alpine3.13 als Basis-Image der ersten Stufe, in dem wir go build zum Kompilieren verwenden können. Anschließend verwendeten wir alpine:3.13 als Basis-Image für die zweite Stufe und kopierten die kompilierten Binärdateien hinein. Schließlich legen wir die Umgebungsvariablen und bereitgestellten Ports fest und starten die Anwendung. In der Docker-Datei können wir je nach Bedarf entsprechende Änderungen vornehmen.

Stellen Sie das Docker-Image bereit

Nachdem wir die Docker-Datei geschrieben haben, müssen wir sie erstellen und in das Image-Warehouse übertragen. Hier können wir ein öffentliches Cloud-Image-Warehouse (zum Beispiel: Container Registry von Alibaba Cloud, die Image-Bibliothek von Tencent Cloud, der Image-Service von Huawei Cloud usw.) oder ein privates Image-Warehouse wählen. Hier nehmen wir die Container Registry von Alibaba Cloud als Beispiel:

  1. Erstellen Sie zunächst Ihr eigenes Spiegellager auf der Alibaba Cloud-Konsole.
  2. Führen Sie dann den Anmeldebefehl auf dem lokalen Terminal aus:
$ docker login --username=<your_username> registry.cn-hangzhou.aliyuncs.com

wobei a07e7ed5182d8ab2cad0010c8d119114 Ihr Alibaba Cloud-Konto-Benutzername ist.

  1. Als nächstes geben Sie das Verzeichnis ein, in dem sich die Docker-Datei befindet, und führen Sie den Build-Befehl aus:
$ docker build -t registry.cn-hangzhou.aliyuncs.com/<your_namespace>/<your_repo>:<tag> .

wobei b392a228e3c198cb5aa5646b74de8d17 der Namespace ist, in dem sich Ihr Mirror-Warehouse befindet, 46b768966fd708d94005c868c344d5f3 , 8bf259f5a6144433b921fb8b7de94970 ist die Versionsnummer des von Ihnen erstellten Images. Im obigen Befehl verwenden wir „.“ um anzugeben, dass das aktuelle Verzeichnis als Build-Kontext verwendet wird.

  1. Führen Sie abschließend den Push-Befehl aus:
$ docker push registry.cn-hangzhou.aliyuncs.com/<your_namespace>/<your_repo>:<tag>

Zu diesem Zeitpunkt wurde unser Image erfolgreich in die Container Registry von Alibaba Cloud übertragen.

Verwendung des Cloud Container Service

Nachdem wir das Docker-Image erfolgreich gepusht haben, können wir uns für die Verwendung des Cloud Container Service für eine schnelle Bereitstellung entscheiden.

Am Beispiel von Kubernetes von Alibaba Cloud müssen wir zunächst einen Kubernetes-Cluster auf der Konsole erstellen, dann den Namen unseres Image-Warehouses, die Versionsnummer und andere Informationen in der Bereitstellungskonfigurationsdatei konfigurieren und schließlich den Befehl kubectl apply -f ausführen einsetzen .

In Tencent Cloud bietet der TKE-Containerdienst eine sehr umfangreiche Konsolenbetriebsoberfläche, die es uns ermöglicht, Container bequemer bereitzustellen und zu verwalten.

Auch andere Cloud-Service-Anbieter stellen uns eine Fülle von Container-Services zur Verfügung.

Fazit

Zusammenfassend können wir sehen, dass es sehr praktisch ist, die Go-Sprache zum Bereitstellen von Anwendungen zu verwenden, und im heutigen Cloud-Zeitalter kann die Verwendung von Docker-Containern und Cloud-Container-Diensten die Bereitstellungseffizienz und den Betriebskomfort verbessern. In der Praxis sollten wir geduldig erkunden und lernen und unsere Bereitstellungspläne ständig optimieren, um sie an sich ändernde Geschäftsanforderungen anzupassen.

Das obige ist der detaillierte Inhalt vonGolang ist einfach bereitzustellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Golang-JobanforderungenNächster Artikel:Golang-Jobanforderungen