Orchestration across multiple Cloud providers
DuploCloud abstracts the complexity of container orchestration technologies, allowing you to focus on the deployment, updating, and debugging of your containerized application.
Among the technologies supported are:
Google Kubernetes Engine (GKE Autopilot): DuploCloud platform uses GKE Autopilot, providing you with a user-friendly interface that conceals the complexities of Kubernetes serverless workloads. Using the UI you can add K8S configurations around Pods, Containers, Secrets, and so on. See here on how to setup a Auto-Pilot cluster.
Google Kubernetes Engine (GKE Standard): DuploCloud platform uses GKE Standard, providing the same user-friendly interface to manage underlying Kubernetes Cluster and Node Pools. See here on how to setup a standard cluster.
Built-in (Docker Native): DuploCloud platform's built-in container management has the same interface as the docker run
command, except that it can be scaled to hundreds of containers across many hosts, providing capabilities such as associated load balancers, DNS, and more.
If you need other services, please get in touch with your DuploCloud support team. The typical turnaround time for creating a custom service is a business week.
Multiple container orchestration technologies for ease of consumption
DuploCloud abstracts the complexity of container orchestration technologies, allowing you to focus on the deployment, updating, and debugging of your containerized application.
Among the technologies supported are:
Google Kubernetes Engine (GKE Autopilot): DuploCloud platform uses GKE Autopilot, providing you with a user-friendly interface that conceals the complexities of Kubernetes serverless workloads. Using the UI you can add K8S configurations around Pods, Containers, Secrets, and so on.
Google Kubernetes Engine (GKE Standard): DuploCloud platform uses GKE Standard, providing the same user-friendly interface to manage underlying Kubernetes Cluster and Node Pools.
Built-in (DuploCloud): DuploCloud platform's built-in container management has the same interface as the docker run
command, except that it can be scaled to hundreds of containers across many hosts, providing capabilities such as associated load balancers, DNS, and more.
Use the feature matrix below to compare the features of the orchestration technologies that DuploCloud supports. DuploCloud helps you implement any option you choose through the Portal or the Terraform API.
One dot indicates a low rating, two dots indicate a medium rating, and three dots indicate a high rating. For example, Kubernetes has a low ease-of-use rating, but a high rating for stateful application support.
Use the definitions below to understand how each feature in the matrix above is rated in relation to each of the three listed technologies (Kubernetes, Built-In).
Ease of Use:
Kubernetes is extensible and customizable, but not without a cost in ease of use. The DuploCloud platform reduces the complexities of Kubernetes, making it comparable with other container orchestration technologies in ease of adoption.
DuploCloud's Built-in orchestration mirrors docker run
. You can SSH into a virtual machine (VM) and run docker
commands to debug and diagnose. If you have an application with a few stateless microservices; or configurations that use environment variables or Google Cloud Extensions, Google Cloud Storage, or GCP Secret Manager, consider using DuploCloud's Built-in container orchestration.
Features and Ecosystem Tools: Kubernetes is rich in many additional built-in features and ecosystem tools, most notably Secrets Management and ConfigMaps. While Kubernetes features have an equivalent in GCP, third parties tend to publish their software as Kubernetes packages (Helm Charts). Some examples are Influx DB, Time Series DB, Prefect, etc.
Suitability for Stateful apps: Stateful applications should be avoided in GCP. Instead, cloud-managed storage solutions should be leveraged for the best availability and SLA compliance. In scenarios where this is undesirable due to cost, Kubernetes offers the best solution. Kubernetes uses StatefulSets and Volumes to implicitly manage Google Cloud Storage volumes.
Stability and Maintenance: Although Kubernetes is highly stable, it is an open-source product. The native customizability and extensibility of Kubernetes can lead to points of failure when a mandatory cluster upgrade is needed, for example. This complexity often leads to support costs from third-party vendors. Maintenance can be costly with GKE, as versions are deprecated frequently and you are required to upgrade the control plane and data nodes. While DuploCloud automates this upgrade process, it still requires careful planning and execution.
GCP Cost: While the GCP control plane cost is relatively low, it is not recommended to operate a GKE environment without business support at an additional premium. If you are a small business, you may be able to add the support tier when you need it and then turn it off to reduce costs.
Multi-Cloud: For many enterprises and independent software vendors this is a requirement, either immediately or in the future. While Kubernetes provides this benefit, DuploCloud's implementation is much easier to maintain and easier to implement.
Feature | Kubernetes | Built-In |
---|---|---|
Ease of use
Features and ecosystem Tools
Suitability for stateful apps
Stability and maintenance
GCP cost
Multi-cloud (w/o DuploCloud)
Key concepts for using DuploCloud with Docker and GCP
While deploying Dockerized applications, familiarize yourself with some key concepts and terminologies.
These are virtual machines. In GCP deployments, they are also called Worker nodes. By default, apps within a Tenant are pinned to VMs in the same Tenant. DuploCloud has the ability to deploy Hosts in a separate Tenant and apps in other Tenants that leverage these Hosts. This is called Shared Host Model and is not applicable to GCP.
Service is a DuploCloud term. DuploCloud Services are not Kubernetes Services. Services are microservices that are defined by a Name, DockerImage, and a number of replicas in addition to many other optional parameters. Behind the scenes, a DuploCloud Service maps 1:1 either to a Kubernetes deployment set or to a StatefulSet depending on whether the microservice has stateful volumes or not. There are many optional configurations associated with a DuploCloud Service that represent various ways Docker containers can be run. A few of these are:
Environment variables
Host Network Mode
Volume mounts
Entrypoint or command overrides
Resource caps
Health Checks
If a service needs to be pinned to run only a specific set of hosts, set an Allocation Tag on the Hosts as well as on the Service. The Allocation Tag is a case-insensitive substring match. For example, an Allocation Tag specified on a service is usually a substring of the tag specified on the host. A Host may be tagged as HighCpu;HighMem and the Service (if tagged highcpu) can be allocated on the Host. However, if the service is tagged highcpu;gpu then it won't be allocated and needs a host that has been tagged highcpu;gpu. If a Service does not have any tag set, it can be placed on any host.
If the Host is tagged with a specific value and you have Services with the same tag, the host is available for any Service which has no tags. If you want the exclusive assignment of a Host to a set of Services, ensure that every Service in the Tenant is tagged with some value.
In the case of Kubernetes deployments, the concept of Allocation Tags maps to labels on nodes, and on node selectors on the deployment set or StatefulSet.
Host Networking: By default, Docker containers have their own network addresses. you may want these containers to use the same network interface as the VM. This is called Host Network Mode.
Load Balancer: If a service must be accessed by other services, it needs to be exposed using internal and external load balancers.