MBrace

MBrace at Compositional IT

At Compositional IT, we're firm favourites of the MBrace framework - an open-source, free to use framework and set of libraries, written in F#, designed to make distributed computing on .NET as easy as possible, and have experience in helping customers integrate systems with MBrace on cloud platforms - whether it's how to take advantage of the MBrace library, 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# (but with support for C#), MBrace is the easiest way to start taking advantage of distributed workloads.

Contact us to find out more.

Simple programming model

The MBrace programming model is a breeze to pick up for existing .NET developers. Its F#-friendly Cloud Workflow follows the same pattern as F#'s built-in Async model, and so developers familiar with this will be instantly at home.

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

mbrace code sample 1

Easily lift-and-shift existing systems

mbrace code sample 2

Thanks to some amazing underlying technology built into MBrace, it's an absolute doddle to start integrating MBrace with existing systems - 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.

Work with large-scale data-processing challenges

At Compositional IT, 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.

mbrace code sample 3

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 a 50-node Azure or AWS cluster with no code changes required. Or 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 requst 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, distributed graph engines, machine learning libraries or financial computation engines 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.