美文网首页
Heroku与Github集成部署Web应用

Heroku与Github集成部署Web应用

作者: wyatt_plus | 来源:发表于2021-03-18 09:31 被阅读0次

    一. 简介

    Heroku是首批PaaS平台之一。它以Ruby的应用程序的托管服务开始,随后逐渐发展到支持诸多其他语言,如Java,Node.js和Python。

    在Heroku中部署Web应用程序主要是通过git版本控制工具完成的,因此你必须将应用程序放在git代码库中。 Heroku在应用程序的根目录中查找名为Procfile的文件,以获取有关如何启动应用程序的描述。 对于Python项目,Heroku还期望requirements.txt文件列出需要安装的所有模块依赖项。

    在通过git将应用程序上传到Heroku的服务器之后,你的工作基本就完成了,只需等待几秒钟,应用程序就会上线。

    二. 架构

    +--------------------+        +--------+                    +-----------+
    |       Local        |        | GitHub |                    |  Heroku   |
    |                    |        +--------+                    +-----------+
    +--------------------+         |                                  |
         |                         |                                  |
         |     Git Push            |                                  |
         |------------------------>|                                  |
         |                         |                                  |
         |                         |                                  |
         |                         |       Deployment Event           |
         |                         |--------------------------------->|
         |                         |                                  |
         |                         |    Deployment Status (pending)   |
         |                         |<---------------------------------|
         |                         |                                  |
         |                         |                                  |
         |                         |   Deployment Status (success)    |
         |                         |<---------------------------------|
         |                         |                                  |
    

    三. 操作流程

    3.1 创建Heroku账户

    heroku链接,在此官网注册账户即可。Heroku提供了一个名为Heroku CLI的命令行工具来与服务交互,可安装于Windows,Mac OS X和Linux。

    3.2 Heroku CLI 登陆

    当输入如下指令时,页面会跳至浏览器授权,点击确认即可。

    heroku login
    

    3.3 在目标目录Clone GitHub项目

    git clone git@github.com:wyattup/CS551P_Project.git(此处替换为自己的git项目)
    
    

    3.4 创建Heroku App项目

    执行如下命令行,即可创建App。不过,由于App名称是唯一的,所以需要注意是否创建成功。
    要用Heroku注册一个新应用,需要在应用程序根目录下使用apps:create子命令,并将应用程序名称作为唯一参数传递:

    heroku apps:create flask-wyatt
    

    上面的flask-wyatt这个名称可以自定义。

    通过如下指令,可以查看已经创建的apps

    heroku apps
    

    3.5 Heroku与Github remote绑定

    heroku git:remote -a 这里输入app的名称

    # git 与 ‘flask-wyatt’ app绑定
    heroku git:remote -a flask-wyatt
    # 检查是否绑定
    git remote -v
    

    3.6 Heroku推送部署

    当前目录进行git push操作即可

    git push heroku main
    
    image.png

    3.6 Heroku网页端

    打开当前的App页面,可以查看build logs以及app的地址


    image.png

    当前app的查看地址如下:flask-wyatt.herokuapp.com

    四. 问题归纳

    4.1 Heroku免费版每30min会休眠

    还有一个限制就是一天之内最长存活时间不能大于18个小时,所以当前问题就是要解决如何在18个小时的限制内合理的让应用存活。
    解决方法

    • 利用免费的在线监控平台进行HTTPS定期轮询
      uptimerobot.com平台
      配置如图
      监控效果

    4.2 Heroku可视化绑定Github

    Heroku CLI方式过渡繁琐,希望采用可视化的操作来满足要求
    解决方法:

    • 页面上绑定GitHub指定仓库,并配置自动化构建。


      按照步骤执行
    • 同时,在setting里面配置build packs语言,当前选择Python


      配置build packs

    五. 总结

    这是一个最简单的CICD项目。在这个基于Flask框架的Python项目中,我们可以使用到很多的技术栈,例如Git,Github,BuildPacks,SSH等。内容不难,但是需要我们对每个指令都很熟悉。同时,我们也要擅于利用工具,对免费项目的部署学习提供便利。
    在DevOps这条大道上,我们还需要继续深入。

    相关文章

      网友评论

          本文标题:Heroku与Github集成部署Web应用

          本文链接:https://www.haomeiwen.com/subject/vukucltx.html