SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
DOCKER TOKYO - 2018-05-15
Zenko: the
Multi-Cloud Data
ControllerWe enable people who create value with data
by making AWS storage cheaper
Laure
Vergeron
Technology Evangelist
R&D Engineer
Agenda
Agenda
1 - What is multi-cloud?
2 - Zenko: introduction to the multi-cloud data controller
3 - Zenko Orbit: introduction to the multi-cloud management UI
4 - CloudServer standalone: a simple local S3 endpoint
5 - Zenko S3 API: basically just AWS S3 API
6 - Zenko Enterprise Edition: coming later in 2018
7 - Zenkommunity
8 - Demos!
What is Multi-Cloud?
What/why is multi cloud?
▪Content Distribution
▪ Media companies have tens of thousands of movies, which they store on Private Cloud for
control. When it is time to publish a movie, it makes sense to copy it to a public cloud to use
its transcoding and CDN services.
▪Compute Bursting
▪ Banks have to do risk analysis leveraging thousands of CPU every night. These intense
computation only run for a few hours. Rather than having idle servers for the rest of the day, it
makes sense to use Public Cloud services for the computation
▪Analytics
▪ E-commerce company do more and more machine learning on their very large data lake.
Rather than setting up Hadoop infrastructures in-house, the company can copy just a data set
to an Hadoop cloud, compute the appropriate algorithm, and get back the result and destroy
the cloud copy of the data to save on storage cost.
▪Long-term Archival / cold storage
▪ While storing data which is regularly accessed is cheaper in a private cloud, long term archive
of never accessed data is cheaper in long term archive cloud offering. Automatic archival of
never accessed data would save a lot of money.
Examples of Use-Cases for Multi-Cloud
Who is multi cloud?
Who is multi cloud?
What’s the big deal?
What’s the big deal?
What’s the bigger deal?
• Single Interface to any Cloud
▪ S3 API as a single API set to any cloud
• Allow reuse in the Cloud
▪ Maintain the native cloud format
• Always know your data and where it is
▪ Metadata search
• Trigger actions based on data
▪ Data Workflow to manage replication, location
The Zenko Multi-Cloud Data Controller
12
Zenko
One namespace
One endpoint
One API
Any Cloud
Zenko: one endpoint, one API, one namespace, any cloud in native format
● One API: the S3 API
● One endpoint: your Zenko
endpoint
● Any cloud
currently supported: Google Cloud
Platform, Microsoft Azure,
Amazon S3, Wasabi, Digital
Ocean Spaces, Scality RING,
local storage
● Data stored in native format:
use services native to your
cloud; Zenko does not lock
you in!
METADATA
DATA STORAGE
DMD REST/Sproxyd AWS S3 API CLOUD API
Shared Local
Storage
S3 API
APP
METADATA
APP
S3 CALLS
 Zenko Open Source
S3 API—Single API set and 360° access to any cloud
 
Native format—Data written through Zenko is stored
in the native format of the target cloud storage and
can be read directly, without going through Zenko.
Backbeat, your data workflow manager —
Policy-based data management engine
Leveraging MongoDB for metadata search—
Agregated metadata across all clouds in a replicated
MongoDB gives a search tool for optimal data insight
HA/Failover – Deployed as multiple containers for
resilience via metal-k8s
Simple Security – single-tenant credentials
managed locally
 
S3 API
S3 CALLS
METADATA DATA
MONGO DB
Metadata Search
Bucket LOCATION
BACKBEAT
Data Policy Engine
Bucket LOCATION
CRR/DATADATA
Zenko: a stack of microservices
Zenko Orbit
Multi-cloud management made easy
Zenko: Orbit management UI
● https://admin.zenko.io
● Free to use until 1TB
● Can either
○ get a sandbox
○ register own
instance
● Available as a
pay-as-you-go service for
large capacities
● No support with free
edition
Zenko: Orbit management UI
● Manage endpoints
● Manage locations
● Manage user keys
● Manage replication
workflows
● Hardware stats
● Storage stats
● Probes to avoid mistakes
at configuration steps
CloudServer Standalone
Make your hard drive an S3 bucket
20
CloudServer: What?
• S3 API served in a Docker Container
• Written in Node.js
• 100% open source (Apache 2.0)
• S3 stands for Simple Storage Service. The S3
API provides a simple interface used to store
objects in buckets.
• Single AWS S3 API interface to access
multiple backend data storage both
on-premise or public in the cloud.
Open Source Scality CloudServer Adoption
▪Launched June 2016
▪Open-source
implementation of AWS S3
API
▪Code available on Github
under Apache 2.0 license
▪Packaged in Docker
container for easy
deployment
▪Seamless upgrade to S3
Connector for the RING
Now Over
1,000,000
Zenko S3 API
What’s there? What’s coming?
Current Release API Support
Core S3 APIs
• Bucket and object operations (PUT,
GET, DELETE, HEAD)
• Multi-Part Upload (MPU) for efficient
ingest of large objects
Advanced S3 APIs
• Bucket Website
• Bucket CORS
• Bucket Versioning
• Bucket Cross Region Replication (CRR)
Extended APIs
• Utilization API for metering of capacity,
#objects, bandwidth & ops
• Bucket CRR 1-to-many
2018 Roadmap
Bucket Lifecycle
• Expiration policies - Q3 2018
Extended APIs
• Metadata search through extended
GET Bucket API – Q3 2018
23
Zenko EE
IAM for the enterprise, NFS over S3…
… soon!
• Zenko EE is not yet available
– We are doing our first beta deployments
at large American customers
– We are looking at Q1 2019 for GA
• Zenko CE is readily available, with
community support
– https://forum.zenko.io
– Plenty of documentation on readthedocs
– Send an email to your SE or to
zenko@scality.com
• Zenko Orbit is available pay-as-you-go
– First TB of data managed is free
25
Zenko EE : COMING SOON! Just not yet...
Zenkommunity
Do you create value with data?
Join us!
Community Meetups
• Initiated prior to our S3 Server launch
• At Docker Tokyo on May 15th
• At Scality Tokyo Open Source Night on May 16th
• Participating at open source events
for Docker, Nodejs, etc...
Developer Hackathons
• Paris and San Francisco in 2015-2018 ; maybe Tokyo next?
• Co-sponsoring with partners – focused on a specific project goal
(e.g., IP Drives, Backblaze integrations)
• Great for building visibility & community participation
27
Building a Developer community
How can I get involved with Zenko?
• Let us know what you do with Zenko stack!
▪ zenko@scality.com
▪ Get your project/company featured on the website in a quote
• Contribute tutorials
▪ Get a blogpost featuring your introduction of your tutorial
▪ Become part of our readTheDocs hosted documentation
• Contribute code
▪ It’s an opportunity to drive the roadmap with us !
▪ Join the team and be part of the Zenko craze !
▪ We have Contributing Guidelines on the GitHub repos, and we’ll answer your
questions via GitHub issues or our forum forum.zenko.io
• Meet us at AWS Re:invent, DockerCon, Meetups...
▪ All info is on www.zenko.io
28
▪Zenko: MultiCloud Data Controller
▪ http://zenko.readthedocs.io/en/latest
▪ https://github.com/scality/Zenko
▪ https://forum.scality.com/
▪ https://www.zenko.io/
▪CloudServer (S3 API standalone)
▪ http://s3-server.readthedocs.io/en/latest/
▪ https://github.com/scality/S3/
▪ https://hub.docker.com/r/scality/s3server/
▪Backbeat (data driven event manager)
▪ https://github.com/scality/Backbeat
▪Clueso (cross-cloud metadata search)
▪ https://github.com/scality/Clueso
Zenko CE: everything you need
@zenko_io
@scality
@LaureVergeron
@GiorgioRegni
30
Ready to join us?
• Create an account on our Forum
• http://forum.zenko.io/
• Clone Zenko, and its microservices
• https://github.com/scality/Zenko/
• https://github.com/scality/S3/
• https://github.com/scality/backbeat
• Install s3cmd and AWS CLI
• Read the docs ;)
• Start with a minikube deployment
• https://github.com/scality/Zenko/blob/master/charts/minikube.md
• Reach out on the Forum as you have questions
• Try a full bare-metal-kubespray deployment
• https://github.com/scality/Zenko/tree/master/charts
DIY and Demo
Get your own Zenko sandbox
Deploy Zenko on Minikube and register it on Orbit
Q&A
If you have more later:
forum.zenko.io!
Email: zenko@scality.com
Thank You
Extra slides
Extra Slides
Zenko
One namespace
One endpoint
One API
Any Cloud
Zenko: one namespace, any cloud
Zenko local Zenko to Public Cloud AWS
Region / Location Region Public Cloud “bucket” Region
Bucket Bucket Prefix in public cloud bucket Bucket
$ aws --profile zenko s3 mb s3://remote-bucket --region aws-zenkobucket
make_bucket: s3://mybucket
$ aws --profile zenko s3 cp /etc/hosts s3://remote-bucket/test
upload: /etc/hosts to s3://remote-bucket/test
$ aws --profile zenko s3 ls
2018-05-14 17:08:50 remote-bucket
$ aws --profile zenko s3 ls s3://remote-bucket
2018-05-14 17:09:18 235 test
$ aws --profile aws s3 ls
2018-05-14 16:00:53 zenkobucket
$ aws --profile aws s3 ls s3://zenkobucket
PRE remote-bucket/
2018-05-14 17:09:18 235 test
Zenko: a stack of microservices
$ docker stack services ls
ID NAME MODE REPLICAS IMAGE PORTS
1j8jb41llhtm zenko-prod_s3-data replicated 1/1 zenko/cloudserver:pensieve-3 *:30010->9991/tcp
3y7vayna97bt zenko-prod_s3-front replicated 1/1 zenko/cloudserver:pensieve-3 *:30009->8000/tcp
957xksl0cbge zenko-prod_mongodb-init replicated 0/1 mongo:3.6.3-jessie
cn0v7cf2jxkb zenko-prod_queue replicated 1/1 wurstmeister/kafka:1.0.0 *:30008->9092/tcp
jjx9oabeugx1 zenko-prod_mongodb replicated 1/1 mongo:3.6.3-jessie *:30007->27017/tcp
o530bkuognu5 zenko-prod_lb global 1/1 zenko/loadbalancer:latest *:80->80/tcp
r69lgbue0o3o zenko-prod_backbeat-api replicated 1/1 zenko/backbeat:pensieve-4
ut0ssvmi10tx zenko-prod_backbeat-consumer replicated 1/1 zenko/backbeat:pensieve-4
vj2fr90qviho zenko-prod_cache replicated 1/1 redis:alpine *:30011->6379/tcp
vqmkxu7yo859 zenko-prod_quorum replicated 1/1 zookeeper:3.4.11 *:30006->2181/tcp
y7tt98x7jdl9 zenko-prod_backbeat-producer replicated 1/1 zenko/backbeat:pensieve-4
[...]
Zenko: Multi-Cloud Data Controller
Cloudserver Backbeat Utapi
S3 API
Multi Cloud API translation
Event-driven data manager
Replication engine
Usage Stats
Custom node.js Kafka- & Zookeeper- -based Redis-based
Bare-Metal Kubespray: custom deployment of Kubespray
Extra slides
S3 API & Extended
API
CloudServer implements the AWS S3 Bucket Versioning API
• Create a versioned Bucket (PUT Bucket Versioning) – enables Bucket to maintain object versions
• If an object with the same key is PUT or DELETED, it becomes the current version
– DELETE marker used for indicating current version deleted as per AWS semantics
– Assigns version IDs for older versions
Enables Data Restores
• Access to previous states/versions of an object (GET object with specified version ID)
Required for both CRR & Lifecycle Management APIs
• As specified in S3 API
• When writing to AWS S3, the target bucket must have
versioning enabled!
39
Zenko S3 API: Bucket Versioning
● When versioning is enabled on a bucket:
● CREATE NEW VERSIONS:
○ Put Object, Complete Multipart Upload and Object Copy (to a versioning-enabled bucket) will
return a version id in the ‘x-amz-version-id’ response header.
○ No special syntax necessary.
● When versioning is enabled or suspended:
● TARGETING SPECIFIC VERSIONS:
○ Include the version id in the request query for GET/HEAD Object or PUT/GET Object ACL
■ Example: `GET [bucket]/[object]?versionId=[versionId]`
○ For Object Copy or Upload Copy Part, to copy a specific version from a version-enabled
bucket, add the version id to the ‘x-amz-copy-source’ header:
■ Example value: `[sourcebucket]/[sourceobject]?versionId=[versionId]`
○ Omitting a specific version will get the result for the latest / current version.
Zenko S3 API: Bucket Versioning
● When versioning is enabled or suspended (cont.):
● NULL VERSIONS:
○ Null versions are created when putting an object before versioning is configured or when
versioning is suspended.
■ Only one null version is maintained in version history.
New null versions will overwrite previous null versions.
○ Target the null version in version-specific actions by specifying the version ID ‘null’.
● DELETING OBJECTS:
○ Regular deletion of objects will create delete markers and return ‘x-amz-delete-marker’: ‘true’
and the version ID of the delete marker in ‘x-amz-version-id’ response headers.
○ Objects with delete markers as the latest version will behave as if they have been deleted when
performing non-version specific actions.
○ Permanently remove delete markers or specific versions by specifying the version ID in the
request query. Example: `DELETE [bucket]/[object]?versionId=[versionId]`
Zenko S3 API: Bucket Versioning
● When versioning is enabled or suspended (cont.):
● MULTI-OBJECT DELETE:
○ Specify the specific version of an object to delete in a multi-object delete request in the XML
body. Example: http://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html
● At any time:
● LISTING OBJECTS:
○ A regular listing will list the most recent versions of an object and ignore objects with delete
markers as their latest version.
○ To list all object versions and delete markers in a bucket, specify ‘versions’ in request query:
■ Example: `GET [bucket]?versions`
○ FMI about output: consult S3 Connector documentation
● GET BUCKET VERSIONING STATUS: use Get Bucket Versioning API.
Zenko S3 API: Bucket Versioning
● Utapi can be accessed through a REST API with service available on a dedicated port
● API routes use AWS Signature Version V4 for authentication
● API calls for listing metrics can use account credentials or create an IAM user with policy allowing
to list metrics
● Metrics are collected in 15 minute intervals (not configurable)
● Requests for listing metrics use POST routes and require at least start time and a list of resources
(accounts/buckets/users)
● Refer to wiki here for listing metrics https://github.com/scality/utapi#listing-metrics-with-utapi
Extended S3 API: UTAPI: UTilization API
S3 Buckets with associated Location
•Assigned as an optional request parameter
“LocationConstraint”
•In PUT Bucket API command, application can
specify a location for each Bucket
•Enables S3 Connector to manage Buckets across
multiple RINGs for scaling or access to multiple DC’s
•Enables Zenko to access multiple Public Clouds
Location Mapping
- Configuration file to manage multiple location to
multiple backends mappings
- Defines the default location for object PUTs
- Object GET Access is transparent
44
Zenko S3 API: Bucket Location Control
aws --endpoint-url http://127.0.0.1:8000 s3api create-bucket --bucket test-bucket --create-bucket-configuration
LocationConstraint=azure-container
aws --endpoint-url http://127.0.0.1:8000 s3 cp /etc/hosts s3://test-bucket/hosts
• Specify bucket location at bucket creation
• Object creation remains as usual
PUT / HTTP/1.1
Host: {{BucketName}}.{{StorageService}}.com
Content-Length: {{length}}
Date: {{date}}
Authorization: {{authenticationInformation}}
<CreateBucketConfiguration xmlns="http://s3.scality.com/doc/2006-03-01/">
<LocationConstraint>azure-container</LocationConstraint>
</CreateBucketConfiguration>
• Request syntax
Zenko S3 API: Bucket Location Control
Zenko Multi-Cloud Async Replication - CRR
Remote disaster recovery (DR) for WAN environments
- Follows the AWS S3 API “cross-region replication” (CRR) API
- Async bucket replication: source Bucket -> target Bucket
- Versioning must be enabled on source & target
Target bucket in S3/RING
- CRR to remote S3/RING – in current release
CRR Features:
- Full site sync
- Bucket to bucket sync
- Monitoring statistics (throughput, backlog, RTO/RPO)
- Failback
- CRR from 1 region to many others (one public cloud to several others)
46
Extra slides
File or Object
48
File or object?
49
File or object?
50
File or object?
Why we do file:
- We know it
- Easy hierarchy
- fopen() and fclose()
- Lots of best practices
- Perf of NAS / over LAN
Why we do object:
- Billions of entries
- Storage accessed over
WAN
- For modern apps (REST)
- Listing large volumes
Extra slides
Community
52
CloudServer tree structure CheatSheet
S3/locationConfig.json and S3/config.json - setup your own endpoints
S3/lib/server.js - your entrypoint into the service
Arsenal/lib/s3routes/routes/*.js - S3 route calls
S3/lib/api/{{yourAPIcommand}} - S3 API calls
S3/lib/data/wrapper.js & multipleBackendGateway.js - gateway to external
clients
S3/lib/data/external/*Client.js - current clients
S3/conf/authData.json - setup your own credentials
Arsenal/lib/storage/metadata/* - check how metadata works
These commands assume you have S3 cloned locally, s3cmd configured for your S3 server, AWS
cli configured for a real AWS bucket, and your locationConfig set up
- START SERVER:
S3BACKEND=mem S3DATA=multiple npm start
- MAKE BUCKET:
s3cmd mb s3://[bucket-name]
- PUT OBJECT TO SPECIFIC LOCATION:
s3cmd put [/path/to/file] s3://[bucket-name]/[object-name] --add-header
x-amz-meta-scal-location-constraint:‘[location-name]’
- LIST OBJECTS IN BUCKET:
s3cmd ls s3://[bucket-name]/[object-name]
- GET S3 OBJECT METADATA:
s3cmd info s3://[bucket-name]/[object-name]
- IF PUT TO AWS, LIST OBJECTS ON AWS:
aws s3api list-objects --bucket [bucket-name]
Start S3 Server & Put Object Commands

Weitere ähnliche Inhalte

Was ist angesagt?

[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architectureOpenStack Korea Community
 
Running Containers on Nebula OpenStack
Running Containers on Nebula OpenStackRunning Containers on Nebula OpenStack
Running Containers on Nebula OpenStackKontena, Inc.
 
[Open infra] how to calculate the cloud system operating rate
[Open infra] how to calculate the cloud system operating rate[Open infra] how to calculate the cloud system operating rate
[Open infra] how to calculate the cloud system operating rateNalee Jang
 
Orchestration & provisioning
Orchestration & provisioningOrchestration & provisioning
Orchestration & provisioningbuildacloud
 
Building clouds with apache cloudstack apache roadshow 2018
Building clouds with apache cloudstack   apache roadshow 2018Building clouds with apache cloudstack   apache roadshow 2018
Building clouds with apache cloudstack apache roadshow 2018ShapeBlue
 
Openstack Study Nova 1
Openstack Study Nova 1Openstack Study Nova 1
Openstack Study Nova 1Jinho Shin
 
OpenStack and private cloud
OpenStack and private cloudOpenStack and private cloud
OpenStack and private cloudSK Telecom
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionPeng Xiao
 
Who carries your container? Zun or Magnum?
Who carries your container? Zun or Magnum?Who carries your container? Zun or Magnum?
Who carries your container? Zun or Magnum?Madhuri Kumari
 
State of Containers in OpenStack
State of Containers in OpenStackState of Containers in OpenStack
State of Containers in OpenStackopenstackindia
 
[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업
[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업
[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업OpenStack Korea Community
 
Libcloud and j clouds
Libcloud and j cloudsLibcloud and j clouds
Libcloud and j cloudsDaeMyung Kang
 
OpenStack Best Practices and Considerations - terasky tech day
OpenStack Best Practices and Considerations  - terasky tech dayOpenStack Best Practices and Considerations  - terasky tech day
OpenStack Best Practices and Considerations - terasky tech dayArthur Berezin
 
Openstack: An Open Source Cloud Framework
Openstack: An Open Source Cloud FrameworkOpenstack: An Open Source Cloud Framework
Openstack: An Open Source Cloud FrameworkAndrew Shafer
 
Guaranteeing Storage Performance by Mike Tutkowski
Guaranteeing Storage Performance by Mike TutkowskiGuaranteeing Storage Performance by Mike Tutkowski
Guaranteeing Storage Performance by Mike Tutkowskibuildacloud
 
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기OpenStack Korea Community
 

Was ist angesagt? (20)

[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
 
Running Containers on Nebula OpenStack
Running Containers on Nebula OpenStackRunning Containers on Nebula OpenStack
Running Containers on Nebula OpenStack
 
[Open infra] how to calculate the cloud system operating rate
[Open infra] how to calculate the cloud system operating rate[Open infra] how to calculate the cloud system operating rate
[Open infra] how to calculate the cloud system operating rate
 
Orchestration & provisioning
Orchestration & provisioningOrchestration & provisioning
Orchestration & provisioning
 
Building clouds with apache cloudstack apache roadshow 2018
Building clouds with apache cloudstack   apache roadshow 2018Building clouds with apache cloudstack   apache roadshow 2018
Building clouds with apache cloudstack apache roadshow 2018
 
Cloud Foundation
Cloud FoundationCloud Foundation
Cloud Foundation
 
Openstack Study Nova 1
Openstack Study Nova 1Openstack Study Nova 1
Openstack Study Nova 1
 
OpenStack Cinder
OpenStack CinderOpenStack Cinder
OpenStack Cinder
 
OpenStack and private cloud
OpenStack and private cloudOpenStack and private cloud
OpenStack and private cloud
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Who carries your container? Zun or Magnum?
Who carries your container? Zun or Magnum?Who carries your container? Zun or Magnum?
Who carries your container? Zun or Magnum?
 
State of Containers in OpenStack
State of Containers in OpenStackState of Containers in OpenStack
State of Containers in OpenStack
 
Cloud data center and openstack
Cloud data center and openstackCloud data center and openstack
Cloud data center and openstack
 
[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업
[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업
[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업
 
Libcloud and j clouds
Libcloud and j cloudsLibcloud and j clouds
Libcloud and j clouds
 
OpenStack Best Practices and Considerations - terasky tech day
OpenStack Best Practices and Considerations  - terasky tech dayOpenStack Best Practices and Considerations  - terasky tech day
OpenStack Best Practices and Considerations - terasky tech day
 
Openstack: An Open Source Cloud Framework
Openstack: An Open Source Cloud FrameworkOpenstack: An Open Source Cloud Framework
Openstack: An Open Source Cloud Framework
 
Building FOSS clouds
Building FOSS cloudsBuilding FOSS clouds
Building FOSS clouds
 
Guaranteeing Storage Performance by Mike Tutkowski
Guaranteeing Storage Performance by Mike TutkowskiGuaranteeing Storage Performance by Mike Tutkowski
Guaranteeing Storage Performance by Mike Tutkowski
 
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
 

Ähnlich wie Docker Meetup Tokyo #23 - Zenko Open Source Multi-Cloud Data Controller - Laure Vergeron

Zenko & MetalK8s @ Dublin Docker Meetup, June 2018
Zenko & MetalK8s @ Dublin Docker Meetup, June 2018Zenko & MetalK8s @ Dublin Docker Meetup, June 2018
Zenko & MetalK8s @ Dublin Docker Meetup, June 2018Laure Vergeron
 
Zenko @Cloud Native Foundation London Meetup March 6th 2018
Zenko @Cloud Native Foundation London Meetup March 6th 2018Zenko @Cloud Native Foundation London Meetup March 6th 2018
Zenko @Cloud Native Foundation London Meetup March 6th 2018Laure Vergeron
 
2017 Hackathon Scality & 42 School
2017 Hackathon Scality & 42 School2017 Hackathon Scality & 42 School
2017 Hackathon Scality & 42 SchoolScality
 
AWS re:Invent 2016 - Scality's Open Source AWS S3 Server
AWS re:Invent 2016 - Scality's Open Source AWS S3 ServerAWS re:Invent 2016 - Scality's Open Source AWS S3 Server
AWS re:Invent 2016 - Scality's Open Source AWS S3 ServerScality
 
Openstack India May Meetup
Openstack India May MeetupOpenstack India May Meetup
Openstack India May MeetupDeepak Garg
 
Zenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud WorldZenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud WorldScality
 
Confluent On Azure: Why you should add Confluent to your Azure toolkit | Alic...
Confluent On Azure: Why you should add Confluent to your Azure toolkit | Alic...Confluent On Azure: Why you should add Confluent to your Azure toolkit | Alic...
Confluent On Azure: Why you should add Confluent to your Azure toolkit | Alic...HostedbyConfluent
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talksRuslan Meshenberg
 
NetflixOSS and ZeroToDocker Talk
NetflixOSS and ZeroToDocker TalkNetflixOSS and ZeroToDocker Talk
NetflixOSS and ZeroToDocker Talkaspyker
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Marc Dutoo
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewboxLino Telera
 
Netflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and OpsNetflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and OpsAdrian Cockcroft
 
Convergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooConvergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooTriNimbus
 
Introduction to OpenStack Storage
Introduction to OpenStack StorageIntroduction to OpenStack Storage
Introduction to OpenStack StorageNetApp
 

Ähnlich wie Docker Meetup Tokyo #23 - Zenko Open Source Multi-Cloud Data Controller - Laure Vergeron (20)

Zenko & MetalK8s @ Dublin Docker Meetup, June 2018
Zenko & MetalK8s @ Dublin Docker Meetup, June 2018Zenko & MetalK8s @ Dublin Docker Meetup, June 2018
Zenko & MetalK8s @ Dublin Docker Meetup, June 2018
 
Zenko @Cloud Native Foundation London Meetup March 6th 2018
Zenko @Cloud Native Foundation London Meetup March 6th 2018Zenko @Cloud Native Foundation London Meetup March 6th 2018
Zenko @Cloud Native Foundation London Meetup March 6th 2018
 
2017 Hackathon Scality & 42 School
2017 Hackathon Scality & 42 School2017 Hackathon Scality & 42 School
2017 Hackathon Scality & 42 School
 
AWS re:Invent 2016 - Scality's Open Source AWS S3 Server
AWS re:Invent 2016 - Scality's Open Source AWS S3 ServerAWS re:Invent 2016 - Scality's Open Source AWS S3 Server
AWS re:Invent 2016 - Scality's Open Source AWS S3 Server
 
Openstack India May Meetup
Openstack India May MeetupOpenstack India May Meetup
Openstack India May Meetup
 
Zenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud WorldZenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud World
 
Openstack 101
Openstack 101Openstack 101
Openstack 101
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 
Confluent On Azure: Why you should add Confluent to your Azure toolkit | Alic...
Confluent On Azure: Why you should add Confluent to your Azure toolkit | Alic...Confluent On Azure: Why you should add Confluent to your Azure toolkit | Alic...
Confluent On Azure: Why you should add Confluent to your Azure toolkit | Alic...
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
 
Stackato v2
Stackato v2Stackato v2
Stackato v2
 
Stackato v3
Stackato v3Stackato v3
Stackato v3
 
Stackato
StackatoStackato
Stackato
 
NetflixOSS and ZeroToDocker Talk
NetflixOSS and ZeroToDocker TalkNetflixOSS and ZeroToDocker Talk
NetflixOSS and ZeroToDocker Talk
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
 
Netflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and OpsNetflix on Cloud - combined slides for Dev and Ops
Netflix on Cloud - combined slides for Dev and Ops
 
Convergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooConvergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency Woo
 
Introduction to OpenStack Storage
Introduction to OpenStack StorageIntroduction to OpenStack Storage
Introduction to OpenStack Storage
 

Kürzlich hochgeladen

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 

Kürzlich hochgeladen (20)

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 

Docker Meetup Tokyo #23 - Zenko Open Source Multi-Cloud Data Controller - Laure Vergeron

  • 1. DOCKER TOKYO - 2018-05-15 Zenko: the Multi-Cloud Data ControllerWe enable people who create value with data by making AWS storage cheaper Laure Vergeron Technology Evangelist R&D Engineer
  • 3. Agenda 1 - What is multi-cloud? 2 - Zenko: introduction to the multi-cloud data controller 3 - Zenko Orbit: introduction to the multi-cloud management UI 4 - CloudServer standalone: a simple local S3 endpoint 5 - Zenko S3 API: basically just AWS S3 API 6 - Zenko Enterprise Edition: coming later in 2018 7 - Zenkommunity 8 - Demos!
  • 6. ▪Content Distribution ▪ Media companies have tens of thousands of movies, which they store on Private Cloud for control. When it is time to publish a movie, it makes sense to copy it to a public cloud to use its transcoding and CDN services. ▪Compute Bursting ▪ Banks have to do risk analysis leveraging thousands of CPU every night. These intense computation only run for a few hours. Rather than having idle servers for the rest of the day, it makes sense to use Public Cloud services for the computation ▪Analytics ▪ E-commerce company do more and more machine learning on their very large data lake. Rather than setting up Hadoop infrastructures in-house, the company can copy just a data set to an Hadoop cloud, compute the appropriate algorithm, and get back the result and destroy the cloud copy of the data to save on storage cost. ▪Long-term Archival / cold storage ▪ While storing data which is regularly accessed is cheaper in a private cloud, long term archive of never accessed data is cheaper in long term archive cloud offering. Automatic archival of never accessed data would save a lot of money. Examples of Use-Cases for Multi-Cloud
  • 7. Who is multi cloud?
  • 8. Who is multi cloud?
  • 12. • Single Interface to any Cloud ▪ S3 API as a single API set to any cloud • Allow reuse in the Cloud ▪ Maintain the native cloud format • Always know your data and where it is ▪ Metadata search • Trigger actions based on data ▪ Data Workflow to manage replication, location The Zenko Multi-Cloud Data Controller 12
  • 14. Zenko: one endpoint, one API, one namespace, any cloud in native format ● One API: the S3 API ● One endpoint: your Zenko endpoint ● Any cloud currently supported: Google Cloud Platform, Microsoft Azure, Amazon S3, Wasabi, Digital Ocean Spaces, Scality RING, local storage ● Data stored in native format: use services native to your cloud; Zenko does not lock you in!
  • 15. METADATA DATA STORAGE DMD REST/Sproxyd AWS S3 API CLOUD API Shared Local Storage S3 API APP METADATA APP S3 CALLS  Zenko Open Source S3 API—Single API set and 360° access to any cloud   Native format—Data written through Zenko is stored in the native format of the target cloud storage and can be read directly, without going through Zenko. Backbeat, your data workflow manager — Policy-based data management engine Leveraging MongoDB for metadata search— Agregated metadata across all clouds in a replicated MongoDB gives a search tool for optimal data insight HA/Failover – Deployed as multiple containers for resilience via metal-k8s Simple Security – single-tenant credentials managed locally   S3 API S3 CALLS METADATA DATA MONGO DB Metadata Search Bucket LOCATION BACKBEAT Data Policy Engine Bucket LOCATION CRR/DATADATA Zenko: a stack of microservices
  • 17. Zenko: Orbit management UI ● https://admin.zenko.io ● Free to use until 1TB ● Can either ○ get a sandbox ○ register own instance ● Available as a pay-as-you-go service for large capacities ● No support with free edition
  • 18. Zenko: Orbit management UI ● Manage endpoints ● Manage locations ● Manage user keys ● Manage replication workflows ● Hardware stats ● Storage stats ● Probes to avoid mistakes at configuration steps
  • 19. CloudServer Standalone Make your hard drive an S3 bucket
  • 20. 20 CloudServer: What? • S3 API served in a Docker Container • Written in Node.js • 100% open source (Apache 2.0) • S3 stands for Simple Storage Service. The S3 API provides a simple interface used to store objects in buckets. • Single AWS S3 API interface to access multiple backend data storage both on-premise or public in the cloud.
  • 21. Open Source Scality CloudServer Adoption ▪Launched June 2016 ▪Open-source implementation of AWS S3 API ▪Code available on Github under Apache 2.0 license ▪Packaged in Docker container for easy deployment ▪Seamless upgrade to S3 Connector for the RING Now Over 1,000,000
  • 22. Zenko S3 API What’s there? What’s coming?
  • 23. Current Release API Support Core S3 APIs • Bucket and object operations (PUT, GET, DELETE, HEAD) • Multi-Part Upload (MPU) for efficient ingest of large objects Advanced S3 APIs • Bucket Website • Bucket CORS • Bucket Versioning • Bucket Cross Region Replication (CRR) Extended APIs • Utilization API for metering of capacity, #objects, bandwidth & ops • Bucket CRR 1-to-many 2018 Roadmap Bucket Lifecycle • Expiration policies - Q3 2018 Extended APIs • Metadata search through extended GET Bucket API – Q3 2018 23
  • 24. Zenko EE IAM for the enterprise, NFS over S3… … soon!
  • 25. • Zenko EE is not yet available – We are doing our first beta deployments at large American customers – We are looking at Q1 2019 for GA • Zenko CE is readily available, with community support – https://forum.zenko.io – Plenty of documentation on readthedocs – Send an email to your SE or to zenko@scality.com • Zenko Orbit is available pay-as-you-go – First TB of data managed is free 25 Zenko EE : COMING SOON! Just not yet...
  • 26. Zenkommunity Do you create value with data? Join us!
  • 27. Community Meetups • Initiated prior to our S3 Server launch • At Docker Tokyo on May 15th • At Scality Tokyo Open Source Night on May 16th • Participating at open source events for Docker, Nodejs, etc... Developer Hackathons • Paris and San Francisco in 2015-2018 ; maybe Tokyo next? • Co-sponsoring with partners – focused on a specific project goal (e.g., IP Drives, Backblaze integrations) • Great for building visibility & community participation 27 Building a Developer community
  • 28. How can I get involved with Zenko? • Let us know what you do with Zenko stack! ▪ zenko@scality.com ▪ Get your project/company featured on the website in a quote • Contribute tutorials ▪ Get a blogpost featuring your introduction of your tutorial ▪ Become part of our readTheDocs hosted documentation • Contribute code ▪ It’s an opportunity to drive the roadmap with us ! ▪ Join the team and be part of the Zenko craze ! ▪ We have Contributing Guidelines on the GitHub repos, and we’ll answer your questions via GitHub issues or our forum forum.zenko.io • Meet us at AWS Re:invent, DockerCon, Meetups... ▪ All info is on www.zenko.io 28
  • 29. ▪Zenko: MultiCloud Data Controller ▪ http://zenko.readthedocs.io/en/latest ▪ https://github.com/scality/Zenko ▪ https://forum.scality.com/ ▪ https://www.zenko.io/ ▪CloudServer (S3 API standalone) ▪ http://s3-server.readthedocs.io/en/latest/ ▪ https://github.com/scality/S3/ ▪ https://hub.docker.com/r/scality/s3server/ ▪Backbeat (data driven event manager) ▪ https://github.com/scality/Backbeat ▪Clueso (cross-cloud metadata search) ▪ https://github.com/scality/Clueso Zenko CE: everything you need @zenko_io @scality @LaureVergeron @GiorgioRegni
  • 30. 30 Ready to join us? • Create an account on our Forum • http://forum.zenko.io/ • Clone Zenko, and its microservices • https://github.com/scality/Zenko/ • https://github.com/scality/S3/ • https://github.com/scality/backbeat • Install s3cmd and AWS CLI • Read the docs ;) • Start with a minikube deployment • https://github.com/scality/Zenko/blob/master/charts/minikube.md • Reach out on the Forum as you have questions • Try a full bare-metal-kubespray deployment • https://github.com/scality/Zenko/tree/master/charts
  • 31. DIY and Demo Get your own Zenko sandbox Deploy Zenko on Minikube and register it on Orbit
  • 32. Q&A If you have more later: forum.zenko.io!
  • 35. Extra Slides Zenko One namespace One endpoint One API Any Cloud
  • 36. Zenko: one namespace, any cloud Zenko local Zenko to Public Cloud AWS Region / Location Region Public Cloud “bucket” Region Bucket Bucket Prefix in public cloud bucket Bucket $ aws --profile zenko s3 mb s3://remote-bucket --region aws-zenkobucket make_bucket: s3://mybucket $ aws --profile zenko s3 cp /etc/hosts s3://remote-bucket/test upload: /etc/hosts to s3://remote-bucket/test $ aws --profile zenko s3 ls 2018-05-14 17:08:50 remote-bucket $ aws --profile zenko s3 ls s3://remote-bucket 2018-05-14 17:09:18 235 test $ aws --profile aws s3 ls 2018-05-14 16:00:53 zenkobucket $ aws --profile aws s3 ls s3://zenkobucket PRE remote-bucket/ 2018-05-14 17:09:18 235 test
  • 37. Zenko: a stack of microservices $ docker stack services ls ID NAME MODE REPLICAS IMAGE PORTS 1j8jb41llhtm zenko-prod_s3-data replicated 1/1 zenko/cloudserver:pensieve-3 *:30010->9991/tcp 3y7vayna97bt zenko-prod_s3-front replicated 1/1 zenko/cloudserver:pensieve-3 *:30009->8000/tcp 957xksl0cbge zenko-prod_mongodb-init replicated 0/1 mongo:3.6.3-jessie cn0v7cf2jxkb zenko-prod_queue replicated 1/1 wurstmeister/kafka:1.0.0 *:30008->9092/tcp jjx9oabeugx1 zenko-prod_mongodb replicated 1/1 mongo:3.6.3-jessie *:30007->27017/tcp o530bkuognu5 zenko-prod_lb global 1/1 zenko/loadbalancer:latest *:80->80/tcp r69lgbue0o3o zenko-prod_backbeat-api replicated 1/1 zenko/backbeat:pensieve-4 ut0ssvmi10tx zenko-prod_backbeat-consumer replicated 1/1 zenko/backbeat:pensieve-4 vj2fr90qviho zenko-prod_cache replicated 1/1 redis:alpine *:30011->6379/tcp vqmkxu7yo859 zenko-prod_quorum replicated 1/1 zookeeper:3.4.11 *:30006->2181/tcp y7tt98x7jdl9 zenko-prod_backbeat-producer replicated 1/1 zenko/backbeat:pensieve-4 [...] Zenko: Multi-Cloud Data Controller Cloudserver Backbeat Utapi S3 API Multi Cloud API translation Event-driven data manager Replication engine Usage Stats Custom node.js Kafka- & Zookeeper- -based Redis-based Bare-Metal Kubespray: custom deployment of Kubespray
  • 38. Extra slides S3 API & Extended API
  • 39. CloudServer implements the AWS S3 Bucket Versioning API • Create a versioned Bucket (PUT Bucket Versioning) – enables Bucket to maintain object versions • If an object with the same key is PUT or DELETED, it becomes the current version – DELETE marker used for indicating current version deleted as per AWS semantics – Assigns version IDs for older versions Enables Data Restores • Access to previous states/versions of an object (GET object with specified version ID) Required for both CRR & Lifecycle Management APIs • As specified in S3 API • When writing to AWS S3, the target bucket must have versioning enabled! 39 Zenko S3 API: Bucket Versioning
  • 40. ● When versioning is enabled on a bucket: ● CREATE NEW VERSIONS: ○ Put Object, Complete Multipart Upload and Object Copy (to a versioning-enabled bucket) will return a version id in the ‘x-amz-version-id’ response header. ○ No special syntax necessary. ● When versioning is enabled or suspended: ● TARGETING SPECIFIC VERSIONS: ○ Include the version id in the request query for GET/HEAD Object or PUT/GET Object ACL ■ Example: `GET [bucket]/[object]?versionId=[versionId]` ○ For Object Copy or Upload Copy Part, to copy a specific version from a version-enabled bucket, add the version id to the ‘x-amz-copy-source’ header: ■ Example value: `[sourcebucket]/[sourceobject]?versionId=[versionId]` ○ Omitting a specific version will get the result for the latest / current version. Zenko S3 API: Bucket Versioning
  • 41. ● When versioning is enabled or suspended (cont.): ● NULL VERSIONS: ○ Null versions are created when putting an object before versioning is configured or when versioning is suspended. ■ Only one null version is maintained in version history. New null versions will overwrite previous null versions. ○ Target the null version in version-specific actions by specifying the version ID ‘null’. ● DELETING OBJECTS: ○ Regular deletion of objects will create delete markers and return ‘x-amz-delete-marker’: ‘true’ and the version ID of the delete marker in ‘x-amz-version-id’ response headers. ○ Objects with delete markers as the latest version will behave as if they have been deleted when performing non-version specific actions. ○ Permanently remove delete markers or specific versions by specifying the version ID in the request query. Example: `DELETE [bucket]/[object]?versionId=[versionId]` Zenko S3 API: Bucket Versioning
  • 42. ● When versioning is enabled or suspended (cont.): ● MULTI-OBJECT DELETE: ○ Specify the specific version of an object to delete in a multi-object delete request in the XML body. Example: http://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html ● At any time: ● LISTING OBJECTS: ○ A regular listing will list the most recent versions of an object and ignore objects with delete markers as their latest version. ○ To list all object versions and delete markers in a bucket, specify ‘versions’ in request query: ■ Example: `GET [bucket]?versions` ○ FMI about output: consult S3 Connector documentation ● GET BUCKET VERSIONING STATUS: use Get Bucket Versioning API. Zenko S3 API: Bucket Versioning
  • 43. ● Utapi can be accessed through a REST API with service available on a dedicated port ● API routes use AWS Signature Version V4 for authentication ● API calls for listing metrics can use account credentials or create an IAM user with policy allowing to list metrics ● Metrics are collected in 15 minute intervals (not configurable) ● Requests for listing metrics use POST routes and require at least start time and a list of resources (accounts/buckets/users) ● Refer to wiki here for listing metrics https://github.com/scality/utapi#listing-metrics-with-utapi Extended S3 API: UTAPI: UTilization API
  • 44. S3 Buckets with associated Location •Assigned as an optional request parameter “LocationConstraint” •In PUT Bucket API command, application can specify a location for each Bucket •Enables S3 Connector to manage Buckets across multiple RINGs for scaling or access to multiple DC’s •Enables Zenko to access multiple Public Clouds Location Mapping - Configuration file to manage multiple location to multiple backends mappings - Defines the default location for object PUTs - Object GET Access is transparent 44 Zenko S3 API: Bucket Location Control
  • 45. aws --endpoint-url http://127.0.0.1:8000 s3api create-bucket --bucket test-bucket --create-bucket-configuration LocationConstraint=azure-container aws --endpoint-url http://127.0.0.1:8000 s3 cp /etc/hosts s3://test-bucket/hosts • Specify bucket location at bucket creation • Object creation remains as usual PUT / HTTP/1.1 Host: {{BucketName}}.{{StorageService}}.com Content-Length: {{length}} Date: {{date}} Authorization: {{authenticationInformation}} <CreateBucketConfiguration xmlns="http://s3.scality.com/doc/2006-03-01/"> <LocationConstraint>azure-container</LocationConstraint> </CreateBucketConfiguration> • Request syntax Zenko S3 API: Bucket Location Control
  • 46. Zenko Multi-Cloud Async Replication - CRR Remote disaster recovery (DR) for WAN environments - Follows the AWS S3 API “cross-region replication” (CRR) API - Async bucket replication: source Bucket -> target Bucket - Versioning must be enabled on source & target Target bucket in S3/RING - CRR to remote S3/RING – in current release CRR Features: - Full site sync - Bucket to bucket sync - Monitoring statistics (throughput, backlog, RTO/RPO) - Failback - CRR from 1 region to many others (one public cloud to several others) 46
  • 50. 50 File or object? Why we do file: - We know it - Easy hierarchy - fopen() and fclose() - Lots of best practices - Perf of NAS / over LAN Why we do object: - Billions of entries - Storage accessed over WAN - For modern apps (REST) - Listing large volumes
  • 52. 52 CloudServer tree structure CheatSheet S3/locationConfig.json and S3/config.json - setup your own endpoints S3/lib/server.js - your entrypoint into the service Arsenal/lib/s3routes/routes/*.js - S3 route calls S3/lib/api/{{yourAPIcommand}} - S3 API calls S3/lib/data/wrapper.js & multipleBackendGateway.js - gateway to external clients S3/lib/data/external/*Client.js - current clients S3/conf/authData.json - setup your own credentials Arsenal/lib/storage/metadata/* - check how metadata works
  • 53. These commands assume you have S3 cloned locally, s3cmd configured for your S3 server, AWS cli configured for a real AWS bucket, and your locationConfig set up - START SERVER: S3BACKEND=mem S3DATA=multiple npm start - MAKE BUCKET: s3cmd mb s3://[bucket-name] - PUT OBJECT TO SPECIFIC LOCATION: s3cmd put [/path/to/file] s3://[bucket-name]/[object-name] --add-header x-amz-meta-scal-location-constraint:‘[location-name]’ - LIST OBJECTS IN BUCKET: s3cmd ls s3://[bucket-name]/[object-name] - GET S3 OBJECT METADATA: s3cmd info s3://[bucket-name]/[object-name] - IF PUT TO AWS, LIST OBJECTS ON AWS: aws s3api list-objects --bucket [bucket-name] Start S3 Server & Put Object Commands