Is my application a good fit for Aptible?

Broadly speaking, if your Application is already containerized, and aligns well with the Twelve-Factor App model, you will likely find Aptible’s features to be familiar and in-line with your expectations. However, the Aptible platform’s architecture is opinionated and is not suitable for every type of application.

:blue_book:

Tip

You do not need to host 100% of your infrastructure on Aptible to realize the benefits of the platform. If some of your applications are not compatible, Aptible can be used in conjunction with other SaaS services, or privately hosted services via Integrations.

Containerization

Aptible 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 Aptible:

  • VMDK, VDI, or VDH files - Aptible does not support running software in virtual machines.
  • Amazon Machine Images (AMIs) - Aptible does not support running software directly on EC2 instances.
  • EXE or MSI files - Aptible does not support Microsoft Windows software.

Operating System

Aptible 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 Aptible.

Transport Protocol

All services you host on Aptible must be explicitly exposed via Endpoints, which only support exposing TCP-based services. You will not be able to serve UDP services from Aptible. You may still connect to UDP services (such as DNS, SNMP, etc) from Applications hosted on Aptible.

Data Persistence

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.