News

Microsoft Open Sources Projects for Microservices, Kubernetes

Microsoft, which now calls itself an open source company, announced two new projects that serve to live up to that moniker, one for microservices and one for Kubernetes applications.

Here's a look at each:

Dapr
On the microservices side of things, the company unveiled Distributed Application Runtime (Dapr), meant to ease the development on the architecture that the company describes as the standard for cloud-native applications.

"Dapr is an open source, portable, event-driven runtime that makes it easy for developers to build resilient, microservice stateless and stateful applications that run on the cloud and edge," the company said. "Dapr embraces the diversity of all programming languages and developer frameworks and simplifies building applications such as the e-commerce example."

Dapr
[Click on image for larger view.] Dapr (source: Microsoft).

The platform-agnostic project -- it can run on any Kubernetes cluster, or other hosting environments it integrates with -- comprises different building blocks that developers using any programming language can access via HTTP or gRPC APIs.

In this initial alpha release those building blocks were listed as:

  • Service Invocation: Resilient service-to-service invocation enables method calls, including retries, on remote services wherever they are running in the supported hosting environment.
  • State management: With state management for key/value pairs, long running, highly available, stateful services can be easily written, alongside stateless services in the same application. The state store is pluggable and can include Azure Cosmos or Redis, with others such as AWS DynamoDB on the component roadmap.
  • Publish and subscribe messaging between services: Publishing events and subscribing to topics between services enables event-driven architectures to simplify horizontal scalability and make them resilient to failure.
  • Event driven resource bindings: Resource bindings and triggers build further on event-driven architectures for scale and resiliency by receiving and sending events to and from any external resources such as databases, queues, file systems, blob stores, webhooks, etc. For example, your code can be triggered by a message on an Azure EventHub service and write data to Azure CosmosDB.
  • Virtual actors – A pattern for stateless and stateful objects that make concurrency simple with method and state encapsulation. Dapr provides many capabilities in its virtual actor runtime including concurrency, state, life-cycle management for actor activation/deactivation and timers and reminders to wake up actors.
  • Distributed tracing between services: Easily diagnose and observe inter-service calls in production using the W3C Trace Context standard and push events to tracing and monitoring systems.

The project comes with SDKs for the popular programming languages Go, Java, JavaScript, .NET and Python.

Developers can learn more at:

"This initial release of the Dapr runtime and SDKs is just the early start, our goal is to bring Dapr to a vendor-neutral foundation to enable open governance and collaboration," Microsoft said on its open source blog. "This is a journey and we need your help and input, whether this is writing new binding components to integrate with resources, suggesting new building blocks or creating an SDK for your favorite language (Cobol anyone?). We want to hear from you."

OAM
Standing for the Open Application Model, this project provides an open standard for creating and using applications on the popular Kubernetes container orchestration platform and others.

The idea is to meet the need for a model that represents a complete application on Kubernetes, whose applications are known for being composed of discrete parts such as templates or other pieces.

"OAM is a specification for describing applications so that the application description is separated from the details of how the application is deployed onto and managed by the infrastructure," Microsoft said. "This separation of concerns is helpful for multiple reasons."

oam
[Click on image for larger view.] OAM (source: Microsoft).

With the OAM, an application is represented as several "concepts," such as Components that make up the application, such as a database. " Developers can author code that they package as a component and then author manifests that describe the relationships between that component and other microservices," Microsoft said.

Another concept is Traits, providing descriptive characterizations of the application environment, such as auto-scaling and ingress.

Like Dapr, the project is platform-agnostic, though its first open implementation, called Rudr, is built on Kubernetes. "It is possible to develop implementations for numerous other environments including small-device form factors, like edge deployments and elsewhere, where Kubernetes may not be the right choice," Microsoft said. "Or serverless environments where users don’t want or need the complexity of Kubernetes."

Interested developers can learn more at:

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Hands On: New VS Code Insiders Build Creates Web Page from Image in Seconds

    New Vision support with GitHub Copilot in the latest Visual Studio Code Insiders build takes a user-supplied mockup image and creates a web page from it in seconds, handling all the HTML and CSS.

  • Naive Bayes Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the naive Bayes regression technique, where the goal is to predict a single numeric value. Compared to other machine learning regression techniques, naive Bayes regression is usually less accurate, but is simple, easy to implement and customize, works on both large and small datasets, is highly interpretable, and doesn't require tuning any hyperparameters.

  • VS Code Copilot Previews New GPT-4o AI Code Completion Model

    The 4o upgrade includes additional training on more than 275,000 high-quality public repositories in over 30 popular programming languages, said Microsoft-owned GitHub, which created the original "AI pair programmer" years ago.

  • Microsoft's Rust Embrace Continues with Azure SDK Beta

    "Rust's strong type system and ownership model help prevent common programming errors such as null pointer dereferencing and buffer overflows, leading to more secure and stable code."

  • Xcode IDE from Microsoft Archrival Apple Gets Copilot AI

    Just after expanding the reach of its Copilot AI coding assistant to the open-source Eclipse IDE, Microsoft showcased how it's going even further, providing details about a preview version for the Xcode IDE from archrival Apple.

Subscribe on YouTube

Upcoming Training Events