All pages
Powered by GitBook
1 of 3

Loading...

Loading...

Loading...

Container deployments

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.

Key DuploCloud concepts

Key concepts for using DuploCloud with Docker and GCP

While deploying Dockerized applications, familiarize yourself with some key concepts and terminologies.

Hosts

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.

Services

Service is a DuploCloud term. DuploCloud Services are not Kubernetes Services. Services are microservices that are defined by a Name, Docker Image, 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.

When deploying services, especially in a staging environment, it's crucial to ensure that containers have the necessary permissions for read/write operations. This may involve configuring a security context within the service's configuration to address local write failures, a common issue when containers are restricted compared to their local development environment. This adjustment ensures that the container can write to temporary file directories on the server, facilitating smooth deployment and operation.

Services have many optional configurations representing various ways Docker containers can be run, including:

  • Environment variables

  • Host Network Mode

  • Volume mounts

  • Entrypoint or command overrides

Allocation Tags

Allocation tags allow you to control which Hosts a Service can run on by specifying tags on both the Host and the Service. Services without allocation tags can be scheduled on any Host.

  • Docker Services use case-insensitive, substring-based matching. For example, if a Host has the tag HighCpu;HighMem, a Service tagged highcpu or cpu would match and be eligible to run on that Host.

  • Kubernetes Deployments use exact, case-sensitive matching based on Kubernetes node labels and node selectors. For example, a Host tagged frontend-prod will only match a Service with the exact same tag: Frontend-Prod or frontend-prod-1 will not match. Kubernetes allocation tags must start and end with an alphanumeric character and may only contain letters, numbers, hyphens (

If a Host is tagged and a matching Service exists, the Host may still be used by untagged Services unless all Services in the tenant are tagged. To fully isolate Hosts for a specific purpose, ensure all Services use allocation tags.

Host Networking

By default, Docker containers have their own network addresses. If you want these containers to use the same network interface as the underlying VM, you must use Host Network Mode.

Load Balancers

If a Service must be accessed by other Services, it needs to be exposed using internal and external Load Balancers.

This comprehensive approach ensures that services are deployed efficiently and securely, with appropriate configurations for networking, permissions, and resource allocation, facilitating a smooth operation across different environments.

Resource caps
  • Health Checks

  • -
    ), or periods (
    .
    )

    Container orchestration features

    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.

    Container orchestration feature matrix

    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.

    Feature
    Kubernetes
    Built-In

    Feature definitions

    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.

    GCP cost

    Multi-cloud (w/o DuploCloud)

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

  • Ease of use

    Features and ecosystem Tools

    Suitability for stateful apps

    Stability and maintenance