Kubernetes for App Developers
Aaron Schlesinger
Velocity San Jose, June 12, 2019
Let’s Talk About Personas
Before April 2018
Eng Mgr, Azure Containers
Co-Chair, SIG-Service-Catalog
Since Then
Azure Cloud Advocate
Ops Person ➡️ App Developer
Definition
App Developer
Kubernetes Is Frustrating
Undifferentiated Tech 101
Reconciler?
What’s an app in Kubernetes?
Conceptual Overload & Context Switching
All This To Deploy Your First App?
Sidenote on YAML
Case Studies
Databases
Provision the DB
Store the Password
Inject it into the app
And do it on all on $CLOUD_PROVIDER
Migrations
Run migration before all app starts?
Run migration in an init container?
Run a migration job?
The Athens Project
Extracting Patterns
Easy to start
Add services piecemeal
Help with configs
Provision + secure secrets
Encode things
tango
A thought experiment
tango install
docker.Setup()
helm init
jaeger.Setup()
ingress.Setup()
...
tango init
It looks like you’re trying to use Kubernetes
I can help with that
tango deploy
docker build && docker push
set_up(monitoring, tracing, canary_deploys)
do_deploy(wait=true)
tango duplicate
❇️ Duplicate app but not config
❇️ … to another environment
❇️ Preview deploys, multi-cluster rollouts
tango delete
❇️ Un-deploy an app
❇️ (Optionally) un-init the project
tango service
provision(service=$SERVICE, in=$CLOUD)
Host/Credentials ➡️ $SECURE_PLACE
$SECURE_PLACE ➡️ app
Extraction
Not Invention
Fission
fission function create
fission route add
curl
… CNCF Ecosystem 💯
FaaS, Canary, Blue/Green, A/B deploys, traffic splitting, cookie-based routing, debugging, container & cluster security, tracing, service meshes, monitoring, alerting, ...
‼️ Personas ‼️
Business logic first
Compose tools