SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
Databases & Containers:
From Development to
Deployment
Powering New Opportunities at Scale
2
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
■  Containers + Databases = Happy Developers
■  Ephemerical Containers + Databases = DevOps headaches
■  Data Redundancy
■  Need more than one copy of the Data
■  Database Self Discovery & Cluster formation
■  Manual / Scripted configurtion of Database Cluster
■  Database Self Healing (as containers enter and leave)
■  Manual / Scripted re-configurtion of Database Cluster
■  Application Tier discovery of Database
■  Manual / Scripted re-routing of Application Traffic
Conclusion
3
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Existing Architectures Are Broken
Challenges
•  Complex
•  Maintainability
•  Durability
•  Consistency
•  Scalability
•  Cost ($)
•  Data Lag
Caching Layer
Operational Database
Real-time
Consumer Facing
Pricing /
Inventory / Billing
Real-time
Decisionin
g
Streaming
Data
Legacy Database
(Mainframe)
RDBMS
Database
Transactional
Systems
Enterprise Environment
Legacy
RDBMS
HDFS BASED
4
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Existing Deployment Models Are Broken
4
Developer
Version
control
1. Development 2. Test 3. Stage / Production
QA / QE Sysadmin
5
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Infrastructure Cannot be Fully Utilized
TRADITIONAL DATABASE
OS FILE SYSTEM
PAGE CACHE
BLOCK INTERFACE
SSD HDD
What You Have
BLOCK INTERFACE
SSD SSD
OPEN NVM
SSD
DATABASE
MEMORY SYSTEM
•  Direct device access
•  Large Block Writes
•  Indexes in DRAM
•  Highly Parallelized
What You Want
6
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
■  Containers
■  Encapsulation
■  Deployment
■  Isolation
■  Databases
■  Persistence
■  Scalability
■  Self-organizing / Self-healing
■  Resource Utilization
Meeting the Challenges
Containers
14
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Container Mission – Reduce Complexity
Build Ship Run
Open	Standards	
Plumbing	
Pla3orm	Clustering Distribution
Image specContainer run-time spec
Runtime
Trust
15
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
■  Encapsulation of Dependencies
■  O/S packages & Patches
■  Execution environment (e.g. Python 2.7)
■  Application Code & Dependencies
■  Process Isolation
■  Isolate the process from anything else running
■  Faster, Lightweight virtualization
What do Containers give me?
16
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
FROM python:2.7
ADD . /code
WORKDIR /code
RUN apt-get update
RUN apt-get -y install python-dev
RUN apt-get -y install libssl-dev
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 5000
CMD python app.py
Dockerfile - Example
17
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Coalition of industry leaders join forces to eliminate
fragmentation
•  Form a vendor-neutral, open source governance model under the
Linux Foundation
•  Establish common standards for container format and runtime
•  Docker donated its container format, runtime and associated
specifications
•  Appoint maintainers for the libcontainer project
Open Container Initiative (OCI) – Polyglot Vendors
http://www.opencontainers.org/
20
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Docker Landscape in Pictures
Machine provisions
Docker Engines
Engines are
clustered by Docker
Swarm
Compose orchestrates
Container deployment
Containers are run
by Docker Engine
Docker Machine Docker Compose
Docker Swarm
Docker Engine
Container
Containers encapsulates
your code, dependencies…
Aerospike
The Enterprise NoSQL Database
22
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
The Bottom Line
23
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
•  RIPE MD160 Hashing & Partitioning
•  Primary Index is Red Black Tree
•  Dynamically Add/Remove Nodes
Scale
•  Auto Rebalance
•  Auto Heal
•  Schema-free
24
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
0
100,000
200,000
300,000
400,000
Balanced Read-Heavy
Aerospike Cassandra
MongoDB Couchbase 2.0*
0
2.5
5
7.5
10
0 50,000 100,000 150,000 200,000
AverageLatency,
ms
Throughput, ops/sec
Balanced Workload Read Latency
Aerospike
Cassandra
MongoDB
0
4
8
12
16
0 50,000 100,000 150,000 200,000
AverageLatency,
ms
Throughput, ops/sec
Balanced Workload Update Latency
Aerospike
Cassandra
MongoDB
•  Flash / SSD Optimized
•  Primary Index in DRAM
Speed
25
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Challenge
•  Overall SLA 750 ms
•  Loss of business due to latency
•  Every credit card transaction requires
hundreds of DB reads/writes
Need to Scale Reliably
•  10 à 100 TB
•  10B à 100 B objects
•  200k à I Million+ TPS
Aerospike In-Memory NoSQL
•  Built for Flash
•  Predictable low latency at high throughput
•  Immediate consistency, no data loss
•  Cross data center (XDR) support
•  20 server cluster
•  Dell 730xd w/ 4NVMe SSDs
Credit Card Processing System
Fraud Detection & Protection App
Rules
Rule 1
Rule 2
Rule 3
Historical Data
Rule 1-Passed
Rule 2-Passed
Rule 3-Failed
Account Behavior
Static Data
Account Statistics
Real-time Fraud Prevention
Databases and Containers
27
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
■  Data Redundancy
■  Containers are Ephemeral – Need more than one copy of the data
■  Dynamic Self Discovery & Cluster formation
■  Need to start and stop Conatiners when needed
■  Clusters needs to grow and shrink dynamcially
■  Self Healing
■  Loss of nodes must not be fatal to the cluster integrity
■  Addition of nodes must scale capacity
■  Application Tier discovery of Database
■  Automatic discovery of nodes
■  Automatic routing of requests to the correct nodes
Requirements
28
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
■  Data Redundancy
■  Automatic Replication of Data to "n" nodes
■  Dynamic Self Discovery & Cluster Formation
■  Shared nothing architecture – all nodes equal
■  Multi-cast & Mesh Networking models
■  Automatic healing & rebalancing of the cluster
■  Automatic hashing of keys across the cluster
■  RIPEMD-160 collision free algorithm with Smart Partitions™
■  Application Tier discovery of Database
■  Automated cluster discovery with Smart Client™
■  Java, C/C++, C#, Python, Node.js
Example: Aerospike and Containers
Demo
30
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
■  Build & Run an App in Development
■  Python + Aerospike
■  Deploy to a Swarm cluster in Production
■  Add more Web containers behind HAProxy
■  Scale Aerospike Cluster in production
■  Add more Database nodes
Demo: Development through to Production
31
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Lets build an App!
web
Aerospike
Development
python / flask
32
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Scale in Production
web2 web3 web4 webNweb web1
Aerospike
Development
…
Production
HA Proxy
asd1 asdNasd2 …
33
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Demo 1 : Build an App
34
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
FROM python:2.7
ADD . /code
WORKDIR /code
RUN apt-get update
RUN apt-get -y install python-dev
RUN apt-get -y install libssl-dev
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 5000
CMD python app.py
Dockerfile
35
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
web:
build: .
ports:
- "5000:5000"
links:
- aerospike
hostname: dev.awesome-counter.com
environment:
- AEROSPIKE_HOST=dev_aerospike_1
aerospike:
image: aerospike/aerospike-server:latest
volumes:
- $PWD:/etc/aerospike
docker-compose.yml
36
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Roll the App to Production behind HA Proxy
web web1
Development Production
Aerospike
HA Proxy
Aerospike
37
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Scale the web tier
web2 web3 web4 webNweb web1
Aerospike
Development
…
Production
Aerospike
HA Proxy
38
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Docker Networking
39
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Demo 2 : Scale the Web Tier
40
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
discovery:
image: aerospike/interlock:latest
environment:
- "DOCKER_HOST"
volumes:
- "/var/lib/boot2docker:/etc/docker"
command: "... --plugin aerospike start"
aerospike:
image: aerospike/aerospike-server:latest
volumes:
- "$PWD:/etc/aerospike"
aes_base_cluster.yml
41
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
haproxy:
extends:
file: haproxy.yml
service: haproxy-server
environment:
- "constraint:node==swarm-0"
net: bridge
web:
image: alvinr/demo-webapp-as:latest
extends:
file: haproxy.yml
service: haproxy-app
environment:
- AEROSPIKE_HOST=prod_aerospike_1
net: prod
docker-compose.yml
aerospike:
extends:
file: aes_base_cluster.yml
service: aerospike
image: aerospike/aerospike-server:3.7.1
labels:
- "com.aerospike.cluster=awesome-
counter"
environment:
- "affinity:com.aerospike.cluster!
=awesome-counter"
net: prod
42
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Scale the Aerospike cluster
42
web2 web3 web4 webNweb web1
mongodb
Development
…
Production
HA Proxy
asd1 asdNasd2 …
43
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Demo 3 : Scale the Cluster
44
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
■  API for Docker Events
■  Start / Stop / Die etc
■  https://docs.docker.com/engine/
reference/api/docker_remote_api/
■  Interlock – Evan Hazlett
■  Framework to listen and publish events
■  Plugin Framework (e.g. HAPROXY)
■  https://github.com/ehazlett/interlock
■  Aerospike Interlock plugin
■  Add / Remove node from Cluster
■  https://github.com/aerospike/interlock
Docker Event API & Interlock
45
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
■  https://github.com/aerospike/interlock
func (p AerospikePlugin) runAsinfoTip(args ...string) bool{
asinfo, err := exec.LookPath("asinfo")
if err != nil{
log.Errorf("error finding asinfo binary: %s", err)
return false
}
time.Sleep(time.Second*5) //sleep 5s for ASD to be ready
cmd := exec.Command(asinfo,args...)
Interlock Plugin - Aerospike
46
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Considerations
47
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Inside
■  Encapsulation of Concerns
Storage: Inside or outside the container?
Host
daemon
container
Host
daemon
container e.g.
SSD
e.g.
EBS
/data/db
/mnt/xx:/data/db
/dev/xvdb
Outside
■  Separation of Concerns
■  Storage Features (e.g.
Snapshots)
48
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Data Container
■  --volumes-from <container name>
■  Managed like other containers
■  Special rules for Destruction
■  TBD: Performance
Storage: Data Container?
Host
daemon
container
Host
daemon
container
49
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
Summary
• Define Container, their contents and how they work together once
• Deploy the same images in Dev, Pre-Prod and Production across
Platforms
One solution from Dev -> Production
• Ops define the whitelisted images, security policies etc.
• Dev use approved images to build upon
• Eliminate the complexity (and cost) of deployment
• Scale up & down in a Flexible and Simple way
Running Docker & Database in Production
50
Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved.
■  Code
■  http://github.com/alvinr/docker-demo/tree/master/aerospike
■  Docker Images
■  http://hub.docker.com/r/aerospike/
■  Aerospike & Docker deployment guide
■  http://www.aerospike.com/docs/deploy_guides/docker/
■  Contact me!
■  alvin@aerospike.com
■  @jonnyeight
Thanks and Q&A

Weitere ähnliche Inhalte

Was ist angesagt?

Distributing Data The Aerospike Way
Distributing Data The Aerospike WayDistributing Data The Aerospike Way
Distributing Data The Aerospike Way
Aerospike, Inc.
 
Aerospike: Maximizing Performance
Aerospike: Maximizing PerformanceAerospike: Maximizing Performance
Aerospike: Maximizing Performance
Aerospike, Inc.
 
Hadoop Storage in the Cloud Native Era
Hadoop Storage in the Cloud Native EraHadoop Storage in the Cloud Native Era
Hadoop Storage in the Cloud Native Era
DataWorks Summit
 
Red Hat Storage Day Seattle: Stabilizing Petabyte Ceph Cluster in OpenStack C...
Red Hat Storage Day Seattle: Stabilizing Petabyte Ceph Cluster in OpenStack C...Red Hat Storage Day Seattle: Stabilizing Petabyte Ceph Cluster in OpenStack C...
Red Hat Storage Day Seattle: Stabilizing Petabyte Ceph Cluster in OpenStack C...
Red_Hat_Storage
 

Was ist angesagt? (20)

How to Get a Game Changing Performance Advantage with Intel SSDs and Aerospike
How to Get a Game Changing Performance Advantage with Intel SSDs and AerospikeHow to Get a Game Changing Performance Advantage with Intel SSDs and Aerospike
How to Get a Game Changing Performance Advantage with Intel SSDs and Aerospike
 
Distributing Data The Aerospike Way
Distributing Data The Aerospike WayDistributing Data The Aerospike Way
Distributing Data The Aerospike Way
 
2017 DB Trends for Powering Real-Time Systems of Engagement
2017 DB Trends for Powering Real-Time Systems of Engagement2017 DB Trends for Powering Real-Time Systems of Engagement
2017 DB Trends for Powering Real-Time Systems of Engagement
 
Aerospike: Maximizing Performance
Aerospike: Maximizing PerformanceAerospike: Maximizing Performance
Aerospike: Maximizing Performance
 
Introduction to Aerospike
Introduction to AerospikeIntroduction to Aerospike
Introduction to Aerospike
 
Aerospike Architecture
Aerospike ArchitectureAerospike Architecture
Aerospike Architecture
 
10 reasons why to choose Pure Storage
10 reasons why to choose Pure Storage10 reasons why to choose Pure Storage
10 reasons why to choose Pure Storage
 
Getting The Most Out Of Your Flash/SSDs
Getting The Most Out Of Your Flash/SSDsGetting The Most Out Of Your Flash/SSDs
Getting The Most Out Of Your Flash/SSDs
 
RedisConf17 - Redis Enterprise on IBM Power Systems
RedisConf17 - Redis Enterprise on IBM Power SystemsRedisConf17 - Redis Enterprise on IBM Power Systems
RedisConf17 - Redis Enterprise on IBM Power Systems
 
Configuring Aerospike - Part 1
Configuring Aerospike - Part 1Configuring Aerospike - Part 1
Configuring Aerospike - Part 1
 
Why Software-Defined Storage Matters
Why Software-Defined Storage MattersWhy Software-Defined Storage Matters
Why Software-Defined Storage Matters
 
Scaling HDFS at Xiaomi
Scaling HDFS at XiaomiScaling HDFS at Xiaomi
Scaling HDFS at Xiaomi
 
Predictable Big Data Performance in Real-time
Predictable Big Data Performance in Real-timePredictable Big Data Performance in Real-time
Predictable Big Data Performance in Real-time
 
Red hat Storage Day LA - Designing Ceph Clusters Using Intel-Based Hardware
Red hat Storage Day LA - Designing Ceph Clusters Using Intel-Based HardwareRed hat Storage Day LA - Designing Ceph Clusters Using Intel-Based Hardware
Red hat Storage Day LA - Designing Ceph Clusters Using Intel-Based Hardware
 
HBaseConAsia2018 Track3-6: HBase at Meituan
HBaseConAsia2018 Track3-6: HBase at MeituanHBaseConAsia2018 Track3-6: HBase at Meituan
HBaseConAsia2018 Track3-6: HBase at Meituan
 
Redis vs Aerospike
Redis vs AerospikeRedis vs Aerospike
Redis vs Aerospike
 
The Future of Postgres Sharding / Bruce Momjian (PostgreSQL)
The Future of Postgres Sharding / Bruce Momjian (PostgreSQL)The Future of Postgres Sharding / Bruce Momjian (PostgreSQL)
The Future of Postgres Sharding / Bruce Momjian (PostgreSQL)
 
Hadoop Storage in the Cloud Native Era
Hadoop Storage in the Cloud Native EraHadoop Storage in the Cloud Native Era
Hadoop Storage in the Cloud Native Era
 
Red Hat Storage Day Seattle: Stabilizing Petabyte Ceph Cluster in OpenStack C...
Red Hat Storage Day Seattle: Stabilizing Petabyte Ceph Cluster in OpenStack C...Red Hat Storage Day Seattle: Stabilizing Petabyte Ceph Cluster in OpenStack C...
Red Hat Storage Day Seattle: Stabilizing Petabyte Ceph Cluster in OpenStack C...
 
Running Analytics at the Speed of Your Business
Running Analytics at the Speed of Your BusinessRunning Analytics at the Speed of Your Business
Running Analytics at the Speed of Your Business
 

Ähnlich wie Using Databases and Containers From Development to Deployment

OpenStack + Cloud Foundry for the OpenStack Boston Meetup
OpenStack + Cloud Foundry for the OpenStack Boston MeetupOpenStack + Cloud Foundry for the OpenStack Boston Meetup
OpenStack + Cloud Foundry for the OpenStack Boston Meetup
ragss
 
Building a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStackBuilding a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStack
Animesh Singh
 

Ähnlich wie Using Databases and Containers From Development to Deployment (20)

OpenStack + Cloud Foundry for the OpenStack Boston Meetup
OpenStack + Cloud Foundry for the OpenStack Boston MeetupOpenStack + Cloud Foundry for the OpenStack Boston Meetup
OpenStack + Cloud Foundry for the OpenStack Boston Meetup
 
Distributed application usecase on docker
Distributed application usecase on dockerDistributed application usecase on docker
Distributed application usecase on docker
 
20191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 220191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 2
 
OpenStack Summit: How companies of all sizes leverage OpenStack based private...
OpenStack Summit: How companies of all sizes leverage OpenStack based private...OpenStack Summit: How companies of all sizes leverage OpenStack based private...
OpenStack Summit: How companies of all sizes leverage OpenStack based private...
 
The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)
 
Architecting with power vm
Architecting with power vmArchitecting with power vm
Architecting with power vm
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01
 
Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016
 
MySQL as a Document Store
MySQL as a Document StoreMySQL as a Document Store
MySQL as a Document Store
 
Running Kubernetes with Amazon EKS - AWS Online Tech Talks
Running Kubernetes with Amazon EKS - AWS Online Tech TalksRunning Kubernetes with Amazon EKS - AWS Online Tech Talks
Running Kubernetes with Amazon EKS - AWS Online Tech Talks
 
Docker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-ITDocker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-IT
 
'DOCKER' & CLOUD: ENABLERS For DEVOPS
'DOCKER' & CLOUD:  ENABLERS For DEVOPS'DOCKER' & CLOUD:  ENABLERS For DEVOPS
'DOCKER' & CLOUD: ENABLERS For DEVOPS
 
Building a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStackBuilding a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStack
 
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 120191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1
 
Galera on kubernetes_no_video
Galera on kubernetes_no_videoGalera on kubernetes_no_video
Galera on kubernetes_no_video
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
 
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaSOverpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShift
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ... The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 

Mehr von Aerospike, Inc.

Get Started with Data Science by Analyzing Traffic Data from California Highways
Get Started with Data Science by Analyzing Traffic Data from California HighwaysGet Started with Data Science by Analyzing Traffic Data from California Highways
Get Started with Data Science by Analyzing Traffic Data from California Highways
Aerospike, Inc.
 
Flash Economics and Lessons learned from operating low latency platforms at h...
Flash Economics and Lessons learned from operating low latency platforms at h...Flash Economics and Lessons learned from operating low latency platforms at h...
Flash Economics and Lessons learned from operating low latency platforms at h...
Aerospike, Inc.
 

Mehr von Aerospike, Inc. (9)

What the Spark!? Intro and Use Cases
What the Spark!? Intro and Use CasesWhat the Spark!? Intro and Use Cases
What the Spark!? Intro and Use Cases
 
Get Started with Data Science by Analyzing Traffic Data from California Highways
Get Started with Data Science by Analyzing Traffic Data from California HighwaysGet Started with Data Science by Analyzing Traffic Data from California Highways
Get Started with Data Science by Analyzing Traffic Data from California Highways
 
Running a High Performance NoSQL Database on Amazon EC2 for Just $1.68/Hour
Running a High Performance NoSQL Database on Amazon EC2 for Just $1.68/HourRunning a High Performance NoSQL Database on Amazon EC2 for Just $1.68/Hour
Running a High Performance NoSQL Database on Amazon EC2 for Just $1.68/Hour
 
Flash Economics and Lessons learned from operating low latency platforms at h...
Flash Economics and Lessons learned from operating low latency platforms at h...Flash Economics and Lessons learned from operating low latency platforms at h...
Flash Economics and Lessons learned from operating low latency platforms at h...
 
Storm Persistence and Real-Time Analytics
Storm Persistence and Real-Time AnalyticsStorm Persistence and Real-Time Analytics
Storm Persistence and Real-Time Analytics
 
You Snooze You Lose or How to Win in Ad Tech?
You Snooze You Lose or How to Win in Ad Tech?You Snooze You Lose or How to Win in Ad Tech?
You Snooze You Lose or How to Win in Ad Tech?
 
Aerospike: Key Value Data Access
Aerospike: Key Value Data AccessAerospike: Key Value Data Access
Aerospike: Key Value Data Access
 
Configuring Aerospike - Part 2
Configuring Aerospike - Part 2 Configuring Aerospike - Part 2
Configuring Aerospike - Part 2
 
Big Data Learnings from a Vendor's Perspective
Big Data Learnings from a Vendor's PerspectiveBig Data Learnings from a Vendor's Perspective
Big Data Learnings from a Vendor's Perspective
 

Kürzlich hochgeladen

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

Using Databases and Containers From Development to Deployment

  • 1. Databases & Containers: From Development to Deployment Powering New Opportunities at Scale
  • 2. 2 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. ■  Containers + Databases = Happy Developers ■  Ephemerical Containers + Databases = DevOps headaches ■  Data Redundancy ■  Need more than one copy of the Data ■  Database Self Discovery & Cluster formation ■  Manual / Scripted configurtion of Database Cluster ■  Database Self Healing (as containers enter and leave) ■  Manual / Scripted re-configurtion of Database Cluster ■  Application Tier discovery of Database ■  Manual / Scripted re-routing of Application Traffic Conclusion
  • 3. 3 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Existing Architectures Are Broken Challenges •  Complex •  Maintainability •  Durability •  Consistency •  Scalability •  Cost ($) •  Data Lag Caching Layer Operational Database Real-time Consumer Facing Pricing / Inventory / Billing Real-time Decisionin g Streaming Data Legacy Database (Mainframe) RDBMS Database Transactional Systems Enterprise Environment Legacy RDBMS HDFS BASED
  • 4. 4 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Existing Deployment Models Are Broken 4 Developer Version control 1. Development 2. Test 3. Stage / Production QA / QE Sysadmin
  • 5. 5 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Infrastructure Cannot be Fully Utilized TRADITIONAL DATABASE OS FILE SYSTEM PAGE CACHE BLOCK INTERFACE SSD HDD What You Have BLOCK INTERFACE SSD SSD OPEN NVM SSD DATABASE MEMORY SYSTEM •  Direct device access •  Large Block Writes •  Indexes in DRAM •  Highly Parallelized What You Want
  • 6. 6 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. ■  Containers ■  Encapsulation ■  Deployment ■  Isolation ■  Databases ■  Persistence ■  Scalability ■  Self-organizing / Self-healing ■  Resource Utilization Meeting the Challenges
  • 8. 14 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Container Mission – Reduce Complexity Build Ship Run Open Standards Plumbing Pla3orm Clustering Distribution Image specContainer run-time spec Runtime Trust
  • 9. 15 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. ■  Encapsulation of Dependencies ■  O/S packages & Patches ■  Execution environment (e.g. Python 2.7) ■  Application Code & Dependencies ■  Process Isolation ■  Isolate the process from anything else running ■  Faster, Lightweight virtualization What do Containers give me?
  • 10. 16 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. FROM python:2.7 ADD . /code WORKDIR /code RUN apt-get update RUN apt-get -y install python-dev RUN apt-get -y install libssl-dev RUN pip install --no-cache-dir -r requirements.txt EXPOSE 5000 CMD python app.py Dockerfile - Example
  • 11. 17 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Coalition of industry leaders join forces to eliminate fragmentation •  Form a vendor-neutral, open source governance model under the Linux Foundation •  Establish common standards for container format and runtime •  Docker donated its container format, runtime and associated specifications •  Appoint maintainers for the libcontainer project Open Container Initiative (OCI) – Polyglot Vendors http://www.opencontainers.org/
  • 12. 20 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Docker Landscape in Pictures Machine provisions Docker Engines Engines are clustered by Docker Swarm Compose orchestrates Container deployment Containers are run by Docker Engine Docker Machine Docker Compose Docker Swarm Docker Engine Container Containers encapsulates your code, dependencies…
  • 14. 22 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. The Bottom Line
  • 15. 23 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. •  RIPE MD160 Hashing & Partitioning •  Primary Index is Red Black Tree •  Dynamically Add/Remove Nodes Scale •  Auto Rebalance •  Auto Heal •  Schema-free
  • 16. 24 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. 0 100,000 200,000 300,000 400,000 Balanced Read-Heavy Aerospike Cassandra MongoDB Couchbase 2.0* 0 2.5 5 7.5 10 0 50,000 100,000 150,000 200,000 AverageLatency, ms Throughput, ops/sec Balanced Workload Read Latency Aerospike Cassandra MongoDB 0 4 8 12 16 0 50,000 100,000 150,000 200,000 AverageLatency, ms Throughput, ops/sec Balanced Workload Update Latency Aerospike Cassandra MongoDB •  Flash / SSD Optimized •  Primary Index in DRAM Speed
  • 17. 25 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Challenge •  Overall SLA 750 ms •  Loss of business due to latency •  Every credit card transaction requires hundreds of DB reads/writes Need to Scale Reliably •  10 à 100 TB •  10B à 100 B objects •  200k à I Million+ TPS Aerospike In-Memory NoSQL •  Built for Flash •  Predictable low latency at high throughput •  Immediate consistency, no data loss •  Cross data center (XDR) support •  20 server cluster •  Dell 730xd w/ 4NVMe SSDs Credit Card Processing System Fraud Detection & Protection App Rules Rule 1 Rule 2 Rule 3 Historical Data Rule 1-Passed Rule 2-Passed Rule 3-Failed Account Behavior Static Data Account Statistics Real-time Fraud Prevention
  • 19. 27 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. ■  Data Redundancy ■  Containers are Ephemeral – Need more than one copy of the data ■  Dynamic Self Discovery & Cluster formation ■  Need to start and stop Conatiners when needed ■  Clusters needs to grow and shrink dynamcially ■  Self Healing ■  Loss of nodes must not be fatal to the cluster integrity ■  Addition of nodes must scale capacity ■  Application Tier discovery of Database ■  Automatic discovery of nodes ■  Automatic routing of requests to the correct nodes Requirements
  • 20. 28 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. ■  Data Redundancy ■  Automatic Replication of Data to "n" nodes ■  Dynamic Self Discovery & Cluster Formation ■  Shared nothing architecture – all nodes equal ■  Multi-cast & Mesh Networking models ■  Automatic healing & rebalancing of the cluster ■  Automatic hashing of keys across the cluster ■  RIPEMD-160 collision free algorithm with Smart Partitions™ ■  Application Tier discovery of Database ■  Automated cluster discovery with Smart Client™ ■  Java, C/C++, C#, Python, Node.js Example: Aerospike and Containers
  • 21. Demo
  • 22. 30 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. ■  Build & Run an App in Development ■  Python + Aerospike ■  Deploy to a Swarm cluster in Production ■  Add more Web containers behind HAProxy ■  Scale Aerospike Cluster in production ■  Add more Database nodes Demo: Development through to Production
  • 23. 31 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Lets build an App! web Aerospike Development python / flask
  • 24. 32 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Scale in Production web2 web3 web4 webNweb web1 Aerospike Development … Production HA Proxy asd1 asdNasd2 …
  • 25. 33 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Demo 1 : Build an App
  • 26. 34 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. FROM python:2.7 ADD . /code WORKDIR /code RUN apt-get update RUN apt-get -y install python-dev RUN apt-get -y install libssl-dev RUN pip install --no-cache-dir -r requirements.txt EXPOSE 5000 CMD python app.py Dockerfile
  • 27. 35 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. web: build: . ports: - "5000:5000" links: - aerospike hostname: dev.awesome-counter.com environment: - AEROSPIKE_HOST=dev_aerospike_1 aerospike: image: aerospike/aerospike-server:latest volumes: - $PWD:/etc/aerospike docker-compose.yml
  • 28. 36 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Roll the App to Production behind HA Proxy web web1 Development Production Aerospike HA Proxy Aerospike
  • 29. 37 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Scale the web tier web2 web3 web4 webNweb web1 Aerospike Development … Production Aerospike HA Proxy
  • 30. 38 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Docker Networking
  • 31. 39 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Demo 2 : Scale the Web Tier
  • 32. 40 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. discovery: image: aerospike/interlock:latest environment: - "DOCKER_HOST" volumes: - "/var/lib/boot2docker:/etc/docker" command: "... --plugin aerospike start" aerospike: image: aerospike/aerospike-server:latest volumes: - "$PWD:/etc/aerospike" aes_base_cluster.yml
  • 33. 41 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. haproxy: extends: file: haproxy.yml service: haproxy-server environment: - "constraint:node==swarm-0" net: bridge web: image: alvinr/demo-webapp-as:latest extends: file: haproxy.yml service: haproxy-app environment: - AEROSPIKE_HOST=prod_aerospike_1 net: prod docker-compose.yml aerospike: extends: file: aes_base_cluster.yml service: aerospike image: aerospike/aerospike-server:3.7.1 labels: - "com.aerospike.cluster=awesome- counter" environment: - "affinity:com.aerospike.cluster! =awesome-counter" net: prod
  • 34. 42 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Scale the Aerospike cluster 42 web2 web3 web4 webNweb web1 mongodb Development … Production HA Proxy asd1 asdNasd2 …
  • 35. 43 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Demo 3 : Scale the Cluster
  • 36. 44 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. ■  API for Docker Events ■  Start / Stop / Die etc ■  https://docs.docker.com/engine/ reference/api/docker_remote_api/ ■  Interlock – Evan Hazlett ■  Framework to listen and publish events ■  Plugin Framework (e.g. HAPROXY) ■  https://github.com/ehazlett/interlock ■  Aerospike Interlock plugin ■  Add / Remove node from Cluster ■  https://github.com/aerospike/interlock Docker Event API & Interlock
  • 37. 45 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. ■  https://github.com/aerospike/interlock func (p AerospikePlugin) runAsinfoTip(args ...string) bool{ asinfo, err := exec.LookPath("asinfo") if err != nil{ log.Errorf("error finding asinfo binary: %s", err) return false } time.Sleep(time.Second*5) //sleep 5s for ASD to be ready cmd := exec.Command(asinfo,args...) Interlock Plugin - Aerospike
  • 38. 46 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Considerations
  • 39. 47 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Inside ■  Encapsulation of Concerns Storage: Inside or outside the container? Host daemon container Host daemon container e.g. SSD e.g. EBS /data/db /mnt/xx:/data/db /dev/xvdb Outside ■  Separation of Concerns ■  Storage Features (e.g. Snapshots)
  • 40. 48 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Data Container ■  --volumes-from <container name> ■  Managed like other containers ■  Special rules for Destruction ■  TBD: Performance Storage: Data Container? Host daemon container Host daemon container
  • 41. 49 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. Summary • Define Container, their contents and how they work together once • Deploy the same images in Dev, Pre-Prod and Production across Platforms One solution from Dev -> Production • Ops define the whitelisted images, security policies etc. • Dev use approved images to build upon • Eliminate the complexity (and cost) of deployment • Scale up & down in a Flexible and Simple way Running Docker & Database in Production
  • 42. 50 Proprietary & Confidential | © 2015 Aerospike Inc. All rights reserved. ■  Code ■  http://github.com/alvinr/docker-demo/tree/master/aerospike ■  Docker Images ■  http://hub.docker.com/r/aerospike/ ■  Aerospike & Docker deployment guide ■  http://www.aerospike.com/docs/deploy_guides/docker/ ■  Contact me! ■  alvin@aerospike.com ■  @jonnyeight Thanks and Q&A