SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Chmouel Boudjnah!
OpenStack Summit 2014 Atlanta
OpenStack Swift as a Backend for Git
Chmouel Boudjnah - @chmouel - eNovance
Chmouel Boudjnah - @chmouel - eNovance
The mandatory about me
Chmouel Boudjnah - @chmouel - eNovance
About me
I am not the author, Fabien Boucher
aka: @bzho
Chmouel Boudjnah - @chmouel - eNovance
Chmouel Boudjnah - @chmouel - eNovance
About me
We both work for eNovance
Chmouel Boudjnah - @chmouel - eNovance
About me
OpenStacker for quite some time now
Chmouel Boudjnah - @chmouel - eNovance
So what is Swift?
Chmouel Boudjnah - @chmouel - eNovance
• Object Storage
• Not a file system
• Eventually Consistent
• HTTP REST API
• Very Scalable
• Software defined Storage
What is Swift
Chmouel Boudjnah - @chmouel - eNovance
Why would you want to use GIT with Swift?
Chmouel Boudjnah - @chmouel - eNovance
Why Swift with GIT
Why not?
Chmouel Boudjnah - @chmouel - eNovance
Why Swift with GIT
When you use a file system you have to :
Perform backups of your repositories regularly
Perform complex and risky operations to extend the storage capabilities
for you repositories.
You have mostly have to manage it yourself
It’s an another piece in your infrastructure
You have to manage the downtime
Not fun
Chmouel Boudjnah - @chmouel - eNovance
So what are the benefits?
Chmouel Boudjnah - @chmouel - eNovance
Why Swift with GIT
The advantages of using Swift
Safety: The inherent replication of a data store.
Capability: easily extend storage capacity.
High Availability: no single point of failure.
Maintainability: allow operations teams to maintain the cluster without
any downtime.
In an OpenStack environment it’s usually already there.
Chmouel Boudjnah - @chmouel - eNovance
Let’s see how git internal works
Chmouel Boudjnah - @chmouel - eNovance
Chmouel Boudjnah - @chmouel - eNovance
Chmouel Boudjnah - @chmouel - eNovance
So how did we plug that to Swift?
Chmouel Boudjnah - @chmouel - eNovance
We did not want to modify the GIT client binaries.
Chmouel Boudjnah - @chmouel - eNovance
We used a pure python GIT library called Dulwich
Chmouel Boudjnah - @chmouel - eNovance
• Create, read, manage loose objects (blob, tree,
commit, tag).
• Create, read, manage pack files, pack indexes.
• Implement the Git smart protocol through git-
upload-pack and git-receive-pack.
• Implement the Git, HTTP, SSH listeners to start
Dulwich as a Git server.
• Provide a well designed interface to the storage
backend. (Repo, MemoryRepo).
Dulwich
Chmouel Boudjnah - @chmouel - eNovance
How do we use Dulwhich
We implemented a custom repo called SwiftRepo as a backend to the git
listener of Dulwich which communicate to OpenStack Swift
Chmouel Boudjnah - @chmouel - eNovance
So about that SwiftRepo backend how does it
work?
Chmouel Boudjnah - @chmouel - eNovance
SwiftRepos backend to Dulwich
It doesn’t use the standard way to store Git
references (one file by reference).
It doesn’t store loose objects but instead uses the pack format.
In addition to the .index that relate to each pack file we added .info object
It makes the Request to Swift concurrently.
Chmouel Boudjnah - @chmouel - eNovance
How’s the benchmark then?
Chmouel Boudjnah - @chmouel - eNovance
Benchmark Setup
Benchmark performed on two architectures :
Github :
● Git client from eNovance network <-> GitHub
!
Dulwich/Swift :
●· Git client from eNovance network <-> Dulwich (Rax compute) <->
Rax Cloudfiles
!
Three different repos :
!
●· Swiftsync (873 objects with 293 commits)
●· Edeploy (2246 objects with 618 commits)
●· Swift (23480 objects with 3212 commit)
Chmouel Boudjnah - @chmouel - eNovance
Full repository push
Chmouel Boudjnah - @chmouel - eNovance
Clone
Chmouel Boudjnah - @chmouel - eNovance
That’s it, hope you
enjoyed.
Chmouel Boudjnah - @chmouel - eNovance
Eventual Consistentie
Why Eventual Consistentie window is not an issue

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Concourse webhook
Concourse webhookConcourse webhook
Concourse webhook
 
Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014
 
Introduction to bower
Introduction to bowerIntroduction to bower
Introduction to bower
 
Don't be the bottleneck of your open source project!
Don't be the bottleneck of your open source project!Don't be the bottleneck of your open source project!
Don't be the bottleneck of your open source project!
 
How to build and host an async activity feed in azure
How to build and host an async activity feed in azureHow to build and host an async activity feed in azure
How to build and host an async activity feed in azure
 
Broken Dreams & Shattered Promises
Broken Dreams & Shattered PromisesBroken Dreams & Shattered Promises
Broken Dreams & Shattered Promises
 
Unleashing the Rails Asset Pipeline
Unleashing the Rails Asset PipelineUnleashing the Rails Asset Pipeline
Unleashing the Rails Asset Pipeline
 
Deploy your web app to aws
Deploy your web app to awsDeploy your web app to aws
Deploy your web app to aws
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
ConcourseCi Dockerimage
ConcourseCi DockerimageConcourseCi Dockerimage
ConcourseCi Dockerimage
 
Puppet, now with google!
Puppet, now with google!Puppet, now with google!
Puppet, now with google!
 
Ansible party in the [Google] clouds
Ansible party in the [Google] cloudsAnsible party in the [Google] clouds
Ansible party in the [Google] clouds
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Building a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStackBuilding a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStack
 
AWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverythingAWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverything
 
Drupal 8 + Elasticsearch + Docker
Drupal 8 + Elasticsearch + DockerDrupal 8 + Elasticsearch + Docker
Drupal 8 + Elasticsearch + Docker
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Teaching a Designer to Use GitHub
Teaching a Designer to Use GitHubTeaching a Designer to Use GitHub
Teaching a Designer to Use GitHub
 
Aegir Fresno Drupal User Group 1-21-10
Aegir Fresno Drupal User Group 1-21-10Aegir Fresno Drupal User Group 1-21-10
Aegir Fresno Drupal User Group 1-21-10
 
Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
 

Semelhante a Git with Swift Atlanta 2014

OpenStack and Ceph: the Winning Pair
OpenStack and Ceph: the Winning PairOpenStack and Ceph: the Winning Pair
OpenStack and Ceph: the Winning Pair
Red_Hat_Storage
 

Semelhante a Git with Swift Atlanta 2014 (20)

Art of unittesting in OpenStack - Paris 2014
Art of unittesting in OpenStack - Paris 2014Art of unittesting in OpenStack - Paris 2014
Art of unittesting in OpenStack - Paris 2014
 
OpenNebulaConf2015 1.07 Cloud for Scientific Computing @ STFC - Alexander Dibbo
OpenNebulaConf2015 1.07 Cloud for Scientific Computing @ STFC - Alexander DibboOpenNebulaConf2015 1.07 Cloud for Scientific Computing @ STFC - Alexander Dibbo
OpenNebulaConf2015 1.07 Cloud for Scientific Computing @ STFC - Alexander Dibbo
 
Ansible module development 101
Ansible module development 101Ansible module development 101
Ansible module development 101
 
Build an Infra Product with AWS Fargate
Build an Infra Product with AWS FargateBuild an Infra Product with AWS Fargate
Build an Infra Product with AWS Fargate
 
Organize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterpriseOrganize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterprise
 
OpenStack and Ceph: the Winning Pair
OpenStack and Ceph: the Winning PairOpenStack and Ceph: the Winning Pair
OpenStack and Ceph: the Winning Pair
 
Kubecon 2019 Recap
Kubecon 2019 RecapKubecon 2019 Recap
Kubecon 2019 Recap
 
OpenStack Ottawa Q2 MeetUp - May 31st 2017
OpenStack Ottawa Q2 MeetUp - May 31st 2017OpenStack Ottawa Q2 MeetUp - May 31st 2017
OpenStack Ottawa Q2 MeetUp - May 31st 2017
 
OpenStack@NBU
OpenStack@NBUOpenStack@NBU
OpenStack@NBU
 
Principles of Iteration
Principles of IterationPrinciples of Iteration
Principles of Iteration
 
Ceph & OpenStack - Boston Meetup
Ceph & OpenStack - Boston MeetupCeph & OpenStack - Boston Meetup
Ceph & OpenStack - Boston Meetup
 
Ceph and openstack at the boston meetup
Ceph and openstack at the boston meetupCeph and openstack at the boston meetup
Ceph and openstack at the boston meetup
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to Ansible
 
Conversational Development [Agile Portugal]
Conversational Development [Agile Portugal]Conversational Development [Agile Portugal]
Conversational Development [Agile Portugal]
 
Intro - End to end ML with Kubeflow @ SignalConf 2018
Intro - End to end ML with Kubeflow @ SignalConf 2018Intro - End to end ML with Kubeflow @ SignalConf 2018
Intro - End to end ML with Kubeflow @ SignalConf 2018
 
Using NuGet the way you should - TechDays NL 2014
Using NuGet the way you should - TechDays NL 2014Using NuGet the way you should - TechDays NL 2014
Using NuGet the way you should - TechDays NL 2014
 
Kubeflow
KubeflowKubeflow
Kubeflow
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
NLUUG print conference May 26 2016
NLUUG print conference May 26 2016NLUUG print conference May 26 2016
NLUUG print conference May 26 2016
 
OpenStack Toronto Q2 MeetUp - June 1st 2017
OpenStack Toronto Q2 MeetUp - June 1st 2017OpenStack Toronto Q2 MeetUp - June 1st 2017
OpenStack Toronto Q2 MeetUp - June 1st 2017
 

Último

Abortion Clinic in Kwa thema +27791653574 Kwa thema WhatsApp Abortion Clinic ...
Abortion Clinic in Kwa thema +27791653574 Kwa thema WhatsApp Abortion Clinic ...Abortion Clinic in Kwa thema +27791653574 Kwa thema WhatsApp Abortion Clinic ...
Abortion Clinic in Kwa thema +27791653574 Kwa thema WhatsApp Abortion Clinic ...
mikehavy0
 
原版定制英国赫瑞瓦特大学毕业证原件一模一样
原版定制英国赫瑞瓦特大学毕业证原件一模一样原版定制英国赫瑞瓦特大学毕业证原件一模一样
原版定制英国赫瑞瓦特大学毕业证原件一模一样
AS
 
一比一原版英国格林多大学毕业证如何办理
一比一原版英国格林多大学毕业证如何办理一比一原版英国格林多大学毕业证如何办理
一比一原版英国格林多大学毕业证如何办理
AS
 
一比一原版布兰迪斯大学毕业证如何办理
一比一原版布兰迪斯大学毕业证如何办理一比一原版布兰迪斯大学毕业证如何办理
一比一原版布兰迪斯大学毕业证如何办理
A
 
一比一原版英国创意艺术大学毕业证如何办理
一比一原版英国创意艺术大学毕业证如何办理一比一原版英国创意艺术大学毕业证如何办理
一比一原版英国创意艺术大学毕业证如何办理
AS
 
一比一原版(PSU毕业证书)美国宾州州立大学毕业证如何办理
一比一原版(PSU毕业证书)美国宾州州立大学毕业证如何办理一比一原版(PSU毕业证书)美国宾州州立大学毕业证如何办理
一比一原版(PSU毕业证书)美国宾州州立大学毕业证如何办理
Fir
 
如何办理(UCLA毕业证)加州大学洛杉矶分校毕业证成绩单本科硕士学位证留信学历认证
如何办理(UCLA毕业证)加州大学洛杉矶分校毕业证成绩单本科硕士学位证留信学历认证如何办理(UCLA毕业证)加州大学洛杉矶分校毕业证成绩单本科硕士学位证留信学历认证
如何办理(UCLA毕业证)加州大学洛杉矶分校毕业证成绩单本科硕士学位证留信学历认证
hfkmxufye
 
一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样
一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样
一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样
Fi
 
一比一原版(Design毕业证书)新加坡科技设计大学毕业证原件一模一样
一比一原版(Design毕业证书)新加坡科技设计大学毕业证原件一模一样一比一原版(Design毕业证书)新加坡科技设计大学毕业证原件一模一样
一比一原版(Design毕业证书)新加坡科技设计大学毕业证原件一模一样
AS
 
一比一定制美国罗格斯大学毕业证学位证书
一比一定制美国罗格斯大学毕业证学位证书一比一定制美国罗格斯大学毕业证学位证书
一比一定制美国罗格斯大学毕业证学位证书
A
 

Último (20)

[Hackersuli] Élő szövet a fémvázon: Python és gépi tanulás a Zeek platformon
[Hackersuli] Élő szövet a fémvázon: Python és gépi tanulás a Zeek platformon[Hackersuli] Élő szövet a fémvázon: Python és gépi tanulás a Zeek platformon
[Hackersuli] Élő szövet a fémvázon: Python és gépi tanulás a Zeek platformon
 
Thank You Luv I’ll Never Walk Alone Again T shirts
Thank You Luv I’ll Never Walk Alone Again T shirtsThank You Luv I’ll Never Walk Alone Again T shirts
Thank You Luv I’ll Never Walk Alone Again T shirts
 
Abortion Clinic in Kwa thema +27791653574 Kwa thema WhatsApp Abortion Clinic ...
Abortion Clinic in Kwa thema +27791653574 Kwa thema WhatsApp Abortion Clinic ...Abortion Clinic in Kwa thema +27791653574 Kwa thema WhatsApp Abortion Clinic ...
Abortion Clinic in Kwa thema +27791653574 Kwa thema WhatsApp Abortion Clinic ...
 
TOP 100 Vulnerabilities Step-by-Step Guide Handbook
TOP 100 Vulnerabilities Step-by-Step Guide HandbookTOP 100 Vulnerabilities Step-by-Step Guide Handbook
TOP 100 Vulnerabilities Step-by-Step Guide Handbook
 
原版定制英国赫瑞瓦特大学毕业证原件一模一样
原版定制英国赫瑞瓦特大学毕业证原件一模一样原版定制英国赫瑞瓦特大学毕业证原件一模一样
原版定制英国赫瑞瓦特大学毕业证原件一模一样
 
Loker Pemandu Lagu LC Semarang 085746015303
Loker Pemandu Lagu LC Semarang 085746015303Loker Pemandu Lagu LC Semarang 085746015303
Loker Pemandu Lagu LC Semarang 085746015303
 
Beyond Inbound: Unlocking the Secrets of API Egress Traffic Management
Beyond Inbound: Unlocking the Secrets of API Egress Traffic ManagementBeyond Inbound: Unlocking the Secrets of API Egress Traffic Management
Beyond Inbound: Unlocking the Secrets of API Egress Traffic Management
 
一比一原版英国格林多大学毕业证如何办理
一比一原版英国格林多大学毕业证如何办理一比一原版英国格林多大学毕业证如何办理
一比一原版英国格林多大学毕业证如何办理
 
The Rise of Subscription-Based Digital Services.pdf
The Rise of Subscription-Based Digital Services.pdfThe Rise of Subscription-Based Digital Services.pdf
The Rise of Subscription-Based Digital Services.pdf
 
一比一原版布兰迪斯大学毕业证如何办理
一比一原版布兰迪斯大学毕业证如何办理一比一原版布兰迪斯大学毕业证如何办理
一比一原版布兰迪斯大学毕业证如何办理
 
一比一原版英国创意艺术大学毕业证如何办理
一比一原版英国创意艺术大学毕业证如何办理一比一原版英国创意艺术大学毕业证如何办理
一比一原版英国创意艺术大学毕业证如何办理
 
AI Generated 3D Models | AI 3D Model Generator
AI Generated 3D Models | AI 3D Model GeneratorAI Generated 3D Models | AI 3D Model Generator
AI Generated 3D Models | AI 3D Model Generator
 
一比一原版(PSU毕业证书)美国宾州州立大学毕业证如何办理
一比一原版(PSU毕业证书)美国宾州州立大学毕业证如何办理一比一原版(PSU毕业证书)美国宾州州立大学毕业证如何办理
一比一原版(PSU毕业证书)美国宾州州立大学毕业证如何办理
 
Washington Football Commanders Redskins Feathers Shirt
Washington Football Commanders Redskins Feathers ShirtWashington Football Commanders Redskins Feathers Shirt
Washington Football Commanders Redskins Feathers Shirt
 
Dan Quinn Commanders Feather Dad Hat Hoodie
Dan Quinn Commanders Feather Dad Hat HoodieDan Quinn Commanders Feather Dad Hat Hoodie
Dan Quinn Commanders Feather Dad Hat Hoodie
 
SOC Analyst Guide For Beginners SOC analysts work as members of a managed sec...
SOC Analyst Guide For Beginners SOC analysts work as members of a managed sec...SOC Analyst Guide For Beginners SOC analysts work as members of a managed sec...
SOC Analyst Guide For Beginners SOC analysts work as members of a managed sec...
 
如何办理(UCLA毕业证)加州大学洛杉矶分校毕业证成绩单本科硕士学位证留信学历认证
如何办理(UCLA毕业证)加州大学洛杉矶分校毕业证成绩单本科硕士学位证留信学历认证如何办理(UCLA毕业证)加州大学洛杉矶分校毕业证成绩单本科硕士学位证留信学历认证
如何办理(UCLA毕业证)加州大学洛杉矶分校毕业证成绩单本科硕士学位证留信学历认证
 
一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样
一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样
一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样
 
一比一原版(Design毕业证书)新加坡科技设计大学毕业证原件一模一样
一比一原版(Design毕业证书)新加坡科技设计大学毕业证原件一模一样一比一原版(Design毕业证书)新加坡科技设计大学毕业证原件一模一样
一比一原版(Design毕业证书)新加坡科技设计大学毕业证原件一模一样
 
一比一定制美国罗格斯大学毕业证学位证书
一比一定制美国罗格斯大学毕业证学位证书一比一定制美国罗格斯大学毕业证学位证书
一比一定制美国罗格斯大学毕业证学位证书
 

Git with Swift Atlanta 2014

  • 1. Chmouel Boudjnah! OpenStack Summit 2014 Atlanta OpenStack Swift as a Backend for Git Chmouel Boudjnah - @chmouel - eNovance
  • 2. Chmouel Boudjnah - @chmouel - eNovance The mandatory about me
  • 3. Chmouel Boudjnah - @chmouel - eNovance About me I am not the author, Fabien Boucher aka: @bzho Chmouel Boudjnah - @chmouel - eNovance
  • 4. Chmouel Boudjnah - @chmouel - eNovance About me We both work for eNovance
  • 5. Chmouel Boudjnah - @chmouel - eNovance About me OpenStacker for quite some time now
  • 6. Chmouel Boudjnah - @chmouel - eNovance So what is Swift?
  • 7. Chmouel Boudjnah - @chmouel - eNovance • Object Storage • Not a file system • Eventually Consistent • HTTP REST API • Very Scalable • Software defined Storage What is Swift
  • 8. Chmouel Boudjnah - @chmouel - eNovance Why would you want to use GIT with Swift?
  • 9. Chmouel Boudjnah - @chmouel - eNovance Why Swift with GIT Why not?
  • 10. Chmouel Boudjnah - @chmouel - eNovance Why Swift with GIT When you use a file system you have to : Perform backups of your repositories regularly Perform complex and risky operations to extend the storage capabilities for you repositories. You have mostly have to manage it yourself It’s an another piece in your infrastructure You have to manage the downtime Not fun
  • 11. Chmouel Boudjnah - @chmouel - eNovance So what are the benefits?
  • 12. Chmouel Boudjnah - @chmouel - eNovance Why Swift with GIT The advantages of using Swift Safety: The inherent replication of a data store. Capability: easily extend storage capacity. High Availability: no single point of failure. Maintainability: allow operations teams to maintain the cluster without any downtime. In an OpenStack environment it’s usually already there.
  • 13. Chmouel Boudjnah - @chmouel - eNovance Let’s see how git internal works
  • 14. Chmouel Boudjnah - @chmouel - eNovance
  • 15. Chmouel Boudjnah - @chmouel - eNovance
  • 16. Chmouel Boudjnah - @chmouel - eNovance So how did we plug that to Swift?
  • 17. Chmouel Boudjnah - @chmouel - eNovance We did not want to modify the GIT client binaries.
  • 18. Chmouel Boudjnah - @chmouel - eNovance We used a pure python GIT library called Dulwich
  • 19. Chmouel Boudjnah - @chmouel - eNovance • Create, read, manage loose objects (blob, tree, commit, tag). • Create, read, manage pack files, pack indexes. • Implement the Git smart protocol through git- upload-pack and git-receive-pack. • Implement the Git, HTTP, SSH listeners to start Dulwich as a Git server. • Provide a well designed interface to the storage backend. (Repo, MemoryRepo). Dulwich
  • 20. Chmouel Boudjnah - @chmouel - eNovance How do we use Dulwhich We implemented a custom repo called SwiftRepo as a backend to the git listener of Dulwich which communicate to OpenStack Swift
  • 21. Chmouel Boudjnah - @chmouel - eNovance So about that SwiftRepo backend how does it work?
  • 22. Chmouel Boudjnah - @chmouel - eNovance SwiftRepos backend to Dulwich It doesn’t use the standard way to store Git references (one file by reference). It doesn’t store loose objects but instead uses the pack format. In addition to the .index that relate to each pack file we added .info object It makes the Request to Swift concurrently.
  • 23. Chmouel Boudjnah - @chmouel - eNovance How’s the benchmark then?
  • 24. Chmouel Boudjnah - @chmouel - eNovance Benchmark Setup Benchmark performed on two architectures : Github : ● Git client from eNovance network <-> GitHub ! Dulwich/Swift : ●· Git client from eNovance network <-> Dulwich (Rax compute) <-> Rax Cloudfiles ! Three different repos : ! ●· Swiftsync (873 objects with 293 commits) ●· Edeploy (2246 objects with 618 commits) ●· Swift (23480 objects with 3212 commit)
  • 25. Chmouel Boudjnah - @chmouel - eNovance Full repository push
  • 26. Chmouel Boudjnah - @chmouel - eNovance Clone
  • 27. Chmouel Boudjnah - @chmouel - eNovance That’s it, hope you enjoyed.
  • 28. Chmouel Boudjnah - @chmouel - eNovance Eventual Consistentie Why Eventual Consistentie window is not an issue