[Music] Welcome to “IBM Cloud Functions” After watching this video, you will be able to: Define what IBM Cloud Functions are, List and describe the following eight IBM Cloud Functions: namespaces, actions, sequences, events, triggers, rules, feeds, and packages. IBM Cloud Functions are based on Apache OpenWhisk—a serverless, open-source platform. IBM Cloud Functions is a polyglot function-as-a-service programming platform for developing lightweight code that scales and runs on demand. Several components of this definition describe FaaS, such as scalability and on-demand performance. IBM Cloud Functions is also polyglot, meaning that it supports numerous languages. Next, learn more Cloud Function terminology. Namespace is an important term for Cloud Functions, so it’s valuable to understand this one first. Namespaces contain other Cloud Functions entities, such as actions and triggers, which you learn about soon. A Cloud Functions namespace is considered an “instance” within Cloud Functions, so access is granted at the namespace level, meaning that account admins can delegate access to a given namespace to other users. The fully qualified name of an entity is namespace ID slash package name slash entity name, because the namespace contains other entities. An action is a piece of code that performs one specific task. You can write an action in the language of your choice. An action performs work when directly invoked. A trigger enables an action to automatically respond to events from IBM Cloud services and third-party services. You provide your action to Cloud Functions either as source code or as a Docker image. You can use source code if your preferred language is supported. Supported languages include Node.js, Python, Swift, PHP, and others. You can use unsupported languages by creating a custom Docker image. A sequence is a chain of actions, invoked in order, where the output of one action is passed as input to the next action. Actions can be chained together into a sequence without having to write any code. By creating a sequence, you can combine existing actions for quick and easy reuse. A sequence can then be invoked just like an action, through a REST API or automatically in response to events. In this way, sequences are effectively just actions. Sequences are beneficial since it is a best practice for a function to perform a single action instead of multiple actions. Events from external and internal event sources are channeled through a trigger, and rules allow actions to react to these events. Examples of events include changes to database records, IoT sensor readings that exceed a specific temperature, new code commits to a GitHub repository, and simple HTTP requests from web-based or mobile apps. A trigger is a named channel for a class of events. A trigger is a declaration that you want to react to a certain type of event, whether from a user or by an event source. A rule associates a trigger with an action. Every time the trigger fires, the rule uses the trigger event as input and invokes the associated action. With the appropriate set of rules, a single trigger event can invoke multiple actions, or for a single action to be invoked as a response to events from multiple triggers. A feed is a convenient way to configure an external event source to fire trigger events that can be consumed by Cloud Functions. For example, a Git feed might fire a trigger event for every commit to a Git repository. A package is a bundle of feeds and actions. Integrations with services and event providers can be added with packages. An existing catalog of packages offers a quick way to enhance applications with useful capabilities and to access external services in the ecosystem. External services that have Cloud Functions packages include IBM Cloudant, Slack, and GitHub. For example, a trigger created with an IBM Cloudant change feed configures a service to fire the trigger every time a document is modified or added to an IBM Cloudant database. In this video, you learned that: IBM Cloud Functions is a FaaS service available on IBM Cloud. Namespaces are the overarching entity in which other Cloud Functions entities are stored. Events are channeled through triggers, and rules associate those triggers with the actions that should occur. Packages let you integrate applications with capabilities from external services.