{"id":76866,"date":"2019-05-06T08:18:56","date_gmt":"2019-05-06T15:18:56","guid":{"rendered":"https:\/\/cloudblogs.microsoft.com\/opensource\/?p=76866"},"modified":"2025-06-27T08:10:03","modified_gmt":"2025-06-27T15:10:03","slug":"announcing-keda-kubernetes-event-driven-autoscaling-containers","status":"publish","type":"post","link":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/","title":{"rendered":"Announcing KEDA: bringing event-driven containers and functions to Kubernetes"},"content":{"rendered":"\n<p><span data-contrast=\"auto\">Event-driven architectures are&nbsp;<\/span><span data-contrast=\"auto\">a<\/span><span data-contrast=\"auto\">&nbsp;natural evolution of microservices, enabling a flexible and decoupled&nbsp;<\/span><span data-contrast=\"auto\">design<\/span><span data-contrast=\"auto\">, and<\/span><span data-contrast=\"auto\">&nbsp;are increasingly being adopted by<\/span><span data-contrast=\"auto\">&nbsp;enterprise customers. Fully managed serverless offerings like Azure Functions are event<\/span><span data-contrast=\"auto\">&#8211;<\/span><span data-contrast=\"auto\">driven by&nbsp;<\/span><span data-contrast=\"auto\">design<\/span><span data-contrast=\"auto\">, but&nbsp;<\/span><span data-contrast=\"auto\">we have been hearing from customers about gaps<\/span><span data-contrast=\"auto\">&nbsp;in&nbsp;<\/span><span data-contrast=\"auto\">these&nbsp;<\/span><span data-contrast=\"auto\">capabilities&nbsp;<\/span><span data-contrast=\"auto\">for<\/span><span data-contrast=\"auto\">&nbsp;solutions&nbsp;<\/span><span data-contrast=\"auto\">based on&nbsp;<\/span><span data-contrast=\"auto\"><a href=\"https:\/\/kubernetes.io\/\">Kubernetes<\/a>.&nbsp;<\/span><span data-contrast=\"auto\">S<\/span><span data-contrast=\"auto\">caling<\/span><span data-contrast=\"auto\">&nbsp;in Kubernetes<\/span><span data-contrast=\"auto\">&nbsp;is reactive<\/span><span data-contrast=\"auto\">,<\/span><span data-contrast=\"auto\">&nbsp;based on the CPU and memory consumption of a container<\/span><span data-contrast=\"auto\">.<\/span><\/p>\n\n\n\n<p><span data-contrast=\"auto\">I<\/span><span data-contrast=\"auto\">n contrast, services like <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/functions\/\">Azure Functions<\/a> are acutely aware of event sources and therefore able to scale based on signals coming directly from the event source<\/span><span data-contrast=\"auto\">,<\/span><span data-contrast=\"auto\">&nbsp;even before the CPU or memory&nbsp;<\/span><span data-contrast=\"auto\">are<\/span><span data-contrast=\"auto\">&nbsp;impacted.&nbsp;<\/span><span data-contrast=\"auto\">We set out<\/span><span data-contrast=\"auto\">&nbsp;to&nbsp;<\/span><span data-contrast=\"auto\">bring the benefits of event-driven architectures and&nbsp;<\/span><span data-contrast=\"auto\">the productivity of functions to Kubernetes<\/span><span data-contrast=\"auto\">. The result is <\/span><a href=\"https:\/\/aka.ms\/keda\"><strong>KEDA \u2013 Kubernetes-based event-driven autoscaling<\/strong><\/a>.<\/p>\n\n\n\n<p><span data-contrast=\"auto\">Microsoft and <a href=\"https:\/\/www.redhat.com\/\">Red Hat<\/a> partnered to build<\/span><span data-contrast=\"auto\">&nbsp;this<\/span><span data-contrast=\"auto\">&nbsp;open source component&nbsp;<\/span><span data-contrast=\"auto\">to<\/span><span data-contrast=\"auto\">&nbsp;provide event-driven capabilities for any&nbsp;<\/span><span data-contrast=\"auto\">Kubernetes<\/span><span data-contrast=\"auto\">&nbsp;workload.\u202fKEDA enables any container to scale from zero to potentially thousands of instances based on event metrics like the length of a Kafka stream or an Azure Queue.\u202fIt also\u202fenables&nbsp;<\/span><span data-contrast=\"auto\">containers<\/span><span data-contrast=\"auto\">&nbsp;to consume events directly from the<\/span><span data-contrast=\"auto\">&nbsp;event<\/span><span data-contrast=\"auto\">&nbsp;source instead of&nbsp;<\/span><span data-contrast=\"auto\">decoupling with<\/span><span data-contrast=\"auto\">&nbsp;HTTP<\/span><span data-contrast=\"auto\">. KEDA <\/span><span data-contrast=\"auto\">c<\/span><span data-contrast=\"auto\">an drive the scale of any container and is extensible to add new event sources.&nbsp;&nbsp;<\/span><span data-ccp-props=\"{}\">&nbsp;<\/span><\/p>\n\n\n\n<p><span data-contrast=\"auto\">Because Azure Functions can be containerized, you can now deploy function<\/span><span data-contrast=\"auto\">s&nbsp;<\/span><span data-contrast=\"auto\">to any Kubernetes cluster while maintaining the same scaling behavior you would have in the Azure Functions service.<\/span> <span data-contrast=\"auto\">For workloads that may span the cloud and on-premises, you can now easily choose to publish across the Azure Functions service, in a cloud-hosted Kubernetes environment, or on-premises. Our partnership with Red Hat enables Azure Functions to run integrated within <a href=\"https:\/\/www.redhat.com\/en\/technologies\/cloud-computing\/openshift\">OpenShift<\/a>, providing the productivity and power of serverless functions with the flexibility and control to choose where and how to host it. The same application can move seamlessly between environments without any changes to development, code<\/span><span data-contrast=\"auto\">,<\/span><span data-contrast=\"auto\">&nbsp;or scaling.<\/span><span data-ccp-props=\"{}\">&nbsp;<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"bringing-rich-events-into-kubernetes-workloads\"><span data-contrast=\"none\">Bringing rich events into Kubernetes workloads<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240}\">&nbsp;<\/span><\/h2>\n\n\n\n<p><span data-contrast=\"auto\">KEDA provides a&nbsp;<\/span><span data-contrast=\"auto\">FaaS<\/span><span data-contrast=\"auto\">-like model of event-aware scaling<\/span><span data-contrast=\"auto\">,<\/span><span data-contrast=\"auto\">&nbsp;where deployments can&nbsp;<\/span><span data-contrast=\"auto\">dynamically&nbsp;<\/span><span data-contrast=\"auto\">scale to and from zero based on&nbsp;<\/span><span data-contrast=\"auto\">demand. KEDA also brings more event sources to Kubernetes. W<\/span><span data-contrast=\"auto\">hen we think about event<\/span><span data-contrast=\"auto\">&#8211;<\/span><span data-contrast=\"auto\">driven<\/span><span data-contrast=\"auto\">&nbsp;scenarios,<\/span><span data-contrast=\"auto\">&nbsp;the first event source we<\/span><span data-contrast=\"auto\">&nbsp;often<\/span><span data-contrast=\"auto\">&nbsp;<\/span><span data-contrast=\"auto\">consider<\/span><span data-contrast=\"auto\">&nbsp;<\/span><span data-contrast=\"auto\">is an HTTP event<\/span><span data-contrast=\"auto\">. However, we&#8217;ve learned from running Azure Functions that only 30% of our executions are coming from HTTP<\/span><span data-contrast=\"auto\">&nbsp;events<\/span><span data-contrast=\"auto\">, while the majority come from other event sources. We wanted to make sure that those other 70% of event <\/span><span data-contrast=\"auto\">executions&nbsp;<\/span><span data-contrast=\"auto\">were handled in a&nbsp;<\/span><span data-contrast=\"auto\">natural<\/span><span data-contrast=\"auto\">&nbsp;way in Kubernetes with KEDA<\/span><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{}\">&nbsp;<\/span><\/p>\n\n\n\n<p><span data-contrast=\"auto\">While other Kubernetes offerings have attempted to bring events from other sources, they usually involve converting the event to an HTTP request, which means data and context is lost in the process and direct communication with the event source is limited. KEDA unlocks rich connectivity directly to the event sources, enabling rapid and proactive scaling while preserving direct interaction with the event. KEDA provides a key component for event-driven and cloud native apps, and it also works seamlessly alongside <a href=\"https:\/\/virtual-kubelet.io\/\">Virtual Kubelet<\/a><\/span><span data-contrast=\"auto\">&nbsp;and <a href=\"https:\/\/aka.ms\/aksbook\/virtualnode\">AKS Virtual Nodes<\/a>, letting you to run your event-driven apps on serverless containers.&nbsp;<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/05\/Build-KEDA-1-1024x879.png\" alt=\"KEDA technical diagram\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"running-azure-functions-in-any-environment\">Running Azure Functions in any environment<\/h2>\n\n\n\n<p>Thousands of customers have already been using Azure Functions as the serverless compute service to process billions of events every day. Azure Functions provides an unmatched development experience, allowing you to develop and debug functions locally on any platform using editors like Visual Studio, <a href=\"https:\/\/code.visualstudio.com\/\">Visual Studio Code<\/a>, and more. While Azure Functions provides a fully managed serverless service, many customers want the freedom to run serverless in an open environment they can manage.<\/p>\n\n\n\n<p>With the release of KEDA, any team can now deploy function apps created using those same tools directly to Kubernetes. This allows you to run Azure Functions on-premises or alongside your other Kubernetes investments without compromising on the productive serverless development experience. The open source Azure Functions runtime is available to every team and organization, and brings a world-class developer experience and programming model to Kubernetes.<\/p>\n\n\n\n<p>The combination of flexible hosting options and an open source toolset gives teams more freedom and choice. If you choose to take advantage of the full benefits of a managed serverless service, you can shift responsibility and publish your apps to Azure Functions. If it makes sense for your organization or scenario, you can choose to run those same apps in Kubernetes with KEDA. While the hosting may vary, the developer experience and scaling remains constant.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/05\/20190506-Build-KEDA-gif.gif\" alt=\"KEDA in action - GIF\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>You can publish your first Azure Function to Kubernetes by <a href=\"https:\/\/aka.ms\/kedaquickstart\">following this simple tutorial<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"compatible-with-every-event-source\">Compatible with every event source<\/h2>\n\n\n\n<p>KEDA will automatically detect new deployments and start monitoring event sources, leveraging real-time metrics to drive scaling decisions. Today KEDA and supporting tooling works with Kafka, Azure Queues, Azure Service Bus, RabbitMQ, HTTP, and Azure Event Grid \/ Cloud Events. More triggers will continue to be added in the future including Azure Event Hubs, Storage, Cosmos DB, and Durable Functions. KEDA event sources are extensible and we look forward to many additions from the community.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/kedacore\/keda\">KEDA is open source<\/a> on GitHub and open to community contributions. We look forward to hearing feedback from the community and working together to make event-driven container scale available to every developer and for every event type. If you want to learn more about KEDA, register today for <a href=\"https:\/\/aka.ms\/keda-webinar\">our webinar<\/a> later in May where we can share more on the benefits of event-driven and serverless architectures.<\/p>\n\n\n\n<p>Questions or feedback on this news? Please let us know in the comments below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Event-driven architectures are&nbsp;a&nbsp;natural evolution of microservices, enabling a flexible and decoupled&nbsp;design, and&nbsp;are increasingly being adopted by&nbsp;enterprise customers. Fully managed serverless offerings like Azure Functions are event&#8211;driven by&nbsp;design, but&nbsp;we have been hearing from customers about gaps&nbsp;in&nbsp;these&nbsp;capabilities&nbsp;for&nbsp;solutions&nbsp;based on&nbsp;Kubernetes.&nbsp;Scaling&nbsp;in Kubernetes&nbsp;is reactive,&nbsp;based on the CPU and memory consumption of a container.<\/p>\n","protected":false},"author":5562,"featured_media":95490,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"msxcm_post_with_no_image":false,"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[308,158,2272,166],"content-type":[346],"topic":[2241,2242],"programming-languages":[],"coauthors":[585],"class_list":["post-76866","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-azure-kubernetes-service","tag-kubernetes","tag-microsoft","tag-azure","content-type-news","topic-cloud","topic-containers","review-flag-1593580428-734","review-flag-new-1593580248-669","review-flag-partn-1593580279-545"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Announcing KEDA: bringing event-driven containers and functions to Kubernetes | Microsoft Open Source Blog<\/title>\n<meta name=\"description\" content=\"Microsoft is bringing the benefits of event-driven architectures &amp; the productivity of functions to Kubernetes with KEDA \u2013 Kubernetes-based event-driven autoscaling.\u00a0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Announcing KEDA: bringing event-driven containers and functions to Kubernetes | Microsoft Open Source Blog\" \/>\n<meta property=\"og:description\" content=\"Microsoft is bringing the benefits of event-driven architectures &amp; the productivity of functions to Kubernetes with KEDA \u2013 Kubernetes-based event-driven autoscaling.\u00a0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Open Source Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-06T15:18:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-27T15:10:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Rick_03.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jeff Hollan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:site\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Hollan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/\"},\"author\":[{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/jeff-hollan\/\",\"@type\":\"Person\",\"@name\":\"Jeff Hollan\"}],\"headline\":\"Announcing KEDA: bringing event-driven containers and functions to Kubernetes\",\"datePublished\":\"2019-05-06T15:18:56+00:00\",\"dateModified\":\"2025-06-27T15:10:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/\"},\"wordCount\":977,\"commentCount\":12,\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Rick_03.webp\",\"keywords\":[\"Azure Kubernetes Service\",\"Kubernetes\",\"Microsoft\",\"Microsoft Azure\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/\",\"name\":\"Announcing KEDA: bringing event-driven containers and functions to Kubernetes | Microsoft Open Source Blog\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Rick_03.webp\",\"datePublished\":\"2019-05-06T15:18:56+00:00\",\"dateModified\":\"2025-06-27T15:10:03+00:00\",\"description\":\"Microsoft is bringing the benefits of event-driven architectures & the productivity of functions to Kubernetes with KEDA \u2013 Kubernetes-based event-driven autoscaling.\u00a0\",\"breadcrumb\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#primaryimage\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Rick_03.webp\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Rick_03.webp\",\"width\":1170,\"height\":640},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/opensource.microsoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Announcing KEDA: bringing event-driven containers and functions to Kubernetes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"name\":\"Microsoft Open Source Blog\",\"description\":\"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability\",\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\",\"name\":\"Microsoft Open Source Blog\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft Open Source Blog\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/OpenAtMicrosoft\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Announcing KEDA: bringing event-driven containers and functions to Kubernetes | Microsoft Open Source Blog","description":"Microsoft is bringing the benefits of event-driven architectures & the productivity of functions to Kubernetes with KEDA \u2013 Kubernetes-based event-driven autoscaling.\u00a0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/","og_locale":"en_US","og_type":"article","og_title":"Announcing KEDA: bringing event-driven containers and functions to Kubernetes | Microsoft Open Source Blog","og_description":"Microsoft is bringing the benefits of event-driven architectures & the productivity of functions to Kubernetes with KEDA \u2013 Kubernetes-based event-driven autoscaling.\u00a0","og_url":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/","og_site_name":"Microsoft Open Source Blog","article_published_time":"2019-05-06T15:18:56+00:00","article_modified_time":"2025-06-27T15:10:03+00:00","og_image":[{"width":1170,"height":640,"url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Rick_03.png","type":"image\/png"}],"author":"Jeff Hollan","twitter_card":"summary_large_image","twitter_creator":"@OpenAtMicrosoft","twitter_site":"@OpenAtMicrosoft","twitter_misc":{"Written by":"Jeff Hollan","Est. reading time":"4 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#article","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/"},"author":[{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/jeff-hollan\/","@type":"Person","@name":"Jeff Hollan"}],"headline":"Announcing KEDA: bringing event-driven containers and functions to Kubernetes","datePublished":"2019-05-06T15:18:56+00:00","dateModified":"2025-06-27T15:10:03+00:00","mainEntityOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/"},"wordCount":977,"commentCount":12,"publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Rick_03.webp","keywords":["Azure Kubernetes Service","Kubernetes","Microsoft","Microsoft Azure"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/","url":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/","name":"Announcing KEDA: bringing event-driven containers and functions to Kubernetes | Microsoft Open Source Blog","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#primaryimage"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Rick_03.webp","datePublished":"2019-05-06T15:18:56+00:00","dateModified":"2025-06-27T15:10:03+00:00","description":"Microsoft is bringing the benefits of event-driven architectures & the productivity of functions to Kubernetes with KEDA \u2013 Kubernetes-based event-driven autoscaling.\u00a0","breadcrumb":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#primaryimage","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Rick_03.webp","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Rick_03.webp","width":1170,"height":640},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/05\/06\/announcing-keda-kubernetes-event-driven-autoscaling-containers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.microsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Announcing KEDA: bringing event-driven containers and functions to Kubernetes"}]},{"@type":"WebSite","@id":"https:\/\/opensource.microsoft.com\/blog\/#website","url":"https:\/\/opensource.microsoft.com\/blog\/","name":"Microsoft Open Source Blog","description":"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability","publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/opensource.microsoft.com\/blog\/#organization","name":"Microsoft Open Source Blog","url":"https:\/\/opensource.microsoft.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft Open Source Blog"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/OpenAtMicrosoft"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Open Source Blog","distributor_original_site_url":"https:\/\/opensource.microsoft.com\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/76866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/users\/5562"}],"replies":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=76866"}],"version-history":[{"count":1,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/76866\/revisions"}],"predecessor-version":[{"id":97766,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/76866\/revisions\/97766"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media\/95490"}],"wp:attachment":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=76866"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/post_tag?post=76866"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/content-type?post=76866"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/topic?post=76866"},{"taxonomy":"programming-languages","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/programming-languages?post=76866"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/coauthors?post=76866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}