An application in Magalix is analogous to real applications. It is a logical grouping of specialized microservices. There is no restriction on the number of applications you can create under your Magalix account as long as you have enough quota to run these applications. An application can have any number of external or internal endpoints depending on the services you run inside it. The following are key features of an application deployed on Magalix, where you can:
- Run as many services as you want within the application
- Have one or more endpoints exposed to the Internet
- Keep your application completely protected behind your VPC
- Define one or more volumes per application, or shared between applications, of size up to 16 Exabytes
- Control volume access and their recycling policies when the application gets deleted or removed
- Define secretes and control which service or container can access them
- Load balance services. Once you define more than 1 replica for a service, we create a load balancer for it.
- Name, Specifies which is a friendly identifier of your application. It has to be unique with no special characters or spaces.
- Description, which is limited to 1024 characters
- Target Cloud, which tells where an application will be deployed. Magalix has a fleet of clusters distributed over provider all supported regions. To learn more about supported regions and providers, read the Supported Cloud Providers documentation. You typically decide on the cloud provider to keep your application close to your customers, data or other services that your application depend on and provided by that provider. For example, if you use AWS DynamoDB at a specific AWS region, you can select to deploy your application close to it to get best possible performance. If you decide not to select a provider or a region, we will deploy it to our default provider and region. Target cloud has the following properties that you need to specify when you create an application:
Provider: Specifies the Cloud provider e.g. AWS, Google Cloud Engine, or Microsoft Azure Region Specifies the data center e.g. blah
Zone Specifies, blah whenever applicable you can select which zone Labels You can specify as many labels as you need. Labels are a way to organize your applications but do not affect the logical scope or execution context of your application. See Labels documentation for more details.
Read our getting started guide to learn how to create a new application using either our web console or the CLI. To create an application using the CLI, you will need to author application’s manifest file.
An application consists of one or more services (aka microservices). Each service by itself is a boundary for containers that control resources allocation (vCPU, memory, and I/O), access to these containers, and their proximity. There is no restriction on the number of services that you can run within your application. For best AI results and best possible automation, you should include services under one application if they all contribute to the application’s overall goals – read how Magalix AI works for more details.
Each application is isolated with its own layer3 network topology. Any of the underlying services can communicate with each other. However, they cannot access any other services outside the boundaries of the application.
Magalix guarantees the placement of the application within the selected region or even the same cluster. However, our scheduling algorithms are designed to make sure that services are not colocated on the same underlying virtual machine to guarantee better fault tolerance against single VM failure.
Magalix AI optimizes the scalability of your application’s services and containers based on the application’s KPIs (Key Performance Indicators). Setting application’s target SLA on the selected KPI is the key and the starting point for Magalix AI to understand and generate the right scalability decisions. For more details, read how Magalix AI powers application scalability.
An application in pending state is most likely unusable yet. An application in pending state under the following conditions:
The Application is still being provisioned, i.e. some containers did not report yet in running state.
Some containers are being upgraded, i.e. a new image is pushed and Magalix is reloading it.
An application in running state is a healthy application from Magalix’s point of view, i.e. containers are provisioned and reported running by Docker engine.
An application is in error state if one or more of its containers are in error state. Below are major reasons for having an application in error state.
- Failed to retrieve a container due to invalid credentials to access its private registry.
- Provided image or label does not exist anymore.
- Container keeps rebooting and crashing for too many times.
- The container cannot get enough resources.
- Application’s private network cannot include another application. If you would like to have all your services to see and discover each other, you will need to place them under the same application.