Systems and methods for remote client access to server-based software development
Systems and methods to support remote client access to server-based software development within a server that manages a container cluster, are disclosed. Exemplary implementations may launch one or more pods that may include sets of containers, including a first pod that executes a container management software application; launch a first set of containers including a first container; receive a connection instruction to establish a secure channel between a client computing platform and a remotely-accessible server-based software development environment (SDE) in the first container; establish the secure channel; receive user input for particular execution in the remotely-accessible server-based software development environment; perform the particular execution; and/or other actions.
1 . A system configured to support remote client access to server-based software development within a server configured to manage a container cluster, the system comprising:
one or more hardware processors configured by machine-readable instructions to: launch, using the container cluster, one or more pods that include at least one set of containers, wherein the one or more pods include a first pod configured to execute a container management software application;
launch, using the container management software application of the first pod, a first set of the at least one set of containers including a first container and a second container, wherein the first container of the first pod is configured to provide a first remotely-accessible server-based software development environment (SDE) and the second container of the first pod is configured to provide a second remotely-accessible server-based SDE, wherein the first container is associated with a plurality of hierarchical states including at least a current SDE state and a current state of the first container;
receive, through a public uniform resource locator (URL) accessible from a client computing platform associated with a remote user, a connection instruction to establish a secure channel between the client computing platform and the first remotely-accessible server-based SDE;
establish the secure channel between the client computing platform through the public URL and the first remotely-accessible server-based SDE such that the remote user has root access to the first remotely accessible server based SDE;
receive, through a software application executing locally on the client computing platform, user input from the remote user, wherein the user input includes an instruction to execute one or more commands in the first remotely-accessible server-based SDE; and
execute the one or more commands in the first container in accordance with the instruction such that execution of the one or more commands triggers updates across the plurality of hierarchical states including modifying the current state of the first container into a modified state, wherein the modified state corresponds to an update to a deployed software application, wherein the update to the deployed software application is immediately accessible within the first remotely-accessible server-based SDE to one or more different remote users through a resource.
2 . The system of claim 1 , wherein the container management software application is DOCKER™.
3 . The system of claim 1 , wherein the connection instruction is received through a Secure Shell (SSH) command.
4 . The system of claim 1 , wherein the software application executing locally on the client computing platform provides a command line interface to the remote user.
5 . The system of claim 1 , wherein the software application executing locally on the client computing platform provides text editing to the remote user.
6 . The system of claim 1 , wherein at least some persistent data for the first remotely-accessible server-based SDE is stored on the server.
7 . The system of claim 1 , wherein the first remotely-accessible server-based SDE includes a container runtime in accordance with an Open Container Initiative (OCI™) specification.
8 . The system of claim 7 , wherein the container runtime includes “runc”.
9 . The system of claim 1 , wherein at least some of the current state is stored in persistent data storage, and wherein at least some of the persistent data storage is provided locally by the server.
10 . The system of claim 1 , wherein the user input received through the software application executing locally on the client computing platform is provided to the first remotely-accessible server-based SDE via the secure channel.
11 . The system of claim 1 , wherein the one or more commands include a particular command to preserve a particular current state of one or more of:
(i) a particular process running in the first remotely-accessible server-based SDE,
(ii) a particular container in the first set of the at least one set of containers, and/or
(iii) a particular data set in the first remotely-accessible server-based SDE, into a preserved particular state, wherein the preserved particular state is stored in persistent data storage.
12 . The system of claim 11 , wherein the one or more hardware processors are further configured to:
receive a particular restore instruction from the remote user for creation and/or modification of a specific current state of the first set of the at least one set of containers, wherein the specific current state corresponds to the preserved particular state; and
execute the particular restore instruction such that the first set of the at least one set of containers has a state that corresponds to the preserved particular state.
13 . A method of supporting remote client access to server-based software development within a server that manages a container cluster, the method comprising:
launching, using the container cluster, one or more pods that include at least one set of containers, wherein the one or more pods include a first pod that executes a container management software application;
launching, using the container management software application of the first pod, a first set of the at least one set of containers including a first container and a second container, wherein the first container of the first pod provides a first remotely-accessible server-based software development environment (SDE) and the second container of the first pod is configured to provide a second remotely-accessible server-based SDE, wherein the first container is associated with a plurality of hierarchical states including at least a current SDE state and a current state of the first container;
receiving, through a public uniform resource locator (URL) accessible from a client computing platform associated with a remote user, a connection instruction to establish a secure channel between the client computing platform and the first remotely-accessible server-based SDE;
establishing the secure channel between the client computing platform through the public URL and the first remotely-accessible server-based SDE;
receiving, through a software application executing locally on the client computing platform, user input from the remote user, wherein the user input includes an instruction to execute one or more commands in the remotely-accessible server-based SDE; and
executing the one or more commands in the first container in accordance with the instruction such that execution of the one or more commands triggers updates across the plurality of hierarchical states including modifying the current state of the first container into a modified state, wherein the modified state corresponds to an update to a deployed software application, wherein the update to the deployed software application is immediately accessible within the first remotely-accessible server-based SDE to one or more different remote users through a resource.
14 . The method of claim 13 , wherein the container management software application is DOCKER™.
15 . The method of claim 13 , wherein the connection instruction is received through a Secure Shell (SSH) command.
16 . The method of claim 13 , wherein the software application executing locally on the client computing platform provides a command line interface to the remote user.
17 . The method of claim 13 , wherein at least some persistent data for the first remotely-accessible server-based SDE is stored on the server.
18 . The method of claim 13 , wherein the one or more commands include a particular command to preserve a particular current state of one or more of:
(i) a particular process running in the first remotely-accessible server-based SDE,
(ii) a particular container in the first set of the at least one set of containers, and/or
(i) a particular data set in the first remotely-accessible server-based SDE, into a preserved particular state, wherein the preserved particular state is stored in persistent data storage.
19 . The method of claim 18 , further comprising:
receiving a particular restore instruction from the remote user for creation and/or modification of a specific current state of the first set of the at least one set of containers, wherein the specific current state corresponds to the preserved particular state; and
executing the particular restore instruction such that the first set of the at least one set of containers has a state that corresponds to the preserved particular state.