Utopiops를 사용하여 Dockerized Go - gin API 빌드, 배포 및 호스팅(DevOps 경험 필요 없음)
일반적으로 팀은 DevOps 엔지니어 또는 개발자의 DevOps 전문 지식에 의존하여 매우 시간 소모적이고 실망스럽고 비용이 많이 드는 플랫폼을 구축해야 합니다.
Utopiops (utopiops.com)은 애플리케이션의 구축, 배포 및 호스팅에서 플랫폼 모니터링, 사고 보고서 및 DevOps 경험이 없는 문제 추적 시스템.
Utopiops는 또한 완전 관리형 및 관리형 응용 프로그램/서비스를 지원합니다. 완전 관리형 애플리케이션은 Utopiops 클라우드 플랫폼에서 호스팅되는 반면 관리형 애플리케이션은 자체 클라우드 계정에서 호스팅됩니다.
그의 게시물에서는 Utopiops에서 완전 관리형 애플리케이션을 사용하여 애플리케이션을 호스팅하는 방법을 보여줍니다. 이 튜토리얼에서는 Utopiops가 모든 계정에 기본적으로 제공하는 취미 플랜을 사용하며 신용 카드가 필요하지 않습니다.
이를 위해 2단계 Dockerfile과 함께 gin 프레임워크를 사용하여 간단한 go API를 구현했습니다.
go mod init <module name>
명령을 사용하여 모듈을 초기화하는 것으로 시작해 보겠습니다.go mod init go-gin-utopiops-example
다음으로
main.go
파일에서 매우 기본적인 API를 구현합니다.package main
import (
"os"
"github.com/gin-gonic/gin"
)
func main() {
port := os.Getenv("PORT")
if port == "" {
port = "8080"
}
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
// A publicly open (no authorization) endpoint to verify the health of the application
// Here it always returns 200, but in real cases it should properly indicate if the application is actually healthy or not
r.GET("/health", func(c *gin.Context) {
c.String(200, "Healthy")
})
r.Run(":" + port)
}
API에는 두 개의 GET 엔드포인트가 있습니다.
/ping
단순히 json 데이터로 응답/health
나중에 애플리케이션의 상태 확인 끝점으로 사용됩니다그리고 이것은 내 Dockerfile입니다.
FROM golang:1.16-alpine AS build
WORKDIR /app
COPY go.mod ./
COPY go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o example .
FROM alpine:3.9.5
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=build /app/example .
CMD [ "./example" ]
또한 내 저장소에 항상
.dockerignore
파일이 있으므로 불필요하거나 원치 않는 파일로 도커 이미지가 부풀려지는 것을 방지합니다.이 모든 파일은 저장소here에서 찾을 수 있습니다.
배포를 시작하기 전에 이메일을 등록하고 확인하여 Utopiops에 계정을 생성해야 합니다.
이제
dockerized
애플리케이션을 생성합니다.그런 다음 코드를 저장한 저장소를 선택합니다.
이 예제에서는 Github를 사용하고 있지만 Gitlab 및 Bitbucket도 사용할 수 있습니다.
마지막으로 애플리케이션에 이름을 지정하고, git 분기, 애플리케이션이 수신 대기 중인 포트 및 상태 확인으로 사용할 수 있는 엔드포인트를 설정하면 됩니다. 상태 확인 경로는 승인되지 않은 HTTP GET 요청에 대해 2xx 응답을 반환하는 끝점일 뿐입니다.
또한 PORT를 환경 변수로 설정합니다.
즉시 Utopiops의 내장 CICD가 설정되고 애플리케이션 빌드 및 배포가 시작됩니다.
빌드 로그가 발생하는 대로 실시간으로 볼 수 있습니다.
그리고 단 몇 초 만에 응용 프로그램을 사용할 수 있습니다(이 예에서는 정확하게 3초가 소요됨)
기본적으로 HTTPS는 응용 프로그램에 제공되며 인증서가 적용되는 데 몇 분 정도 걸립니다. 이를 몇 초로 줄이기 위해 노력하고 있습니다.
언급할 가치가 있는 것은 대상 브랜치를 변경할 때마다 애플리케이션의 새 버전이 즉시 빌드 및 배포된다는 점입니다.
최종 메모
우리는 큰 목표를 염두에 두고 있는 아주 어린 스타트업입니다. 우리의 기능과 여정에 대해 알게 되는 첫 번째 사용자의 일부가 될 수 있습니다.
저희 discord channel에 가입하고 에서 저희를 팔로우하고 저희 서비스를 이용하여 저희 가족이 되십시오. 우리는 관대 한 취미 계획이 있습니다!
질문이 있거나 비공개 데모를 보고 싶다면 댓글을 남겨주세요!
Reference
이 문제에 관하여(Utopiops를 사용하여 Dockerized Go - gin API 빌드, 배포 및 호스팅(DevOps 경험 필요 없음)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mohsenkamrani/build-deploy-and-host-your-dockerized-go-gin-api-with-utopiops-no-devops-experience-required-47cb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)