2017 Bitnami. Proprietary and confidential. 2
Our Products
Application Catalog
• 150 applications & dev. runtimes
• Multiple formats: cloud,
container, local VMs, native
installers…
• Trusted, Maintained, Optimized
Stacksmith
• Enterprise cloud migration tool
• Productize Bitnami core technology
• Easily re-platform applications for
cloud
Kubernetes
• Defining packaging & deployment tools
• Key projects : Kubeapps, Kubeless,
Helm
• Key partners: Microsoft, Deis, Heptio,
SAP
A Wide Range of Applications
3
DEVELOPER
TOOLS
APPLICATIONS
INFRA-
STRUCTURE
2017 Bitnami. Proprietary and confidential. 4
What do we do?
Package Deploy Maintain
Components Packages Platforms Updates
5
● Containers
● Kubernetes
● Serverless
Agenda
Containers
Automatically pushed to multiple
repositories
Redis Docker Container
$ docker run -d -e ALLOW_EMPTY_PASSWORD=yes bitnami/redis
7
$ docker run -d -e ALLOW_EMPTY_PASSWORD=yes bitnami/redis
Welcome to the Bitnami redis container
Subscribe to project updates by watching
https://github.com/bitnami/bitnami-docker-redis
WARN ==> You set the environment variable ALLOW_EMPTY_PASSWORD=yes. For
...
redis INFO
nami INFO redis successfully initialized
INFO ==> Starting redis...
...
Kubernetes Helm Charts
Core Maintainers of Charts
Helm principles
A client, a server and a package (aka Chart)
9
Redis Helm Chart
$ helm install stable/redis
10
$ helm search redis
NAME VERSION DESCRIPTION
stable/redis 1.1.1 Open source, advanced key-value store. It is of...
stable/redis-ha 1.0.1 Highly available Redis cluster with multiple se...
stable/sensu 0.2.0 Sensu monitoring framework backed by the Redis ...
$ helm install stable/redis
NAME: kindly-hedgehog
LAST DEPLOYED: Thu Apr 12 11:04:22 2018
NAMESPACE: default
STATUS: DEPLOYED
...
Structure of a Chart
A tarball with a set structure
11
$ helm create redis
Creating redis
$ tree redis
redis
├── Chart.yaml
├── charts
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── ingress.yaml
│ └── service.yaml
└── values.yaml
...
Kubeapps
A Kubernetes application launchpad (including charts)
12
Redis in Kubeapps
13
Using Redis in a Serverless Way
With Kubeless
Strength in Packaging
15
Local
Installers
Virtual
Machines
Cloud Containers Functions/
Serverless
evolution?
Kubeless Architecture
A Kubernetes-native Extension
16
Function in Kubeapps
17
A more complex example (NodeJS)
18
Don’t do this, use secrets
Building a Todo app with “Serverless” Functions
19
Todo app front-end
(react)
Browser
read-all function
update function
create function
etc
REST
API
Todo app routes
● https://github.com/bitnami-labs/redisdemo
20
Todo app routes
kubeless function deploy 
--runtime nodejs8 
--from-file backend/todos-create.js 
--handler todos.create 
--dependencies backend/package.json 
--env REDIS_HOST=gangly-boxer-redis-master 
--env REDIS_PASSWORD=$(kubectl get secret --namespace default
gangly-boxer-redis -o jsonpath="{.data.redis-password}" | base64 --decode) 
create
● https://github.com/bitnami-labs/redisdemo
21
Recommend kubeless 0.7.1 or newer, released this morning
Todo App (Demo)
22
Key Takeaways
Kubeapps & Helm => Great building blocks and community support
Kubeless & Redis => Features in minutes
Try it out:
● https://hub.kubeapps.com
● https://github.com/kubeless
● https://github.com/bitnami-labs/redisdemo
23
RedisConf18 - Using Redis as a Backend in a Serverless Application With Kubeless

RedisConf18 - Using Redis as a Backend in a Serverless Application With Kubeless

  • 2.
    2017 Bitnami. Proprietaryand confidential. 2 Our Products Application Catalog • 150 applications & dev. runtimes • Multiple formats: cloud, container, local VMs, native installers… • Trusted, Maintained, Optimized Stacksmith • Enterprise cloud migration tool • Productize Bitnami core technology • Easily re-platform applications for cloud Kubernetes • Defining packaging & deployment tools • Key projects : Kubeapps, Kubeless, Helm • Key partners: Microsoft, Deis, Heptio, SAP
  • 3.
    A Wide Rangeof Applications 3 DEVELOPER TOOLS APPLICATIONS INFRA- STRUCTURE
  • 4.
    2017 Bitnami. Proprietaryand confidential. 4 What do we do? Package Deploy Maintain Components Packages Platforms Updates
  • 5.
  • 6.
  • 7.
    Redis Docker Container $docker run -d -e ALLOW_EMPTY_PASSWORD=yes bitnami/redis 7 $ docker run -d -e ALLOW_EMPTY_PASSWORD=yes bitnami/redis Welcome to the Bitnami redis container Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-redis WARN ==> You set the environment variable ALLOW_EMPTY_PASSWORD=yes. For ... redis INFO nami INFO redis successfully initialized INFO ==> Starting redis... ...
  • 8.
    Kubernetes Helm Charts CoreMaintainers of Charts
  • 9.
    Helm principles A client,a server and a package (aka Chart) 9
  • 10.
    Redis Helm Chart $helm install stable/redis 10 $ helm search redis NAME VERSION DESCRIPTION stable/redis 1.1.1 Open source, advanced key-value store. It is of... stable/redis-ha 1.0.1 Highly available Redis cluster with multiple se... stable/sensu 0.2.0 Sensu monitoring framework backed by the Redis ... $ helm install stable/redis NAME: kindly-hedgehog LAST DEPLOYED: Thu Apr 12 11:04:22 2018 NAMESPACE: default STATUS: DEPLOYED ...
  • 11.
    Structure of aChart A tarball with a set structure 11 $ helm create redis Creating redis $ tree redis redis ├── Chart.yaml ├── charts ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── deployment.yaml │ ├── ingress.yaml │ └── service.yaml └── values.yaml ...
  • 12.
    Kubeapps A Kubernetes applicationlaunchpad (including charts) 12
  • 13.
  • 14.
    Using Redis ina Serverless Way With Kubeless
  • 15.
    Strength in Packaging 15 Local Installers Virtual Machines CloudContainers Functions/ Serverless evolution?
  • 16.
  • 17.
  • 18.
    A more complexexample (NodeJS) 18 Don’t do this, use secrets
  • 19.
    Building a Todoapp with “Serverless” Functions 19 Todo app front-end (react) Browser read-all function update function create function etc REST API
  • 20.
    Todo app routes ●https://github.com/bitnami-labs/redisdemo 20
  • 21.
    Todo app routes kubelessfunction deploy --runtime nodejs8 --from-file backend/todos-create.js --handler todos.create --dependencies backend/package.json --env REDIS_HOST=gangly-boxer-redis-master --env REDIS_PASSWORD=$(kubectl get secret --namespace default gangly-boxer-redis -o jsonpath="{.data.redis-password}" | base64 --decode) create ● https://github.com/bitnami-labs/redisdemo 21 Recommend kubeless 0.7.1 or newer, released this morning
  • 22.
  • 23.
    Key Takeaways Kubeapps &Helm => Great building blocks and community support Kubeless & Redis => Features in minutes Try it out: ● https://hub.kubeapps.com ● https://github.com/kubeless ● https://github.com/bitnami-labs/redisdemo 23