{"id":94306,"date":"2023-03-02T09:00:00","date_gmt":"2023-03-02T17:00:00","guid":{"rendered":""},"modified":"2023-03-14T13:41:05","modified_gmt":"2023-03-14T20:41:05","slug":"announcing-the-availability-of-feathr-1-0","status":"publish","type":"post","link":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/","title":{"rendered":"Announcing the availability of Feathr 1.0"},"content":{"rendered":"\n<p><em>This blog is co-authored by Edwin Cheung, Principal Software Engineering Manager and Xiaoyong Zhu, Principal Data Scientist.<\/em><\/p>\n\n\n\n<p>Feathr is an enterprise scale feature store, which facilitates the creation, engineering, and usage of machine learning features in production.&nbsp;It has been used by many organizations as an online\/offline store, as well as for real-time streaming.<\/p>\n\n\n\n<p>Today, we are excited to announce the much-anticipated availability of the OSS Feathr 1.0.&nbsp;It contains many new features and enhancements since Feathr became open-source one year ago. Similar to the online transformation, rapid sandbox environment, MLOPs V2 accelerator integration really accelerates the development and deployment of machine learning projects at enterprise scale.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Online transformation via domain specific language (DSL)<\/h2>\n\n\n\n<p>In various machine learning scenarios, features generation is required for both training and inferences.&nbsp;There is a limitation where data source cannot come from online service, as currently transformation only happens before feature data is published to the online store and the transformation is required close to real-time.&nbsp;In such cases, there is a need for a mechanism where the user has the ability to run transformation on the inference data dynamically before inferencing via the model.&nbsp;The new online transformation via DSL feature addresses these challenges by using a custom transformation engine that can process transformation requests and responses close to real-time on demand.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-1024x464.webp\" alt=\"Feathr online transformation architecture. \" class=\"wp-image-94309 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-1024x464.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-300x136.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-768x348.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-800x363.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-400x181.png 400w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-450x204.png 450w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-650x295.webp 650w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1.webp 1379w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-1024x464.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-1024x464.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-300x136.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-768x348.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-800x363.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-400x181.png 400w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-450x204.png 450w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1-650x295.png 650w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Picture1-1.png 1379w\"><\/figure>\n\n\n\n<p>It allows definition of transformation logic declaratively using DSL syntax which is based on EBNF. It also provides extensibility, where there is a need to define custom complex transformation, by supporting user defined function (UDF) written in Python or Java.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 2; gutter: false; title: ; quick-code: false; notranslate\" title=\"\">\nnyc_taxi_demo(pu_loc_id as int, do_loc_id as int, pu_time as string, do_time as string, trip_distance as double, fare_amount as double) \u2026\n\n\u00a0project duration_second = (to_unix_timestamp(do_time, \"%Y\/%-m\/%-d %-H:%-M\") - to_unix_timestamp(pu_time, \"%Y\/%-m\/%-d %-H:%-M\"))\n\n| project speed_mph = trip_distance * 3600 \/ duration_second\n\n;\n<\/pre><\/div>\n\n\n<p>This declarative logic runs in a new high-performance DSL engine. We provide HELM Chart to deploy this service in a container-based technology such as the <a href=\"https:\/\/azure.microsoft.com\/products\/kubernetes-service\/\">Azure Kubernetes Service<\/a> (AKS). <\/p>\n\n\n\n<p>The transformation engine can also run as a standalone executable, which is a HTTP server that can be used to transform data for testing purposes. feathrfeaturestore\/feathrpiper:latest.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; quick-code: false; notranslate\" title=\"\">\ncurl -s -H\"content-type:application\/json\" http:\/\/localhost:8000\/process -d'{\"requests\": [{\"pipeline\": \"nyc_taxi_demo_3_local_compute\",\"data\": {\"pu_loc_id\": 41,\"do_loc_id\": 57,\"pu_time\": \"2020\/4\/1 0:41\",\"do_time\": \"2020\/4\/1 0:56\",\"trip_distance\": 6.79,\"fare_amount\": 21.0}}]}'\u00a0\n<\/pre><\/div>\n\n\n<p>It also provides the ability to auto-generate the DSL file if there are already predefined feature transformations, which have been created for the offline-transformation. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Online transformation performance benchmark<\/h2>\n\n\n\n<p>It is imperative that online transformation performs close to real-time and meets low latency demand with high queries per second (QPS) transformation for many of the enterprise customers&#8217; needs.&nbsp;To determine the performance, we have conducted a benchmark on three tests.&nbsp;First, deployment on AKS with traffic going through ingress controller. Second, traffic going through AKS internal load balance, and finally, via the localhost.&nbsp;&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Benchmark A\u2014Traffic going through ingress controller (AKS)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Infrastructure setup<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Test agent runs on 1 pod on node with size Standard_D8ds_v5<\/li>\n\n\n\n<li>Transform function deployed as docker image running on 1 pod on a different node with size Standard_D8ds_v5 in same AKS.<\/li>\n\n\n\n<li>Agent sends request thru service hostname which means traffic will go thru ingress controller.<\/li>\n\n\n\n<li>Test command: ab -k -c {concurrency_count} -n 1000000 (<a href=\"http:\/\/feathr-online.trafficmanager.net\/healthz\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/feathr-online.trafficmanager.net\/healthz<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Benchmark A result<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Total Requests<\/strong><\/td><td><strong>Concurrency<\/strong><\/td><td><strong>p90<\/strong><\/td><td><strong>p95<\/strong><\/td><td><strong>p99<\/strong><\/td><td><strong>request\/sec<\/strong><\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>100<\/td><td>3<\/td><td>4<\/td><td>9<\/td><td>43710<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>200<\/td><td>6<\/td><td>8<\/td><td>15<\/td><td>43685<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>300<\/td><td>10<\/td><td>11<\/td><td>18<\/td><td>43378<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>400<\/td><td>13<\/td><td>15<\/td><td>21<\/td><td>43220<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>500<\/td><td>16<\/td><td>19<\/td><td>24<\/td><td>42406<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Benchmark B\u2014Traffic goes thru AKS internal load balancer (AKS)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Benchmark B\u2014Infrastructure setup<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Test agent runs on 1 pod on node with size Standard_D8ds_v5<\/li>\n\n\n\n<li>Transform function deployed as docker image running on 1 pod on a different node with size Standard_D8ds_v5 in same AKS.<\/li>\n\n\n\n<li>Agent sends request thru service pip which means traffic will go thru internal load balancer.<\/li>\n\n\n\n<li>Test command: ab -k -c {concurrency_count} -n 1000000 ab -k -c 100 -n 1000000 <a href=\"https:\/\/nam06.safelinks.protection.outlook.com\/?url=http%3A%2F%2F10.0.187.2%2Fhealthz&amp;data=05%7C01%7Cv-bmcgovern%40microsoft.com%7C76f6fce50e074e3bc4a908db246c0e0a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638143818787993752%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=7e0RgIw4Qec%2FKsDEKs%2BcS7EgUMWgSy36AFvyw6yJQqQ%3D&amp;reserved=0\">http:\/\/10.0.187.2\/healthz<\/a><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Benchmark B result<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Total Requests<\/strong><\/td><td><strong>Concurrency<\/strong><\/td><td><strong>p90<\/strong><\/td><td><strong>p95<\/strong><\/td><td><strong>p99<\/strong><\/td><td><strong>request\/sec<\/strong><\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>100<\/td><td>3<\/td><td>4<\/td><td>4<\/td><td>47673<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>200<\/td><td>5<\/td><td>7<\/td><td>8<\/td><td>47035<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>300<\/td><td>9<\/td><td>10<\/td><td>12<\/td><td>46613<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>400<\/td><td>11<\/td><td>12<\/td><td>15<\/td><td>45362<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>500<\/td><td>14<\/td><td>15<\/td><td>19<\/td><td>44941<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">&nbsp;<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">Benchmark C\u2014Traffic going through local host (AKS)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Infrastructure setup<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Test agent runs on 1 pod on node with size Standard_D8ds_v5.<\/li>\n\n\n\n<li>Transform function deployed as docker image running on the same pod.<\/li>\n\n\n\n<li>Agent sends request thru localhost which means there are not network traffic at all.<\/li>\n\n\n\n<li>Test command: ab -k -c {concurrency_count} -n 1000000 (<a href=\"http:\/\/localhost\/healthz\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/localhost\/healthz<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Benchmark C result<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Total Requests<\/strong><\/td><td><strong>Concurrency<\/strong><\/td><td><strong>p90<\/strong><\/td><td><strong>p95<\/strong><\/td><td><strong>p99<\/strong><\/td><td><strong>Request\/sec<\/strong><\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>100<\/td><td>2<\/td><td>2<\/td><td>3<\/td><td>59466<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>200<\/td><td>4<\/td><td>4<\/td><td>5<\/td><td>59433<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>300<\/td><td>6<\/td><td>6<\/td><td>8<\/td><td>60184<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>400<\/td><td>8<\/td><td>9<\/td><td>10<\/td><td>59622<\/td><\/tr><tr><td><strong>1000000<\/strong><\/td><td>500<\/td><td>10<\/td><td>11<\/td><td>14<\/td><td>59031<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Benchmark summary<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If transform service and up-streaming are in same host\/pod, the p95 latency result is very good, stay within 10ms if concurrency &lt; 500.<\/li>\n\n\n\n<li>If transform service and up-streaming are in different host\/pod, the p95 latency result might get reduced with 2-4ms, if traffic goes thru internal load balance.<\/li>\n\n\n\n<li>If transform service and up-streaming are in different host\/pod, the p95 latency result might get reduced with 2-8ms, if traffic goes thru ingress controller.<\/li>\n<\/ul>\n\n\n\n<p><em>Benchmark thanks to Blair Chan and Chen Xu.<\/em> <em>For more details, check out the&nbsp;<\/em><a href=\"https:\/\/github.com\/feathr-ai\/feathr-online#readme\" target=\"_blank\" rel=\"noreferrer noopener\"><em>online transformation guide<\/em><\/a><em>.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Getting started with sandbox environment<\/h2>\n\n\n\n<p>This is an exciting feature, especially for data scientists, who may not have the necessary infrastructure background or know how to deploy the infrastructure in the cloud.&nbsp;The sandbox is a fully-featured, quick-start Feathr environment that enables organizations to rapidly prototype various capabilities of Feathr without the burden of full-scale infrastructure deployment. It is designed to make it easier for users to get started quickly, validate feature definitions and new ideas, and interactive experience.<\/p>\n\n\n\n<p>By default, it comes with a Jupyter notebook environment to interact with the Feathr platform. <\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-1024x437.webp\" alt=\"Jupyter notebook running within the Sandbox environment. \" class=\"wp-image-94335 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-1024x437.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-300x128.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-768x328.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-1536x655.png 1536w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-2048x874.png 2048w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-800x341.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-400x171.png 400w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-450x192.png 450w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-650x277.webp 650w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-1024x437.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-1024x437.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-300x128.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-768x328.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-1536x655.png 1536w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-2048x874.png 2048w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-800x341.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-400x171.png 400w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-450x192.png 450w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-28-at-18.44.23-650x277.png 650w\"><\/figure>\n\n\n\n<p>Users can also use the user experience (UX) to visualize the features, lineage, and other capabilities.<\/p>\n\n\n\n<p><em>To get started, check out the <a href=\"https:\/\/feathr-ai.github.io\/feathr\/quickstart_local_sandbox.html\" target=\"_blank\" rel=\"noreferrer noopener\">quick start guide to local sandbox<\/a>.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Feathr with MlOps V2 accelerator<\/h2>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-1024x381.webp\" alt=\"Feathr integrated MLOps V2 architecture.\" class=\"wp-image-94336 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-1024x381.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-300x112.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-768x286.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-1536x571.png 1536w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-2048x762.png 2048w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-800x298.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-400x149.png 400w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-450x167.png 450w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-650x242.webp 650w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-1024x381.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-1024x381.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-300x112.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-768x286.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-1536x571.png 1536w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-2048x762.png 2048w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-800x298.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-400x149.png 400w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-450x167.png 450w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-10.32.40-650x242.png 650w\"><\/figure>\n\n\n\n<p>MLOps V2 solution accelerator provides a modular end-to-end approach to MLOps in Azure based on pattern architecture. We are pleased to announce an initial integration of Feathr to the classical pattern that enables Terraform-based infrastructure deployment as part of the infrastructure provisioning with <a href=\"https:\/\/azure.microsoft.com\/products\/machine-learning\/#product-overview\">Azure machine learning<\/a> (AML) workspace. <\/p>\n\n\n\n<p>With this integration, enterprise customers can use the templates to customize their continuous integration and continuous delivery (CI\/CD) workflows to run end-to-end MlOps in their organization. <\/p>\n\n\n\n<p>Check out the Feathr integration with MLOps V2 <a href=\"https:\/\/github.com\/Azure\/mlops-v2\/blob\/feature\/feathr\/documentation\/deployguides\/deployguide_fs_ado.md\" target=\"_blank\" rel=\"noreferrer noopener\">deployment guide<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Feathr GUI enhancement<\/h2>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-1024x202.webp\" alt=\"Feathr GUI enhancement with registering and deleting features. \" class=\"wp-image-94337 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-1024x202.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-300x59.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-768x151.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-1536x303.png 1536w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-2048x404.png 2048w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-800x158.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-400x79.png 400w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-450x89.png 450w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-650x128.webp 650w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-1024x202.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-1024x202.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-300x59.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-768x151.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-1536x303.png 1536w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-2048x404.png 2048w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-800x158.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-400x79.png 400w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-450x89.png 450w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2023\/02\/Screenshot-2023-02-20-at-11.10.07-650x128.png 650w\"><\/figure>\n\n\n\n<p>We have added a number of enhancements to the graphical user interface (GUI) to improve the usability. These include support for registering features, support for deleting features, support for displaying version, and quick access to lineage via the top menu.&nbsp;<\/p>\n\n\n\n<p>Try out our demo UX on our <a href=\"https:\/\/feathr-registry-sql.azurewebsites.net\/\" target=\"_blank\" rel=\"noreferrer noopener\">live demo site<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What\u2019s next<\/h2>\n\n\n\n<p>The Feathr journey has just begun, this is the first stop to many great things to come. So, stay tuned for many enterprise enhancements, security, monitoring, and compliance features with a more enriched MLOps experience. Check out how you can also <a href=\"https:\/\/github.com\/feathr-ai\/feathr\/blob\/main\/CONTRIBUTING.md\" target=\"_blank\" rel=\"noreferrer noopener\">contribute<\/a> to this great project, and if you have not already, you can join our&nbsp;<a href=\"https:\/\/feathrai.slack.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">slack channel here<\/a>.<a id=\"_msocom_1\"><\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today, we are excited to announce the much-anticipated availability of the OSS Feathr 1.0.<\/p>\n","protected":false},"author":6194,"featured_media":95469,"comment_status":"closed","ping_status":"closed","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":[],"content-type":[346],"topic":[2238],"programming-languages":[],"coauthors":[1979],"class_list":["post-94306","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","content-type-news","topic-ai-machine-learning","review-flag-1593580428-734","review-flag-1-1593580432-963","review-flag-2-1593580437-411","review-flag-3-1593580442-169","review-flag-4-1593580448-609","review-flag-5-1593580453-725","review-flag-6-1593580457-852","review-flag-7-1593580463-151","review-flag-8-1593580468-572","review-flag-9-1593580473-997","review-flag-new-1593580248-669"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Announcing the availability of Feathr 1.0 | Microsoft Open Source Blog<\/title>\n<meta name=\"description\" content=\"Today, we are excited to announce the much-anticipated availability of the OSS Feathr 1.0.\" \/>\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\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Announcing the availability of Feathr 1.0 | Microsoft Open Source Blog\" \/>\n<meta property=\"og:description\" content=\"Today, we are excited to announce the much-anticipated availability of the OSS Feathr 1.0.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Open Source Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-02T17:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-14T20:41:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO22_Coworking_005.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=\"Mufajjul Ali\" \/>\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=\"Mufajjul Ali\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 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\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/\"},\"author\":[{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/mufajjul-ali\/\",\"@type\":\"Person\",\"@name\":\"Mufajjul Ali\"}],\"headline\":\"Announcing the availability of Feathr 1.0\",\"datePublished\":\"2023-03-02T17:00:00+00:00\",\"dateModified\":\"2023-03-14T20:41:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/\"},\"wordCount\":1092,\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO22_Coworking_005.webp\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/\",\"name\":\"Announcing the availability of Feathr 1.0 | Microsoft Open Source Blog\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO22_Coworking_005.webp\",\"datePublished\":\"2023-03-02T17:00:00+00:00\",\"dateModified\":\"2023-03-14T20:41:05+00:00\",\"description\":\"Today, we are excited to announce the much-anticipated availability of the OSS Feathr 1.0.\",\"breadcrumb\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#primaryimage\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO22_Coworking_005.webp\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO22_Coworking_005.webp\",\"width\":1170,\"height\":640},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/opensource.microsoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Announcing the availability of Feathr 1.0\"}]},{\"@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 the availability of Feathr 1.0 | Microsoft Open Source Blog","description":"Today, we are excited to announce the much-anticipated availability of the OSS Feathr 1.0.","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\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/","og_locale":"en_US","og_type":"article","og_title":"Announcing the availability of Feathr 1.0 | Microsoft Open Source Blog","og_description":"Today, we are excited to announce the much-anticipated availability of the OSS Feathr 1.0.","og_url":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/","og_site_name":"Microsoft Open Source Blog","article_published_time":"2023-03-02T17:00:00+00:00","article_modified_time":"2023-03-14T20:41:05+00:00","og_image":[{"width":1170,"height":640,"url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO22_Coworking_005.png","type":"image\/png"}],"author":"Mufajjul Ali","twitter_card":"summary_large_image","twitter_creator":"@OpenAtMicrosoft","twitter_site":"@OpenAtMicrosoft","twitter_misc":{"Written by":"Mufajjul Ali","Est. reading time":"5 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#article","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/"},"author":[{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/mufajjul-ali\/","@type":"Person","@name":"Mufajjul Ali"}],"headline":"Announcing the availability of Feathr 1.0","datePublished":"2023-03-02T17:00:00+00:00","dateModified":"2023-03-14T20:41:05+00:00","mainEntityOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/"},"wordCount":1092,"publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO22_Coworking_005.webp","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/","url":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/","name":"Announcing the availability of Feathr 1.0 | Microsoft Open Source Blog","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#primaryimage"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO22_Coworking_005.webp","datePublished":"2023-03-02T17:00:00+00:00","dateModified":"2023-03-14T20:41:05+00:00","description":"Today, we are excited to announce the much-anticipated availability of the OSS Feathr 1.0.","breadcrumb":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#primaryimage","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO22_Coworking_005.webp","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO22_Coworking_005.webp","width":1170,"height":640},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.microsoft.com\/blog\/2023\/03\/02\/announcing-the-availability-of-feathr-1-0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.microsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Announcing the availability of Feathr 1.0"}]},{"@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\/94306","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\/6194"}],"replies":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=94306"}],"version-history":[{"count":0,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/94306\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media\/95469"}],"wp:attachment":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=94306"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/post_tag?post=94306"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/content-type?post=94306"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/topic?post=94306"},{"taxonomy":"programming-languages","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/programming-languages?post=94306"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/coauthors?post=94306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}