Slide 1

Slide 1 text

T o m e r G a b e l Kraków, 15-17 May 2019 // Not Your Grandmother’s On-Prem T o m e r G a b e l Porto, April 28th 2022 //

Slide 2

Slide 2 text

What’s all this, then? • “On-premise” • Used to be taken literally: “at the customer’s location” • This is no longer relevant • Most customers don’t own their own data center • Most customers don’t own their own hardware • Most customers don’t even lease long-term • Customers are likely running “on someone else’s prem” • A more useful interpretation: • “Running on hardware outside of my control”

Slide 3

Slide 3 text

Let’s get it out in the open… • On-prem is a swear-word these days • For good reasons! • Are they, though? • It’s 2022 • Much has changed • And I’ve recently wrapped a 6-month on-prem project • Let me tell you all about it!

Slide 4

Slide 4 text

Who or what am I? • Freelance software engineer • Been around the block • Up and down the stack • For a bunch of companies you’ve heard of • Old and grumpy

Slide 5

Slide 5 text

Yeah. So, on-prem

Slide 6

Slide 6 text

Why is it hard? SaaS On-Prem Release process Simple Complex Direct control Full, in-house Limited, involving 3rd parties Concurrently-deployed versions Small, finite set Potentially many Staff In-house and cooperative 3rd party

Slide 7

Slide 7 text

Why is it hard? Coordination 🤬

Slide 8

Slide 8 text

Why do this to yourself? • We all love SaaS • It’s the future, they said • They were right

Slide 9

Slide 9 text

Why do this to yourself? • We all love SaaS • But in some cases, it’s just not an option • Regulatory concerns (e.g. medical information) • Security considerations (e.g. critical infrastructure) • Physical constraints (e.g. no internet connectivity) • And sometimes it’s not practical • When you actually sell infrastructure • When your customers simply won’t buy SaaS

Slide 10

Slide 10 text

On-prem, Evolved

Slide 11

Slide 11 text

On the shoulders of giants • SaaS was a radical new paradigm 20 years ago • New tools evolved to support the ecosystem • Can we leverage these tools on-prem? Hypervisors Deploy heterogenous software in isolation Public cloud Programmable, elastic production hardware Containers Simple software packaging and distribution Container orchestrators Abstract execution environment

Slide 12

Slide 12 text

Yes we can.

Slide 13

Slide 13 text

First, a dose of reality • All on-prem projects aren’t created equal • What are your constraints? • Data persistence/retention Your network On-prem Your system Licensing Integrations Telemetry Persistent Storage?

Slide 14

Slide 14 text

First, a dose of reality • All on-prem projects aren’t created equal • What are your constraints? • Data persistence/retention • Cluster vs single host Your network On-prem Your system You? You? You? Licensing Integrations Telemetry

Slide 15

Slide 15 text

First, a dose of reality • All on-prem projects aren’t created equal • What are your constraints? • Data persistence/retention • Cluster vs single host • Cloud vs colo Your network VPC Your system Licensing Integrations Telemetry Cloud Provider Storage Identity Messaging DB

Slide 16

Slide 16 text

First, a dose of reality • All on-prem projects aren’t created equal • What are your constraints? • Data persistence/retention • Cluster vs single host • Cloud vs colo • Networking Your network On-prem Your system Licensing Integrations Telemetry Persistent Storage

Slide 17

Slide 17 text

Let’s talk tooling

Slide 18

Slide 18 text

Docker • It’s a godsend • Yeah, I know. Issues and nitpicks • BUT! • Consistent packaging • Consistent artifact hosting • Consistent operational model • Composes well • Reusable in all scenarios

Slide 19

Slide 19 text

docker-compose • Multiple components, single host • Lightweight orchestration • Dead-simple • Doesn’t get enough credit! • Composes really well with…

Slide 20

Slide 20 text

Virtual Machine Images • VMs are awesome: • Self-contained package • Consistent platform (-ish) • Consistent deployment model • Supported everywhere • Private/public cloud • Publish as VM image with marketplace offerings

Slide 21

Slide 21 text

Container orchestration • If you have to run on multiple hosts… • My condolences • It’s going to be hard • Kubernetes/Nomad can help • Especially if utilizing EKS/AKS/GKE • A huge subject requiring its own talk

Slide 22

Slide 22 text

Public cloud FTW • Do your customers run on AWS, Azure, GCP et al? • Awesome! You get loads built-in • Delivery mechanism (VMs) • Secure integration with customer resources (data stores etc.) • Reduced operational burden via available services • SLA and regulatory guarantees that are not your problem • Customer buy-in ahead of time!

Slide 23

Slide 23 text

Monitoring • SaaS observability tools • Great if you can use them! • Trusted 3rd party services • Secure and auditable access • Low operational burden • Predictable OpEx • A much easier sell!

Slide 24

Slide 24 text

Going oldschool • If you can’t ”call home”… • Log shipping is the only way to go • Experience makes for good logs • No silver bullet. Sorry! • Some mitigations • If on cloud, object store + temporary ACLs may help • Zoom/Meet/etc. “remote control” features are amazing

Slide 25

Slide 25 text

Case study

Slide 26

Slide 26 text

Product X • Unfortunately defunct • But that means I can talk about it! • A multi-component production system • Python 3.9 • Redis cache • PostreSQL • Front-end static bundle • External integration points

Slide 27

Slide 27 text

Constraints Customers running on public cloud (initially AWS, Azure) Completely isolated: no inbound or outbound traffic Deployment owned by a business analyst team • Very limited technical knowhow • Uncooperative ops department 01 02 03

Slide 28

Slide 28 text

Choices Single host (to start with) docker-compose • Lightweight and works • Easy to instruct on operation • Reusable for testing VM image published on marketplace Utilizes cloud RDBMS, blob store Packer targeting CentOS 7.9 01 02 03 04 05

Slide 29

Slide 29 text

What Worked Well • Trivial setup process • Initial VM deployment with a few clicks via marketplace • Fully integrated with customer’s identity/security • Trivial upgrades • Leveraging Docker tags • Little or no technical know-how required!

Slide 30

Slide 30 text

Challenges • Ops/SRE expertise • Many disparate tools (Packer, Docker, systemd…) • Multiple targets (AWS/Azure) • Lots of ”glue logic” with shell scripts • Support and diagnostics • No 3rd parties allowed • No direct access to server/database/logs

Slide 31

Slide 31 text

In Conclusion

Slide 32

Slide 32 text

Takeaways • The tools that enable SaaS are a boon for on-prem • Public clouds make for compelling on-prem targets • VMs and Docker make deployment almost painless • Supporting on-prem is surprisingly easy with: • 3rd party observability tools (logging, APM) • Modern communication tools (Zoom et al)

Slide 33

Slide 33 text

Not Your Grandmother’s On-Prem 1. On-prem is harder than SaaS 2. Modern tools make it quite painless 3. Be not afraid!

Slide 34

Slide 34 text

tomer@substrate.co.il @tomerg https://github.com/holograph Thank you for listening Questions?