サーバーアプリケーションを作成したら、それをどこかにデプロイする必要があります。私たちの会社では、これはLinux上のVPS、bashスクリプト、および小さなJavaプログラムを使用して実装されています。これは進化の過程であり、私の意見では、かなりうまくいった。
この記事では、このアプローチの進化、なぜそれが起こったのか、アプローチの長所と短所について説明したいと思います。同様の問題がある場合は、それを読んでください。おそらく有用な考えが思い浮かびます。
KDPV-システムアーキテクチャ。その一部については、展開を自動化します。

少し背景
私は現在、勤務先の会社の開発部門の責任者です。小規模ながらバランスの取れたチームがあります。バックエンド、フロントエンド開発者、QA、デザイナー、レイアウトデザイナーがいます。
当社はITの教育活動を行っており、自社でソフトウェアを作成しています。これには一定の制限があります。人々が何を必要としているかが完全に明確ではないため、開発予算が大きくなく、要件があいまいです。
同時に、プラス面もあります。私たちは自分たちが欲しいものを書き、開発のタイムラインを自分たちで設定して合意することができます。また、10万ページのランディングページやオンラインストアを見ているわけではないので、仕事をするのは面白いです。いくつかの製品を開発し、ユーザーフィードバックを収集し、機能を修正/追加します。
, , .
:

— . ( ). , -.
, . :
- . , , ;
- , . , — .
- . 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. , .
, — . , - , . , — , .
, . , . , , , . , .
時間と経済的制約を考慮に入れる必要があります。各開発者の詳細を検討してください。今では、「猫をかすめる方法」、「私、オタク、オタク」、「プログラマティックプログラマー」、「プロジェクト管理に関する小説」など、1か月に読んだ最後の本から多くのテーマ別の文献を読みました。
これは私にとって興味深く新しい道です。テレグラムチャネル(プログラマーとビジネス)での進捗状況を説明しながら、それを確認します。
私は開発者の観点からビジネスについて書いています。そこで、Habrの形式に合わない短いメモを投稿します。