Slide 1

Slide 1 text

The Lambda Sidecar Pattern for Event-Driven Kubernetes (YMMV) 2022-12-07 by Ken Collins

Slide 2

Slide 2 text

Our Need to Change?

Slide 3

Slide 3 text

🐰 What is AMQP? AKA RabbitMQ, how is it used at Custom Ink?

Slide 4

Slide 4 text

🐰 AMQP@CustomInk -> Topics ♻ ⏳ ♻ ⏳ polling process polling process

Slide 5

Slide 5 text

● Service owns the data being published. ● Other service(s) interested in data create/updates. ● Service does not depend on receipt of data/event. Our AMQP Patterns 🪢

Slide 6

Slide 6 text

● Custom in-house software 11 years old. No active development in 4 years for supporting software like AMQP & EventMachine. ● Infrastructure is not managed nor multi-region. Application integrations are not cloud-native. ● EDA is part of our future-ready platform’s composability, SaaS integration, & real-time data needs. Our Need to Change?

Slide 7

Slide 7 text

Cloud-Native EDA w/Kubernetes ⁉ ● Containerization has always promised us future opportunities. Can we start cashing in on that now? ● Can this be done via simple & viable means? Are the integration capabilities compelling?

Slide 8

Slide 8 text

Cloud-Native EDA w/Kubernetes ⁉

Slide 9

Slide 9 text

Cloud-Native EDA w/Kubernetes ⁉

Slide 10

Slide 10 text

Deep Dive into this Architecture 🤿 Down the C4 Model

Slide 11

Slide 11 text

⛵ Our Custom Kubernetes Tooling

Slide 12

Slide 12 text

GitOps Tooling Flow (Before)

Slide 13

Slide 13 text

GitOps Tooling Flow (Before)

Slide 14

Slide 14 text

Kubernetes for each Project 🦈

Slide 15

Slide 15 text

Typical Kubernetes Project

Slide 16

Slide 16 text

Typical Kubernetes Project

Slide 17

Slide 17 text

With The “Lambda Sidecar” Pattern

Slide 18

Slide 18 text

Kubernetes AWS Resources 🪸

Slide 19

Slide 19 text

For Each EventBridge Rule (simple)

Slide 20

Slide 20 text

Tooling EventBridge Interface

Slide 21

Slide 21 text

GitOps Tooling Flow (Before)

Slide 22

Slide 22 text

GitOps Tooling Flow (After)

Slide 23

Slide 23 text

AWS::Lambda::Function ImageConfig https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-imageconfig.html

Slide 24

Slide 24 text

Runtime Interface Client (RIC) https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html

Slide 25

Slide 25 text

GitOps CloudFormation Snippet

Slide 26

Slide 26 text

GitOps Tooling Flow (After)

Slide 27

Slide 27 text

Diving Deeper

Slide 28

Slide 28 text

Secret Environment Variables? https://external-secrets.io/v0.7.0-rc1/

Slide 29

Slide 29 text

Hello Crypteia & LD_PRELOAD https://github.com/customink/crypteia

Slide 30

Slide 30 text

For Each EventBridge Rule (simple)

Slide 31

Slide 31 text

For Each EventBridge Rule (full)

Slide 32

Slide 32 text

Multiple EventBridge Rules (full)

Slide 33

Slide 33 text

Typical Kubernetes Project (Before)

Slide 34

Slide 34 text

Typical Kubernetes Project (After)

Slide 35

Slide 35 text

Questions & Answers ⛈