Introduction
RAPD is an Application Delivery Platform (ADP) that supports the automatic deployment and maintenance of application systems through a declarative configuration model. During the deployment process, the infrastructure required by the application system is also prepared.
Since each application system has different levels of customization needs for maintenance, RAPD supports DevOps engineers in automating the deployment and maintenance of specific applications by programming the domain knowledge required for those applications. More importantly, RAPD assists development teams in establishing their own software architecture vocabulary to describe the components of the software. These descriptive vocabularies serve not only as communication tools but also fully define how components are deployed.
Features
- Portability (portable): Containerized application components can be deployed in a variety of cloud environments or locally.
- Scalability (scalable): Application workloads can automatically scale horizontally as needed.
- High Availability (available): In the event of an error, workloads can be restarted or transferred to different nodes to ensure service availability.
Benefits
- Developers can focus on the development of application software rather than the details of maintenance.
- Application configuration and infrastructure can be managed together, reducing the extra burden of switching tools.
- Applications can be smoothly transitioned between different environments, such as local and cloud.
Target Specific
The software development process can generally be divided into the following three stages:
- Build Stage: Developers write code to produce the products to be deployed, such as container images, executables, etc. This is usually achieved automatically using CI/CD tools, such as GitHub Actions, Jenkins.
- Ship Stage: Responsible for deploying applications, uploading files, or performing system settings to complete the configuration and resources needed for software execution.
- Run Stage: Provides the actual runtime environment for software components, ensuring software availability, automatic scaling, etc. For example, Cloud Run or Kubernetes clusters provide a container runtime environment.
RAPD adopts the Fire-and-forget principle and is only responsible for the “Ship” stage. After delivery, the target cluster is responsible for the runtime needs of the software. For instance, if the software requires monitoring, RAPD can automatically add the software service to the monitoring system during deployment, but the actual monitoring work is provided by that system.