Learning apache openwhisk developing open serverless solutions 1st edition michele sciabarrà - The e

Page 1


Visit to download the full and correct content document: https://textbookfull.com/product/learning-apache-openwhisk-developing-open-serverle ss-solutions-1st-edition-michele-sciabarra/

More products digital (pdf, epub, mobi) instant download maybe you interests ...

Serverless Development on AWS: Building EnterpriseScale Serverless Solutions 1st Edition Sheen Brisals

https://textbookfull.com/product/serverless-development-on-awsbuilding-enterprise-scale-serverless-solutions-1st-edition-sheenbrisals/

Learning Apache Kafka, Second Edition Nishant Garg

https://textbookfull.com/product/learning-apache-kafka-secondedition-nishant-garg/

Mastering Azure Serverless Computing Design and Implement End to End Highly Scalable Azure Serverless Solutions with Ease 1st Edition Abhishek Mishra

https://textbookfull.com/product/mastering-azure-serverlesscomputing-design-and-implement-end-to-end-highly-scalable-azureserverless-solutions-with-ease-1st-edition-abhishek-mishra/

Beginning Serverless Computing: Developing with Amazon Web Services, Microsoft Azure, and Google Cloud 1st Edition Maddie Stigler

https://textbookfull.com/product/beginning-serverless-computingdeveloping-with-amazon-web-services-microsoft-azure-and-googlecloud-1st-edition-maddie-stigler/

AI as a Service: Serverless machine learning with AWS 1st Edition Peter Elger

https://textbookfull.com/product/ai-as-a-service-serverlessmachine-learning-with-aws-1st-edition-peter-elger/

Radical Solutions and Open Science An Open Approach to Boost Higher Education Daniel Burgos

https://textbookfull.com/product/radical-solutions-and-openscience-an-open-approach-to-boost-higher-education-daniel-burgos/

Learning

Apache Drill Query and Analyze Distributed Data Sources with SQL 1st Edition Charles Givre

https://textbookfull.com/product/learning-apache-drill-query-andanalyze-distributed-data-sources-with-sql-1st-edition-charlesgivre/

Jorah The Brinnswick Chronicles IV 1st Edition Michele Notaro Notaro Michele

https://textbookfull.com/product/jorah-the-brinnswick-chroniclesiv-1st-edition-michele-notaro-notaro-michele/

Learning Advanced Python by Studying Open Source Projects 1st Edition Li

https://textbookfull.com/product/learning-advanced-python-bystudying-open-source-projects-1st-edition-li/

Learning Apache OpenWhisk

Developing Open Source Serverless Solutions

Michele Sciabarrà

Learning Apache OpenWhisk

Copyright © 2019 Michele Sciabarrà. All rights reserved.

Printed in the United States of America.

Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.

O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com.

Editors: Virginia Wilson and John Devins

Production Editor: Nan Barber

Copyeditor: Christina Edwards

Proofreader: Rachel Head

Indexer: Ellen Troutman-Zaig

Interior Designer: David Futato

Cover Designer: Karen Montgomery

Illustrator: Rebecca Demarest

July 2019: First Edition

Revision History for the First Edition

2019-07-01: First Release

See http://oreilly.com/catalog/errata.csp?isbn=9781492046165 for release details.

The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. LearningApacheOpenWhisk, the cover image, and related trade dress are trademarks of O’Reilly Media, Inc.

The views expressed in this work are those of the author, and do not represent the publisher’s views. While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights.

978-1-492-04616-5

[LSI]

Foreword

Amazon Web Services changed the cloud computing landscape in November of 2014 when it launched a new service called Lambda. It offered developers the intriguing possibility of processing thousands of events concurrently, simply by registering functions as event handlers. With Lambda, functions execute on-demand and scale instantly and costs are proportional to actual resource utilization. This new model of computing was dubbed “serverless” because it let developers eschew all aspects of server-side development and operations—including infrastructure management, resource provisioning, and scaling.

Amazon showed that in the era of managed infrastructure and services, cloud providers can free developers from low-level operational burdens and let them focus on what matters most: delivering real business value to their organizations. Serverless computing is the foundation of a cloud-native transformation that is ongoing in the industry. It is the way cloud applications are being built and will largely be built in the future. There are now more than a trillion functions processed every month on Amazon alone for a wide variety of applications from IoT, web applications, machine learning, and high-performance computing.

At IBM Research, my group took notice of the Lambda announcement, and we quickly realized the value of the serverless promise. So in February 2015, we set out to build a serverless platform for the IBM Cloud. The project was code-named Whisk, as in “to move nimbly and quickly.” It was later branded OpenWhisk when we open-sourced the code to GitHub, nearly a year to the day from our first commit. Today, the project is part of the Apache Software Foundation Incubator and it’s the premiere open-source alternative to Amazon’s Lambda. Apache OpenWhisk is ready for Enterprise workloads and offers a powerful programming model for building entire serverless applications. It powers serverless product offerings from IBM and Adobe, and it’s used in private deployments

in some of Asia’s largest mobile and internet providers. The Apache OpenWhisk community consists of more than 215 contributors from around the world, and is among the top 30 Apache Foundation projects ranked by their GitHub stars. Many of the top OpenWhisk contributors are now also shaping the future of other emerging serverless platforms such as Google’s Knative project, which aims to bring a serverless experience to the increasingly popular Kubernetes platform.

In this book, Michele Sciabarrà delivers a thorough exposition of Apache OpenWhisk tailored to the needs of developers and operators. For developers eager to adopt a serverless methodology, this book explains the emerging computational patterns and current limitations. It also illustrates several examples of applying the technology to solve real-world challenges. For operators who want to deliver a serverless experience for their organizations, Michele carefully reveals the OpenWhisk architecture, and provides a go-to guide for deployment and operations, particularly for a Kubernetesbased deployment.

Michele draws on his own contributions to the Apache OpenWhisk project in writing this book. His work has dramatically improved the performance of serverless functions developed in Go, PHP, Python, Swift, and more. His insightful and practical approach is well-suited to the developer who wants get up to speed quickly in harnessing the power of serverless computing.

For those of us at the frontier of the serverless journey, there is no doubt that we are witnessing the dawn of a new Cloud Computer, with functions at the cornerstone of a new instruction set architecture. This model of computing is powerful and disruptive, and yet much work remains to be done. History has shown that as new computer abstractions emerge, innovation follows.

RodricRabbah

Preface

This book is for developers who want to learn to use Apache OpenWhisk, a mature, multilanguage, serverless development platform. It provides the knowledge needed to build complex, wellstructured, polyglot serverless applications that can be deployed in any cloud or even on-premises.

Why Serverless?

For a long time, companies built their own data centers and bought hardware to install their web applications, mobile backends, or data processing pipelines. But the high costs of building and maintaining data centers eventually led to people renting servers from third parties to reduce costs. Servers are frequently partitioned to “virtual machines,” allowing businesses to pay only for what they need (as opposed to renting a whole server). Eventually, this concept evolved into what today we generically call “the cloud.” The cloud at its core is mostly a “server on demand” service. Modern cloud providers offer a wide range of services but have also become increasingly complex. In particular, one source of this complexity is the need to provision and manage servers. Servers are cattle not easy to raise. They require continuous care and control and must be monitored, cleaned, updated, and occasionally destroyed and rebuilt. Like cattle, they also tend to grow and multiply quickly.

Developers want to forget the server (“serverless”) and develop their application as native citizen of the cloud (“cloud-native”). The focus here is to push the burden of managing the servers onto the shoulders of a platform deployed in the cloud. Most software developers want to upload their code and immediately have it up and running.

As a result, all the major cloud providers now offer some form of Function as a Service that hides the servers and only needs the code

to run—in short, a way to use their cloud serverless.

Why Apache OpenWhisk?

Serverless computing was pioneered by Amazon Web Services (AWS), with its Lambda service. Amazon Lambda is, as you might expect, highly tailored to the AWS offering. However, serverless computing is not (and cannot be) limited to one cloud provider. As a natural consequence, some open source serverless projects have emerged. Today, there are many available platforms for serverless computing, which can run in multiple clouds. The focus of this book is one of those: Apache OpenWhisk.

Apache OpenWhisk was originally developed by IBM but its code base was later donated to the Apache Software Foundation and released under a commercially friendly open source license, the Apache License 2.0. This makes it “seriously” open source, free of commercial limitations, friendly to commercial ventures adopting it, and maintained in the long run.

Because any Apache project has to have a working code base as well as an active community, adopters of Apache software can trust they will not be alone in using it. Also, Apache-supported software has a detailed list of compliance rules allowing everyone to use the released software without risking getting caught in the “noncommercial” traps that some other open source licenses have.

In addition to those advantages of being an Apache project, OpenWhisk is used in production and powers the cloud functions of the IBM Cloud as well as Adobe’s I/O runtime cloud services. Apache OpenWhisk also supports many programming languages, including Node.js, Python, Java, Go, Swift, PHP, and Ruby. More languages are also in the works. In short, it is a stable and sophisticated production-ready serverless platform.

What You Will Learn

This book is for developers, so you need to be familiar with coding and programming languages. The book is split into two parts—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 web development, like HTML. I do not assume you have experience in serverless development.

In this section you will learn how to create OpenWhisk applications from scratch. After exploring the OpenWhisk architecture, we will create a simple contact form for a static website.

Then we’ll explore the CLI and API of OpenWhisk and rebuild the same application in a highly engineered way, splitting it into cooperating actions and applying a bunch of design patterns. You will learn about the building blocks you need to develop your applications along with examples and best practices.

In this book we emphasize the importance of testing, so the first part ends with a chapter entirely devoted to unit testing, mocking, and snapshot testing.

The second part of the book is more advanced, and here I assume you know more programming languages. Two chapters in the second part use Python for coding examples, and another two chapters use Go. We’ll discuss the peculiarities of developing OpenWhisk applications in those programming languages.

In the second part we’ll also explore integration with essential external services such as databases (CouchDB) and messaging queues (Kafka). Last but not least, the final chapter covers installing OpenWhisk in Kubernetes, including the installation of Kubernetes itself. This last chapter is more oriented to system administrators but could also be helpful for those unfamiliar with Linux because it provides step-by-step installation instructions.

Conventions Used in This Book

The following typographical conventions are used in this book:

Italic

Indicates new terms, URLs, email addresses, filenames, and file extensions.

Constant width

Used for program listings, as well as within paragraphs to refer to program elements such as variable or function names, databases, data types, environment variables, statements, and keywords.

Constant width bold

Shows commands or other text that should be typed literally by the user.

Constant width italic

Shows text that should be replaced with user-supplied values or by values determined by context.

TIP

This element signifies a tip or suggestion.

NOTE

This element signifies a general note.

WARNING

This element indicates a warning or caution.

Using Code Examples

Supplemental material (code examples, exercises, etc.) is available for download at https://learning-apache-openwhisk.github.io.

This book is here to help you get your job done. In general, if example code is offered with this book, you may use it in your programs and documentation. You do not need to contact us for permission unless you’re reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O’Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your product’s documentation does require permission.

We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: “LearningApacheOpenWhiskby Michele Sciabarrà (O’Reilly).

Copyright 2019 Michele Sciabarrà, 978-1-492-04616-5.”

If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at permissions@oreilly.com.

O’Reilly Online Learning NOTE

For almost 40 years, O’Reilly Media has provided technology and business training, knowledge, and insight to help companies succeed.

Our unique network of experts and innovators share their knowledge and expertise through books, articles, conferences, and our online

learning platform. O’Reilly’s online learning platform gives you ondemand access to live training courses, in-depth learning paths, interactive coding environments, and a vast collection of text and video from O’Reilly and 200+ other publishers. For more information, please visit http://oreilly.com.

How to Contact Us

Please address comments and questions concerning this book to the publisher:

O’Reilly Media, Inc.

1005 Gravenstein Highway North Sebastopol, CA 95472

800-998-9938 (in the United States or Canada)

707-829-0515 (international or local)

707-829-0104 (fax)

We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at http://bit.ly/learn-apache-openwhisk.

To comment or ask technical questions about this book, send email to bookquestions@oreilly.com.

For more information about our books, courses, conferences, and news, see our website at http://www.oreilly.com.

Find us on Facebook: http://facebook.com/oreilly

Follow us on Twitter: http://twitter.com/oreillymedia

Watch us on YouTube: http://www.youtube.com/oreillymedia

Acknowledgments

I want to say thank you to Rodric Rabbah and Carlos Santana for their support and mentoring. If it were not for them, all I would have ended up with is the single line of code I submitted to fix the Vagrant build on Windows, my first contribution to the OpenWhisk project. Instead, thanks to their support and encouragement, I built a new action proxy that now powers multiple OpenWhisk runtimes, and I ended up writing a book on Apache OpenWhisk.

I also want to thank the reviewers. Carlos and Rodric, of course, were the first to review my early chapters, but Rob Allen, Dragos Dascalita, and Vincent Hou, also provided invaluable suggestions to improve my writing and correct the errors they saw.

Last but not least, I want to thank some members of the Apache community involved with the OpenWhisk project: Dave Grove, Justin Halsall, James Thomas, Markus Thömmes, Matt Rutkowski, Priti Desai, and all the others I’ve forgotten to name here.

Part I. Introducing OpenWhisk Development

In this first part, you are going to learn how to develop OpenWhisk applications. We’ll start with the architecture of the system and the CLI. Then you will use the JavaScript API, debugging techniques, and design patterns developed specifically in JavaScript. JavaScript is undoubtedly one of the most important and widely used programming languages available. It is also the most common language used by frontend developers, those who may need to add backend logic and don’t want to deal with the complexities of managing servers. Most people that use OpenWhisk usually start with JavaScript to keep things simple.

To hit the ground running, we’ll start by developing a simple form application. Once you know the basics, we will rewrite the application using design patterns. We’ll also cover unit testing and “mocking,” used to test software that runs in the cloud.

Chapter 1. Serverless and OpenWhisk Architecture

Welcome to the world of Apache OpenWhisk, an open source serverless platform designed to make it simple to develop applications in the cloud. The project was developed in the open by the Apache Software Foundation, so the correct name is “Apache OpenWhisk,” but for simplicity we’ll use “OpenWhisk” throughout.

Note that “serverless” does not mean “without a server”—it means “without managing the server.” Indeed, we will learn how to build complex applications without being concerned with installing and configuring the servers to run the code; we only have to deal with the servers when we first deploy the platform.

A serverless environment is most suitable for applications needing processing “in the cloud” because it allows you to split your application into multiple simpler services. This approach is often referred to as a “microservices” architecture.

To begin with, we will take a look at the architecture of OpenWhisk to understand its strengths and weaknesses. After that we’ll discuss the architecture itself, focusing on the serverless model to show you what it can and cannot do.

We’ll wrap up this chapter by comparing OpenWhisk with another widely used similar architecture, Java EE. The problems previously solved by Java EE application servers can now be solved by serverless environments, only at a greater scale (even hundreds of servers) and with more flexibility (not just with Java, but with many other programming languages).

Since the project is active, new features are added almost daily. Be sure to check the book’s website for important updates and corrections.

OpenWhisk Architecture

Apache OpenWhisk, as shown in Figure 1-1, is a serverless open source cloud platform. It works by executing functions (called actions) in response to events. Events can originate from multiple sources, including timers, databases, message queues, or websites like Slack or GitHub.

OpenWhisk accepts source code as input that provisions executing a single command with a command-line interface (CLI), and then delivers services through the web to multiple consumers, such as other websites, mobile applications, or services based on REST APIs.

Figure 1-1. How Apache OpenWhiskworks

Functions and Events

OpenWhisk completes its tasks using functions. A function is typically a piece of code that receives some input and provides an output in response. It is important to note that a function is generally expected to be stateless.

Backend web applications are stateful. Just think of a shopping cart application for e-commerce: while you navigate the website, you add your items to the basket to buy them at the end. You keep a state, which is the contents of the cart.

But being stateful is expensive; it limits scalability because you need a place to store your data. Most importantly, you will need something to synchronize the state between invocations. When your load increases, this “state-keeping” infrastructure will limit your ability to grow. If you are stateless, you can usually add more servers because you do not have the housekeeping of keeping the state in sync among the servers, which is complex, expensive, and has limits.

In OpenWhisk, and in serverless environments in general, the functions must be stateless. In a serverless environment you can keep state, but not at the level of a single function. You have to use some special storage that is designed for high scalability. As we will see later, you can use a NoSQL database for this.

The OpenWhisk environment manages the infrastructure, waiting for something important to occur. This something important is called an event. Only when an event happens a function is invoked.

Event processing is actually the most important operation the serverless environment manages. We will discuss in detail next how this happens. Developers want to write code that responds correctly when something happens—e.g., a request from the user or the arrival of new data—and processes the event quickly. The rest belongs to the cloud environment.

In conclusion, serverless environments allow you to build your application out of simple stateless functions, or actionsas they are called in the context of OpenWhisk, that are triggered by events. We will see later in this chapter what other constraints those actions must satisfy.

Architecture Overview

Now that we know what OpenWhisk is and what it does, let’s take a look at how it works under the hood. Figure 1-2 provides a highlevel overview.

Figure 1-2. An example deployment withactions in multiple languages In Figure 1-2, the big container in the center is OpenWhisk itself. It acts as a container of actions. We will learn more about the

container and these actions shortly, but as you can see, actions can be developed in many programming languages. Next, we’ll discuss the various options available.

NOTE

The “container” schedules the actions, creating and destroying them as needed needed, and it will also scale them, creating duplicates in response to an increase in load.

Programming Languages for OpenWhisk

You can write actions in many programming languages. Typically, interpretedprogramming languages are used, such as JavaScript (actually, Node.js), Python, or PHP. These programming languages give immediate feedback because you can execute them without a compilation step. While these are higher-level languages and are easier to use, they are also slower than compiled languages. Since OpenWhisk is a highly responsive system (you can immediately run your code in the cloud), most developers prefer to use those interpreted languages as their use is more interactive.

TIP

While JavaScript is the most widely used language for OpenWhisk, other languages can also be used without issue.

In addition to purely interpreted (or more correctly, compiled-on-thefly) languages, you can also use the precompiledinterpreted languagesin the Java family such as Java, Scala, and Kotlin. These languages run on the Java Virtual Machine (JVM) and are distributed in an intermediate form. This means you have to create a .jarfile to run your action. This file includes the so-called “bytecode”

OpenWhisk executes when it is deployed. A JVM actually executes the action.

Finally, in OpenWhisk you can use compiled languages. These languages use a binary executable that runs on “bare metal” without interpreters or virtual machines (VMs). These binary languages include Swift, Go, and the classic C/C++. Currently, OpenWhisk supports Go and Swift out of the box. However, you can use any other compiled programming language as long as you can compile the code in Linux elfformat for the amd64processor architecture. In fact, you can use any language or system that you can package as a Docker image and publish on Docker Hub: OpenWhisk is able to retrieve this type of image and run it, as long as you follow its conventions.

NOTE

Each release of OpenWhisk includes a set of runtimes for specific versions of programming languages. For the released combinations of programming languages and versions, you can deploy actions using the switch --kind on the command line (e.g., --kind nodejs:6 or --kind go:1.11). For single file actions, OpenWhisk will select a default runtime to use based on the extension of the file. You can find more runtimes for programming languages or versions not yet released on Docker Hub that can be used with the switch --docker followed by the image name.

Actions and Action Composition

OpenWhisk applications are collections of actions. Figure 1-3 shows how they are assembled to build applications.

1-3. Overview ofOpenWhiskaction runtimes

An action is a piece of code, written in one of the supported programming languages (or even an unsupported language, as long as you can produce an executable and package it in a Docker image), that you can invoke. On invocation, the action will receive some information as input.

To standardize parameter passing among multiple programming languages, OpenWhisk uses the widely supported JavaScript Object Notation (JSON) format, because it’s pretty simple and there are libraries to encode and decode this format available for basically every programming language.

The parameters are passed to actions as JSON objects serialized as strings that the action receives when it starts and is expected to process. At the end of the processing, each action must produce a result, which is returned as a JSON object value.

Figure

You can group actions in packages. A package is a unit of distribution. You can share a package with others using bindings. You can also customize a package, providing parameters that are different for each binding.

Action Chaining

Actions can be combined in many ways. The simplest way is chaining them into sequences.

Chained actions use as input the output of the preceding actions. Of course, the first action of a sequence will receive the parameters (in JSON format), and the last action of the sequence will produce the final result as a JSON string. However, since not all the flows can be implemented as a linear pipeline of input and output, there is also a way to split the flows of an action into multiple directions. This feature is implemented using triggers and rules. A triggeris merely a named invocation. By itself a trigger does nothing. However, you can associate the trigger with one or more actions using rules. Once you have created the trigger and associated some action with it, you can firethe trigger by providing parameters.

NOTE

Triggers cannot be part of a package. but they can be part of a namespace, as we’ll see in Chapter 3.

The actions used to fire a trigger are called a feedand must follow an implementation pattern. In particular, as we will learn in “Observer”, actions must implement an Observer pattern and be able to activate a trigger when an event happens.

When you create an action that follows the Observer pattern (which can be implemented in many different ways), you can mark the action as a feed in a package. You can then combine a trigger and a

feed when you deploy the application, to use a feed as a source of events for a trigger (and in turn activate other actions).

How OpenWhisk Works

Now that you know the different components of OpenWhisk, let’s look at how OpenWhisk executes an action.

The process is straightforward for the end user, but internally it executes several steps. We saw before the user visible components of OpenWhisk. We are now going to look under the hood and learn about the internal components. Those components are not visible by the user but the knowledge of how it works is critical to use OpenWhisk correctly. OpenWhisk is “built on the shoulders of giants,” and it uses some widely known and well-developed open source projects.

These include:

Nginx

A high-performance web server and reverse proxy

CouchDB

A scalable, document-oriented NoSQL database

Kafka

A distributed, high-performing publish/subscribe messaging system

All the components are Docker containers, a format to package applications in an efficient but constrained, virtual machine–like environment. They can be run any environment supporting this format, like Kubernetes.

Furthermore, OpenWhisk can be split into some components of its own:

Controller

Managing entities, handling trigger fires, and routing actions invocations

Invoker

Launching the containers to execute the actions

Action Containers

Actually executing the actions

In Figure 1-4 you can see how the processing happens. We are going to discuss it in detail, step by step.

Figure 1-4. How OpenWhiskprocesses an action

NOTE

Basically, all the processing done in OpenWhisk is asynchronous, so we will go into the details of an asynchronous action invocation. Synchronous execution fires an asynchronous action and then waits for the result.

Nginx

Everything starts when an action is invoked. There are different ways to invoke an action:

From the web, when the action is exposed as a web action

When another action invokes it through the API

When a trigger is activated and there is a rule to invoke the action

From the CLI

Let’s call the clientthe subject who invokes the action. OpenWhisk is a RESTful system, so every invocation is translated to an HTTPS call and hits the so-called “edge” node. The edge is actually the web server and reverse proxy Nginx. The primary purpose of Nginx is to implement support for the HTTPS secure web protocol, so it deploys all the certificates required for secure processing. Nginx then forwards the requests to the actual internal service component, the controller.

Controller

Before executing the action, the controller checks whether it can execute the action and initialize it correctly:

1. It needs to be sure it can execute the action, so it must authenticatethe request.

2. Once the origin of the request has been identified, it needs to be authorized, verifying that the subject has the appropriate permissions.

3. The request must be enriched with some additional parameters that, as we will see, are provided as part of action configuration.

To perform all those steps the controller consults the database, which in OpenWhisk is CouchDB. Once validated and enriched, the action is now ready to be executed, so it is sent to the next component of the processing, the load balancer.

Load Balancer

The job of the load balancer, as its name implies, is to balance the load among the various executors in the system, which are called invokersin OpenWhisk.

We already saw that OpenWhisk executes actions in runtimes. The load balancer keeps an eye on the available instances of the action runtime, reuses the existing ones if they are available, or creates new ones if they are needed.

We’ve arrived at the point where the system is ready to invoke the action. However, you cannot just send your action invocation to an invoker, because it may be busy serving another action. There is also the possibility that an invoker has crashed, or even that the whole system has crashed and is restarting.

So, because we are working in a massively parallel environment that is expected to scale, we have to consider the possibility that we will not have the resources we need to execute the action immediately. In cases like this, we have to bufferinvocations. OpenWhisk uses Kafka to perform this action. Kafka is a high-performing “publish and subscribe” messaging system that can store your requests until they are ready to be executed. The request is turned into a message

addressed to the invoker the load balancer chose for the execution. An action invocation is actually turned in an HTTPS request to Nginx; then it internally becomes a message to Kafka.

Each message sent to an invoker has an identifier called the activationID. Once the message has been queued in Kafka, there are two possibilities: a nonblocking and a blocking invocation.

For a nonblocking invocation, the activation id is sent back as the final answer to the request to the client, and the request completes. In this case, the client is expected to come back later to check the result of the invocation.

For a blocking invocation, the connection stays open: the controller waits for the result from the action and sends the result to the client.

Invoker

In OpenWhisk the invoker is in charge of executing the actions. Actions are actually executed by the invoker in isolated environments provided by Docker containers. As already mentioned, Docker containers are execution environments that resemble an entire operating system, providing everything needed to run an application.

So, from the actions perspective, the environment provided by a Docker container looks like an entire computer (just like a VM). However, execution within containers is much more efficient than in VMs, so they are preferred.

NOTE

It would be safe to say that, without containers, serverless environments like OpenWhisk would not be possible.

Docker actually uses imagesto create the containers that execute actions. A runtime is really a Docker image. The invoker launches a

new image for the chosen runtime and then initializes it with the code of the action. OpenWhisk provides a set of Docker images including support for various languages. The action runtimes also include the initialization logic. They support JavaScript, Python, Go, Java, and similar languages.

Once the runtime is up and running, the invoker passes the action requests that have been constructed in the processing so far. The invoker also manages and stores the logs needed to facilitate debugging.

After OpenWhisk completes the processing, it must store the result somewhere. This place is again CouchDB (where configuration data is also stored). Each result of the execution of an action is then associated with the activation ID, the one that was sent back to the client. Thus, the client can retrieve the result of its request by querying the database with the ID.

Client

The processing described so far is asynchronous. This means the client will start a request and forget about it, although it doesn’t leave it behind entirely, because it returns an activation ID as the result of an invocation. As we have seen already, the activation ID is used to store the result in the database after the processing. To retrieve the final result, the client will have to perform a request again later, passing the activation ID as a parameter. Once the action completes, the result, the logs, and other information will be available in the database and can be retrieved.

Synchronous processing is also available. It works the same way as asynchronous processing, except the client will block waiting for the action to complete and retrieve the result immediately.

Another random document with no related content on Scribd:

m’arrangeai pour frôler la table d’hôte et me pencher par-dessus l’épaule de Radius. Je lus le titre du volume. C’était le Château Intérieur, c’est-à-dire un des chefs-d’œuvre où sainte Térèse a rassemblé, pour les âmes vraiment éprises de Notre-Seigneur, les fruits les plus précieux de son expérience. Que Radius eût de la prédilection pour cette Reine des contemplatifs, cela me causa un indicible plaisir. Je m’écriai : — Ah ! vous aimez sainte Térèse !…

Vous avez rudement raison !…

Radius ne s’offusqua pas de mon indiscrétion. Au contraire, il me suivit dehors et nous engageâmes une conversation qui se prolongea une partie de la journée. De là, notre bonne entente, qui, depuis, n’a fait que se consolider.

J’habitais presque en face du Carmel, en haut de cette superbe avenue de vieux platanes qui sort de la ville pour conduire à Charolles, le long du Val d’Or. Tous les matins, j’allais entendre la messe à la chapelle des Clarisses, asile de la Sainte Pauvreté, tabernacle d’holocauste et d’oraison perpétuelle où j’ai reçu quelques-unes des plus grandes grâces dont Dieu ait daigné combler son infime serviteur.

Quoiqu’il logeât à l’autre extrémité de Paray, Radius venait assez souvent à cette messe et ce nous était une occasion d’échanger quelques mots à la sortie. Mais chez moi surtout, nous avions la facilité de causer plus longuement. Toute la journée, Radius était retenu par des occupations fort astreignantes. De mon côté, bien que peu valide, je rédigeais cette vie de Marguerite-Marie qui, disent certaines âmes indulgentes, ne dessert pas trop la mémoire de la Sainte. Dès la nuit tombée, je me mettais au lit, d’abord parce que l’effort cérébral qu’exigeait ce travail difficile me fatiguait beaucoup et aussi pour économiser les frais de chauffage. Car cela se passait aux dernières semaines de la guerre et vers le temps de l’armistice. Le combustible était rare, coûtait cher et l’exiguïté de mes ressources ne me permettait pas de le renouveler à volonté. Je ne

garnissais donc mon poêle que pendant deux ou trois heures par jour au plus.

Radius me rendait visite à peu près tous les soirs. Il s’asseyait à mon chevet et nous dialoguions sur les splendeurs de Dieu, c’est-àdire sur le sujet qui intéresse, avant tout, les âmes de bonne volonté.

Je me souviens d’un colloque où mon ami me parla de la flamme surnaturelle qu’il sentait s’aviver sans cesse en lui. Elle s’épanouissait avec tant d’ardeur, qu’elle le maintenait dans un état de combustion qui allait parfois jusqu’à la souffrance physique.

— Telles sont les marques de l’amour de Jésus, lui dis-je. Tu entres, en ce moment, dans la première phase de la vie illuminative qui s’accompagne toujours d’un embrasement de l’âme si intense que le corps en éprouve les effets. N’étant pas habitué à ce divin calorique, Frère Ane — comme disait saint François d’Assise — proteste. Trouves-tu qu’il ait raison ?

— Pas le moins du monde, répartit Radius, je suis trop heureux de cette souffrance, d’autant qu’elle coïncide avec une allégresse d’âme qui, j’en ai l’intuition, me tient tout proche du Sacré-Cœur

— Non seulement tout proche, repris-je, mais en contact avec Lui. D’ailleurs, ce n’est pas étonnant. C’est par l’action directe, instantanée, exclusive du Sacré-Cœur que s’opéra ta conversion. Il est donc normal qu’il prolonge la Grâce sensible de son effusion en toi. Tu es le disciple d’Emmaüs, après que « ses yeux se furent ouverts ». Comme lui, à cause de Jésus présent dans ton âme, tu t’écries : « Il est venu sur mon chemin ; mon cœur en est tout brûlant dans ma poitrine. » Tu avanceras, tu monteras parmi des joies et des souffrances simultanées et de plus en plus pénétrantes. Car il semble admissible que te voici l’un de ces contemplatifs qui peuvent s’appliquer les exclamations adorantes par quoi se conclut le Gloria de la messe. Tu solus Sanctus, toi, seul, ô mon Dieu, tu es la Sainteté qui me purifie du péché où je croupissais en rébellion contre toi. Tu solus Dominus, toi seul tu es le Maître qui enseigne mon âme obscure en l’illuminant de ta Grâce. Tu solus Altissimus, toi seul, tu es le Très-Haut qui m’attirera des pentes de la montagne

jusqu’au sommet, afin que, si je reste digne de mériter tes complaisances miséricordieuses, j’aspire à l’union dès ici-bas avec ton essence. Oui, ces trois clameurs expriment les bonds successifs de l’âme que Dieu mène par la vie purgative et par la vie illuminative à la vie unitive sur la cime où elle se fond dans la Lumière incréée. Mais ne t’y trompe pas. Si tu es appelé à cette ascension, tu subiras de dures épreuve. Souviens-toi de ce que dit sainte Térèse : « Il ne faut pas envier les contemplatifs car ils paient, par des souffrances indicibles, le privilège de suivre Jésus partout où il va. » Beaucoup s’arrêtent en route et renoncent à persévérer jusqu’à l’auberge d’Emmaüs où Notre-Seigneur romprait le pain avec eux. Seras-tu de ceux-là ?

— Je ne sais, répondit humblement Radius, je sais que j’aime Notre-Seigneur jusqu’à mourir pour Lui s’il était nécessaire et que j’envisage désormais l’existence comme une œuvre de sacrifice.

— Alors, repris-je, il est à conjecturer que, comme je le fais moimême, tu auras des périodes d’hésitation et de défaillance, mais que tu les surmonteras pour reprendre ta route vers la cime, les yeux fixés sur ce soleil incomparable : le Sacré-Cœur. Notre mot d’ordre c’est : espérance invincible…

Ainsi nous échangions nos pensées, et nous y trouvions tant d’attrait que, souvent, il nous arrivait d’oublier la fuite des heures. Pour nous en rendre la notion, il fallait que la cloche, si frêle et si pure, du monastère des Clarisses commençât de sonner Matines. Il était minuit. Nous nous séparions ; et je m’endormais paisiblement sous l’égide des prières de ces saintes Moniales.

LES DEUX RÉCITS DU CURÉ

Hic est vir caritatis cujus pietates non defuerunt.

L

LE CURÉ DE GOUGNY-EN-BIERRE

Les récits qu’on va lire ne sont pas des fictions : ils narrent des faits réels. Mais les personnages qu’ils mettent en scène ayant existé ou existant encore, pour des raisons faciles à comprendre, on a changé quelques noms, et, de même, on a modifié ceux des villages où les événements se sont passés. Pour le surplus, tout est exact et rapporté aussi fidèlement que possible.

L’abbé Moret fut nommé à la cure de Gougny-en-Bierre dans des circonstances assez difficiles. Le prêtre auquel il succédait avait quitté le pays à la suite d’incidents qu’il vaut mieux ne pas spécifier. Et, comme il arrive à la campagne aussi bien qu’à la ville, les habitants de cette grosse commune, déjà peu pratiquants, s’autorisèrent de cette fuite pour décrier le clergé en général et pour s’ancrer dans leurs préventions contre l’Église.

L’évêque du diocèse se rendait compte de l’importance qu’il y avait à désigner pour cette paroisse en perdition un desservant qui fît oublier les souvenirs fâcheux laissés par le précédent titulaire.

Après réflexion et enquête, son choix se porta sur l’abbé Moret. Celui-ci était alors professeur au petit séminaire. Son esprit surnaturel, ses mœurs, ses vertus, son zèle sacerdotal l’avaient fait estimer de tous. Ses collègues l’appréciaient à sa valeur ; ses élèves lui témoignaient une respectueuse affection ; parmi les fidèles, on l’estimait grandement. L’évêque, lui aussi, distinguait ce vaillant serviteur de Jésus-Christ et s’il différa quelque temps de l’envoyer à Gougny-en-Bierre, ce fut parce qu’il hésitait à priver son séminaire d’un éducateur aussi accompli. D’ailleurs, il ne lui imposa pas sa nomination. L’ayant convoqué en audience particulière, il ne lui dissimula point les obstacles spéciaux que présentait l’exercice du ministère dans ce village et il conclut : — Je ne m’adresse pas à

votre obéissance dont je suis sûr ; je vous demande du dévouement et un pénible sacrifice. Le malheureux que vous remplacerez a mis les choses dans un si triste état que le soin de reconquérir à Dieu vos paroissiens exigera de vous une rare abnégation. Si, toutefois, vous avez des motifs de refuser ce poste de combat, je n’insisterai pas, car je vous connais assez pour admettre qu’ils seront sérieux et que vous n’avez en vue que le bien de l’Église. Je vous accorde deux jours de réflexion.

L’abbé Moret employa ce délai à s’examiner devant Dieu. Il m’a dit depuis que la décision lui avait extrêmement coûté à prendre parce qu’il craignait de ne posséder aucunement les qualités propres à réussir dans la tâche qui lui était présentée. Ceci est tout à l’honneur de son humilité, puisque ces dons existaient en lui à un haut degré comme le prouvèrent les résultats qu’il obtint par la suite. Il eut quarante-huit heures d’angoisse et de prières, puis il sentit que son devoir était là et son parti fut pris. Très triste mais plein de résolution, il se rendit chez l’évêque et lui déclara très simplement qu’il acceptait, sans réticences, sa nomination.

Il faudrait un volume pour exposer dans le détail l’apostolat de l’abbé Moret. D’abord la paroisse était fort étendue : neuf cents âmes à Gougny même, plusieurs hameaux dépendant de la commune et situés assez loin les uns des autres, Macherin, un binage à deux kilomètres et comprenant trois cents âmes.

Ensuite, partout, une hostilité affichée ou sournoise. Une poignée de croyants sincères s’affligeaient de constater cette malveillance presque unanime. Mais, timides, paralysés par le respect humain, ils semblaient s’y associer en manquant la messe et en se gardant de mettre les pieds au presbytère. L’abbé Moret sut leur inculquer qu’ils avaient le devoir d’affirmer leur foi et de démontrer par leur exemple qu’il était absurde autant qu’injuste de faire supporter à la religion la peine des fautes commises par un prêtre dévoyé. Il sut si fortement toucher ces âmes en désarroi, stimuler chez elles la piété agissante qu’il eut assez vite un noyau de partisans qui lui devinrent des auxiliaires. Peu à peu son influence s’accrut ; bientôt son labeur continuel et l’ascétisme exemplaire qui réglait sa vie lui amenèrent

nombre de ses paroissiens, même parmi ceux qui s’étaient montrés d’abord les plus récalcitrants. Comme on l’observait de fort près, on ne tarda pas à remarquer que s’il se refusait tout bien-être, son austérité personnelle ne l’empêchait pas de compatir aux souffrances de ses ouailles et de leur montrer une affection sans limites. Le jugement porté sur lui se formula en ces termes : — Notre nouveau curé est dur pour lui-même mais combien il est doux aux autres !

Ce qui contribua beaucoup à lui ouvrir les cœurs c’est qu’ayant apporté avec lui une certaine fortune, il la dépensa jusqu’au dernier sou pour le bien de la paroisse. Non seulement l’église fut réparée et les ornements du culte augmentés et embellis, mais il fonda un dispensaire où des secours, des remèdes et des consultations médicales furent donnés gratuitement aux pauvres. Puis il bâtit un ouvroir et il réussit à y grouper les jeunes filles pour des travaux de couture destinés à des œuvres charitables. Un peu plus tard, il institua pour les jeunes gens une société de tir dont il fournit le matériel.

On n’énumère ici que les plus apparents de ses bienfaits. Mais il importe d’ajouter que ses aumônes atteignirent les détresses les plus cachées, que son dévouement à tous était infatigable et que, ne s’absentant jamais, il employait toutes ses journées et ses veilles à semer l’esprit de l’Évangile dans les âmes dont il se sentait comptable devant Dieu. Sa mansuétude coutumière ne l’empêchait d’ailleurs pas de montrer de la fermeté lorsque la chose était à propos. C’est ainsi qu’il réprima le pharisaïsme de quelques dévotes au vinaigre qui, se croyant mandatées pour censurer les faiblesses du prochain, lui commentaient la chronique scandaleuse de la région. Sourd à leurs ragots, il leur imposa silence et leur fit comprendre qu’elles n’auraient pas d’influence sur lui. Plusieurs lui en gardèrent rancune et ne s’abstinrent pas de le critiquer avec fiel. Mais, pareil à tous les bons prêtres, il supporta ces avanies comme une tribulation propre à développer en lui la vertu de patience.

Tels furent les traits essentiels de son action. Elle se montra efficace au point que dix ans plus tard, même les incrédules

s’écriaient : — Ah ! si tous les curés ressemblaient à l’abbé Moret !…

Les croyants disaient : — Avant lui, la paroisse de Gougny-en-Bierre était comptée parmi les plus irréligieuses du diocèse. Voyez comme il l’a régénérée… Et les fidèles ayant absolument le droit de juger leur clergé à la mesure de son zèle au service de Notre-Seigneur, ils ajoutaient : — Combien devraient l’imiter qui, placés dans des conditions analogues, se contentent de gémir en se croisant les bras et abandonnant tout à vau-l’eau. Que Dieu nous envoie beaucoup d’abbés Moret !…

Le prêtre doit être un homme d’abnégation et de sacrifice perpétuel. S’il se borne à distribuer les sacrements comme un rondde-cuir distribue des papiers administratifs derrière un guichet, il manque à sa vocation. L’abbé Moret n’y manquait pas. Grâce à Dieu, il a encore passablement d’émules dans ce pays de mission que devient de plus en plus la pauvre France. L’inertie sacerdotale reste l’exception. Néanmoins, il n’y aura jamais assez d’apôtres voués ardemment au salut des âmes. Aussi quelle joie l’on éprouve à décrire l’œuvre de l’abbé Moret et avec quel empressement on la met en évidence !

Voici comment je connus ce prêtre de choix. Je résidais à Arbonne, village situé, comme Gougny, contre la lisière ouest de la forêt de Fontainebleau. Six kilomètres environ séparaient les deux communes. Je vivais très solitaire, rédigeant mon livre Du Diable à Dieu et ne sortant que pour monter à la chapelle de Cornebiche qui joua un rôle si décisif dans ma conversion et pour me livrer à de longues promenades sous bois. Ces courses méditatives avaient pour moi un grand charme, d’autant que, depuis toujours, je préfère la société des arbres à celle de la plupart des hommes. Et puis l’oraison s’élève si librement vers Dieu dans le silence de la forêt !

Comme quiconque à la ronde, j’avais entendu parler avec éloge de l’abbé Moret mais je ne le connaissais pas personnellement. Notre première rencontre eut lieu dans un sentier qui traverse le bornage sur le territoire de Macherin. Il venait à ma rencontre, lisant son bréviaire. Quand nous fûmes sur le point de nous croiser, je mis la main au chapeau pour le saluer. Mais il s’arrêta et, ayant oublié sa

montre au presbytère, me demanda l’heure. Je le renseignai puis nous échangeâmes quelques phrases. Il se nomma, je fis de même et il me dit qu’il était au courant du motif de ma retraite en Arbonne. Tout de suite j’éprouvai de la sympathie pour lui et j’ai su que, de son côté, il me prit en gré. J’aimais la pureté lumineuse de son regard magnifiant un visage plutôt ingrat, son élocution virile, sans afféterie ni papelardise, sa science des âmes et surtout sa façon nette de mettre en valeur le sens surnaturel de notre existence sur terre. Je crois pouvoir affirmer qu’en retour, la « sauvagerie » qui me tient à l’écart des agitations mondaines ne lui parut point blâmable. Bref, de ce jour une liaison se forma entre nous. J’allais le voir assez souvent. Et c’est au cours de nos causeries que j’ai recueilli de sa bouche les événements rapportés ci-dessous.

N

Puisqu’au cours des lignes précédentes j’ai nommé Cornebiche, qu’il me soit permis de formuler un éclaircissement au sujet de cette colline où — comme le savent mes lecteurs — s’élève une tour dont l’intérieur contient un autel et que surmonte une statue de la Sainte Vierge. La publication de Du Diable à Dieu y attira et y attire encore un certain nombre de visiteurs. Or, plusieurs personnes m’ont écrit pour s’étonner que le site et ses abords ne correspondissent que partiellement à la description donnée dans mon livre. La chose s’explique pourtant sans peine. En 1906, Cornebiche était fort ignoré. Le sentier qui aboutit au sommet de la colline, tout à fait dégradé, gravissait la pente à travers un pêle-mêle de rocs éboulés et d’arbres tombés. L’escalade en était donc très ardue. De plus la plattière où se trouve la chapelle était parsemée de jeunes bouleaux dont le peu d’élévation ne dissimulait pas le paysage alentour. Mais, depuis, les habitants d’Arbonne ont réparé le sentier, enlevé les obstacles qui le barraient presque à chaque pas. En outre, les bouleaux ont poussé. Ils forment un taillis épais qui arrête le regard à quelques mètres. Il est donc facile de comprendre que ma description, datant d’une vingtaine d’années, ne s’applique plus à l’itinéraire et à l’aspect actuel de Cornebiche.

UNE FEMME PRATIQUE

Une après-midi de printemps, l’abbé et moi, nous déambulions à travers la forêt. Quoiqu’il l’aimât beaucoup, ce n’était pas souvent que mon saint ami pouvait se donner cette récréation. Journellement, les mille occupations où l’absorbait l’exercice fervent de son ministère ne lui laissaient point de loisir. Il fallut même qu’il eût à visiter la femme souffrante d’un garde dont la maisonnette se trouvait à proximité de la futaie du Bas-Bréau pour qu’il consentît à m’accompagner. Son office charitable une fois rempli, je parvins à lui persuader de faire, en ma compagnie, un détour sous les arbres avant de regagner le village par le plus long. Le soleil trempait d’or fluide les frondaisons. Des souffles tièdes caressaient la tendre verdure des feuillages nouveau-nés. Un parfum de miel, avec une fine pointe d’amertume, s’exhalait des aubépines en fleurs. Comme c’était le temps de Pâques, la joie de la Résurrection se mêlait dans nos âmes au plaisir de nous imprégner de la jeune lumière qui se jouait parmi les ramures et de respirer cette atmosphère fortifiante. Je me sentais tout heureux de constater que notre flânerie faisait du bien au cher Curé. Un sang plus vif colorait ses joues d’ordinaire fort pâles ; sa haute taille, un peu voûtée par des fatigues excessives, se redressait ; il marchait d’un pas allègre en échangeant avec moi les plus gais propos.

Comme nous revenions par la belle route, ombragée de hêtres et de chênes centenaires, qui conduit à Fontainebleau, nous vîmes venir à notre rencontre une dame portant un petit panier au bras. Dès qu’elle approcha, je distinguai, à sa toilette et à son chapeau, que ce n’était pas une paysanne en quête de bois mort ou de champignons hâtifs. Elle avançait avec nonchalance et se baissait parfois pour cueillir sur le bord du chemin des campanules et des anémones. Or, aussitôt qu’à quelque distance elle eut reconnu

l’abbé Moret, elle s’arrêta net, se consulta un moment puis, hâtant son allure, se jeta dans un sentier de traverse qui s’enfonçait au cœur du taillis. Il était évident qu’elle fuyait le prêtre.

— Hé, dis-je, monsieur le Curé, voilà une personne qui ne semble pas du tout disposée à vous adresser la parole !

L’abbé Moret eut un sourire triste : — Je la connais bien, dit-il, c’est Mme veuve Marival et j’ai, en effet, des raisons de savoir que ma présence lui est désagréable.

Il se tut et s’absorba dans une rêverie qui lui assombrissait le visage. Conjecturant qu’il y avait là quelque secret ressortissant à sa fonction, je m’abstins de le questionner et nous fîmes quelques centaines de mètres en silence. Alors, esquissant un geste comme pour écarter une idée pénible, le Curé reprit : — Je ne vois pas pourquoi j’hésiterais à vous confier le motif de l’aversion que Mme Marival nourrit à mon égard. La chose ne relève nullement du confessionnal et elle porte sur de déplorables états d’âme. Je vais donc vous la conter en vous priant de n’en point épiloguer dans le pays.

— Cela va sans dire, répliquai-je.

— Il y a quatre ans, commença le Curé, un ménage bourgeois sans enfants, les Marival, arrivant de Paris et ayant acheté une maison confortable à Gougny, s’y installa avec un mobilier qui indiquait de l’aisance. Ils vinrent d’abord assez régulièrement à la grand’messe le dimanche. Ainsi que j’en ai l’habitude pour tous mes paroissiens, à moins que ceux-ci ne me fassent entendre sans ambages qu’ils ne désirent pas de relations avec moi, je me présentai chez les Marival. Je fus reçu d’une manière affable et même empressée par le mari. Quant à la femme, elle ne me témoigna qu’une politesse sèche qui me donna l’impression qu’elle se tenait en garde contre la soutane. Il y avait quelque chose de si méfiant et, à la fois, de si astucieux dans son regard ! A divers indices, je découvris que c’était elle qui exerçait l’autorité dans la maison ; comme on dit vulgairement, « elle portait les culottes ». M. Marival pliait sous elle. Toutefois, s’il ne la contredisait jamais, s’il

semblait approuver les aphorismes sèchement positifs qu’elle émettait, je remarquai qu’il lançait parfois, à la dérobée, de son côté des coups d’œil où se peignait plus de crainte et de timide révolte que d’affection conjugale. Bref, j’eus lieu de me convaincre qu’il devait exister entre eux un sujet de dissentiment qui, pour ne pas s’afficher en public, amenait peut-être des heurts dans le tête-à-tête. Plusieurs faits me confirmèrent, depuis, le bien-fondé de cette induction. Par exemple, au bout de quelques mois Mme Marival ne parut plus à l’église qu’aux grandes fêtes. Encore était-il visible que le souci d’observer les convenances avait plus de part à cette ponctualité très relative que la notion d’un devoir de piété à remplir. En somme, elle rendait au Bon Dieu des visites espacées pour l’apparence de même qu’elle échangeait des politesses cérémonieuses avec les quelques dames notables de la commune. Cela l’ennuyait mais c’était « comme il faut » et faisait partie des conventions sociales. Elle s’y adaptait donc pour ne pas encourir le reproche de singularité. — Rien de plus.

Au contraire, M. Marival devint de plus en plus pratiquant. Non seulement il se montrait fort exact à la messe du dimanche mais j’eus le plaisir de le compter parmi les assistants aux messes de la semaine. La chose se fit assez rapidement. D’abord il occupa son prie-Dieu un ou deux matins, puis ce fut bientôt tous les jours. Son attitude était fort recueillie et j’étais édifié par l’attention avec laquelle il suivait le Saint-Sacrifice. Vous savez : certaines expressions de physionomie ne sauraient leurrer un prêtre nanti de quelque expérience. Cependant j’observai aussi qu’il ne se confessait ni ne communiait. Même point à Pâques. Je m’aperçus également qu’il était toujours triste. Il y avait de l’angoisse et du trouble dans sa prière. Je ne trouvais pas en lui cette sérénité départie à ceux des fidèles qui vivent en paix avec Dieu. On eût dit que cette âme supportait un fardeau écrasant dont elle n’osait pas se débarrasser. Vous pensez bien que je me tenais prêt à lui venir en aide, que j’épiais l’occasion de le faire et que je suppliais le Seigneur de me la fournir. De son côté, M. Marival semblait désireux de me fréquenter davantage. Mais qu’il y mettait de précautions ! Il n’entrait jamais au

presbytère. Lorsque je le rencontrais dans les rues du village, il évitait de me parler. Cette réserve étrange me donnait à croire que sa femme lui avait interdit d’entrer en rapports suivis avec moi et qu’il redoutait d’enfreindre la règle qu’elle lui imposait. D’ailleurs Mme Marival se manifestait de plus en plus hostile à ma personne. Son accueil, quand je me risquais dans son salon, était si revêche que j’aurais pu m’en offenser. D’autre part, M. Marival, tout le temps que durait ma visite, avait l’air au supplice, comme dans l’attente d’une algarade de sa terrible compagne. Pour lui éviter des ennuis, je m’abstins désormais de sonner à leur porte.

Or si, comme obéissant à une consigne, M. Marival se gardait de venir chez moi ou de m’aborder en public, je m’aperçus bientôt qu’il cherchait à m’entretenir sans témoins qui pussent rapporter à sa femme que nous nous abouchions. Soit lorsque j’allais à Macherin vers l’aube, soit lorsque je revenais, au crépuscule, de quelqu’un des hameaux environnants, je le voyais surgir d’un fourré où je crois bien qu’il se blottissait pour me guetter au passage. Parfois il feignait que notre rencontre fût fortuite ; parfois, il ne se mettait pas en peine d’explications. Toujours il offrait une mine embarrassée, mais où je démêlais quand même du plaisir à me parler librement. Inutile de préciser que je me prêtais de mon mieux à son besoin d’expansion. Nous eûmes ainsi plusieurs colloques que je m’efforçais de diriger vers les choses de Dieu. Mais à chacune de mes tentatives, il manifestait de la gêne, détournait l’entretien ou le laissait tomber comme s’il n’avait pas entendu, ou encore, il me quittait brusquement. De toute évidence, son secret ne voulait pas sortir. Il s’était mis en chemin avec l’intention ferme de s’ouvrir à moi puis, au moment de parler, le courage lui faisait défaut et il se verrouillait dans un silence désespéré.

Un soir, pourtant, il sembla prendre son parti comme on se jette à l’eau. A peine m’eut-il rejoint qu’après quelques banalités sur la température, il me dit sans transition : — Monsieur le Curé, quelqu’un que je connais désirerait être renseigné sur un cas de conscience qu’il m’a chargé de vous exposer…

Naturellement, je compris tout de suite qu’il s’agissait de luimême et, à part moi, je ne pus m’empêcher de m’égayer un peu en constatant la naïveté de son subterfuge.

— Je suis tout à votre disposition, répondis-je, et je remercie sincèrement celui qui vous délègue de la confiance qu’il veut bien me témoigner.

Il reprit : — Voici : cet homme possède la foi ; il tâche de prier avec ferveur ; il implore la miséricorde divine mais il sent qu’il ne remplit pas tout son devoir parce qu’un obstacle qu’il ne se résout pas à franchir l’écarte des sacrements. Que doit-il faire ?

Je me recueillis un peu puis je demandai mentalement à Dieu de m’éclairer sur la ligne à suivre et je fus exaucé aussitôt, car il me fut inspiré de lui dire : — Cette âme dans la peine et qui soupire après la délivrance, c’est la vôtre, n’est-ce pas ?

Il eut un sursaut, hésita quelques secondes puis avoua : — Eh bien oui, c’est moi…

— A merveille, continuai-je, la situation est plus nette entre nous et je préfère qu’il en soit ainsi. Je vous dirai donc que, depuis longtemps, votre conduite me rend perplexe. Vous venez, à peu près tous les jours, à la messe ; tout prouve que ce n’est pas pour vous une formalité vaine. Je dois donc vous tenir pour un chrétien plus occupé de Dieu que beaucoup d’autres. Néanmoins, par une inconséquence bizarre, vous vous privez des sacrements alors que, logiquement, vous devriez les rechercher. Plus encore — et cela m’a fort étonné — vous ne faites même pas vos Pâques. Cependant n’ignorez pas que se confesser et recevoir la Sainte-Eucharistie, à cette époque de l’année, c’est un commandement de l’Église auquel tout catholique a le devoir de se conformer

— Je sais cela, reconnut-il à voix basse.

— Alors, pourquoi vous dérober ?

Il porta la main à sa gorge comme s’il étranglait puis il fit un geste de détresse. Combien je le prenais en pitié ! Mais il fallait aboutir.

— Je suis votre ami, poursuivis-je, n’en doutez pas une minute. Soyez sûr également que le caractère dont je suis revêtu et qui fait de moi le serviteur de mes paroissiens m’a préparé à tout entendre et, le cas échéant, à tout absoudre. Je vois qu’une charge excessive vous opprime et je vous supplie d’être convaincu que je donnerais mon sang pour vous l’enlever.

Dieu conférait sans doute à mes phrases l’accent nécessaire, car il fut touché. Des larmes débordaient d’entre ses paupières et il tourna vers moi un regard si plein de gratitude que je crus bien avoir remporté la victoire.

Hélas, pas encore !…

Il se contenta de me dire d’une voix entrecoupée : — Quand on a commis une faute grave et dont les suites ne cessent de léser autrui, il est nécessaire, si je ne me trompe, non seulement de s’en repentir mais de la réparer ?…

— Sans nul doute, répondis-je. Pour que le sacrement de pénitence soit efficace, il faut d’abord avoir la contrition et ensuite, agir de telle sorte que le péché dont nous sollicitons le pardon, nous formions la résolution de ne plus le commettre. Cela dans tous les cas et particulièrement dans celui où ses conséquences nuiraient au prochain. Alors nous devons, autant qu’il nous est possible, supprimer la cause du mal que nous avons fait. Que vaudrait devant

Dieu notre repentir si, à notre escient, le tort dont nous nous sommes rendus coupables envers autrui continuait de produire ses effets ?

— Oui, oui, voilà le point, murmura M. Marival. Puis il se tut et, les yeux baissés, se tordit les mains.

Je crus deviner le motif de ce mutisme et je repris : — Si, pour une raison quelconque, vous ne jugez pas à propos de vous présenter à mon confessionnal, je suis tout prêt à vous adresser à l’un de mes collègues dans l’endroit qui vous conviendra le mieux.

N’ayez aucun scrupule à cet égard : Je ne me formaliserai pas que vous ayez recours à un autre que moi. Je ne désire qu’une chose : c’est que vous vous réconciliez entièrement avec Dieu.

Je pensais l’avoir mis au pied du mur et j’attendais anxieusement sa réponse.

Il m’échappa. Soudain, comme si la perspective de se libérer sans délai le bouleversait à fond, il sembla pris de panique.

— Plus tard !… Plus tard !… s’écria-t-il.

Et, me laissant là, il s’éloigna précipitamment. Puis tout à coup il s’arrêta, comme frappé par une réflexion, fit demi-tour et, revenant vers moi, me jeta : — Ne le dites à personne, à personne que je vous ai parlé…

Je compris que cela signifiait : — Surtout pas à ma femme !

Il se perdit dans l’ombre croissante. Tout déconcerté, je demeurai sur place… Ah ! c’est cela que je ne puis me pardonner. J’aurais dû courir après lui, le rattraper et alors Dieu m’aurait indubitablement inspiré les paroles qui l’auraient persuadé de ne pas différer. Mea culpa, j’ai manqué de résolution… Et j’en fus puni, comme vous allez voir.

Le lendemain, M. Marival n’assista pas à la messe. Le jour d’après, les rumeurs du village m’informèrent qu’il était tombé malade et gardait le lit. Je n’en fus pas extrêmement surpris car, lors de notre dernière rencontre, sa pâleur et l’altération de ses traits m’avaient inquiété. Le regret d’avoir perdu l’occasion de soulager cette pauvre âme dans l’angoisse me tourmentait et m’empêchait de dormir. Je me jurai de tout faire pour pénétrer jusqu’à lui.

Donc, un matin, sitôt ma messe dite, j’allai tout droit chez les Marival. Ne me faisant guère d’illusions quant à la nature des sentiments que me portait la femme, je n’espérais pas trop un tête-àtête avec le mari. Du moins, il me verrait et aurait la consolation de se dire que je ne l’oubliais pas. Et puis, malgré tout, qui sait si Dieu ne lui donnerait pas la force d’exiger qu’on me laissât seul avec lui ? Malheureusement, les choses se passèrent d’une façon toute différente.

A peine eus-je sonné que Mme Marival en personne vint m’ouvrir. On ne m’ôtera pas de l’esprit qu’elle se tenait à l’affût de ma visite et qu’elle s’était préparée en conséquence.

Elle se campa dans l’embrasure, les coudes écartés, comme pour me barrer le passage. Sans me donner le temps d’ouvrir la bouche, la mine rogue, les yeux allumés d’une flamme haineuse, elle me dit, d’un ton coupant comme une bise de décembre : Monsieur le Curé, vous venez voir mon mari ?… C’est inutile ; son état réclame le plus grand calme. Et, d’ailleurs, il ne vous a pas demandé.

— Mon Dieu, Madame, répondis-je, loin de moi l’idée de lui causer quelque agitation. Cependant, êtes-vous bien sûre que, tout au contraire, ma présence et, si possible, quelques mots échangés avec moi ne lui procureraient pas ce calme dont je crois, comme vous, qu’il a le plus grand besoin ? Je vous promets de ne pas le fatiguer par une trop longue entrevue.

Elle me toisa d’un air de défi sardonique. Et cette expression de physionomie signifiait clairement : — Tu voudrais bien le confesser. Mais tu n’y arriveras pas. Je suis là pour t’en empêcher.

De vive voix, elle se contenta de répéter : — Il n’a pas demandé à vous voir ; vous n’entrerez pas !…

Que faire ? Je ne pouvais entamer, sur ce seuil, une discussion que, selon toute probabilité, elle n’eût pas hésiter à pousser au scandale. Déjà, des voisines, étonnées de son attitude agressive, nous regardaient avec curiosité. Dieu sait les commentaires qui eussent suivi si j’avais insisté d’une façon trop acerbe !

Simplement, je repris : — Je me retire, Madame, en souhaitant que Dieu vous envoie la pensée de me faire appeler avant qu’il soit trop tard.

Mme Marival ne souffla mot. Mais dans le sourire vraiment démoniaque qui lui tordait les lèvres tandis qu’elle refermait la porte, je lus ceci : — Si tu comptes que je te ferai appeler, tu peux attendre !…

Que se passait-il dans cette âme enténébrée pour qu’elle se montrât si opiniâtre à m’interdire le chevet de son mari ?… Les jours qui suivirent, je me fatiguai l’esprit à retourner ce problème. Et je m’attristais toujours davantage, ayant l’intuition nette que M. Marival

aurait été soulagé de me voir et de se confier à moi. Il me semblait inadmissible qu’un homme, dont je connaissais la foi, se sentant en danger de mort, n’éprouvât pas le désir de se préparer au Jugement de Dieu lorsqu’il en était encore temps.

Si seulement Mme Marival s’était absentée, ne fût-ce qu’une heure, j’en aurais profité pour m’introduire dans la maison : la servante était pieuse et je ne crois pas qu’elle m’aurait refusé l’entrée. Mais je ne pus avoir recours à cet expédient. Tant que dura la maladie de M. Marival, sa femme ne mit pas le pied dehors. Et c’était si bien un plan arrêté chez elle d’isoler son mari qu’elle n’admit aucune de ses relations dans la chambre à coucher, qu’elle ne prévint nul de leurs parents et qu’elle ne fit même pas appeler le médecin. On eût dit qu’elle redoutait de la part du moribond des révélations sur des choses qu’elle tenait essentiellement à garder secrètes. Cette séquestration étrange fit jaser. Mais elle ne parut pas s’en émouvoir. Deux ou trois de ces curieuses qui cherchent toujours à connaître les tenants et aboutissants de l’existence d’autrui, pour en alimenter leurs caquets, risquèrent des visites sous prétexte de prendre des nouvelles de ce « pauvre Monsieur », comme elles disaient. Mme Marival les reçut dans l’antichambre, leur répondit brièvement qu’il s’agissait d’une indisposition assez bénigne et ne cacha pas sa hâte de les congédier. Elles se retirèrent fort déçues. Et les langues de marcher !

Au bout d’une semaine, je ne sais par quel canal, le bruit se répandit que cette indisposition soi-disant sans gravité prenait décidément une mauvaise tournure. On disait que M. Marival était au plus bas et ne passerait sans doute pas la nuit.

Je ne pus y tenir. Il fallait, coûte que coûte, que je fisse une nouvelle tentative pour pénétrer jusqu’à lui. C’était mon devoir et j’étais absolument décidé à le remplir, dussé-je essuyer les insolences de cette femme.

Je me rendis donc à la maison Marival. Je sonnai. On ne vint pas ouvrir. Je réitérai avec plus d’insistance. Le résultat fut identique. A l’intérieur, pas un mouvement ; c’était comme si le logis eût été inhabité. Je me reculai un peu et j’examinai la façade. Alors, à une

fenêtre close du premier étage, j’aperçus le profil de Mme Marival. Elle soulevait le rideau de biais et glissait avec précaution un regard sur la rue. Elle parut contrariée que je l’eusse découverte et elle allait se retirer lorsque, y mettant toute l’énergie dont j’étais capable, je lui fis signe de m’ouvrir. Elle secoua négativement la tête, puis quitta la fenêtre aussitôt.

Qu’essayer d’autre ? Je ne pouvais pourtant pas enfoncer la porte !… Je retournai chez moi la tête basse et je multipliai les prières pour l’âme dont on me refusait aussi obstinément l’accès…

M. Marival mourut vers trois heures de l’après-midi, le lendemain. Et tout se passa selon la coutume. Je fis la levée du corps ; il y eut du monde pour suivre le cercueil à l’église et au cimetière. Un seul détail me causa quelque distraction tandis que je récitais les dernières oraisons devant la fosse ouverte. Mme Marival se tenait à trois pas de moi, droite et impassible. A un moment, je levai les yeux sur elle et ce que je perçus me fit tressaillir. A la surface, son visage offrait comme un vernis d’affliction étalé là par bienséance. Mais, endessous, je ne pus m’empêcher d’y découvrir une expression de joie maligne qui lui crispait la bouche. Et, de plus, elle fixait sur le cercueil un regard de triomphe où papillotait une lueur positivement diabolique. J’aurais juré que sa pensée était celle-ci : — Enfin, il est mort sans avoir parlé à personne… Quelle délivrance !

La cérémonie terminée, elle se retira sous l’escorte de quelques officieuses et sans m’avoir dit un mot. Mais, le soir, un incident se produisit qui m’éclaira sur les mobiles du drame et sur les actes de cette femme si volontaire dans le mal. J’étais au presbytère quand on vint me dire que Joséphine — la servante des Marival demandait à me voir. Je la fis entrer aussitôt et voici notre dialogue. J’en ai gardé le souvenir très présent — il y avait de quoi.

Joséphine était fébrile. Je la sentis à la fois bouleversée de chagrin, désireuse de me révéler des choses obsédantes et retenue par la crainte de s’attirer des ennuis. Cependant, comme je la reçus d’une façon tout affable, elle parut se rassurer un peu : — Monsieur le Curé, me dit-elle, je viens vous demander une messe pour le repos de l’âme de M. Marival. Je vous serais bien reconnaissante de

la célébrer le plus tôt possible. Elle répéta : Bien, bien reconnaissante. Et, en insistant de la sorte, elle avait une inflexion de voix plus émue que ne le comportait une requête aussi simple.

— Mais très volontiers, répondis-je, je constate avec plaisir que vous regrettez votre maître. Il était bon pour vous, n’est-ce pas ?

— Oui, oui, certainement oui, mais ce n’est pas seulement cela. Il y a Madame…

Ici, elle s’arrêta net. L’extrême prudence, allant parfois jusqu’à la dissimulation, qui caractérise l’âme paysanne m’était trop familière pour que je marquasse de la hâte à l’interroger. Toute curiosité trop appuyée l’eût fait battre en retraite. Je me contentai donc de lui demander posément si c’était elle-même ou Mme Marival qui désirait cette messe.

Joséphine eut alors une sorte de ricanement douloureux comme pour me faire entendre qu’il était absurde de supposer chez sa patronne une intention de ce genre. Puis elle reprit :

— Ah ! non, ce n’est pas Madame qui m’envoie !

Et, soudain, ne parvenant plus à se contenir, elle ajouta : — Madame, elle est trop contente d’être débarrassée du pauvre Monsieur !…

— Prenez garde, dis-je un peu sévèrement, il ne faut pas porter de jugements téméraires.

— Ce n’est pas ce que je fais, s’écria Joséphine, mais quand je repense ce qui s’est passé dans cette maison, je ne puis pas rester tranquille.

Puis, d’un seul trait, emportée par l’indignation, elle poursuivit : — Dix fois, monsieur le Curé, dix fois, M. Marival vous a réclamé pour se confesser. Madame faisait la sourde. Telle qu’elle est, ce n’est pas commode de se mêler de ses affaires. Qui s’y risque ne recommence pas souvent. Pourtant ça me remuait si fort d’entendre ce pauvre Monsieur se tourmenter ainsi que je finis par proposer de vous aller quérir.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.