Welcome to the Punch product documentation for the Ella 7.x release.
To understand how to read this documentation, take a look at its structure !
The punch Ella 7.x is still a beta release. It introduces a major evolution towards a native kubernetes platform.
The punch is a ready-to-go-production kubernetes native data analytics solution. It is built on a foundation of key open source technologies such as opensearch/opendashboard, flink, spark and kafka, all packaged together with a number of business modules in a single well-documented and supported distribution.
The punch is unique in a way that it gives users the ability to design data processing pipelines (called punchlines) using simple configuration files, in fact Kubernetes Custom Resource Definition.
Punchlines cover a wide range of functional use cases : data collection and transport from edge to central platforms, data parsing, filtering and enrichment, real-time alerting, or machine learning. Combined with cutting edge data visualisation capabilities, multi-tenancy and security, the punch lets you go on to production today, on cloud or on-premise infrastructures.
Cybersecurity, system or application monitoring, predictive analysis are typical punch sweet spots. It can serve virtually all types of business verticals: retail, healthcare, manufacturing, financial services, government.
How does the punch cover all these use cases ? Is it yet another big data distribution ? Not quite. The punch is designed with two main design drivers.
- it is built on top on top of few technologies carefully selected for their swiss-army-knife capabilities. Examples are Elasticsearch (more precisely the opensearch distribution), Clickhouse, S3 Minio, Spark.
- these are fully integrated together with additional punch capabilities on top of a ops-friendly Kubernetes runtime.
The punch focuses on making it simple. A rich material is provided for you to discover, learn, train or be trained by the punch team. Here is a quick highlight of the available tools.
Checkout out the getting started and training chapter. These are freely available online.
Why the Punch ?¶
For a simple reason : with a smart integration of a few powerful technologies, you can deal with a lot of industrial use cases at the speed of light. For example here is how you could process events from rail system equipments (on board, on the stations), and design a Saas central platform to let a number of your customers (called Partners here) visualise their monitoring data, receive alerts, or simply subscribe to or extract their data for their own usage.
Have fun discovering the punch unique value proposal. Thanks for visiting our site !
Concepts: Punchlines and Plans¶
A punchline is a data processing pipeline expressed using a simple yaml file. More precisely that file represent a Kubernetes Custom Resource Definition. To start, status or stop a punchline you simply submit that CRD to your target Kubernetes cluster. The only requirement is to equip that cluster with the puchline operator.
The strength of punchlines is to leverage several execution engines (flink, spark, storm and a punch proprietary engine) using the same CRD format. This males it easy to design SQL-, python- or ML- java or python pipelines using simple yaml files.
A plan is a cron job that submits a templated application (typically a punchline). Compared to a simple kubernetes CronJob, plans guarantee that the scheduled applications will process the data from where the last successful execution; despite failure.
Alltogether, plans and punchlines enables you to model complex data processing solution with a mix of ever running and periodically scheduled applications.
You can achieve implementing plans using workflow engines such as argo. Although possible (we tried), plans are a significantly simpler and compact.
Overview & Value Proposition¶
The punch is a set of package you can download,install and deploy. Support and professional services are available as well, feel free to contact us. To go through the Punch rationale and understand its unique offering, start here:
Want to participate ? Welcome, checkout out our Contributing Guide
Why Ella ?¶
Ella Jane Fitzgerald (April 25, 1917 – June 15, 1996) was an American jazz singer. She made her stage debut on November 21, 1934, at the legendary Apollo Theatre in Harlem - on the amateur night. Originally, Ella had planned a dance number, but when she found herself wearing cast-offs and an old pair of men's boots and faced with the venue's notoriously opinionated crowd, stage fright struck. The crowd began to boo, there was a shout of "what are you going to do?" And so she started to sing. By the end of her number, the crowd was roaring for an encore.
Her voice was flexible, wide-ranging, accurate and ageless. From the start, Ella displayed a voracious work ethic. A journalist who interviewed her a number of times noted: "The graciousness, the kindness, the enthusiasm have always been there. But so has the self-doubt."
“The First Lady of Song,” Ella Fitzgerald was the most popular female jazz singer in the United States for more than half a century.
If you need to present the punch, prefer using the online documentation. In case you really need slides (do you ? really ? why ?) use the following:
Slides are always late and contain older content. Stick to the online documentation instead.
Make sure to understand the structure of the documentation. This should save you a lot of time finding what you're looking for !
The main pages are organised in Guides. Each guide is designed for a specific type of user.
The Deployment Guide : Targets a user deploying a platform. Everything about deployment should be included in this guide. In other words, someone who needs to deploy a platform should follow these instructions and be done with it, and someone who already have a deployed platform should not have to use this guide.
The Operation Guide : Targets an admin with a deployed plaform. This is mainly about configuration, admin procedures and post-deployment operations. A simple end-user should not have to look into this guide.
The User Guide : Targets an end-user with a deployed and configured platform. This should include everything about the platform usage, features descriptions, monitoring, etc... This is the main guide for the end-user.
The Development Guide : Targets a user developing on top of the punch, using the punch development tools (api, punch language, etc...).
The Contribution Guide : Targets a punch developper. This guide includes all the rules and practices a developper has to follow when contributing to the punch.
FAQ / Troubleshooting / Tips¶
Some "quick answers" pages are also provided. Each of them serves a specific purpose :
FAQ : You have a simple question about the product or a feature. This should answer your question, without providing a full tutorial. It may contain a link to the pages containing the full tutorial.
Troubleshooting : You faced an issue. This should contains the explanation and the quick resolution to this issue.
Tips : Some simple tips any user can read. These are not tutorials, only some quick advices to improve user experience.
The Product section including some useful information about the product, such as Test reports, roadmaps, release notes...