MBrace

MBrace at Nessos

We at Nessos was and are the main contributors at MBrace framework – an open-source, free to use framework, written in F#, designed to make distributed computing on .NET as easy as possible. We have the experience in helping customers integrate systems with MBrace on cloud platforms and consult them on how to take advantage of the MBrace framework, or simply how to assist with the infrastructure deployment models on different cloud systems.

With support for hosting on major cloud vendors, an easy-to-learn and flexible programming model, and written natively in F# and by supporting C#, MBrace is the easiest way to start taking advantage of distributed workloads.

Flexible, extensible and reliable

The MBrace programming model is designed with extensibility from the ground up. It’s cloud provider model means that you can use MBrace on your local development machine for testing before moving over to Azure or AWS cluster with no code changes required. You can also create a new provider for your in-house grid computing hardware – MBrace’s abstraction layers mean that the programming model protects the development from changes in the underlying model.

MBrace’s generic programming model mean that it works equally well for compute- or data-intensive tasks – so you can use it for speeding up rules engines, complex coordination of jobs, or data analysis over large files. It’s also a great fit for both batch- and in-process applications – use it as an offline process to parse data on a nightly schedule, or to calculate a price for a customer quote whenever a new request comes in – MBrace works in either model.

The pluggable nature of MBrace means that new libraries can be added to MBrace as your needs change – for example, simulation, engineering, bio-informatics, portfolio management, automated trading, distributed graph engines, machine learning libraries  can all be written to take advantage of MBrace. And rather than re-invent the wheel, by using cloud infrastructure and services, MBrace takes advantage of the in-built features of services such as Azure Storage, Service Bus or AWS S3 to provide rock-solid reliability, messaging and data storage.

Simple Programming Model

The MBrace programming model declarative, compositional higher order and is inspired by F# asynchronous workflows, and so developers familiar with this will be instantly at home.

It is not just F# developers that can use MBrace – C# developers will love the Task and LINQ-style models on offer.

Work with big data and HPC

 

At Nessos, we feel that .NET developers should be able to play in the distributed data space without having to leave the comfort of their existing development tooling and language. Instead of leaving the world of .NET and needing a team familiar with Hadoop and map reduce, HIVE or Spark and Scala, you can start using MBrace’s powerful CloudFlow model to perform distributed data queries.

 

 

Read data natively from cloud storage, HTTP or in-memory – then distribute your query across the entire cluster, using CPU, RAM and I/O of the combined set of machines. Developers should be able to quickly get up to speed, with specific APIs that closely model F#’s collection modules and C#’s LINQ query model. And as CloudFlow is built on-top of the MBrace core platform, it works natively with any custom types you declare – even those created through F# Type Providers.

MBrace also has support for persisted cloud flows – a distributed, in-memory cached facility used for rapid querying large datasets repeatedly. Reduce the load of databases or external data sources by caching frequently used large datasets across an MBrace cluster – then query it directly from within your .NET application.

Easily consuming existing systems

 

Thanks to some amazing underlying technology built into MBrace, the integration of any existing system to MBrace can be done, even those that weren’t designed to use MBrace or work in a distributed context. Simply wrap your existing .NET code in a cloud { } block – you’re good to go!

MBrace can natively package up any .NET or native code and their dependencies, execute it on a remote machine and then ship the result back to the caller without any special effort needed on your part!

Imagine being able to take your existing order processing system, rules engine, or data processing pipeline and immediately start scaling out your code – without needing to worry about custom service bus engines, fault tolerance or the like. MBrace allows developers to focus on the business problems of solving scalability challenges – not infrastructural ones.