Think Functions

Binaris Serverless Platform enables developers to use serverless functions for their core application development. We believe that when developers Think Functions they are faster, happier and more productive

Posted by Avner Braverman on July 25, 2018

At Binaris we envision a world where applications are built from functions. Functions are better for developers, better for operations and better from an infrastructure viewpoint. In this post we discuss why functions are the natural evolution in application development and how the Binaris Serverless Platform allows developers to build and run full scale applications with functions.

In the early 2000s, applications began migrating from traditional client-server architecture to the cloud. That meant scale. Scale of operations, as applications became accessible to millions of users, and scale of complexity, as users required more and more features. To support such scale developers started decomposing applications into smaller, more manageable components.

Leading this change was Amazon. First in their retail platform and later in their web services, Amazon fully embraced Service Oriented Architecture (SOA) with Jeff Bezos’ famous letter to employees. Breaking down the monolith into services let Amazon split and scale their development team. It also simplified operations with regard to deployment, monitoring and error handling.

Nearly a decade later, Netflix adopted a Microservices based Architecture. This even more granular approach let Netflix build a continuous deployment pipeline and significantly accelerate their development process. This in turn allowed them to outpace their competition and dominate the streaming market. Breaking down applications proved critical for business.

In 2014 AWS announced its Serverless compute platform, Lambda. Serverless platforms enable the next level of granularity, allowing developers to break down their code into functions and offload deployment, provisioning and server management to the platform providers. Therefore developers focus on code that matters and don’t waste time on boilerplate infrastructure code. Serverless is gaining massive momentum with developers, but unfortunately this first generation of platforms limits Serverless use cases to background tasks, cloud automation and data ingestion.

Binaris set out to unleash the full potential of Serverless functions. Binaris Serverless Platform enables developers to use serverless functions for their core application development. We believe that when developers Think Functions they are faster, happier and more productive.

By Think Functions we mean developers can focus on their own application code. It means that we take care of many of the burdens that stand in the way of building a scalable cloud application. It means that developers never think about servers, never think about cost and never think about performance.

Never think about servers. As a true Serverless platform, Binaris lets developers deploy source code directly to the cloud. Packaging, provisioning and network are all handled by us. When a function is triggered we guarantee its execution, whether the trigger happens once per day or a million times per second. It is up to us to provision the resources required to run the function and route input data to the function runtime and output data back to the caller. Developers never have to deal with servers, containers, IP addresses or scaling rules.

Never think about cost. With Serverless you only pay for what you use. Serverless platforms only charge per invocation and for the CPU cycles your functions actually consume, so you never pay for idle. This is great for any human or machine facing application where load changes with time (and let’s face it, which doesn’t?) and could result in 10x savings relative to traditional server based infrastructure.

But this is not enough. From an infrastructure standpoint, functions represent a significant change in workload characteristics. A fully optimized stack, designed from the ground up to run functions will be orders of magnitude more efficient than existing platforms. This means you can do more work and pay significantly less. Binaris is already taking the first steps in this direction offering 10x savings vs Lambda. No complex metrics. No TCO calculations. Our prices are 1/10 what Lambda charges and will only get better with future generations of our software. Efficiency matters.

Never think about performance. Response time is critical for any user facing application and even more so for machine facing services. Anything from web and mobile apps to smart devices, cars or robotics requires responsiveness. While cloud microservices respond in milliseconds, existing Serverless platforms take tens or hundreds of milliseconds to run the most basic functions. This is okay for automation or background tasks but is inadequate for core application development.

Binaris invokes functions in milliseconds. We are 20x faster than Lambda and about 2x faster than traditional microservices. Furthermore, we provide an invocation latency SLA so you never have to worry about cold starts and pre-warming functions, or configure services to colocate in order to achieve better response times (and really, who knows at development time which services would actually benefit from colocation in production?). With guaranteed invocation times, developers are free to break their applications into smaller functions and compose them together as necessary, resting assured that their users will never experience slowdowns.

Looking forward, functions should let us push response times well below the microsecond threshold. This will enable even more granular code, facilitating faster coding, better code reuse and simplified maintenance.

At Binaris we envision a future where applications are built entirely out of functions. Functions let developers focus on code that matters, build features faster and deliver more business value. We are building a Serverless platform designed from the ground up to run functions in a dedicated stack, enabling core application code to be composed out of functions and freeing developers to Think Functions.