.NET in the Linux Ecosystem

Running .NET applications on Linux provides access to API’s and libraries that augment the capabilities of horizontally scaled applications, but more importantly, living in the Linux ecosystem provides access to an ecosystem of tools for distributed application development and management.

You may be a seasoned .NET developer, excited about .NET core and mono and being able to take your code over to Linux where you don’t have to pay for the OS license or you could run code on your toaster. That is exciting, but Linux is great for software development because of all the software available to scale up your distributed application. I’ll discuss the following benefits and show the tools, libraries, and code I’m using for each.

  1. Cluster Coordination with Zookeeper
    a. Distributed semaphore
    b. Leader election
    c. Emerging alternatives – Consul + .NET client
  2. Mesos – a layer above the (V)M
    a. Lifetime and HA for clustered applications
    b. Mono & CoreCLR
    c. Docker
    d. Service discovery & mesos-dns
    e. Windows mesos-slave – work in progress
  3. Storm
    a. Scaling processing horizontally
    b. F# on Storm

All code samples are in F#, as it provides a relatively succinct language for demonstrating the functionality and also has rich async primitives, which are used quite frequently in distributed applications.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s