Broadly speaking, if your Application is already containerized, and aligns well with the Twelve-Factor App model, you will likely find Deploy's features to be familiar and in-line with your expectations. However, the Deploy platform's architecture is opinionated and is not suitable for every type of application.
You do not need to host 100% of your infrastructure on Aptible Deploy to realize the benefits of the platform. If some of your applications are not compatible, Deploy can be used in conjunction with other SaaS services, or privately hosted services via Integrations.
Deploy only supports running Docker Containers. Most applications you have written yourself will be easy to containerize, if they are not already. However, software distributed by a 3rd party may be harder to meet this requirement. Some tell-tale signs an application won't be possible or easy to run on Deploy:
Aptible Deploy supports Docker images with operating systems based upon the Linux kernel, such as Debian, Ubuntu, CentOS, RedHat, Alpine, etc. Windows-based Docker images cannot be run on Deploy.
All services you host on Deploy must be explicitly exposed via Endpoints, which only support exposing TCP-based services. You will not be able to serve UDP services from Deploy. You may still connect to UDP services (such as DNS, SNMP, etc) from Applications hosted on Deploy.
With the notable exception of Database data, the filesystem for your Containers is ephemeral. This means that every time your containers are recycled, any data you stored on the filesystem will be gone.
As a result, you should make sure you never use the filesystem for data you need to retain long term. Instead, this data should be stored in a Database or in a third-party storage solution, such as AWS S3.
Applications that rely on persistent local storage, or a volume shared between multiple containers, will need to be re-architected.