Functions as a service are deployable functions that run without an addressable server.
Functions as a service scale without any work by the developer. When you deploy a function as a service to a cloud provider, the cloud provider will take care of running that function whenever it is called.
You don’t have to worry about spinning up a new machine and monitoring that machine, and spinning the machine down once it becomes idle. You just tell the cloud provider that you want to run a function, and the cloud provider executes it and returns the result.
Functions as a service can be more cost effective than running virtual machines or containerized infrastructure, because you are letting the cloud provider decide where to schedule your function, and you are giving the cloud provider flexibility on when to schedule the function.
The developer experience for deploying a serverless function can feel mysterious. You send a blob of code into the cloud. Later on, you send a request to call that code in the cloud. The result of the execution of that code gets sent back down to you. What is happening in between?
Rodric Rabbah is the principal researcher and technical lead in serverless computing at IBM. He helped design IBM Cloud Functions, the open source functions-as-a-service platform that IBM has deployed and operationalized as IBM Cloud Functions. Rodric joins the show to explain how to build a platform for functions as a service.
When a user deploys a function to IBM Cloud Functions, that function gets stored in a database as a blob of text, waiting to be called. When the user makes a call to the function, IBM Cloud Functions takes it from the database and queues the function in Kafka, and eventually schedules the function onto a container for execution. Once the function has executed, IBM Cloud Functions stores the result in a database and sends that result to the user.
When you execute a function, the time spent scheduling it and loading it onto a container is known as the “cold start problem”. The steps of executing a serverless function take time, but the resource savings are significant. Your code is just stored as a blob of text in a database, rather than sitting in memory on a server, waiting to execute.
In his research for building IBM Cloud Functions, Rodric wrote about some of the tradeoffs for users who build applications with serverless functions. The tradeoffs exist along what Rodric calls “the serverless trilemma.”
In today’s episode, we discuss why people are using functions-as-a-service, the architecture of IBM Cloud Functions, and the unsolved challenges of building a serverless platform. Full disclosure: IBM is a sponsor of Software Engineering Daily.
IBM Cloud Functions
Transcript provided by We Edit Podcasts. Software Engineering Daily listeners can go to weeditpodcasts.com/sed to get 20% off the first two months of audio editing and transcription services. Thanks to We Edit Podcasts for partnering with SE Daily. Please click here to view this show’s transcript.
If you have your finger on the pulse today, you’re interested in blockchain and Ethereum. The landscape is constantly changing and there’s a lot to keep up with. Subscribing to the ConsenSys weekly newsletter provides you with the most trusted source of information and updates on the blockchain space at softwareengineeringdaily.com/consensys. ConsenSys is the largest blockchain company focused on building software on the Ethereum platform. ConsenSys has built several of the leading DApps — “decentralized applications” — in the Ethereum ecosystem, and offers some of the most popular, free Ethereum developer tools such as MetaMask, Infura, and Truffle. These tools are essential if you’re thinking about building an Ethereum DApp. To learn more about ConsenSys and Ethereum, visit softwareengineeringdaily.com/consensys and sign up for the ConsenSys weekly email newsletter. And if you want to hear a show about one of these topics, send me a tweet @software_daily and tag @consensys with the topic you would like to hear about.
Your devices can live in remote environments where uptime is paramount. They communicate with applications sitting on layers of dynamic infrastructure and supporting services. Datadog brings you visibility into every part of your infrastructure, plus APM for monitoring your application’s performance. Dashboarding, collaboration tools, and alerts let you develop your own workflow for observability and incident response. Datadog integrates seamlessly with all of your apps and systems, from smart sensors and bare metal to Amazon Web Services, so you can get visibility in minutes. Go to softwareengineeringdaily.com/datadog
to get started with Datadog and get a free t-shirt. With full observability, distributed tracing, and customizable visualizations, Datadog is loved and trusted by thousands of enterprises, including Samsung SmartThings, Peloton Cycle, Salesforce, Pagerduty, and Zendesk. If you haven’t tried Datadog at your company–or on your side project–go to softwareengineeringdaily.com/datadog
to get a free t-shirt and support Software Engineering Daily.
Indeed Prime flips the typical model of job search and makes it easy to apply to multiple jobs and get multiple offers. Indeed Prime simplifies your job search and helps you land that ideal software engineering position. Candidates get immediate exposure to top companies with just one simple application to Indeed Prime. Companies on Prime’s exclusive platform message candidates with salary and equity upfront. Indeed Prime is 100% free for candidates – no strings attached.
Sign up now at indeed.com/sedaily
. You can also put money in your pocket by referring your friends and colleagues. Refer a software engineer to the platform and get $200 when they get contacted by a company…. and $2,000 when they accept a job through Prime! Learn more at indeed.com/prime/referral
Simplify continuous delivery with GoCD, the on-premise, open source, continuous delivery tool by ThoughtWorks. With GoCD, you can easily model complex deployment workflows using pipelines and visualize them end-to-end with the Value Stream Map. You get complete visibility into and control of your company’s deployments. At gocd.org/sedaily
, find out how to bring continuous delivery to your teams. Say goodbye to deployment panic and hello to consistent, predictable deliveries. Visit gocd.org/sedaily
to learn more about GoCD. Commercial support and enterprise add-ons, including disaster recovery, are available.