{"id":2998,"date":"2025-12-08T14:12:15","date_gmt":"2025-12-08T14:12:15","guid":{"rendered":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/12\/08\/from-compose-to-kubernetes-to-cloud-designing-and-operating-infrastructure-with-kanvas\/"},"modified":"2025-12-08T14:12:15","modified_gmt":"2025-12-08T14:12:15","slug":"from-compose-to-kubernetes-to-cloud-designing-and-operating-infrastructure-with-kanvas","status":"publish","type":"post","link":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/12\/08\/from-compose-to-kubernetes-to-cloud-designing-and-operating-infrastructure-with-kanvas\/","title":{"rendered":"From Compose to Kubernetes to Cloud: Designing and Operating Infrastructure with Kanvas"},"content":{"rendered":"<p>Docker has long been the simplest way to run containers. Developers start with a <code>docker-compose.yml<\/code> file, run <code>docker compose up<\/code>, and get things running fast.<\/p>\n<p>As teams grow and workloads expand into Kubernetes and integrate into cloud services, simplicity fades. Kubernetes has become the operating system of the cloud, but your clusters rarely live in isolation. Real-world platforms are a complex intermixing of proprietary cloud services \u2013 AWS S3 buckets, Azure Virtual Machines, Google Cloud SQL databases \u2013 all running alongside your containerized workloads. You and your teams are working with clusters and clouds in a sea of YAML.<\/p>\n<p>Managing this hybrid sprawl often means context switching between Docker Desktop, the Kubernetes CLI, cloud provider consoles, and infrastructure as code. Simplicity fades as you juggle multiple distinct tools.<\/p>\n<p>Bringing clarity back from this chaos is the new <a href=\"https:\/\/hub.docker.com\/r\/layer5\/kanvas-docker-extension\" rel=\"nofollow noopener\" target=\"_blank\">Docker Kanvas Extension<\/a> from Layer5 \u2013 a visual, collaborative workspace built right into Docker Desktop that allows you to design, deploy, and operate not just Kubernetes resources, but your entire cloud infrastructure across AWS, GCP, and Azure.<\/p>\n<div class=\"wp-block-ponyo-image\">\n            <img data-opt-id=1806738116  fetchpriority=\"high\" decoding=\"async\" width=\"1999\" height=\"1377\" src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image6-1.png\" class=\"fade-in attachment-full size-full\" alt=\"image6 1\" title=\"- image6 1\" \/>\n    <\/div>\n<h2 class=\"wp-block-heading\">What Is Kanvas?<\/h2>\n<p><a href=\"https:\/\/kanvas.new\/\" rel=\"nofollow noopener\" target=\"_blank\">Kanvas<\/a> is a collaborative platform designed for engineers to visualize, manage, and design multi-cloud and Kubernetes-native infrastructure. Kanvas transforms the concept of <em>infrastructure as code<\/em> into <em>infrastructure as design<\/em>. This means your architecture diagram is no longer just documentation \u2013 it is the source of truth that drives your deployment. Built on top of <a href=\"https:\/\/meshery.io\/\" rel=\"nofollow noopener\" target=\"_blank\">Meshery<\/a> (one of the Cloud Native Computing Foundation\u2019s highest-velocity open source projects), Kanvas moves beyond simple Kubernetes manifests by using <a href=\"https:\/\/layer5.io\/blog\/meshery\/comparing-meshery-models-and-meshery-designs.html\" rel=\"nofollow noopener\" target=\"_blank\">Meshery Models<\/a> \u2013 definitions that describe the properties and behavior of specific cloud resources. This allows Kanvas to support a massive catalog of Infrastructure-as-a-Service (IaaS) components:\u00a0<\/p>\n<ul class=\"wp-block-list\">\n<li>AWS: Over 55+ services (e.g., EC2, Lambda, RDS, DynamoDB).<\/li>\n<li>Azure: Over 50+ components (e.g., Virtual Machines, Blob Storage, VNet).<\/li>\n<li>GCP: Over 60+ services (e.g., Compute Engine, BigQuery, Pub\/Sub).<\/li>\n<\/ul>\n<p>Kanvas bridges the gap between abstract architecture and concrete operations through two integrated modes: Designer and Operator.<\/p>\n<h3 class=\"wp-block-heading\"><strong>Designer Mode<\/strong> (declarative mode)<\/h3>\n<p>Designer mode serves as a \u201cblueprint studio\u201d for cloud architects and DevOps teams, emphasizing declarative modeling \u2013 describing what your infrastructure should look like rather than how to build it step-by-step \u2013 making it ideal for GitOps workflows and team-based planning.\u00a0<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Build and iterate collaboratively<\/strong>: Add annotations, <a href=\"https:\/\/docs.layer5.io\/videos\/getting-started\/comments\/design-reviews-full\/\" rel=\"nofollow noopener\" target=\"_blank\">comments for design reviews<\/a>, and connections between components to visualize data flows, architectures, and relationships.<\/li>\n<li><strong>Dry-run and validate deployments:<\/strong> Before touching production, simulate your deployments by performing a <a href=\"https:\/\/docs.layer5.io\/kanvas\/tasks\/designs\/dry-running-a-design\" rel=\"nofollow noopener\" target=\"_blank\">dry-run<\/a> to verify that your configuration is valid and that you have the necessary permissions.\u00a0<\/li>\n<li><strong>Import and export: <\/strong>Brownfield designs by connecting your existing clusters or importing Helm charts from your GitHub repositories.\u00a0<\/li>\n<li><strong>Reuse patterns, clone, and share<\/strong>: Pick from a <a href=\"https:\/\/cloud.layer5.io\/catalog\" rel=\"nofollow noopener\" target=\"_blank\">catalog<\/a> of reference architectures, sample configurations, and infrastructure templates, so you can start from proven blueprints rather than a blank design. Share designs just as you would a Google Doc. Clone designs just as you would a GitHub repo. Merge designs just as you would in a pull request.<\/li>\n<\/ul>\n<div class=\"wp-block-ponyo-image\">\n            <img data-opt-id=1913212242  fetchpriority=\"high\" decoding=\"async\" width=\"1999\" height=\"1236\" src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image11-1.png\" class=\"fade-in attachment-full size-full\" alt=\"image11 1\" title=\"- image11 1\" \/>\n    <\/div>\n<h3 class=\"wp-block-heading\">Operator Mode (imperative mode)<\/h3>\n<p>Kanvas Operator mode transforms static diagrams into live, managed infrastructure. When you switch to Operator mode, Kanvas stops being a configuration tool and becomes an active infrastructure console, using Kubernetes controllers (like AWS Controllers for Kubernetes (ACK) or Google Config Connector) to actively manage your designs.<\/p>\n<p>Operator mode allows you to:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Load testing and performance management: <\/strong>With Operator\u2019s built-in load generator, you can execute stress tests and characterize service behavior by analyzing latency and throughput against predefined performance profiles, establishing baselines to measure the impact of infrastructure configuration changes made in Designer mode.<\/li>\n<\/ul>\n<ul class=\"wp-block-list\">\n<li><strong>Multi-player, interactive terminal:<\/strong> Open a shell session with your containers and execute commands, stream and search container logs without leaving the visual topology. Streamline your troubleshooting by sharing your session with teammates. Stay in-context and avoid context-switching to external command-line tools like kubectl.<\/li>\n<li><strong>Integrated observability:<\/strong> Use the Prometheus integration to overlay key performance metrics (CPU usage, memory, request latency) and quickly find spot \u201chotspots\u201d in your architecture visually. Import your existing Grafana dashboards for deeper analysis.<\/li>\n<li><strong>Multi-cluster, multi-cloud operations:<\/strong> Connect multiple Kubernetes clusters (across different clouds or regions) and manage workloads that span across a GKE cluster and an EKS cluster in a single topology view.them all from a single Kanvas interface.<\/li>\n<\/ul>\n<div class=\"wp-block-ponyo-image\">\n            <img data-opt-id=895712922  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image4-1.png\"  decoding=\"async\" width=\"1999\" height=\"1377\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image4 1\" title=\"- image4 1\" \/>\n    <\/div>\n<p>While Kanvas Designer mode is about <em>intent<\/em> (what you want to build), Operator mode is about <em>reality<\/em> (what is actually running). Kanvas Designer mode and Operator mode are simply two, tightly integrated sides of the same coin.\u00a0<\/p>\n<p>With this understanding, let\u2019s see both modes in-action in Docker Desktop.<\/p>\n<h2 class=\"wp-block-heading\">Walk-Through: From Compose to Kubernetes in Minutes<\/h2>\n<p>With the Docker Kanvas extension (<a href=\"https:\/\/hub.docker.com\/r\/layer5\/kanvas-docker-extension\" rel=\"nofollow noopener\" target=\"_blank\">install from Docker Hub<\/a>), you can take any existing Docker Compose file and instantly see how it translates into Kubernetes, making it incredibly easy to understand, extend, and deploy your application at scale.<\/p>\n<p>The <a href=\"https:\/\/github.com\/dockersamples\/\" rel=\"nofollow noopener\" target=\"_blank\">Docker Samples repository<\/a> offers a plethora of samples. Let\u2019s use the <a href=\"https:\/\/github.com\/dockersamples\/spring-petclinic-docker\" rel=\"nofollow noopener\" target=\"_blank\">Spring-based PetClinic<\/a> example below.\u00a0<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\">\n# sample docker-compose.yml\n\nservices:\n  petclinic:\n    build:\n      context: .\n      dockerfile: Dockerfile.multi\n      target: development\n    ports:\n      - 8000:8000\n      - 8080:8080\n    environment:\n      - SERVER_PORT=8080\n      - MYSQL_URL=jdbc:mysql:\/\/mysqlserver\/petclinic\n    volumes:\n      - .\/:\/app\n    depends_on:\n      - mysqlserver\n    \n  mysqlserver:\n    image: mysql:8\n    ports:\n      - 3306:3306\n    environment:\n      - MYSQL_ROOT_PASSWORD=\n      - MYSQL_ALLOW_EMPTY_PASSWORD=true\n      - MYSQL_USER=petclinic\n      - MYSQL_PASSWORD=petclinic\n      - MYSQL_DATABASE=petclinic\n    volumes:\n      - mysql_data:\/var\/lib\/mysql\n      - mysql_config:\/etc\/mysql\/conf.d\nvolumes:\n  mysql_data:\n  mysql_config:\n\n<\/pre>\n<\/div>\n<div class=\"wp-block-ponyo-image\">\n            <img data-opt-id=1490429376  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image2-1.png\"  decoding=\"async\" width=\"1604\" height=\"1104\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image2 1\" title=\"- image2 1\" \/>\n    <\/div>\n\n<p>With your Docker Kanvas extension installed:<\/p>\n<ol class=\"wp-block-list\">\n<li><strong>Import sample app: <\/strong>Save the PetClinic <a href=\"https:\/\/raw.githubusercontent.com\/dockersamples\/spring-petclinic-docker\/refs\/heads\/main\/docker-compose.yml\" rel=\"nofollow noopener\" target=\"_blank\">docker-compose.yml<\/a> file to your computer, then click to import or drag and drop the file onto Kanvas.<\/li>\n<\/ol>\n<div class=\"wp-block-ponyo-image\">\n            <img data-opt-id=718449347  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image7-1.png\"  decoding=\"async\" width=\"1999\" height=\"1202\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image7 1\" title=\"- image7 1\" \/>\n    <\/div>\n\n<p>Kanvas renders an interactive topology of your stack showing services, dependencies (like MySQL), volumes, ports, and configurations, all mapped to their Kubernetes equivalents. Kanvas performs this rendering in phases, applying an increasing degree of scrutiny in the evaluation performed in each phase. Let\u2019s explore the specifics of this tiered evaluation process in a moment.<\/p>\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Enhance the PetClinic design<\/strong><\/li>\n<\/ol>\n<p>From here, you can enhance the generated design in a visual, no-YAML way:<\/p>\n<ul class=\"wp-block-list\">\n<li>Add a <em>LoadBalancer<\/em>, <em>Ingress<\/em>, or <em>ConfigMap<\/em><\/li>\n<li>Configure <em>Secrets<\/em> for your database URL or sensitive environment variables<\/li>\n<li>Modify service relationships or attach new components<\/li>\n<li>Add comments or any other annotations.<\/li>\n<\/ul>\n<p>Importantly, Kanvas <em>saves<\/em> your design as you make changes. This gives you production-ready deployment artifacts generated directly from your Compose file.<\/p>\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Deploy to a cluster<\/strong><\/li>\n<\/ol>\n<p>With one click, deploy the design to any cluster connected to Docker Desktop or any other remote cluster. Kanvas handles the translation and applies your configuration.<\/p>\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Switch modes and interact with your app<\/strong><\/li>\n<\/ol>\n<p>After deploying (or when managing an existing workload), switch to Operator mode to observe and manage your deployed design. You can:<\/p>\n<ul class=\"wp-block-list\">\n<li>Inspect <em>Deployments<\/em>, <em>Services<\/em>, <em>Pods<\/em>, and their relationships.<\/li>\n<li>\u00a0Open a terminal session with your containers for quick debugging.<\/li>\n<li>\u00a0Tail and search your container logs and monitor resource metrics.<\/li>\n<li>\u00a0Generate traffic and analyze the performance of your deployment under heavy load.<\/li>\n<li>Share your <a href=\"https:\/\/docs.layer5.io\/kanvas\/operator\/views\/\" rel=\"nofollow noopener\" target=\"_blank\">Operator View<\/a> with teammates for collaborative management.<\/li>\n<\/ul>\n<div class=\"wp-block-ponyo-image\">\n            <img data-opt-id=468470843  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image3-1.png\"  decoding=\"async\" width=\"1224\" height=\"739\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image3 1\" title=\"- image3 1\" \/>\n    <\/div>\n\n<p>Within minutes, a Compose-based project becomes a fully managed Kubernetes workload, all without leaving Docker Desktop. This seamless flow from a simple Compose file to a fully managed, operable workload highlights the ease by which infrastructure can be visually managed, leading us to consider the underlying principle of <em>Infrastructure as Design<\/em>.<\/p>\n<h2 class=\"wp-block-heading\">Infrastructure as Design<\/h2>\n<p>Infrastructure as design elevates the visual layout of your stack to be the primary driver of its configuration, where the act of adjusting the proximity and connectedness of components is one in the same as the process of configuring your infrastructure. In other words, the presence, absence, proximity, or connectedness of individual components (all of which affect how one component relates to another) respectively augments the underlying configuration of each. Kanvas is highly intelligent in this way, understanding at a very granular level of detail how each individual component relates to all other components and will augment the configuration of those components accordingly.<\/p>\n<p>Understand that the process by which Kanvas renders the topology of your stack\u2019s architecture in phases. The initial rendering involves a lightweight analysis of each component, establishing a baseline for the contents of your new design. A subsequent phase of rendering applies a higher level of sophistication in its analysis as Kanvas introspect the configuration of each of your stack\u2019s components, their interdependencies, and proactively evaluates the manner in which each component relates to one another. Kanvas will add, remove, and update the configuration of your components as a result of this relationship evaluation.<\/p>\n<div class=\"wp-block-ponyo-image\">\n            <img data-opt-id=1633907934  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image1-1.png\"  decoding=\"async\" width=\"1894\" height=\"772\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image1 1\" title=\"- image1 1\" \/>\n    <\/div>\n\n<p>This process of <a href=\"https:\/\/docs.layer5.io\/kanvas\/concepts\/relationships\/\" rel=\"nofollow noopener\" target=\"_blank\">relationship evaluation<\/a> is ongoing. Every time you make a change to your design, Kanvas re-evaluates each component configuration.<\/p>\n<p>To offer an example, if you were to bring a Kubernetes Deployment in the same vicinity of the Kubernetes Namespace you will find that one magnetizes to the next and that your Deployment is visually placed inside of the Namespace, and at the same time, that Deployment\u2019s configuration is mutated to include its new Namespace designation. Kanvas proactively <em>evaluates<\/em> and <em>mutates<\/em> the configuration of the infrastructure resources in your design as you make changes.<\/p>\n<p>This ability for Kanvas to intelligently interpret and adapt to changes in your design\u2014automatically managing configuration and relationships\u2014is the key to achieving <em>infrastructure as design<\/em>. This power comes from a sophisticated system that gives Kanvas a level of intelligence, but with the reliability of a policy-driven engine.<\/p>\n<h2 class=\"wp-block-heading\">AI-like Intelligence, Anchored by Deterministic Truth<\/h2>\n<p>In an era where generative AI dramatically accelerates infrastructure design, the risk of \u201challucinations\u201d\u2014plausible but functionally invalid configurations\u2014remains a critical bottleneck. Kanvas solves this by pairing the generative power of AI with a rigid, deterministic policy engine.<\/p>\n<div class=\"wp-block-ponyo-image\">\n            <img data-opt-id=1708811925  data-opt-src=\"https:\/\/www.docker.com\/app\/uploads\/2025\/12\/image8-1.png\"  decoding=\"async\" width=\"1999\" height=\"1282\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"fade-in attachment-full size-full\" alt=\"image8 1\" title=\"- image8 1\" \/>\n    <\/div>\n<p>This engine acts as an architectural guardrail, offering you precise control over the degree to which AI is involved in assessing configuration correctness. It transforms designs from simple visual diagrams into validated, deployable blueprints.<\/p>\n<p>While AI models function probabilistically, Kanvas\u2019s policy engine functions deterministically, automatically analyzing designs to identify, validate, and enforce connections between components based on ground-truth rules. Each of these rules are statically defined and versioned in their respective Kanvas models.<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Deep Contextualization:<\/strong> The evaluation goes beyond simple visualization. It treats relationships as context-aware and declarative, interpreting how components interact (e.g., data flows, dependencies, or resource sharing) to ensure designs are not just imaginative, but deployable and compliant.<\/li>\n<li><strong>Semantic Rigor:<\/strong> The engine distinguishes between <a href=\"https:\/\/docs.meshery.io\/concepts\/logical\/relationships#semantic-relationships\" rel=\"nofollow noopener\" target=\"_blank\"><em>semantic relationships<\/em><\/a> (infrastructure-meaningful, such as a TCP connection that auto-configures ports) and <a href=\"https:\/\/docs.meshery.io\/concepts\/logical\/relationships#non-semantic-relationships\" rel=\"nofollow noopener\" target=\"_blank\"><em>non-semantic relationships<\/em><\/a> (user-defined visuals, like annotations). This ensures that aesthetic choices never compromise infrastructure integrity.<\/li>\n<\/ul>\n<p>Kanvas acknowledges that trust is not binary. You maintain sovereignty over your designs through granular controls that dictate how the engine interacts with AI-generated suggestions:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>\u201cHuman-in-the-Loop\u201d Slider:<\/strong> You can modulate the strictness of the policy evaluation. You might allow the AI to suggest high-level architecture while enforcing strict policies on security configurations (e.g., port exposure or IAM roles).<\/li>\n<li><strong>Selective Evaluation:<\/strong> You can disable evaluations via preferences for specific categories. For example, you may trust the AI to generate a valid Kubernetes Service definition, but rely entirely on the policy engine to validate the Ingress controller linking to it.<\/li>\n<\/ul>\n<p>Kanvas does not just flag errors; it actively works to resolve them using sophisticated detection and correction strategies.<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Intelligent Scanning:<\/strong> The engine scans for potential relationships based on component types, kinds, and subtypes (e.g., a <code>Deployment<\/code> linking to a <code>Service<\/code> via port exposure), catching logical gaps an AI might miss.<\/li>\n<li><strong>Patches and Resolvers:<\/strong> When a partial or a hallucinated configuration is detected, Kanvas applies patches to either propagate missing configuration or dynamically adjusts configurations to resolve conflicts, ensuring the final infrastructure-as-code export (e.g., Kubernetes manifests, Helm chart) is clean, versionable, and secure.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\">Turn Complexity into Clarity<\/h2>\n<p>Kanvas takes the guesswork out of managing modern infrastructure. For developers used to Docker Compose, it offers a natural bridge to Kubernetes and cloud services \u2014 with visibility and collaboration built in.<\/p>\n\n<div class=\"wp-block-ponyo-table style__default\">\n<table class=\"responsive-table\">\n<tbody class=\"wp-block-ponyo-table-body\">\n<tr class=\"wp-block-ponyo-table-header\">\n<th class=\"wp-block-ponyo-cell\" data-responsive-table-heading=\"Capability\">\n<p>Capability<\/p>\n<\/th>\n<th class=\"wp-block-ponyo-cell\" data-responsive-table-heading=\"How It Helps You\">\n<p>How It Helps You<\/p>\n<\/th>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Import and Deploy Compose Apps<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>Move from Compose, Helm, or Kustomize to Kubernetes in minutes.<\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Visual Designer<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>Understand your architecture through connected, interactive diagrams.<\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Design Catalog<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>Use ready-made templates and proven infrastructure patterns.<\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Terminal Integration<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>Debug directly from the Kanvas UI, without switching tools.<\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Sharable Views<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>Collaborate on live infrastructure with your team.<\/p>\n<\/td>\n<\/tr>\n<tr class=\"wp-block-ponyo-table-row\">\n<td class=\"wp-block-ponyo-cell\">\n<p>Multi-Environment Management<\/p>\n<\/td>\n<td class=\"wp-block-ponyo-cell\">\n<p>Operate across local, staging, and cloud clusters from one dashboard.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Kanvas brings visual design and real-time operations directly into Docker Desktop. Import your Compose files, Kubernetes Manifests, Helm Charts, and Kustomize files to explore the catalog of ready-to-use architectures, and deploy to Kubernetes in minutes \u2014 no YAML wrangling required.<\/p>\n<p>Designs can also be <a href=\"https:\/\/docs.layer5.io\/kanvas\/designer\/export-designs\/\" rel=\"nofollow noopener\" target=\"_blank\">exported in a variety of formats<\/a>, including as OCI-compliant images and shared through registries like Docker Hub, GitHub Container Registry, or AWS ECR \u2014 keeping your infrastructure as design versioned and portable.<\/p>\n<p><strong>Install the Kanvas Extension from <\/strong><a href=\"https:\/\/hub.docker.com\/extensions\/layer5\/kanvas-docker-extension\" rel=\"nofollow noopener\" target=\"_blank\"><strong>Docker Hub<\/strong><\/a><strong> and start designing your infrastructure today.<\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>Docker has long been the simplest way to run containers. Developers start with a docker-compose.yml file, run docker compose up, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2999,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[4],"tags":[],"class_list":["post-2998","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/2998","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/comments?post=2998"}],"version-history":[{"count":0,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/2998\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media\/2999"}],"wp:attachment":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media?parent=2998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/categories?post=2998"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/tags?post=2998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}