Share E-Book

Learning Apache OpenWhisk Developing Open Serverless Solutions (Michele Sciabarrà)(Z-Library)

Author Michele Sciabarrà

Web Technology
Language English

Serverless computing greatly simplifies software development. Your team can focus solely on your application while the cloud provider manages the servers you need. This practical guide shows you step-by-step how to build and deploy complex applications in a flexible multicloud, multilanguage environment using Apache OpenWhisk. You’ll learn how this platform enables you to pursue a vendor-independent approach using preconfigured containers, microservices, and Kubernetes as your cloud operating system. Michele Sciabarrà demonstrates how to build a serverless application using classical design patterns and the programming language or languages that best fit your task. You’ll start by building a simple serverless application hands-on before diving into the more complex aspects of the OpenWhisk platform. • Examine how OpenWhisk’s serverless architecture works, including the use of packages, actions, sequences, triggers, rules, and feeds • Learn how OpenWhisk compares to existing architectures, such as Java Enterprise Edition • Manipulate OpenWhisk features using the command-line interface or a JavaScript API • Design applications using common Gang of Four design patterns • Use architectural design patterns such as model-view-controller to combine several OpenWhisk actions • Learn how to test and debug your code in a serverless environment

Format EPUB
Size 8.6 MB
97
Views
0
Downloads
0.00
Total Donations

AI Guide

AI Reading Assistant

Whole-book reading guide from stratified index samples; jump to passages in the text

Full assistant
AI guide
# Learning Apache OpenWhisk: Developing Open Serverless Solutions ## 【One-Line Pitch】 A hands-on, developer-focused guide to building serverless applications with Apache OpenWhisk, covering everything from basic architecture to advanced design patterns and Kubernetes deployment. Ideal for JavaScript developers new to serverless computing who want a vendor-independent, open-source alternative to AWS Lambda. ## 【Book Arc】 - **Opening (~0%–9%)**: Introduces the serverless paradigm and OpenWhisk's origins at IBM, its donation to the Apache Software Foundation, and its production use at IBM Cloud and Adobe. Establishes why open-source serverless matters for avoiding vendor lock-in. - **Early (~16%–28%)**: Sets up the book's structure—a two-part journey starting with JavaScript fundamentals and progressing to advanced topics. Outlines prerequisites (JavaScript, basic web development) and previews coverage of CLI, API, design patterns, testing, and Kubernetes deployment. - **Early (~34%–38%)**: Explains core serverless concepts: stateless functions (called "actions" in OpenWhisk), event-driven invocation, and the architectural components including the controller, invoker, and action containers. Discusses supported programming languages from interpreted (Node.js, Python, PHP) to JVM-based (Java, Scala, Kotlin). - **Middle (~44%–47%)**: Details OpenWhisk's building blocks—packages for grouping and sharing actions, sequences for linear chaining, triggers and rules for event-driven flows, and feeds implementing the Observer pattern. Explains JSON-based parameter passing and the internal architecture built on Nginx, CouchDB, Kafka, and Docker containers. - **Middle (~53%)**: Continues into execution internals, covering how the load balancer manages invokers, reuses or creates action runtime instances, and handles scaling under load. ## 【Key Takeaways】 - **Serverless means no server management, not no servers** (Early): The cloud provider handles infrastructure, provisioning, and scaling, letting developers focus on business logic. This is the foundational mindset shift for all OpenWhisk development. - **OpenWhisk is a serious open-source alternative to AWS Lambda** (Early): Apache License 2.0, production-proven at IBM and Adobe, with multi-language support including Node.js, Python, Java, Go, Swift, PHP, and Ruby. This makes it viable for enterprise and multicloud strategies. - **Actions must be stateless** (Early): Stateful functions limit scalability due to synchronization overhead. In serverless, state belongs in external scalable storage like NoSQL databases, not in individual functions. - **Events trigger everything** (Early): OpenWhisk waits for events—user requests, new data—and invokes actions in response. Event processing is the core operation the platform manages. - **JSON is the universal interface** (Middle): Parameters pass to actions as JSON objects serialized as strings; results return as JSON. This standardization enables multi-language action development within a single application. - **Composition patterns enable complex applications** (Middle): Sequences chain actions linearly; triggers and rules split flows into multiple directions; packages group actions for distribution with customizable bindings. - **Feeds implement the Observer pattern** (Middle): Actions marked as feeds can activate triggers when events occur, enabling event sources to drive action execution in a decoupled way. - **The platform runs on proven open-source components** (Middle): Nginx (web server), CouchDB (NoSQL database), Kafka (messaging), all packaged as Docker containers—making OpenWhisk deployable on Kubernetes and similar environments. ## 【Reading Tips】 - **Skim the foreword and introduction** (~0%–9%): These set context but contain little technical content. Jump to Chapter 1 for the architecture overview. - **Deep-read the architecture chapter** (~34%–47%): Understanding actions, packages, sequences, triggers, rules, and feeds is essential—everything else builds on these concepts. Pay special attention to the statelessness requirement and JSON parameter passing. - **Treat the internal execution details** (~47%–53%) as reference material: You don't need to memorize the controller/invoker/load balancer flow to write applications, but knowing it helps debug performance issues and understand scaling behavior. - **The book assumes JavaScript for Part I** (~16%–28%): If you're comfortable with JavaScript and basic web development, you can move quickly through the introductory material. Part II assumes knowledge of Python and Go for specific chapters. - **The final Kubernetes chapter is for operators** (~19%): If you're purely a developer, you can skim or skip it; if you're deploying OpenWhisk yourself, it provides step-by-step installation guidance. ## 【Coverage Limits】 This guide covers the book's opening through the middle sections (~53%), focusing on architecture fundamentals and core concepts. The excerpts do not cover the detailed design patterns chapters, testing strategies, multi-language specifics (Python/Go), database and messaging integration, or the Kubernetes deployment chapter—these appear in later sections of the book. ##

Passage locations

Excerpt 1
rchased for educational, business, or sales promotional use. Online editions are also available for most titles ( http://oreilly.com ). For more information,...
View in text
Excerpt 2
—the first part is introductory and the other more advanced. In the first part, I assume you only know the JavaScript programming language and the basics of...
View in text
Excerpt 3
an “without a server”—it means “without managing the server.” Indeed, we will learn how to build complex applications without being concerned with installing...
View in text
Excerpt 4
are called a feed and must follow an implementation pattern. In particular, as we will learn in “Observer” , actions must implement an Observer pattern and b...
View in text

Recommended for You

Loading recommended books...
Failed to load, please try again later

Tip the Site

Scan the WeChat Pay or Alipay code to tip. No login required.

WeChat Pay
Alipay
Back to List