Une fois que vous avez écrit votre application serveur, vous devez la déployer quelque part. Dans notre entreprise, cela est désormais implémenté à l'aide d'un VPS sous Linux, de scripts bash et d'un petit programme Java. C'est un processus évolutif, et moi, ça s'est plutôt bien passé.
Dans l'article, je veux décrire l'évolution de cette approche, pourquoi cela s'est produit, les avantages et les inconvénients de l'approche. Si vous avez un problème similaire, lisez-le, peut-être que des pensées utiles vous viendront à l'esprit.
KDPV - architecture système, pour une partie dont nous automatisons le déploiement:
Un peu de contexte
Je suis actuellement responsable du département développement de l'entreprise où je travaille. Nous avons une équipe petite mais équilibrée - il y a un backend, des développeurs front-end, un contrôle qualité, un concepteur, un concepteur de mise en page.
Notre entreprise est engagée dans des activités éducatives en informatique et nous écrivons des logiciels pour nous-mêmes. Cela impose certaines restrictions - nous n'avons pas d'énormes budgets de développement, il y a des exigences vagues, car ce dont les gens ont besoin n'est pas tout à fait clair.
En même temps, il y a des avantages - nous écrivons sur ce que nous voulons et nous pouvons définir et convenir nous-mêmes du calendrier de développement. De plus, comme nous ne voyons pas une page de destination de cent mille ou une boutique en ligne, il est intéressant de travailler. Nous développons plusieurs produits, collectons les commentaires des utilisateurs et corrigeons / ajoutons des fonctionnalités.
, , .
:
— . ( ). , -.
, . :
- . , , ;
- , . , — .
- . 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. , .
, — . , - , . , — , .
, . , . , , , . , .
Les contraintes de temps et financières doivent être prises en compte. Tenez compte des spécificités de chaque développeur. Maintenant, je lis beaucoup de littérature thématique, à partir des derniers livres que j'ai lus depuis un mois - "Comment faire paître les chats", "Moi, nerds et geeks", "Programmatic programmer", "Un roman sur la gestion de projet".
C'est une voie intéressante et nouvelle pour moi. Je le parcoure, décrivant mes progrès sur ma chaîne Telegram - Programmeur et entreprise .
J'écris sur les affaires du point de vue d'un développeur. Là , je poste de courtes notes qui ne correspondent pas au format Habr.