https://go.dok.community/slack
https://dok.community
ABSTRACT OF THE TALK
Kubernetes is massively powerful, but there are still a large number of details that are needed to get right before really leveraging to build a robust data infrastructure. I'll dive into the complexities we've uncovered at Plural and how we're solving them, from cloud configuration to observability to managing upgrade lifecycles.
BIO
Career backend engineer turned tech founder
2. Confidential & Proprietary 2
Operationalizing Data Infrastructure on Kubernetes
Who We Are
Application Delivery Platform for Kubernetes
We’ve bundled around 50 common OSS solutions for
deployment on kubernetes, mostly focusing on data
infrastructure
Have run data stacks in kubernetes in all major clouds
and Equinix metal, for a variety of customers
Engineer with tours at Amazon, Twitter (Vine),
Frame.io and Facebook
Now CTO at Plural.sh
Lots of experience both developing and operating
large scale distributed systems
Michael Guarino
CTO & Co-founder
3. Confidential & Proprietary
What is the Data Stack
Operationalizing Data Infrastructure on Kubernetes
Visualization
Orchestration
Batch Processing
Datawarehouse/Datalake
Security
Service mesh
Network policies
3
4. Confidential & Proprietary
How We’re Doing Things
Operationalizing Data Infrastructure on Kubernetes
We use Kubernetes for all orchestration
Powerful helm ecosystem with prebuilt packages for many of our
needs
Eliminates expensive managed infrastructure as much as possible
Operational unification for disparate stacks on disparate clouds
GitOps For Everything
Operational Tooling should be web-based
Easiest on-ramp to train new engineers
Fastest response time if something goes wrong
4
5. Confidential & Proprietary
Biggest Challenges We’ve Seen
Operationalizing Data Infrastructure on Kubernetes
Managing Upgrade Cycles
Major dependency complexity Validation + testing of new versions
K8s upgrades - super hard and impacts everything Tracking security patches *
Security Hardening
All web interfaces need secure login
(hard because OSS often doesn’t support this)
Software supply chain management
Scan images
Vendor as many images as possible (esp to avoid dockerhub)
Network security internal to cluster
Service meshes seem to not deliver on their promise still
Integration of different tools is tricky
Shared network layer is critical here
(why we like running single-cluster)
Example:
↔
5
6. Confidential & Proprietary
Misconceptions
Operationalizing Data Infrastructure on Kubernetes
Scale is hard
With the right infra, honestly pretty
tractable. Most scaling tasks are
literally just turning a dial now
Autoscaling can still be tricky
If you’re running multi-region
transactional, distributed databases
maybe tricky
Figuring out how to run
most OSS data stacks are
hard
If you learn a pretty small set of tools,
we can usually get something running
in a day
Virtually everything has an ok-ish helm
chart
Kubernetes itself is hard
API is sprawling, but realistically only
10-20% is needed to grok
Make an opinionated toolchain
choice to simplify management
Use a managed control plane
IS hard in on-prem environments
where networks are irregular
6
7. Incredible cost savings
Managed infra often at 40%+ markup
to compute, and if you’re doing large
scale batch processing, this is a huge
amount of overhead
Confidential & Proprietary
What Benefits We’ve Seen
Operationalizing Data Infrastructure on Kubernetes
Much simpler security
model
Everything in a hardened network, no
worries about privacy/compliance
Ends up being operationally
simpler when you scale out to
multiple solutions
Can create a single management console
for your entire stack
Upgrade flow all consolidated in one system
Data gravity is a much harder problem than
application deployment
7
8. Shameless Plug
If you’re interested in playing around with this
model, Plural does make it just a few commands
away. We’d love to see you guys play with the
platform or even contribute:
app.plural.sh docs.plural.sh github discord
Confidential & Proprietary
Operationalizing Data Infrastructure on Kubernetes
8