SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
Keeping up a competitive Ceph RGW/S3 API
2
Who?
● Javier
● Computer Engineer and Software Developer
● Cloud and Virtualization team @ Igalia
@javimunhoz
linkedin.com/in/javiermunhoz
3
This talk
● Understanding upstream code investments in RGW/S3
● Going upstream with new features in RGW/S3
● Remarks
4
Understanding upstream code investments in RGW/S3
5
6
A first contact with AWS S3 (~2008)
● About two years after S3 was launched
● More than one year before Apple
launched the iPad
● Litl webbook project
– https://informationart.com/projects/litl
– update system
– global storage backend based on S3
7
AWS S3 nowadays
796 pages 727 pages
8
AWS re:Invent 2017: Deep Dive on Amazon S3 & Amazon Glacier Storage Management with (STG311)
9
10
https://media.amazonwebservices.com/architecturecenter/AWS_ac_ra_loganalysis_11.pdf
IaaS
11
● Costs
● Flexibility (Open)
● Security and Privacy
● Geopolitics
● ...
Reasons to adopt RGW/S3
12
● Base storage consumers
● Cheap and massive storage consumers
● On-line storage providers (IaaS providers)
Users and companies investing in RGW/S3
13
● S3 compatibility
● S3 feature coverage
Base storage consumers
14
● S3 compatibility
● S3 feature coverage
Base storage consumers
rgw s3 auth aws4 force boto2 compat = false
(2016)
15
● S3 compatibility
● S3 feature coverage
Base storage consumers
AWS Signature Version 4 core support (2016/03)
AWS Signature Version 4 chunked upload (2016/08)
AWS Signature Version 4 presigned url compatibility fix (2016/12)
...
(2015-2017)
16
● S3 storage management UX
● Integration with product and services
Cheap and massive storage consumers
17
● S3 storage management UX
● Integration with product and services
Cheap and massive storage consumers
Archive zone (2018-2019)
18
● S3 storage management UX
● Integration with product and services
Cheap and massive storage consumers
Ansible AWS S3 core module support (2016)
19
● Updated documentation and examples
● SDK, libs and client tooling support
● New S3 features and extensions
On-line storage providers (IaaS providers)
20
● Updated documentation and examples
● SDK, libs and client tooling support
● New S3 features and extensions
On-line storage providers (IaaS providers)
(2017)
21
● Updated documentation and examples
● SDK, libs and client tooling support
● New S3 features and extensions
On-line storage providers (IaaS providers)
(2016)
22
Libcloud Storage Drivers
(2016)
from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver
import libcloud
api_key = 'api_key'
secret_key = 'secret_key'
cls = get_driver(Provider.S3_RGW_OUTSCALE)
driver = cls(api_key, secret_key, region='eu-west-1')
container = driver.get_container(...)
23
● Updated documentation and examples
● SDK, libs and client tooling support
● New S3 features and extensions
On-line storage providers (IaaS providers)
Requester Pays Bucket (2016)
24
Requester Pays Bucket
Virtual error buckets
25
Going upstream with new features
26
Going upstream with new features
● Complexity
● Risk
● Communication
27
Going upstream with new features
1) Understand the Problem
1) Clarify the problem
2) Research similar options
3) Model the system and break the problem into pieces
2) Come up with a Plan
1) Prioritize your work
2) Map out your intended approach
3) Implement the Plan
4) Verify your Results
28
Going upstream with new features
● AWS Signature Version 4
● S3 request authentication algorithm
● Benefits over AWSv2
● Verification of the requester via access key ID and secret access key
● Request tampering prevention while the request is in transit
● Replay attacks protection within 15 minutes of the timestamp in the request
● Strategic feature
Example
29
Going upstream with new features
● AWS Signature Version 4
● Is it a real problem?
● Anyone working on it?
● Interest in going upstream?
● What is the use case?
1) Understand the Problem
1) Clarify the problem
2) Research similar options
3) Model the system and break the
problem into pieces
2) Come up with a Plan
1) Prioritize your work
2) Map out your intended approach
3) Implement the Plan
4) Verify your Results
30
Going upstream with new features
● AWS Signature Version 4
● Reference implementation available?
● Other open implementations?
● API spec, developer guide, etc.
● Official client side examples
1) Understand the Problem
1) Clarify the problem
2) Research similar options
3) Model the system and break the
problem into pieces
2) Come up with a Plan
1) Prioritize your work
2) Map out your intended approach
3) Implement the Plan
4) Verify your Results
31
Going upstream with new features
● AWS Signature Version 4
1) Understand the Problem
1) Clarify the problem
2) Research similar options
3) Model the system and break the
problem into pieces
2) Come up with a Plan
1) Prioritize your work
2) Map out your intended approach
3) Implement the Plan
4) Verify your Results
32
Going upstream with new features
● AWS Signature Version 4
● Break down for auth method
● HTTP Authorization header
● Transfer payload in a single chunk
● Transfer payload in multiple chunks
● Query string parameters
● Test cases
1) Understand the Problem
1) Clarify the problem
2) Research similar options
3) Model the system and break the
problem into pieces
2) Come up with a Plan
1) Prioritize your work
2) Map out your intended approach
3) Implement the Plan
4) Verify your Results
33
Going upstream with new features
● AWS Signature Version 4
● Break down for auth method
● HTTP Authorization header
●
Transfer payload in a single chunk (1)
●
Transfer payload in multiple chunks (5)
● Query string parameters (3)
● Test cases (2) (4) (6)
1) Understand the Problem
1) Clarify the problem
2) Research similar options
3) Model the system and break the
problem into pieces
2) Come up with a Plan
1) Prioritize your work
2) Map out your intended approach
3) Implement the Plan
4) Verify your Results
34
Going upstream with new features
● AWS Signature Version 4
● Share the Plan
1)HTTP Auth header (single chunk) + test cases
2)Query string parameters + test cases
3)HTTP Auth header (multiple chunks) + test cases
1) Understand the Problem
1) Clarify the problem
2) Research similar options
3) Model the system and break the
problem into pieces
2) Come up with a Plan
1) Prioritize your work
2) Map out your intended approach
3) Implement the Plan
4) Verify your Results
35
Going upstream with new features
● AWS Signature Version 4
● Start with a simple skeleton
● Implement specific and minimum
functionality
1) Understand the Problem
1) Clarify the problem
2) Research similar options
3) Model the system and break the
problem into pieces
2) Come up with a Plan
1) Prioritize your work
2) Map out your intended approach
3) Implement the Plan
4) Verify your Results
36
37
Going upstream with new features
● AWS Signature Version 4
● Things work as expected?
● AWS S3 official clients work?
● Implement test cases
● Useful logging
1) Understand the Problem
1) Clarify the problem
2) Research similar options
3) Model the system and break the
problem into pieces
2) Come up with a Plan
1) Prioritize your work
2) Map out your intended approach
3) Implement the Plan
4) Verify your Results
38
39
GRANTED
40
https://github.com/ceph/s3-tests/blob/master/s3tests/functional/test_headers.py
41
Remarks
● A competitive S3 API responds to real market needs
● The value and impact of the S3 API is not well understood
● Users and companies are willing to invest in high value
upstream contributions in RGW/S3
● A systematic and flexible process for investment in upstream
contributions seems to work well for all parties
● New features and specific extensions are key to adopt
RGW/S3 in new business contexts
Thanks!

Más contenido relacionado

La actualidad más candente

THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.ioTHE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.ioDevOpsDays Tel Aviv
 
Qanary presentation at semantics conference 2016
Qanary presentation at semantics conference 2016Qanary presentation at semantics conference 2016
Qanary presentation at semantics conference 2016wdaqua
 
Timed Text At Netflix
Timed Text At NetflixTimed Text At Netflix
Timed Text At NetflixRohit Puri
 
Velocity 2019 making s3 more resilient using lambda@edge- velocity v1 (1)
Velocity 2019   making s3 more resilient using lambda@edge- velocity v1 (1)Velocity 2019   making s3 more resilient using lambda@edge- velocity v1 (1)
Velocity 2019 making s3 more resilient using lambda@edge- velocity v1 (1)Júlia Biró
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4aspyker
 
Industrializing Machine learning pipelines
Industrializing Machine learning pipelinesIndustrializing Machine learning pipelines
Industrializing Machine learning pipelinesGermain Tanguy
 
The Graph-Native Advantage
The Graph-Native AdvantageThe Graph-Native Advantage
The Graph-Native AdvantageNeo4j
 
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4jGraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4jNeo4j
 
Full Stack Graph in the Cloud
Full Stack Graph in the CloudFull Stack Graph in the Cloud
Full Stack Graph in the CloudNeo4j
 
What the hell is your software doing at runtime?
What the hell is your software doing at runtime?What the hell is your software doing at runtime?
What the hell is your software doing at runtime?Roberto Franchini
 
Java Webinar #13 “Where Is My Development Zone?”
Java Webinar #13 “Where Is My Development Zone?”Java Webinar #13 “Where Is My Development Zone?”
Java Webinar #13 “Where Is My Development Zone?”GlobalLogic Ukraine
 
05Nov13 Webinar: Introducing Revolution R Enterprise 7 - The Big Data Big Ana...
05Nov13 Webinar: Introducing Revolution R Enterprise 7 - The Big Data Big Ana...05Nov13 Webinar: Introducing Revolution R Enterprise 7 - The Big Data Big Ana...
05Nov13 Webinar: Introducing Revolution R Enterprise 7 - The Big Data Big Ana...Revolution Analytics
 
Enterprise graph applications
Enterprise graph applicationsEnterprise graph applications
Enterprise graph applicationsDavid Colebatch
 
This Week in Neo4j- 1st December 2018
This Week in Neo4j- 1st December 2018This Week in Neo4j- 1st December 2018
This Week in Neo4j- 1st December 2018Neo4j
 
Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?Roberto Franchini
 
Geant4 physics validation on the GRID
Geant4 physics validation on the GRIDGeant4 physics validation on the GRID
Geant4 physics validation on the GRIDGeorge Lestaris
 

La actualidad más candente (20)

THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.ioTHE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
 
Qanary presentation at semantics conference 2016
Qanary presentation at semantics conference 2016Qanary presentation at semantics conference 2016
Qanary presentation at semantics conference 2016
 
Timed Text At Netflix
Timed Text At NetflixTimed Text At Netflix
Timed Text At Netflix
 
Velocity 2019 making s3 more resilient using lambda@edge- velocity v1 (1)
Velocity 2019   making s3 more resilient using lambda@edge- velocity v1 (1)Velocity 2019   making s3 more resilient using lambda@edge- velocity v1 (1)
Velocity 2019 making s3 more resilient using lambda@edge- velocity v1 (1)
 
Boost your API with GraphQL
Boost your API with GraphQLBoost your API with GraphQL
Boost your API with GraphQL
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4
 
GraphQL & Ratpack
GraphQL & RatpackGraphQL & Ratpack
GraphQL & Ratpack
 
Industrializing Machine learning pipelines
Industrializing Machine learning pipelinesIndustrializing Machine learning pipelines
Industrializing Machine learning pipelines
 
The Graph-Native Advantage
The Graph-Native AdvantageThe Graph-Native Advantage
The Graph-Native Advantage
 
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4jGraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
 
CNCF opa
CNCF opaCNCF opa
CNCF opa
 
Full Stack Graph in the Cloud
Full Stack Graph in the CloudFull Stack Graph in the Cloud
Full Stack Graph in the Cloud
 
What the hell is your software doing at runtime?
What the hell is your software doing at runtime?What the hell is your software doing at runtime?
What the hell is your software doing at runtime?
 
Java Webinar #13 “Where Is My Development Zone?”
Java Webinar #13 “Where Is My Development Zone?”Java Webinar #13 “Where Is My Development Zone?”
Java Webinar #13 “Where Is My Development Zone?”
 
Stackalytics
StackalyticsStackalytics
Stackalytics
 
05Nov13 Webinar: Introducing Revolution R Enterprise 7 - The Big Data Big Ana...
05Nov13 Webinar: Introducing Revolution R Enterprise 7 - The Big Data Big Ana...05Nov13 Webinar: Introducing Revolution R Enterprise 7 - The Big Data Big Ana...
05Nov13 Webinar: Introducing Revolution R Enterprise 7 - The Big Data Big Ana...
 
Enterprise graph applications
Enterprise graph applicationsEnterprise graph applications
Enterprise graph applications
 
This Week in Neo4j- 1st December 2018
This Week in Neo4j- 1st December 2018This Week in Neo4j- 1st December 2018
This Week in Neo4j- 1st December 2018
 
Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?
 
Geant4 physics validation on the GRID
Geant4 physics validation on the GRIDGeant4 physics validation on the GRID
Geant4 physics validation on the GRID
 

Similar a Keeping up a Competitive Ceph/RadosGW S3 API (Cephalocon Barcelona 2019)

Learn about AWS Certifications - Andrew May, Columbus
Learn about AWS Certifications - Andrew May, ColumbusLearn about AWS Certifications - Andrew May, Columbus
Learn about AWS Certifications - Andrew May, ColumbusAWS Chicago
 
Columbus AWS Meetup: AWS Certifications
Columbus AWS Meetup: AWS CertificationsColumbus AWS Meetup: AWS Certifications
Columbus AWS Meetup: AWS CertificationsAndrewMay59
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsFedir RYKHTIK
 
API workshop by AWS and 3scale
API workshop by AWS and 3scaleAPI workshop by AWS and 3scale
API workshop by AWS and 3scale3scale
 
Design Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason FreyDesign Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason FreyManageIQ
 
End to-end example: consumer loan acceptance scoring using kubeflow
End to-end example: consumer loan acceptance scoring using kubeflowEnd to-end example: consumer loan acceptance scoring using kubeflow
End to-end example: consumer loan acceptance scoring using kubeflowRadovan Parrak
 
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...NETWAYS
 
2016 07 - CloudBridge Python library (XSEDE16)
2016 07 - CloudBridge Python library (XSEDE16)2016 07 - CloudBridge Python library (XSEDE16)
2016 07 - CloudBridge Python library (XSEDE16)Enis Afgan
 
Andrew May - Getting Certified for Fun and Profit
Andrew May - Getting Certified for Fun and ProfitAndrew May - Getting Certified for Fun and Profit
Andrew May - Getting Certified for Fun and ProfitAWS Chicago
 
AWS Lambda and Serverless framework: lessons learned while building a serverl...
AWS Lambda and Serverless framework: lessons learned while building a serverl...AWS Lambda and Serverless framework: lessons learned while building a serverl...
AWS Lambda and Serverless framework: lessons learned while building a serverl...Luciano Mammino
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...Alexandr Savchenko
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...Fwdays
 
MOPs & ML Pipelines on GCP - Session 6, RGDC
MOPs & ML Pipelines on GCP - Session 6, RGDCMOPs & ML Pipelines on GCP - Session 6, RGDC
MOPs & ML Pipelines on GCP - Session 6, RGDCgdgsurrey
 
Openshift service broker and catalog ocp-meetup july 2018
Openshift service broker and catalog  ocp-meetup july 2018Openshift service broker and catalog  ocp-meetup july 2018
Openshift service broker and catalog ocp-meetup july 2018Michael Calizo
 
Glasswall Wardley Maps & Services
Glasswall Wardley Maps & ServicesGlasswall Wardley Maps & Services
Glasswall Wardley Maps & ServicesSteve Purkis
 
PyConIT 2018 Writing and deploying serverless python applications
PyConIT 2018 Writing and deploying serverless python applicationsPyConIT 2018 Writing and deploying serverless python applications
PyConIT 2018 Writing and deploying serverless python applicationsCesar Cardenas Desales
 
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with KubernetesKubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with KubernetesSeungYong Oh
 
Implementation of IAAC using AWS CDK
Implementation of IAAC using AWS CDKImplementation of IAAC using AWS CDK
Implementation of IAAC using AWS CDKAritra Nag
 
Automating using Ansible
Automating using AnsibleAutomating using Ansible
Automating using AnsibleAlok Patra
 
Static Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoverityStatic Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoveritySamsung Open Source Group
 

Similar a Keeping up a Competitive Ceph/RadosGW S3 API (Cephalocon Barcelona 2019) (20)

Learn about AWS Certifications - Andrew May, Columbus
Learn about AWS Certifications - Andrew May, ColumbusLearn about AWS Certifications - Andrew May, Columbus
Learn about AWS Certifications - Andrew May, Columbus
 
Columbus AWS Meetup: AWS Certifications
Columbus AWS Meetup: AWS CertificationsColumbus AWS Meetup: AWS Certifications
Columbus AWS Meetup: AWS Certifications
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
 
API workshop by AWS and 3scale
API workshop by AWS and 3scaleAPI workshop by AWS and 3scale
API workshop by AWS and 3scale
 
Design Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason FreyDesign Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason Frey
 
End to-end example: consumer loan acceptance scoring using kubeflow
End to-end example: consumer loan acceptance scoring using kubeflowEnd to-end example: consumer loan acceptance scoring using kubeflow
End to-end example: consumer loan acceptance scoring using kubeflow
 
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
 
2016 07 - CloudBridge Python library (XSEDE16)
2016 07 - CloudBridge Python library (XSEDE16)2016 07 - CloudBridge Python library (XSEDE16)
2016 07 - CloudBridge Python library (XSEDE16)
 
Andrew May - Getting Certified for Fun and Profit
Andrew May - Getting Certified for Fun and ProfitAndrew May - Getting Certified for Fun and Profit
Andrew May - Getting Certified for Fun and Profit
 
AWS Lambda and Serverless framework: lessons learned while building a serverl...
AWS Lambda and Serverless framework: lessons learned while building a serverl...AWS Lambda and Serverless framework: lessons learned while building a serverl...
AWS Lambda and Serverless framework: lessons learned while building a serverl...
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...
 
MOPs & ML Pipelines on GCP - Session 6, RGDC
MOPs & ML Pipelines on GCP - Session 6, RGDCMOPs & ML Pipelines on GCP - Session 6, RGDC
MOPs & ML Pipelines on GCP - Session 6, RGDC
 
Openshift service broker and catalog ocp-meetup july 2018
Openshift service broker and catalog  ocp-meetup july 2018Openshift service broker and catalog  ocp-meetup july 2018
Openshift service broker and catalog ocp-meetup july 2018
 
Glasswall Wardley Maps & Services
Glasswall Wardley Maps & ServicesGlasswall Wardley Maps & Services
Glasswall Wardley Maps & Services
 
PyConIT 2018 Writing and deploying serverless python applications
PyConIT 2018 Writing and deploying serverless python applicationsPyConIT 2018 Writing and deploying serverless python applications
PyConIT 2018 Writing and deploying serverless python applications
 
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with KubernetesKubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
 
Implementation of IAAC using AWS CDK
Implementation of IAAC using AWS CDKImplementation of IAAC using AWS CDK
Implementation of IAAC using AWS CDK
 
Automating using Ansible
Automating using AnsibleAutomating using Ansible
Automating using Ansible
 
Static Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoverityStatic Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with Coverity
 

Más de Igalia

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEIgalia
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesIgalia
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceIgalia
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfIgalia
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JITIgalia
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!Igalia
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerIgalia
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in MesaIgalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIgalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera LinuxIgalia
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVMIgalia
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsIgalia
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesIgalia
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSIgalia
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webIgalia
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersIgalia
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...Igalia
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on RaspberryIgalia
 

Más de Igalia (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 

Último

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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 Takeoffsammart93
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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 educationjfdjdjcjdnsjd
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Keeping up a Competitive Ceph/RadosGW S3 API (Cephalocon Barcelona 2019)

  • 1. Keeping up a competitive Ceph RGW/S3 API
  • 2. 2 Who? ● Javier ● Computer Engineer and Software Developer ● Cloud and Virtualization team @ Igalia @javimunhoz linkedin.com/in/javiermunhoz
  • 3. 3 This talk ● Understanding upstream code investments in RGW/S3 ● Going upstream with new features in RGW/S3 ● Remarks
  • 4. 4 Understanding upstream code investments in RGW/S3
  • 5. 5
  • 6. 6 A first contact with AWS S3 (~2008) ● About two years after S3 was launched ● More than one year before Apple launched the iPad ● Litl webbook project – https://informationart.com/projects/litl – update system – global storage backend based on S3
  • 7. 7 AWS S3 nowadays 796 pages 727 pages
  • 8. 8 AWS re:Invent 2017: Deep Dive on Amazon S3 & Amazon Glacier Storage Management with (STG311)
  • 9. 9
  • 11. 11 ● Costs ● Flexibility (Open) ● Security and Privacy ● Geopolitics ● ... Reasons to adopt RGW/S3
  • 12. 12 ● Base storage consumers ● Cheap and massive storage consumers ● On-line storage providers (IaaS providers) Users and companies investing in RGW/S3
  • 13. 13 ● S3 compatibility ● S3 feature coverage Base storage consumers
  • 14. 14 ● S3 compatibility ● S3 feature coverage Base storage consumers rgw s3 auth aws4 force boto2 compat = false (2016)
  • 15. 15 ● S3 compatibility ● S3 feature coverage Base storage consumers AWS Signature Version 4 core support (2016/03) AWS Signature Version 4 chunked upload (2016/08) AWS Signature Version 4 presigned url compatibility fix (2016/12) ... (2015-2017)
  • 16. 16 ● S3 storage management UX ● Integration with product and services Cheap and massive storage consumers
  • 17. 17 ● S3 storage management UX ● Integration with product and services Cheap and massive storage consumers Archive zone (2018-2019)
  • 18. 18 ● S3 storage management UX ● Integration with product and services Cheap and massive storage consumers Ansible AWS S3 core module support (2016)
  • 19. 19 ● Updated documentation and examples ● SDK, libs and client tooling support ● New S3 features and extensions On-line storage providers (IaaS providers)
  • 20. 20 ● Updated documentation and examples ● SDK, libs and client tooling support ● New S3 features and extensions On-line storage providers (IaaS providers) (2017)
  • 21. 21 ● Updated documentation and examples ● SDK, libs and client tooling support ● New S3 features and extensions On-line storage providers (IaaS providers) (2016)
  • 22. 22 Libcloud Storage Drivers (2016) from libcloud.storage.types import Provider from libcloud.storage.providers import get_driver import libcloud api_key = 'api_key' secret_key = 'secret_key' cls = get_driver(Provider.S3_RGW_OUTSCALE) driver = cls(api_key, secret_key, region='eu-west-1') container = driver.get_container(...)
  • 23. 23 ● Updated documentation and examples ● SDK, libs and client tooling support ● New S3 features and extensions On-line storage providers (IaaS providers) Requester Pays Bucket (2016)
  • 25. 25 Going upstream with new features
  • 26. 26 Going upstream with new features ● Complexity ● Risk ● Communication
  • 27. 27 Going upstream with new features 1) Understand the Problem 1) Clarify the problem 2) Research similar options 3) Model the system and break the problem into pieces 2) Come up with a Plan 1) Prioritize your work 2) Map out your intended approach 3) Implement the Plan 4) Verify your Results
  • 28. 28 Going upstream with new features ● AWS Signature Version 4 ● S3 request authentication algorithm ● Benefits over AWSv2 ● Verification of the requester via access key ID and secret access key ● Request tampering prevention while the request is in transit ● Replay attacks protection within 15 minutes of the timestamp in the request ● Strategic feature Example
  • 29. 29 Going upstream with new features ● AWS Signature Version 4 ● Is it a real problem? ● Anyone working on it? ● Interest in going upstream? ● What is the use case? 1) Understand the Problem 1) Clarify the problem 2) Research similar options 3) Model the system and break the problem into pieces 2) Come up with a Plan 1) Prioritize your work 2) Map out your intended approach 3) Implement the Plan 4) Verify your Results
  • 30. 30 Going upstream with new features ● AWS Signature Version 4 ● Reference implementation available? ● Other open implementations? ● API spec, developer guide, etc. ● Official client side examples 1) Understand the Problem 1) Clarify the problem 2) Research similar options 3) Model the system and break the problem into pieces 2) Come up with a Plan 1) Prioritize your work 2) Map out your intended approach 3) Implement the Plan 4) Verify your Results
  • 31. 31 Going upstream with new features ● AWS Signature Version 4 1) Understand the Problem 1) Clarify the problem 2) Research similar options 3) Model the system and break the problem into pieces 2) Come up with a Plan 1) Prioritize your work 2) Map out your intended approach 3) Implement the Plan 4) Verify your Results
  • 32. 32 Going upstream with new features ● AWS Signature Version 4 ● Break down for auth method ● HTTP Authorization header ● Transfer payload in a single chunk ● Transfer payload in multiple chunks ● Query string parameters ● Test cases 1) Understand the Problem 1) Clarify the problem 2) Research similar options 3) Model the system and break the problem into pieces 2) Come up with a Plan 1) Prioritize your work 2) Map out your intended approach 3) Implement the Plan 4) Verify your Results
  • 33. 33 Going upstream with new features ● AWS Signature Version 4 ● Break down for auth method ● HTTP Authorization header ● Transfer payload in a single chunk (1) ● Transfer payload in multiple chunks (5) ● Query string parameters (3) ● Test cases (2) (4) (6) 1) Understand the Problem 1) Clarify the problem 2) Research similar options 3) Model the system and break the problem into pieces 2) Come up with a Plan 1) Prioritize your work 2) Map out your intended approach 3) Implement the Plan 4) Verify your Results
  • 34. 34 Going upstream with new features ● AWS Signature Version 4 ● Share the Plan 1)HTTP Auth header (single chunk) + test cases 2)Query string parameters + test cases 3)HTTP Auth header (multiple chunks) + test cases 1) Understand the Problem 1) Clarify the problem 2) Research similar options 3) Model the system and break the problem into pieces 2) Come up with a Plan 1) Prioritize your work 2) Map out your intended approach 3) Implement the Plan 4) Verify your Results
  • 35. 35 Going upstream with new features ● AWS Signature Version 4 ● Start with a simple skeleton ● Implement specific and minimum functionality 1) Understand the Problem 1) Clarify the problem 2) Research similar options 3) Model the system and break the problem into pieces 2) Come up with a Plan 1) Prioritize your work 2) Map out your intended approach 3) Implement the Plan 4) Verify your Results
  • 36. 36
  • 37. 37 Going upstream with new features ● AWS Signature Version 4 ● Things work as expected? ● AWS S3 official clients work? ● Implement test cases ● Useful logging 1) Understand the Problem 1) Clarify the problem 2) Research similar options 3) Model the system and break the problem into pieces 2) Come up with a Plan 1) Prioritize your work 2) Map out your intended approach 3) Implement the Plan 4) Verify your Results
  • 38. 38
  • 41. 41 Remarks ● A competitive S3 API responds to real market needs ● The value and impact of the S3 API is not well understood ● Users and companies are willing to invest in high value upstream contributions in RGW/S3 ● A systematic and flexible process for investment in upstream contributions seems to work well for all parties ● New features and specific extensions are key to adopt RGW/S3 in new business contexts