Adaptive Apps: Multi-Cluster K8S Workload Migration and Failover Resiliency - Solution Demo
Introduction
Adaptive applications utilize an architectural approach that facilitates rapid and often fully-automated responses to changing conditions—for example, new cyberattacks, updates to security posture, application performance degradations, or conditions across one or more infrastructure environments.
And unlike the current state of many apps today that are labor-intensive to secure, deploy, and manage, adaptive apps are enabled by the collection and analysis of live application and security telemetry, service management policies, advanced analytic techniques such as machine learning, and automation toolchains.
As our customers’ successful business outcomes more and more rely on successful application deployments, the ability to reduce time-to-market while increasing application resilience and availability has become paramount. Kubernetes usage has become mainstream, along with adoption of automation-enabling APIs.
Customers require the ability to deploy on-prem workloads with F5 application services, with an automated way to migrate these to private / public cloud and/or F5 Distributed Cloud (F5 XC) in order to provide a seamless end-user failover experience in case of system unavailability. End users should not be aware nor impacted by any level of application outage. Correspondingly, the business should not be impacted by such outages either in terms of revenue generation, customer-facing services and support, etc.
This solution demonstrates the ability to deploy a workload and F5 app services on-premises using K8S and migrate these to cloud-enabled K8S environments, both within public cloud and F5 Distributed Cloud, to enable failover transparency.
In this solution example, we show how our customers can:
-
Automate provisioning of on-prem, public cloud, and F5 XC cloud infrastructure via Terraform and Ansible
- Deploy and replicate example workloads/apps and application services to each environment
- Leverage DNS to provide a seamless end-user failover experience in case of system unavailability
-
Ensure that end users won’t be impacted in case of a system or application unavailability event by automatically being directed to the best available resource
Use Case
Multi-Cluster Kubernetes (K8S) Workload Migration and Failover Resiliency
Problem Statement & Customer Outcome
Customers require the ability to deploy distributed workloads with F5 application services, with an automated way to migrate these to the public cloud and/or F5 XC to provide a seamless end-user failover experience in case of system unavailability
Value Proposition
This solution seeks to optimize business / application Service Level Agreement / Objective (SLA / SLO) and business continuity for our customers via resilient / redundant application deployment architecture
The Guide
Please refer to https://github.com/f5devcentral/adaptiveapps for detailed instructions and artifacts for deploying this demo including the following:
- Packer tooling
- Terraform code for provisioning cloud infrastructure on-premises, in AWS, and in F5 XC
- Instructions for deploying components for example workloads and application services
- Instructions for configuring DNS to enable K8S workload failover transparency
Solution Architecture
Demo Video
Be sure to watch the demo video below which demonstrates the following:
- Deploying (Terraform) VMware EKS-Anywhere from deployment pipeline (vmware GitLab)
- Deploying (Terraform) AWS environment on BIG-IP Container Ingress Services (CIS), ECS & EKS with example airline app from vmware gitlab (bursting and overflow apps)
- Deploying (Terraform) AWS vK8S site for F5 XC with application
- Connection of namespaces across MCN (on-premises, AWS, F5 XC)
- Workload observability for visualization of DNS / namespaces (HTTP synthetic monitors)
- F5 XC DNS ClickOps resiliency validation
Watch the demo video: