Recommend the design ideas or components of the platform built to provide good web (micro) service release and deployment?

as the title

recently, I am designing a deployment platform for web services. I wonder what everyone is doing.

it feels that big companies have developed a set of web interfaces by themselves, so the bottom layer is not very clear.

is generally determined according to the specific language of the project?

such as maven build? Docker deployment? Jenkins build deployment? Write build.sh build deployment?

want to achieve

1, support multiple language frameworks, such as java, php, node
2, support grayscale publishing, custom time and server grouping distribution
3, support publishing parameter definition, such as jvm parameter

some of the above need to be developed by yourself, but is there a more mature scheme design? ask for recommendation?

Dec.09,2021

I have previously written an article about Gradle sharing, which involves posting about our release practices.
https://codeshelper.com/a/11.
its principle is still using the practice of ssh, write a variety of published task and then execute, the use of jenkins can achieve manual, automatic release.
A set of scripts is platform-wide, avoiding the non-cross-platform situation of shell/bat, and using docker can also be solved with the same principle.

< hr > < H2 > scenario 2-gradle integrates the ssh plug-in < / H2 >
  1. add gradle-ssh-plugin plug-in dependency

    plugins {
        id 'org.hidetake.ssh' version '2.9.0'
    }
  2. Server configuration

    remotes {
      webServer {
        host = '192.168.1.101'
        user = 'webserver'
        identity = file('id_rsa')
      }
    }
    remotes server information configuration. For more detailed configuration of gradle-ssh-plugin, please see official documentation .
  3. deployment task configuration

    task deploy {
      doLast {
        ssh.run {
          session(remotes.webServer) {
            put from: 'example.war', into: '/webapps'
            execute 'sudo service tomcat restart'
          }
        }
      }
    }
    use the gradlew deploy command to run the task, and you will upload example.war to the server / webapps directory, and restart your server tomcat
    you can write various task, according to your deployment needs to easily implement one-click deployment , and this way is completely cross-platform. Whether your development environment is windows, mac, linux, use the same command to deploy
    PS: in the development test environment in this way, I can only say not too easy to use

TarsCloud?
produced by Tencent

MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-7bd2f4-13667.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-7bd2f4-13667.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?