我如何使用Bash脚本和Java自动在膝盖上部署Linux应用程序

编写服务器应用程序后,需要将其部署到某个地方。在我们公司中,现在可以使用Linux上的VPS,bash脚本和小型Java程序来实现该功能。这是一个进化的过程,对我而言,结果非常好。



在本文中,我想描述这种方法的演变,发生的原因以及这种方法的利弊。如果您有类似的问题,请阅读它,也许会想到有用的想法。



KDPV-系统架构,对于其中的一部分,我们实现了自动化部署:





有点背景



我目前是我工作所在公司的开发部门主管。我们的团队规模很小但很平衡-有一个后端,前端开发人员,QA,一名设计师,一名布局设计师。



我们公司从事IT教育活动,我们为自己编写软件。这施加了一定的限制-我们没有庞大的开发预算,有模糊的要求,因为尚不清楚人们需要什么。



同时,还有一些优点-我们写我们想要的东西,我们可以自己设定并同意开发时间表。另外,由于我们没有看到十万个登陆页面或在线商店,因此工​​作很有趣。我们开发了几种产品,收集用户反馈,并修复/添加功能。



, , .





:





— . ( ). , -.



, . :



  • . , , ;
  • , . , — .
  • . java, node.js, python.


— , ( markdown ). .



, , . . .



Level 1



. SSH VPS, git, mvn build, npm i, java -jar .



, . — .



Level 2



- , . ..



, gihub SSH VPS. git pull, . , .



Level 3



. , .



, bash . :



  • git pull,
  • mvn package — fatjar ( Java)
  • pkill yourserverprocessname —
  • java -jar yourfatjar.jar


VPS, cd ~/git/repository_name, — ./deploy.sh



Level 4



, ?



, VPS. - . C — . , — . C , , , , .



, Java. . HttpServer. GET POST , token, — bash .



.



VPS . . — , .



— - , URL, bash , .



Level 5



.



github, webhook . , (push, etc) — github URL. — POST .



webhook push. URL, .



, git push, .



Level 6 (bonus)



, . . , node.js .



, .



, . UptimeRobot. :



  • — ( POST/GET , ..).


! , — , URL . , .



- . , UptimeRobot . , - , .



— . Spring Boot , UptimeRobot, . , — / , .



, , :



图片



, .





— . bash .



, , . , .





— .



, push github ?



, push, ?



, . , . , .



CI/CD . , — production.



, , MVP. , , . , , — . , .



?



, . Java, Maven , , jar. , — .



bash , ( .jar mvn package) . - node.js — , .



github , (, , ).



CI/CD , Jenkins, Gitlab, Ansible. , .



, — . , - , . , — , .





, . , . , , , . , .



必须考虑时间和财务限制。考虑每个开发人员的细节。现在,我阅读了一个月以来最近读过的许多书籍,其中包括“如何放牧猫”,“我,书呆子和怪胎”,“编程程序员”,“关于项目管理的小说”。



对我来说,这是一条有趣而新颖的道路。我仔细阅读了一下,描述了我在Telegram频道中的进展-程序员和业务



我从开发人员的角度撰写有关业务的文章。我在那里贴了一些不适合Habr格式的简短笔记。




All Articles