Как развернуть веб-приложение Golang на Heroku?
Go, также известный как Golang, в последние годы набирает популярность среди профессионалов DevOps. На Go написано много инструментов, включая Docker и Kubernetes, но их также можно использовать для веб-приложений и API. Хотя Golang может работать так же быстро, как скомпилированный язык, кодирование на нем больше похоже на интерпретацию с помощью стандартных инструментов, таких как компилятор, средство запуска и т. д., вы получите полный опыт прямо из коробки.
Когда вы объединяете это с надежной и простой для понимания структурой параллелизма, разработанной для использования всех преимуществ современных многоядерных или многопроцессорных исполнительных систем, становится ясно, почему сообщество Go так быстро выросло. Обманчиво простой дизайн делает Go легким для изучения и освоения, но его возможности не ограничены, потому что он был создан с учетом конкретных целей. В этой статье мы узнаем, как создать простое веб-приложение на ходу и без проблем развернуть его на Heroku.
Разверните приложение Golang на Heroku
Шаг 1: Зарегистрируйте учетную запись Heroku. Если у вас нет учетной записи на Heroku, создайте ее сейчас. До 5 приложений могут быть размещены бесплатно без регистрации кредитной карты.
Шаг 2: Загрузите и установите интерфейс командной строки (CLI) Heroku. С интерфейсом командной строки Heroku (CLI) вы можете получить доступ к сервисам Heroku. Команды Heroku и git доступны из вашего командного окна, как только оно будет установлено.
Шаг 3: Получите доступ к Heroku, войдя в систему. Первое, что нам нужно сделать, это создать каталог для проекта, а затем инициализировать его как модуль Go с помощью команды go mod init. Используйте адрес электронной почты и пароль, которые вы использовали при создании учетной записи Heroku, для входа в систему:
$ heroku login
Enter your Heroku credentials.
Email: muthuannamalai2002@gmail.com
Password (typing will be hidden):
Logged in as muthuannamalai2002@gmail.com
Heroku and Git require authentication in order to function.
Шаг 4: Создайте каталог проекта. Первое, что нам нужно сделать, это создать каталог для проекта, а затем инициализировать его как модуль Go с помощью команды go mod init.
mkdir app
cd app
go mod init muthuannamalai12/app
Рекомендуется использовать имя пользователя вашей учетной записи GitHub, чтобы имена ваших проектов были уникальными, а зависимости ваших проектов не конфликтовали друг с другом. Это не обязательное условие, вы также можете использовать любое имя, которое пожелаете.
Теперь вы должны увидеть файл с именем go.mod в вашем каталоге. Это файл, который Go использует для отслеживания зависимостей проекта. Это должно выглядеть примерно так, когда вы смотрите на содержимое файла:
module muthuannamalai12/app
go 1.14
Шаг 5: Знакомство с Git. Откройте командную оболочку, запустив командную строку в Windows. Теперь вы должны идентифицировать себя в Git, чтобы убедиться, что он сможет правильно маркировать ваши коммиты в будущем. Я использую muthuannamalai12 и muthuannamalai2002@gmail.com ниже:
$ git config –global user.name “muthuannamalai12”
$ git config –global user.email muthuannamalai2002@gmail.com
Change the user name and email address to your own.
Шаг 6: Разработайте веб-приложение. На этом этапе мы подготавливаем простое приложение Go, которое можно развернуть. В папку app пишем программу app.go следующим образом:
Go
package mainimport ( "github.com/gin-gonic/contrib/static" "github.com/gin-gonic/gin")func main() { r := gin.Default() r.GET("/hello", func(c *gin.Context) { c.String(200, "Hello") }) api := r.Group("/api") api.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "ping", }) }) r.Use(static.Serve("/", static.LocalFile("./views", true))) r.Run()} |
Шаг 7: Наше приложение Heroku развертывается с помощью Git. Чтобы развернуть приложение на Heroku, вам нужно сохранить его в Git. В той же папке, например $GOPATH/src/github.com/muthuannamalai12/app, введите:
$ git init
$ git add -A .
$ git commit -m “code”
Шаг 8: Настройте Procfile. Укажите команду для запуска нашего приложения, создав Procfile в корневом каталоге нашего приложения. Procfile выглядит так:
веб: приложение
В нем объявляется единственный тип процесса, web, вместе с командой, необходимой для его запуска. Сеть имен имеет решающее значение. Этот тип процесса сможет обрабатывать веб-трафик, поскольку он подключен к стеку HTTP-маршрутизации Heroku.
Шаг 9: Загрузите и установите Godep. Heroku рекомендует использовать godep для управления зависимостями пакетов Go, что упрощает воспроизводимое создание приложений путем исправления зависимостей. Теперь давайте установим Godep:
$ go get github.com/tools/godep
Шаг 10: Объявите зависимости для приложений. Приложения Go распознаются Heroku по наличию файла Godeps.json в каталоге Godeps, расположенном в корневом каталоге вашего приложения. Файл Godeps/Godeps.json используется для объявления зависимостей, которые ваше приложение включает вместе с версией Go для использования при компиляции. Всякий раз, когда приложение развертывается, Heroku читает этот файл, устанавливает правильную версию Go и компилирует код с помощью godep go install ./…
Использование godep в нашем проекте. В созданной папке app введите следующую команду
$ godep save -r
Зависимости будут сохранены в файл Godeps/Godeps.json.
Шаг 11: Добавьте новые файлы в git
$ git add -A .
$ git commit -m “dependencies”
Теперь все готово для развертывания Heroku.
Шаг 12: Создайте приложение и разверните его. Этот шаг включает в себя создание и развертывание приложения в Heroku. Создание приложения Heroku подготавливает Heroku к принятию вашего исходного кода.
$ heroku create
Creating app… done, immense-reaches-34382
https://immense-reaches-34382.herokuapp.com/ | https://git.heroku.com/immense-reaches-34382.git
Удаленный репозиторий git (называемый heroku) также создается при создании приложения. В этом примере Heroku генерирует для вашего приложения имя huge-reaches-34382, или вы можете указать свое собственное имя в качестве параметра.
Когда будете готовы, разверните свой код с помощью git push heroku master. Теперь ваше приложение развернуто. Чтобы получить к нему доступ, перейдите по URL-адресу, сгенерированному именем приложения. Следующий ярлык открывает сайт:
$ heroku open
Вот и все! Ваше приложение Go теперь работает на Heroku!