كيف أتمتة نشر تطبيق Linux على الركبة باستخدام Bash Scripts و Java

بمجرد كتابة تطبيق الخادم الخاص بك ، ستحتاج إلى نشره في مكان ما. في شركتنا ، يتم تنفيذ هذا الآن باستخدام VPS على Linux ، ونصوص bash ، وبرنامج Java صغير. هذه عملية تطورية ، وبالنسبة لي ، اتضح أنها جيدة جدًا.



أريد في المقالة أن أصف تطور هذا النهج ، ولماذا حدث ، وإيجابيات وسلبيات هذا النهج. إذا كانت لديك مشكلة مماثلة ، فاقرأها ، فربما تخطر ببالك أفكار مفيدة.



KDPV - بنية النظام ، والتي نقوم بتنفيذ جزء منها تلقائيًا:





قليلا من الخلفية



أنا حاليًا رئيس قسم التطوير في الشركة التي أعمل بها. لدينا فريق صغير ولكنه متوازن - لدينا مطورو الواجهة الخلفية ، الواجهة الأمامية ، ضمان الجودة ، المصمم ، مصمم التخطيط.



تعمل شركتنا في الأنشطة التعليمية في مجال تكنولوجيا المعلومات ، ونكتب البرمجيات لأنفسنا. هذا يفرض قيودًا معينة - ليس لدينا ميزانيات تنمية ضخمة ، هناك متطلبات غامضة ، لأنه ليس من الواضح تمامًا ما يحتاجه الناس.



في الوقت نفسه ، هناك إيجابيات - نكتب على ما نريد ، ويمكننا تحديد الجدول الزمني للتطوير والاتفاق عليه بأنفسنا. أيضًا ، نظرًا لأننا لا ننشر مائة ألف صفحة مقصودة أو متجرًا عبر الإنترنت ، فمن الممتع العمل. نقوم بتطوير العديد من المنتجات وجمع تعليقات المستخدمين وإصلاح / إضافة ميزات.



, , .





:





— . ( ). , -.



, . :



  • . , , ;
  • , . , — .
  • . 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 الخاصة بي - مبرمج وعمل .



أنا أكتب عن الأعمال من وجهة نظر مطور. هناك أنشر ملاحظات قصيرة لا تتناسب مع صيغة الهبر.




All Articles