Setelah Anda menulis aplikasi server Anda, Anda perlu menerapkannya di suatu tempat. Di perusahaan kami, ini sekarang diimplementasikan menggunakan VPS di Linux, skrip bash, dan program Java kecil. Ini adalah proses evolusi, dan menurut saya, hasilnya cukup baik.
Dalam artikel ini saya ingin menjelaskan evolusi pendekatan ini, mengapa hal itu terjadi, pro dan kontra dari pendekatan tersebut. Jika Anda memiliki masalah serupa - bacalah, mungkin pemikiran yang berguna akan muncul di benak Anda.
KDPV - arsitektur sistem, di mana kami mengotomatiskan penerapannya:

Sedikit latar belakang
Saat ini saya adalah kepala departemen pengembangan di perusahaan tempat saya bekerja. Kami memiliki tim kecil namun seimbang - ada backend, pengembang front-end, QA, desainer, desainer tata letak.
Perusahaan kami bergerak di bidang pendidikan di bidang IT, dan kami membuat software untuk diri kami sendiri. Ini memberlakukan batasan tertentu - kami tidak memiliki anggaran pembangunan yang besar, ada persyaratan yang tidak jelas, karena tidak sepenuhnya jelas apa yang dibutuhkan orang.
Pada saat yang sama, ada kelebihan - kami menulis apa yang kami inginkan, dan kami dapat mengatur dan menyetujui timeline pengembangan sendiri. Juga, karena kita tidak melihat ratusan ribu halaman arahan atau toko online, itu menarik untuk dikerjakan. Kami mengembangkan beberapa produk, mengumpulkan umpan balik pengguna, dan memperbaiki / menambahkan fitur.
, , .
:

β . ( ). , -.
, . :
- . , , ;
- , . , β .
- . 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. , .
, β . , - , . , β , .
, . , . , , , . , .
Batasan waktu dan keuangan harus diperhitungkan. Pertimbangkan spesifikasi dari setiap pengembang. Sekarang saya membaca banyak literatur tematik, dari buku terakhir yang saya baca dalam sebulan - "Bagaimana cara menggembalakan kucing", "Saya, kutu buku dan kutu buku", "Programmatic programmer", "Sebuah novel tentang manajemen proyek".
Ini adalah jalan yang menarik dan baru bagi saya. Saya menjalaninya, menjelaskan kemajuan saya di saluran Telegram saya - Programmer dan bisnis .
Saya menulis tentang bisnis dari sudut pandang pengembang. Di sana saya memposting catatan pendek yang tidak sesuai dengan format Habr.