SlideShare a Scribd company logo
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Deploying Distributed Databases and
In-Memory Computing Platforms with Kubernetes
Stephen Darlington
Senior Consultant
GridGain Systems
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Agenda
Deployment with
Kubernetes
Memory-Only
Deployments
Stateful
Deployments
Management
and Monitoring
Demo
Q&A
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Kubernetes
is…
…an open-source system for automating
deployment, scaling, and management of
containerized applications.
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Apache Ignite
is…
…a memory-centric
distributed database, caching,
and processing platform for transactional,
analytical, and streaming workloads delivering in-
memory speeds at petabyte scale.
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Memory-Centric Storage
Scale to 1000s of Nodes & Store TBs of Data
Ignite Native Persistence
(Flash, SSD, Intel 3D XPoint)
Third-Party Persistence
Keep Your Own DB
(RDBMS, HDFS, NoSQL)
SQL Transactions Compute Services MLStreamingKey/Value
IoTFinancial
Services
Pharma &
Healthcare
E-CommerceTravel &
Logistics
Telco
Apache Ignite Overview
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Our challenges
Server or VM
JVM
Node
Server or VM
JVM
Node
Server or VM
JVM
Node
Server or VM
JVM
Node
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Deployment with Kubernetes
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Distributed Database Details
• Database is a set of pods
– IPs are assigned dynamically
– Auto-discovery is needed
• Applications Deployment
– Within Kubernetes?
– Not managed by Kubernetes
• Stateless or Stateful?
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Database Pods Auto-Discovery
• Kubernetes Lookup Service
– Tracks a list of all Ignite pods
– Gateway for remote apps
• Kubernetes IP Finder
– Consumes IPs from the service
– Let’s node to join the cluster
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Service Startup
© 2018 GridGain Systems, Inc. GridGain Company Confidential
IP Finder Configuration
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Shared Configuration
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Ignite Memory Usage Modes
Mode Description Major Advantage
In-Memory Pure In-Memory Storage
Maximum perfomance possible
(data is never written to disk)
In-Memory + 3rd Party DB
Caching layer (aka. in-memory data grid)
for existing databases – RDBMS, NoSQL, etc
Horizontal scalability
Faster reads and writes
In-Memory + Full Copy on Disk The whole data set is stored both in memory and on disk Survives cluster failures
100% on Disk + In-Memory Cache
100% of data is in Ignite native persistence and
a subset is in memory
Unlimited data scale
beyond RAM capacity
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Ignite as Kubernetes Deployment Entity
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Stateful Deployments
• Durability With StatefulSet
– Data persistence to disk
– Ordered restarts
• Separate Volumes for
– Data and indexes
– WAL (aka Transaction Log)
– Snapshots and backups
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Cluster Activation
• Manual Activation on First Start
• Automatic Activation on Restarts
– Baseline topology usage
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Management and Monitoring
© 2018 GridGain Systems, Inc. GridGain Company Confidential
K8 Dashboard and Ignite Web Console
• Kubernetes Dashboard
– For Kubernetes environment
• Ignite Web Console
– For Ignite cluster
– Deploy Web Agent in K8
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Demo
© 2018 GridGain Systems, Inc. GridGain Company Confidential
More information
• ignite.apache.org
• apacheignite.readme.io/docs/kubernetes-
deployment
• github.com/apache/ignite
– modules/kubernetes
© 2018 GridGain Systems, Inc. GridGain Company Confidential
Thank you for joining us. Follow the conversation.
https://ignite.apache.org
https://gridgain.com/
Any questions?
@sdarlington
#apacheignite
@gridgain
#gridgain

More Related Content

PPTX
On Cloud Nine: How to be happy migrating your in-memory computing platform to...
PDF
Troubleshooting Apache® Ignite™
PPTX
In-Memory Computing Essentials for Architects and Engineers
PDF
In memory computing principles by Mac Moore of GridGain
PPTX
Apache Ignite: In-Memory Hammer for Your Data Science Toolkit
PPTX
In-Memory Computing Essentials for Software Engineers
PDF
Apache Spark and Apache Ignite: Where Fast Data Meets IoT
PDF
Apache Spark vs Apache Spark: An On-Prem Comparison of Databricks and Open-So...
On Cloud Nine: How to be happy migrating your in-memory computing platform to...
Troubleshooting Apache® Ignite™
In-Memory Computing Essentials for Architects and Engineers
In memory computing principles by Mac Moore of GridGain
Apache Ignite: In-Memory Hammer for Your Data Science Toolkit
In-Memory Computing Essentials for Software Engineers
Apache Spark and Apache Ignite: Where Fast Data Meets IoT
Apache Spark vs Apache Spark: An On-Prem Comparison of Databricks and Open-So...

What's hot (20)

PPT
Migrating legacy ERP data into Hadoop
PPTX
An Introduction to Apache Ignite - Mandhir Gidda - Codemotion Rome 2017
PDF
OSDC 2017 - Christos Erotocritou - Apache ignite in-memory data fabric
PPTX
Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...
PDF
Building a Cross Cloud Data Protection Engine
PDF
Db2 event store
PPTX
Octo and the DevSecOps Evolution at Oracle by Ian Van Hoven
PDF
A Gentle Introduction to GPU Computing by Armen Donigian
PDF
How TrafficGuard uses Druid to Fight Ad Fraud and Bots
PDF
RedisConf18 - Redis on Google Cloud Platform
PDF
KubeCon 2017 - Kubernetes SIG Scheduling and Resource Management Working Grou...
PDF
How to Avoid Disasters via Software-Defined Storage Replication & Site Recovery
PDF
Building a Real-Time Gaming Analytics Service with Apache Druid
PDF
#GeodeSummit - Large Scale Fraud Detection using GemFire Integrated with Gree...
PPTX
BI on Big Data with instant response times at Verizon
PPTX
Azure data lakes
PPTX
Extending Twitter's Data Platform to Google Cloud
PPTX
Cost of Ownership for Hadoop Implementation
PPTX
There are 250 Database products, are you running the right one?
PPTX
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
Migrating legacy ERP data into Hadoop
An Introduction to Apache Ignite - Mandhir Gidda - Codemotion Rome 2017
OSDC 2017 - Christos Erotocritou - Apache ignite in-memory data fabric
Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...
Building a Cross Cloud Data Protection Engine
Db2 event store
Octo and the DevSecOps Evolution at Oracle by Ian Van Hoven
A Gentle Introduction to GPU Computing by Armen Donigian
How TrafficGuard uses Druid to Fight Ad Fraud and Bots
RedisConf18 - Redis on Google Cloud Platform
KubeCon 2017 - Kubernetes SIG Scheduling and Resource Management Working Grou...
How to Avoid Disasters via Software-Defined Storage Replication & Site Recovery
Building a Real-Time Gaming Analytics Service with Apache Druid
#GeodeSummit - Large Scale Fraud Detection using GemFire Integrated with Gree...
BI on Big Data with instant response times at Verizon
Azure data lakes
Extending Twitter's Data Platform to Google Cloud
Cost of Ownership for Hadoop Implementation
There are 250 Database products, are you running the right one?
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
Ad

Similar to Deploying Distributed Databases and In-Memory Computing Platforms with Kubernetes (20)

PDF
Apache Ignite - Distributed Database Orchestration
PPTX
Distributed Database DevOps Dilemmas? Kubernetes to the Rescue
PPTX
How we broke Apache Ignite by adding persistence
PDF
How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...
PDF
Spark Summit EU talk by Christos Erotocritou
PDF
Improving Apache Spark™ In-Memory Computing with Apache Ignite™
PDF
Nike tech-talk-intro-to-apache-ignite
PPTX
Apache Spark and Apache Ignite: Where Fast Data Meets the IoT
PDF
Data Summer Conf 2018, “Apache Ignite + Apache Spark RDDs and DataFrames inte...
PDF
Getting Started with Apache Ignite as a Distributed Database
PDF
“Building consistent and highly available distributed systems with Apache Ign...
PDF
Fast, In-Memory SQL on Apache Cassandra with Apache Ignite (Rachel Pedreschi,...
PPTX
IMC Summit 2016 Breakout - Nikita Ivanov - Shared In-Memory RDDs – Missing Li...
PDF
Apache Ignite: In-Memory Hammer for Your Data Science Toolkit
PDF
OSDC 2018 | Apache Ignite - the in-memory hammer for your data science toolki...
PPTX
Apache Ignite - Distributed SQL Database Capabilities
PDF
Comparing Apache Ignite and Cassandra for Hybrid Transactional/Analytical Pro...
PDF
Machine learning and deep learning with Apache Ignite
PDF
Fast Data with Apache Ignite and Apache Spark with Christos Erotocritou
PPTX
Apache ignite v1.3
Apache Ignite - Distributed Database Orchestration
Distributed Database DevOps Dilemmas? Kubernetes to the Rescue
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...
Spark Summit EU talk by Christos Erotocritou
Improving Apache Spark™ In-Memory Computing with Apache Ignite™
Nike tech-talk-intro-to-apache-ignite
Apache Spark and Apache Ignite: Where Fast Data Meets the IoT
Data Summer Conf 2018, “Apache Ignite + Apache Spark RDDs and DataFrames inte...
Getting Started with Apache Ignite as a Distributed Database
“Building consistent and highly available distributed systems with Apache Ign...
Fast, In-Memory SQL on Apache Cassandra with Apache Ignite (Rachel Pedreschi,...
IMC Summit 2016 Breakout - Nikita Ivanov - Shared In-Memory RDDs – Missing Li...
Apache Ignite: In-Memory Hammer for Your Data Science Toolkit
OSDC 2018 | Apache Ignite - the in-memory hammer for your data science toolki...
Apache Ignite - Distributed SQL Database Capabilities
Comparing Apache Ignite and Cassandra for Hybrid Transactional/Analytical Pro...
Machine learning and deep learning with Apache Ignite
Fast Data with Apache Ignite and Apache Spark with Christos Erotocritou
Apache ignite v1.3
Ad

Recently uploaded (20)

PDF
System and Network Administraation Chapter 3
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
L1 - Introduction to python Backend.pptx
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
System and Network Administration Chapter 2
PPT
Introduction Database Management System for Course Database
PDF
medical staffing services at VALiNTRY
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
AI in Product Development-omnex systems
PDF
Understanding Forklifts - TECH EHS Solution
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
System and Network Administraation Chapter 3
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Navsoft: AI-Powered Business Solutions & Custom Software Development
L1 - Introduction to python Backend.pptx
Softaken Excel to vCard Converter Software.pdf
Design an Analysis of Algorithms I-SECS-1021-03
System and Network Administration Chapter 2
Introduction Database Management System for Course Database
medical staffing services at VALiNTRY
VVF-Customer-Presentation2025-Ver1.9.pptx
Upgrade and Innovation Strategies for SAP ERP Customers
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
AI in Product Development-omnex systems
Understanding Forklifts - TECH EHS Solution
How to Choose the Right IT Partner for Your Business in Malaysia
Odoo Companies in India – Driving Business Transformation.pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems

Deploying Distributed Databases and In-Memory Computing Platforms with Kubernetes

  • 1. © 2018 GridGain Systems, Inc. GridGain Company Confidential Deploying Distributed Databases and In-Memory Computing Platforms with Kubernetes Stephen Darlington Senior Consultant GridGain Systems
  • 2. © 2018 GridGain Systems, Inc. GridGain Company Confidential Agenda Deployment with Kubernetes Memory-Only Deployments Stateful Deployments Management and Monitoring Demo Q&A
  • 3. © 2018 GridGain Systems, Inc. GridGain Company Confidential Kubernetes is… …an open-source system for automating deployment, scaling, and management of containerized applications.
  • 4. © 2018 GridGain Systems, Inc. GridGain Company Confidential Apache Ignite is… …a memory-centric distributed database, caching, and processing platform for transactional, analytical, and streaming workloads delivering in- memory speeds at petabyte scale.
  • 5. © 2018 GridGain Systems, Inc. GridGain Company Confidential Memory-Centric Storage Scale to 1000s of Nodes & Store TBs of Data Ignite Native Persistence (Flash, SSD, Intel 3D XPoint) Third-Party Persistence Keep Your Own DB (RDBMS, HDFS, NoSQL) SQL Transactions Compute Services MLStreamingKey/Value IoTFinancial Services Pharma & Healthcare E-CommerceTravel & Logistics Telco Apache Ignite Overview
  • 6. © 2018 GridGain Systems, Inc. GridGain Company Confidential Our challenges Server or VM JVM Node Server or VM JVM Node Server or VM JVM Node Server or VM JVM Node
  • 7. © 2018 GridGain Systems, Inc. GridGain Company Confidential Deployment with Kubernetes
  • 8. © 2018 GridGain Systems, Inc. GridGain Company Confidential Distributed Database Details • Database is a set of pods – IPs are assigned dynamically – Auto-discovery is needed • Applications Deployment – Within Kubernetes? – Not managed by Kubernetes • Stateless or Stateful?
  • 9. © 2018 GridGain Systems, Inc. GridGain Company Confidential Database Pods Auto-Discovery • Kubernetes Lookup Service – Tracks a list of all Ignite pods – Gateway for remote apps • Kubernetes IP Finder – Consumes IPs from the service – Let’s node to join the cluster
  • 10. © 2018 GridGain Systems, Inc. GridGain Company Confidential Service Startup
  • 11. © 2018 GridGain Systems, Inc. GridGain Company Confidential IP Finder Configuration
  • 12. © 2018 GridGain Systems, Inc. GridGain Company Confidential Shared Configuration
  • 13. © 2018 GridGain Systems, Inc. GridGain Company Confidential Ignite Memory Usage Modes Mode Description Major Advantage In-Memory Pure In-Memory Storage Maximum perfomance possible (data is never written to disk) In-Memory + 3rd Party DB Caching layer (aka. in-memory data grid) for existing databases – RDBMS, NoSQL, etc Horizontal scalability Faster reads and writes In-Memory + Full Copy on Disk The whole data set is stored both in memory and on disk Survives cluster failures 100% on Disk + In-Memory Cache 100% of data is in Ignite native persistence and a subset is in memory Unlimited data scale beyond RAM capacity
  • 14. © 2018 GridGain Systems, Inc. GridGain Company Confidential Ignite as Kubernetes Deployment Entity
  • 15. © 2018 GridGain Systems, Inc. GridGain Company Confidential Stateful Deployments • Durability With StatefulSet – Data persistence to disk – Ordered restarts • Separate Volumes for – Data and indexes – WAL (aka Transaction Log) – Snapshots and backups
  • 16. © 2018 GridGain Systems, Inc. GridGain Company Confidential Cluster Activation • Manual Activation on First Start • Automatic Activation on Restarts – Baseline topology usage
  • 17. © 2018 GridGain Systems, Inc. GridGain Company Confidential Management and Monitoring
  • 18. © 2018 GridGain Systems, Inc. GridGain Company Confidential K8 Dashboard and Ignite Web Console • Kubernetes Dashboard – For Kubernetes environment • Ignite Web Console – For Ignite cluster – Deploy Web Agent in K8
  • 19. © 2018 GridGain Systems, Inc. GridGain Company Confidential Demo
  • 20. © 2018 GridGain Systems, Inc. GridGain Company Confidential More information • ignite.apache.org • apacheignite.readme.io/docs/kubernetes- deployment • github.com/apache/ignite – modules/kubernetes
  • 21. © 2018 GridGain Systems, Inc. GridGain Company Confidential Thank you for joining us. Follow the conversation. https://ignite.apache.org https://gridgain.com/ Any questions? @sdarlington #apacheignite @gridgain #gridgain

Editor's Notes

  • #2: Thank you open stack Thanks for coming Good to be in berlin… museum of technology, Konrad Zeus, Z1 programmable computer
  • #3: The buzzfeed version: the three tricks you need to install a compute/data grid using Kubernetes… the third will amaze you! But first, let’s define some terms.
  • #4: You know what kubernetes is… but what about in-memory compute platforms? We’re going to be talking about Ignite, but there are others that are similar
  • #5: Let’s dig down into what that really means and what it means for Kubernetes
  • #7: Lots of nodes That all need to be able to find each other Share configuration Non-shared storage (even memory only config not all nodes are fungible, but for persistence for logs, for persistent data) Dynamically add/remove nodes – without affecting the data!
  • #9: Traditionally you’d have one or more ”compute” pods (MySQL) plus some fixed disk That would kinda work for Ignite but missing the point Also, scale horizontally… all nodes equal (no master) but in charge of different data… so not equal! But no master means they need to be able to find each other
  • #10: Kubernetes already knows about nodes (pods) All we need is a little glue to link them together
  • #11: apiVersion: v1 kind: Service metadata: name: ignite namespace: ignite spec: type: LoadBalancer ports: - name: rest port: 8080 targetPort: 8080 - name: sql port: 10800 targetPort: 10800 - name: thinclients port: 10900 targetPort: 10900 selector: app: ignite
  • #12: <bean class="org.apache.ignite.configuration.IgniteConfiguration"> <property name="discoverySpi"> <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> <property name="ipFinder"> <bean class=” org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder"> <!-- Assumed that RBAC is configured for `ignite` namespace. --> <property name="namespace" value="ignite"/> </bean> </property> </bean> </property> </bean>
  • #13: kubectl create configmap ignite-config --from-file=example-kube.xml
  • #15: In-Memory Use Case:  in-memory caches, in-memory data grids, in-memory computations, web-session caching, real-time processing of continuous data streams. 100% on Disk + In-Memory Cache – ideal for HTAP because it doesn’t make sense to store analytical data sets in RAM or raw data for ML/DL models.
  • #16: Example here just uses a deployment, you might prefer be explicit about using a ReplicaSet Singleton instance like MySQL (persistent volume, MySQL pod, service) ReplicaSet – “should be used when your application is completely decoupled from the node” “every container is identical and replaceable” (which is true for memory-only but not for persistent) DaemonSet – “should be used when a single copy of your application must be run on all or a subset of nodes in the cluster” Dynamic Volume Provisioning (with Azure for example, using StorageClass) StatefulSet (stable in 1.9, ~ a year ago) Persistent hostname with a unique index Created and deleted in order Singleton instance like MySQL (persistent volume, MySQL pod, service) ReplicaSet – “should be used when your application is completely decoupled from the node” “every container is identical and replaceable” (which is true for memory-only but not for persistent) DaemonSet – “should be used when a single copy of your application must be run on all or a subset of nodes in the cluster” Dynamic Volume Provisioning (with Azure for example, using StorageClass) StatefulSet (stable in 1.9, ~ a year ago) Persistent hostname with a unique index Created and deleted in order apiVersion: extensions/v1beta1 kind: Deployment metadata: name: ignite-cluster spec: replicas: 2 template: metadata: labels: app: ignite spec: containers: - name: ignite-node image: apacheignite/ignite:2.6.0 env: - name: OPTION_LIBS value: ignite-kubernetes - name: CONFIG_URI value: URL_TO_CONFIG ports: ...
  • #17: Singleton instance like MySQL (persistent volume, MySQL pod, service) ReplicaSet – “should be used when your application is completely decoupled from the node” “every container is identical and replaceable” (which is true for memory-only but not for persistent) DaemonSet – “should be used when a single copy of your application must be run on all or a subset of nodes in the cluster” Dynamic Volume Provisioning (with Azure for example, using StorageClass) StatefulSet (stable in 1.9, ~ a year ago) Persistent hostname with a unique index Created and deleted in order
  • #18: Singleton instance like MySQL (persistent volume, MySQL pod, service) ReplicaSet – “should be used when your application is completely decoupled from the node” “every container is identical and replaceable” (which is true for memory-only but not for persistent) DaemonSet – “should be used when a single copy of your application must be run on all or a subset of nodes in the cluster” Dynamic Volume Provisioning (with Azure for example, using StorageClass) StatefulSet (stable in 1.9, ~ a year ago) Persistent hostname with a unique index Created and deleted in order apiVersion: apps/v1 kind: StatefulSet metadata: name: ignite namespace: ignite spec: selector: matchLabels: app: ignite serviceName: ignite ... volumeMounts: - mountPath: "/data/ignite" name: ignite-storage volumeClaimTemplates: - metadata: name: ignite-storage spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi
  • #19: kubectl exec -it ignite-0 --namespace=ignite -- /bin/bash cd /opt/ignite/apache-ignite-fabric/bin/ ./control.sh --activate
  • #25:   [1] http://globenewswire.com/news-release/2018/07/09/1534470/0/en/The-Apache-Software-Foundation-Announces-Annual-Report-for-2018-Fiscal-Year.html [2] https://blogs.apache.org/foundation/entry/apache-in-2017-by-the
  • #26: Try to get the demo app and slides on the web