SlideShare ist ein Scribd-Unternehmen logo
1 von 92
Building a Resilient Cloud
Infrastructure. From Scratch.




         by Jeremy Jarvis
           Co-founder
“The Brightbox story.”
Overview




@jeremyjarvis
Overview

• Preface: Who, what etc.




 @jeremyjarvis
Overview

• Preface: Who, what etc.
• Chapter 1: Feeling the pain




 @jeremyjarvis
Overview

• Preface: Who, what etc.
• Chapter 1: Feeling the pain
• Chapter 2: Realising an opportunity




 @jeremyjarvis
Overview

•   Preface: Who, what etc.
•   Chapter 1: Feeling the pain
•   Chapter 2: Realising an opportunity
•   Chapter 3: Design phase




    @jeremyjarvis
Overview

•   Preface: Who, what etc.
•   Chapter 1: Feeling the pain
•   Chapter 2: Realising an opportunity
•   Chapter 3: Design phase
•   Chapter 4: Let’s build this thing!




    @jeremyjarvis
Overview

•   Preface: Who, what etc.
•   Chapter 1: Feeling the pain
•   Chapter 2: Realising an opportunity
•   Chapter 3: Design phase
•   Chapter 4: Let’s build this thing!
•   Chapter 5: It’s alive!




    @jeremyjarvis
Overview

•   Preface: Who, what etc.
•   Chapter 1: Feeling the pain
•   Chapter 2: Realising an opportunity
•   Chapter 3: Design phase
•   Chapter 4: Let’s build this thing!
•   Chapter 5: It’s alive!
•   Epilogue: Some conclusions/lessons




    @jeremyjarvis
Preface.




@jeremyjarvis
Preface.

• Agile cloud infrastructure service




 @jeremyjarvis
Preface.

• Agile cloud infrastructure service
• “Multi-zone” (datacentre) architecture




 @jeremyjarvis
Preface.

• Agile cloud infrastructure service
• “Multi-zone” (datacentre) architecture
• UK-based (HQ in Leeds, DCs in Manchester)




 @jeremyjarvis
Preface.

•   Agile cloud infrastructure service
•   “Multi-zone” (datacentre) architecture
•   UK-based (HQ in Leeds, DCs in Manchester)
•   Small team (still only 10 in total)




    @jeremyjarvis
Preface.

•   Agile cloud infrastructure service
•   “Multi-zone” (datacentre) architecture
•   UK-based (HQ in Leeds, DCs in Manchester)
•   Small team (still only 10 in total)
•   Distributed team (Mainly around Leeds)




    @jeremyjarvis
Preface.

•   Agile cloud infrastructure service
•   “Multi-zone” (datacentre) architecture
•   UK-based (HQ in Leeds, DCs in Manchester)
•   Small team (still only 10 in total)
•   Distributed team (Mainly around Leeds)
•   Developer/DevOps focused (it’s who we are)




    @jeremyjarvis
Preface.

•   Agile cloud infrastructure service
•   “Multi-zone” (datacentre) architecture
•   UK-based (HQ in Leeds, DCs in Manchester)
•   Small team (still only 10 in total)
•   Distributed team (Mainly around Leeds)
•   Developer/DevOps focused (it’s who we are)
•   Profitable (for 4 yrs, built from revenue)




    @jeremyjarvis
Chapter 1: Feeling the Pain




@jeremyjarvis
Chapter 1: Feeling the Pain




@jeremyjarvis
Chapter 1: Feeling the Pain

• Launched Ruby-specific hosting service (Sep 2007)




 @jeremyjarvis
Chapter 1: Feeling the Pain

• Launched Ruby-specific hosting service (Sep 2007)
• Acquisition interest (no thanks!)




 @jeremyjarvis
Chapter 1: Feeling the Pain

• Launched Ruby-specific hosting service (Sep 2007)
• Acquisition interest (no thanks!)
• Built a good reputation, hosted apps for some large
  customers




 @jeremyjarvis
Chapter 1: Feeling the Pain

• Launched Ruby-specific hosting service (Sep 2007)
• Acquisition interest (no thanks!)
• Built a good reputation, hosted apps for some large
  customers
• Systems stable, but became unwieldy and hard for us
  to manage + we wanted to expand offering




 @jeremyjarvis
Chapter 1: Feeling the Pain

• Launched Ruby-specific hosting service (Sep 2007)
• Acquisition interest (no thanks!)
• Built a good reputation, hosted apps for some large
  customers
• Systems stable, but became unwieldy and hard for us
  to manage + we wanted to expand offering
• Began looking at existing options, nothing fitted our
  needs (e.g Eucalyptus)




 @jeremyjarvis
Chapter 1: Feeling the Pain

• Launched Ruby-specific hosting service (Sep 2007)
• Acquisition interest (no thanks!)
• Built a good reputation, hosted apps for some large
  customers
• Systems stable, but became unwieldy and hard for us
  to manage + we wanted to expand offering
• Began looking at existing options, nothing fitted our
  needs (e.g Eucalyptus)
• Decided to build our own “cloud” (Brightbox NG)


 @jeremyjarvis
Chapter 2: Realising an opportunity




@jeremyjarvis
Chapter 2: Realising an opportunity




@jeremyjarvis
Chapter 2: Realising an opportunity

• Limited options in EU/UK




 @jeremyjarvis
Chapter 2: Realising an opportunity

• Limited options in EU/UK
• If we’re building this for ourselves why not sell it?




 @jeremyjarvis
Chapter 2: Realising an opportunity

• Limited options in EU/UK
• If we’re building this for ourselves why not sell it?
• Generated lots of internal debate




 @jeremyjarvis
Chapter 2: Realising an opportunity

•   Limited options in EU/UK
•   If we’re building this for ourselves why not sell it?
•   Generated lots of internal debate
•   Lack of flexibility with PaaS services




    @jeremyjarvis
Chapter 2: Realising an opportunity

•   Limited options in EU/UK
•   If we’re building this for ourselves why not sell it?
•   Generated lots of internal debate
•   Lack of flexibility with PaaS services
•   We’re good at this stuff + we have awesome team




    @jeremyjarvis
Chapter 2: Realising an opportunity

•   Limited options in EU/UK
•   If we’re building this for ourselves why not sell it?
•   Generated lots of internal debate
•   Lack of flexibility with PaaS services
•   We’re good at this stuff + we have awesome team
•   Decided to shift development focus




    @jeremyjarvis
Chapter 3: Design phase




@jeremyjarvis
Chapter 3: Design phase




@jeremyjarvis
Chapter 3: Design phase

• Requirements:




 @jeremyjarvis
Chapter 3: Design phase

• Requirements:
  – Geographic redundancy (separate datacentres)




 @jeremyjarvis
Chapter 3: Design phase

• Requirements:
  – Geographic redundancy (separate datacentres)
  – Resilient network (multiple connections)




 @jeremyjarvis
Chapter 3: Design phase

• Requirements:
  – Geographic redundancy (separate datacentres)
  – Resilient network (multiple connections)
  – Agile network layer (Load Balancing, Cloud IP, Firewall)




 @jeremyjarvis
Chapter 3: Design phase

• Requirements:
  – Geographic redundancy (separate datacentres)
  – Resilient network (multiple connections)
  – Agile network layer (Load Balancing, Cloud IP, Firewall)
  – Distributed (no SPOF)




 @jeremyjarvis
Chapter 3: Design phase

• Requirements:
  – Geographic redundancy (separate datacentres)
  – Resilient network (multiple connections)
  – Agile network layer (Load Balancing, Cloud IP, Firewall)
  – Distributed (no SPOF)
  – Modular (easy to grow, JIT)




 @jeremyjarvis
Chapter 3: Design phase

• Requirements:
  – Geographic redundancy (separate datacentres)
  – Resilient network (multiple connections)
  – Agile network layer (Load Balancing, Cloud IP, Firewall)
  – Distributed (no SPOF)
  – Modular (easy to grow, JIT)
  – Future-proof (IPv6)




 @jeremyjarvis
Chapter 3: Design phase

• Requirements:
  – Geographic redundancy (separate datacentres)
  – Resilient network (multiple connections)
  – Agile network layer (Load Balancing, Cloud IP, Firewall)
  – Distributed (no SPOF)
  – Modular (easy to grow, JIT)
  – Future-proof (IPv6)
  – Programmable (API, CLI)




 @jeremyjarvis
Chapter 3: Design phase

• Requirements:
  – Geographic redundancy (separate datacentres)
  – Resilient network (multiple connections)
  – Agile network layer (Load Balancing, Cloud IP, Firewall)
  – Distributed (no SPOF)
  – Modular (easy to grow, JIT)
  – Future-proof (IPv6)
  – Programmable (API, CLI)
  – Open (easy to get stuff in and out)




 @jeremyjarvis
Chapter 3: Design phase




@jeremyjarvis
Chapter 3: Design phase

• Process:




 @jeremyjarvis
Chapter 3: Design phase

• Process:
– Consulted, at first. Network infrastructure gurus.




 @jeremyjarvis
Chapter 3: Design phase

• Process:
– Consulted, at first. Network infrastructure gurus.
– We’re on our own!




 @jeremyjarvis
Chapter 3: Design phase

• Process:
– Consulted, at first. Network infrastructure gurus.
– We’re on our own!
– Hands-on, R&D style, lots of testing, experimentation, iteration




 @jeremyjarvis
Chapter 3: Design phase

• Process:
– Consulted, at first. Network infrastructure gurus.
– We’re on our own!
– Hands-on, R&D style, lots of testing, experimentation, iteration
– Investigated competition (what’s good/bad)




 @jeremyjarvis
Chapter 3: Design phase

• Process:
– Consulted, at first. Network infrastructure gurus.
– We’re on our own!
– Hands-on, R&D style, lots of testing, experimentation, iteration
– Investigated competition (what’s good/bad)
– Access to plenty of kit -set up mini-clouds to hack




 @jeremyjarvis
Chapter 3: Design phase

• Process:
– Consulted, at first. Network infrastructure gurus.
– We’re on our own!
– Hands-on, R&D style, lots of testing, experimentation, iteration
– Investigated competition (what’s good/bad)
– Access to plenty of kit -set up mini-clouds to hack
– John and Neil worked very closely on architecture (daily calls)




 @jeremyjarvis
Chapter 3: Design phase

• Process:
– Consulted, at first. Network infrastructure gurus.
– We’re on our own!
– Hands-on, R&D style, lots of testing, experimentation, iteration
– Investigated competition (what’s good/bad)
– Access to plenty of kit -set up mini-clouds to hack
– John and Neil worked very closely on architecture (daily calls)
– Don’t reinvent the wheel (Rubyists!)




 @jeremyjarvis
Chapter 3: Design phase




@jeremyjarvis
Chapter 3: Design phase

• Elements:




 @jeremyjarvis
Chapter 3: Design phase

• Elements:
– Network architecture (proof-of-concept)




 @jeremyjarvis
Chapter 3: Design phase

• Elements:
– Network architecture (proof-of-concept)
– Application/software architecture (evolving, iterative)




 @jeremyjarvis
Chapter 3: Design phase

• Elements:
– Network architecture (proof-of-concept)
– Application/software architecture (evolving, iterative)
– Hardware selection:




 @jeremyjarvis
Chapter 3: Design phase

• Elements:
– Network architecture (proof-of-concept)
– Application/software architecture (evolving, iterative)
– Hardware selection:
  • Border routers (Cisco)




 @jeremyjarvis
Chapter 3: Design phase

• Elements:
– Network architecture (proof-of-concept)
– Application/software architecture (evolving, iterative)
– Hardware selection:
  • Border routers (Cisco)
  • Switches (Cisco +)




 @jeremyjarvis
Chapter 3: Design phase

• Elements:
– Network architecture (proof-of-concept)
– Application/software architecture (evolving, iterative)
– Hardware selection:
  • Border routers (Cisco)
  • Switches (Cisco +)
  • Host servers (Dell)




 @jeremyjarvis
Chapter 3: Design phase

• Elements:
– Network architecture (proof-of-concept)
– Application/software architecture (evolving, iterative)
– Hardware selection:
  • Border routers (Cisco)
  • Switches (Cisco +)
  • Host servers (Dell)
  • Standardised rack design (modular)




 @jeremyjarvis
Chapter 3: Design phase

• Elements:
– Network architecture (proof-of-concept)
– Application/software architecture (evolving, iterative)
– Hardware selection:
  • Border routers (Cisco)
  • Switches (Cisco +)
  • Host servers (Dell)
  • Standardised rack design (modular)
– Datacentre selection (Proximity, Independent, Competing)




 @jeremyjarvis
Chapter 4: Let’s build this thing!




@jeremyjarvis
Chapter 4: Let’s build this thing!




@jeremyjarvis
Chapter 4: Let’s build this thing!

• Network provisioning (Transit, Metro links, RIPE
  membership)




 @jeremyjarvis
Chapter 4: Let’s build this thing!

• Network provisioning (Transit, Metro links, RIPE
  membership)
• Buying (negotiating)




 @jeremyjarvis
Chapter 4: Let’s build this thing!

• Network provisioning (Transit, Metro links, RIPE
  membership)
• Buying (negotiating)
• Installing kit (Routers, Switches, Servers)




 @jeremyjarvis
Chapter 4: Let’s build this thing!

• Network provisioning (Transit, Metro links, RIPE
  membership)
• Buying (negotiating)
• Installing kit (Routers, Switches, Servers)
• Use datacentre staff where possible (racking/stacking)




 @jeremyjarvis
Chapter 4: Let’s build this thing!

• Network provisioning (Transit, Metro links, RIPE
  membership)
• Buying (negotiating)
• Installing kit (Routers, Switches, Servers)
• Use datacentre staff where possible (racking/stacking)
• Software development (several applications, iterative)




 @jeremyjarvis
Chapter 4: Let’s build this thing!

• Network provisioning (Transit, Metro links, RIPE
  membership)
• Buying (negotiating)
• Installing kit (Routers, Switches, Servers)
• Use datacentre staff where possible (racking/stacking)
• Software development (several applications, iterative)
• Writing configs (again, iterative - infra as code)




 @jeremyjarvis
Chapter 4: Let’s build this thing!

• Network provisioning (Transit, Metro links, RIPE
  membership)
• Buying (negotiating)
• Installing kit (Routers, Switches, Servers)
• Use datacentre staff where possible (racking/stacking)
• Software development (several applications, iterative)
• Writing configs (again, iterative - infra as code)
• Documentation (wiki, changelogs, code comments)



 @jeremyjarvis
Chapter 5: It’s alive!




 @jeremyjarvis
Chapter 5: It’s alive!




 @jeremyjarvis
Chapter 5: It’s alive!

• Nov 2010 - Launched private beta (700 users)




 @jeremyjarvis
Chapter 5: It’s alive!

• Nov 2010 - Launched private beta (700 users)
• Iteration (fix bottlenecks, improve resilience)




 @jeremyjarvis
Chapter 5: It’s alive!

• Nov 2010 - Launched private beta (700 users)
• Iteration (fix bottlenecks, improve resilience)
• New features (Load balancing, Firewall etc)




 @jeremyjarvis
Chapter 5: It’s alive!

•   Nov 2010 - Launched private beta (700 users)
•   Iteration (fix bottlenecks, improve resilience)
•   New features (Load balancing, Firewall etc)
•   Billing data (distributed stats collection)




    @jeremyjarvis
Chapter 5: It’s alive!

•   Nov 2010 - Launched private beta (700 users)
•   Iteration (fix bottlenecks, improve resilience)
•   New features (Load balancing, Firewall etc)
•   Billing data (distributed stats collection)
•   “Enterprise” billing software *sad face*




    @jeremyjarvis
Chapter 5: It’s alive!

•   Nov 2010 - Launched private beta (700 users)
•   Iteration (fix bottlenecks, improve resilience)
•   New features (Load balancing, Firewall etc)
•   Billing data (distributed stats collection)
•   “Enterprise” billing software *sad face*
•   Oct 2011 - General availability (no change really, just £
    £)




    @jeremyjarvis
Chapter 5: It’s alive!

• Nov 2010 - Launched private beta (700 users)
• Iteration (fix bottlenecks, improve resilience)
• New features (Load balancing, Firewall etc)
• Billing data (distributed stats collection)
• “Enterprise” billing software *sad face*
• Oct 2011 - General availability (no change really, just £
  £)
• Product development (more and better features)



    @jeremyjarvis
Chapter 5: It’s alive!

• Nov 2010 - Launched private beta (700 users)
• Iteration (fix bottlenecks, improve resilience)
• New features (Load balancing, Firewall etc)
• Billing data (distributed stats collection)
• “Enterprise” billing software *sad face*
• Oct 2011 - General availability (no change really, just £
  £)
• Product development (more and better features)
• Marketing (getting the word out, communication)


    @jeremyjarvis
Epilogue: What did we learn?




@jeremyjarvis
Epilogue: What did we learn?




@jeremyjarvis
Epilogue: What did we learn?

• Building stuff is hard (but can lead to competitive
  advantage)




 @jeremyjarvis
Epilogue: What did we learn?

• Building stuff is hard (but can lead to competitive
  advantage)
• Be your own customers (understand market, use
  products)




 @jeremyjarvis
Epilogue: What did we learn?

• Building stuff is hard (but can lead to competitive
  advantage)
• Be your own customers (understand market, use
  products)
• Don’t *over*estimate competition (look behind the
  mask)




 @jeremyjarvis
Epilogue: What did we learn?

• Building stuff is hard (but can lead to competitive
  advantage)
• Be your own customers (understand market, use
  products)
• Don’t *over*estimate competition (look behind the
  mask)
• Learn good negotiation (clue: it’s not a battle)




 @jeremyjarvis
Epilogue: What did we learn?

• Building stuff is hard (but can lead to competitive
  advantage)
• Be your own customers (understand market, use
  products)
• Don’t *over*estimate competition (look behind the
  mask)
• Learn good negotiation (clue: it’s not a battle)
• All about the launch (could have timed/co-ordinated
  things better for more “oomph”)



 @jeremyjarvis
Epilogue: What did we learn?

• Building stuff is hard (but can lead to competitive
  advantage)
• Be your own customers (understand market, use
  products)
• Don’t *over*estimate competition (look behind the
  mask)
• Learn good negotiation (clue: it’s not a battle)
• All about the launch (could have timed/co-ordinated
  things better for more “oomph”)
• Momentum is important (PR, morale)

 @jeremyjarvis
Thanks.
Any questions?

Weitere ähnliche Inhalte

Andere mochten auch

Aproximación de Binomial a Normal (Bi~no) en intervalos
Aproximación de Binomial a Normal (Bi~no) en intervalosAproximación de Binomial a Normal (Bi~no) en intervalos
Aproximación de Binomial a Normal (Bi~no) en intervalos
MaruSach
 
Da Owada
Da OwadaDa Owada
Da Owada
medism
 
Hablan los jefes
Hablan los jefesHablan los jefes
Hablan los jefes
JorgeZero
 
Фізичні та хімічні властивості ненасичених вуглеводнів. Добування
Фізичні та хімічні властивості ненасичених вуглеводнів. ДобуванняФізичні та хімічні властивості ненасичених вуглеводнів. Добування
Фізичні та хімічні властивості ненасичених вуглеводнів. Добування
Елена Мешкова
 

Andere mochten auch (19)

atayde9876543210
atayde9876543210atayde9876543210
atayde9876543210
 
Informatica l
Informatica lInformatica l
Informatica l
 
Aproximación de Binomial a Normal (Bi~no) en intervalos
Aproximación de Binomial a Normal (Bi~no) en intervalosAproximación de Binomial a Normal (Bi~no) en intervalos
Aproximación de Binomial a Normal (Bi~no) en intervalos
 
CMTA Case Study
CMTA Case StudyCMTA Case Study
CMTA Case Study
 
Jr Borchert R.1 100505
Jr Borchert R.1 100505Jr Borchert R.1 100505
Jr Borchert R.1 100505
 
Quack Chat | Partitioning - Black Magic or Silver Bullet
Quack Chat | Partitioning - Black Magic or Silver BulletQuack Chat | Partitioning - Black Magic or Silver Bullet
Quack Chat | Partitioning - Black Magic or Silver Bullet
 
Acqua_Viva_Function_Menu_2005[1]
Acqua_Viva_Function_Menu_2005[1]Acqua_Viva_Function_Menu_2005[1]
Acqua_Viva_Function_Menu_2005[1]
 
Trabajo de formación humana; la biblia.
Trabajo de formación humana; la biblia.Trabajo de formación humana; la biblia.
Trabajo de formación humana; la biblia.
 
Svyato ridnoji movy
Svyato ridnoji movySvyato ridnoji movy
Svyato ridnoji movy
 
Da Owada
Da OwadaDa Owada
Da Owada
 
Hablan los jefes
Hablan los jefesHablan los jefes
Hablan los jefes
 
Teoria de la probabilidad
Teoria de la probabilidadTeoria de la probabilidad
Teoria de la probabilidad
 
Kővágószőlős Község Önkormányzata Képviselő-testületének 4/2014. (VI. 17.) Ö...
Kővágószőlős Község Önkormányzata Képviselő-testületének  4/2014. (VI. 17.) Ö...Kővágószőlős Község Önkormányzata Képviselő-testületének  4/2014. (VI. 17.) Ö...
Kővágószőlős Község Önkormányzata Képviselő-testületének 4/2014. (VI. 17.) Ö...
 
Function point analysis introduction
Function point analysis introductionFunction point analysis introduction
Function point analysis introduction
 
El valor de la amistad. ♥♥♥
El valor de la amistad. ♥♥♥El valor de la amistad. ♥♥♥
El valor de la amistad. ♥♥♥
 
Síndrome Prader-Willi
Síndrome Prader-WilliSíndrome Prader-Willi
Síndrome Prader-Willi
 
Geek Sync I What is the SSIS Catalog? And Why do I care?
Geek Sync I What is the SSIS Catalog? And Why do I care?Geek Sync I What is the SSIS Catalog? And Why do I care?
Geek Sync I What is the SSIS Catalog? And Why do I care?
 
Ley 101 de la Policia Boliviana
Ley 101 de la Policia BolivianaLey 101 de la Policia Boliviana
Ley 101 de la Policia Boliviana
 
Фізичні та хімічні властивості ненасичених вуглеводнів. Добування
Фізичні та хімічні властивості ненасичених вуглеводнів. ДобуванняФізичні та хімічні властивості ненасичених вуглеводнів. Добування
Фізичні та хімічні властивості ненасичених вуглеводнів. Добування
 

Ähnlich wie "Building a Resilient Cloud Infrastructure. From Scratch." - Cloud East, 28 July 2012

Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06
jimbojsb
 
Cloud east shutl_talk
Cloud east shutl_talkCloud east shutl_talk
Cloud east shutl_talk
Volker Pacher
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systems
elliando dias
 

Ähnlich wie "Building a Resilient Cloud Infrastructure. From Scratch." - Cloud East, 28 July 2012 (20)

Social dev camp_2011
Social dev camp_2011Social dev camp_2011
Social dev camp_2011
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
 
How Build Infrastructure Powers the Node.js Foundation
How Build Infrastructure Powers the Node.js FoundationHow Build Infrastructure Powers the Node.js Foundation
How Build Infrastructure Powers the Node.js Foundation
 
Operations for databases – The DevOps journey
Operations for databases – The DevOps journey Operations for databases – The DevOps journey
Operations for databases – The DevOps journey
 
Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06
 
StackEngine Demo - Docker Austin
StackEngine Demo - Docker AustinStackEngine Demo - Docker Austin
StackEngine Demo - Docker Austin
 
Cloud east shutl_talk
Cloud east shutl_talkCloud east shutl_talk
Cloud east shutl_talk
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 
Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Stash – Taking Expedia to New Heights - David Williams and Christopher PepeStash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systems
 
Surviving in a microservices environment
Surviving in a microservices environmentSurviving in a microservices environment
Surviving in a microservices environment
 
Cloud Truths - Hull Digital - 19 July 2012
Cloud Truths - Hull Digital - 19 July 2012Cloud Truths - Hull Digital - 19 July 2012
Cloud Truths - Hull Digital - 19 July 2012
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
 
Scala in the Wild
Scala in the WildScala in the Wild
Scala in the Wild
 
SACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices EnvironmentSACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices Environment
 
Surviving in a Microservices environment -abridged
Surviving in a Microservices environment -abridgedSurviving in a Microservices environment -abridged
Surviving in a Microservices environment -abridged
 
StackEngine Demo - Boston
StackEngine Demo - BostonStackEngine Demo - Boston
StackEngine Demo - Boston
 

Kürzlich hochgeladen

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
vu2urc
 

Kürzlich hochgeladen (20)

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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech 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
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

"Building a Resilient Cloud Infrastructure. From Scratch." - Cloud East, 28 July 2012

  • 1. Building a Resilient Cloud Infrastructure. From Scratch. by Jeremy Jarvis Co-founder
  • 4. Overview • Preface: Who, what etc. @jeremyjarvis
  • 5. Overview • Preface: Who, what etc. • Chapter 1: Feeling the pain @jeremyjarvis
  • 6. Overview • Preface: Who, what etc. • Chapter 1: Feeling the pain • Chapter 2: Realising an opportunity @jeremyjarvis
  • 7. Overview • Preface: Who, what etc. • Chapter 1: Feeling the pain • Chapter 2: Realising an opportunity • Chapter 3: Design phase @jeremyjarvis
  • 8. Overview • Preface: Who, what etc. • Chapter 1: Feeling the pain • Chapter 2: Realising an opportunity • Chapter 3: Design phase • Chapter 4: Let’s build this thing! @jeremyjarvis
  • 9. Overview • Preface: Who, what etc. • Chapter 1: Feeling the pain • Chapter 2: Realising an opportunity • Chapter 3: Design phase • Chapter 4: Let’s build this thing! • Chapter 5: It’s alive! @jeremyjarvis
  • 10. Overview • Preface: Who, what etc. • Chapter 1: Feeling the pain • Chapter 2: Realising an opportunity • Chapter 3: Design phase • Chapter 4: Let’s build this thing! • Chapter 5: It’s alive! • Epilogue: Some conclusions/lessons @jeremyjarvis
  • 12. Preface. • Agile cloud infrastructure service @jeremyjarvis
  • 13. Preface. • Agile cloud infrastructure service • “Multi-zone” (datacentre) architecture @jeremyjarvis
  • 14. Preface. • Agile cloud infrastructure service • “Multi-zone” (datacentre) architecture • UK-based (HQ in Leeds, DCs in Manchester) @jeremyjarvis
  • 15. Preface. • Agile cloud infrastructure service • “Multi-zone” (datacentre) architecture • UK-based (HQ in Leeds, DCs in Manchester) • Small team (still only 10 in total) @jeremyjarvis
  • 16. Preface. • Agile cloud infrastructure service • “Multi-zone” (datacentre) architecture • UK-based (HQ in Leeds, DCs in Manchester) • Small team (still only 10 in total) • Distributed team (Mainly around Leeds) @jeremyjarvis
  • 17. Preface. • Agile cloud infrastructure service • “Multi-zone” (datacentre) architecture • UK-based (HQ in Leeds, DCs in Manchester) • Small team (still only 10 in total) • Distributed team (Mainly around Leeds) • Developer/DevOps focused (it’s who we are) @jeremyjarvis
  • 18. Preface. • Agile cloud infrastructure service • “Multi-zone” (datacentre) architecture • UK-based (HQ in Leeds, DCs in Manchester) • Small team (still only 10 in total) • Distributed team (Mainly around Leeds) • Developer/DevOps focused (it’s who we are) • Profitable (for 4 yrs, built from revenue) @jeremyjarvis
  • 19. Chapter 1: Feeling the Pain @jeremyjarvis
  • 20. Chapter 1: Feeling the Pain @jeremyjarvis
  • 21. Chapter 1: Feeling the Pain • Launched Ruby-specific hosting service (Sep 2007) @jeremyjarvis
  • 22. Chapter 1: Feeling the Pain • Launched Ruby-specific hosting service (Sep 2007) • Acquisition interest (no thanks!) @jeremyjarvis
  • 23. Chapter 1: Feeling the Pain • Launched Ruby-specific hosting service (Sep 2007) • Acquisition interest (no thanks!) • Built a good reputation, hosted apps for some large customers @jeremyjarvis
  • 24. Chapter 1: Feeling the Pain • Launched Ruby-specific hosting service (Sep 2007) • Acquisition interest (no thanks!) • Built a good reputation, hosted apps for some large customers • Systems stable, but became unwieldy and hard for us to manage + we wanted to expand offering @jeremyjarvis
  • 25. Chapter 1: Feeling the Pain • Launched Ruby-specific hosting service (Sep 2007) • Acquisition interest (no thanks!) • Built a good reputation, hosted apps for some large customers • Systems stable, but became unwieldy and hard for us to manage + we wanted to expand offering • Began looking at existing options, nothing fitted our needs (e.g Eucalyptus) @jeremyjarvis
  • 26. Chapter 1: Feeling the Pain • Launched Ruby-specific hosting service (Sep 2007) • Acquisition interest (no thanks!) • Built a good reputation, hosted apps for some large customers • Systems stable, but became unwieldy and hard for us to manage + we wanted to expand offering • Began looking at existing options, nothing fitted our needs (e.g Eucalyptus) • Decided to build our own “cloud” (Brightbox NG) @jeremyjarvis
  • 27. Chapter 2: Realising an opportunity @jeremyjarvis
  • 28. Chapter 2: Realising an opportunity @jeremyjarvis
  • 29. Chapter 2: Realising an opportunity • Limited options in EU/UK @jeremyjarvis
  • 30. Chapter 2: Realising an opportunity • Limited options in EU/UK • If we’re building this for ourselves why not sell it? @jeremyjarvis
  • 31. Chapter 2: Realising an opportunity • Limited options in EU/UK • If we’re building this for ourselves why not sell it? • Generated lots of internal debate @jeremyjarvis
  • 32. Chapter 2: Realising an opportunity • Limited options in EU/UK • If we’re building this for ourselves why not sell it? • Generated lots of internal debate • Lack of flexibility with PaaS services @jeremyjarvis
  • 33. Chapter 2: Realising an opportunity • Limited options in EU/UK • If we’re building this for ourselves why not sell it? • Generated lots of internal debate • Lack of flexibility with PaaS services • We’re good at this stuff + we have awesome team @jeremyjarvis
  • 34. Chapter 2: Realising an opportunity • Limited options in EU/UK • If we’re building this for ourselves why not sell it? • Generated lots of internal debate • Lack of flexibility with PaaS services • We’re good at this stuff + we have awesome team • Decided to shift development focus @jeremyjarvis
  • 35. Chapter 3: Design phase @jeremyjarvis
  • 36. Chapter 3: Design phase @jeremyjarvis
  • 37. Chapter 3: Design phase • Requirements: @jeremyjarvis
  • 38. Chapter 3: Design phase • Requirements: – Geographic redundancy (separate datacentres) @jeremyjarvis
  • 39. Chapter 3: Design phase • Requirements: – Geographic redundancy (separate datacentres) – Resilient network (multiple connections) @jeremyjarvis
  • 40. Chapter 3: Design phase • Requirements: – Geographic redundancy (separate datacentres) – Resilient network (multiple connections) – Agile network layer (Load Balancing, Cloud IP, Firewall) @jeremyjarvis
  • 41. Chapter 3: Design phase • Requirements: – Geographic redundancy (separate datacentres) – Resilient network (multiple connections) – Agile network layer (Load Balancing, Cloud IP, Firewall) – Distributed (no SPOF) @jeremyjarvis
  • 42. Chapter 3: Design phase • Requirements: – Geographic redundancy (separate datacentres) – Resilient network (multiple connections) – Agile network layer (Load Balancing, Cloud IP, Firewall) – Distributed (no SPOF) – Modular (easy to grow, JIT) @jeremyjarvis
  • 43. Chapter 3: Design phase • Requirements: – Geographic redundancy (separate datacentres) – Resilient network (multiple connections) – Agile network layer (Load Balancing, Cloud IP, Firewall) – Distributed (no SPOF) – Modular (easy to grow, JIT) – Future-proof (IPv6) @jeremyjarvis
  • 44. Chapter 3: Design phase • Requirements: – Geographic redundancy (separate datacentres) – Resilient network (multiple connections) – Agile network layer (Load Balancing, Cloud IP, Firewall) – Distributed (no SPOF) – Modular (easy to grow, JIT) – Future-proof (IPv6) – Programmable (API, CLI) @jeremyjarvis
  • 45. Chapter 3: Design phase • Requirements: – Geographic redundancy (separate datacentres) – Resilient network (multiple connections) – Agile network layer (Load Balancing, Cloud IP, Firewall) – Distributed (no SPOF) – Modular (easy to grow, JIT) – Future-proof (IPv6) – Programmable (API, CLI) – Open (easy to get stuff in and out) @jeremyjarvis
  • 46. Chapter 3: Design phase @jeremyjarvis
  • 47. Chapter 3: Design phase • Process: @jeremyjarvis
  • 48. Chapter 3: Design phase • Process: – Consulted, at first. Network infrastructure gurus. @jeremyjarvis
  • 49. Chapter 3: Design phase • Process: – Consulted, at first. Network infrastructure gurus. – We’re on our own! @jeremyjarvis
  • 50. Chapter 3: Design phase • Process: – Consulted, at first. Network infrastructure gurus. – We’re on our own! – Hands-on, R&D style, lots of testing, experimentation, iteration @jeremyjarvis
  • 51. Chapter 3: Design phase • Process: – Consulted, at first. Network infrastructure gurus. – We’re on our own! – Hands-on, R&D style, lots of testing, experimentation, iteration – Investigated competition (what’s good/bad) @jeremyjarvis
  • 52. Chapter 3: Design phase • Process: – Consulted, at first. Network infrastructure gurus. – We’re on our own! – Hands-on, R&D style, lots of testing, experimentation, iteration – Investigated competition (what’s good/bad) – Access to plenty of kit -set up mini-clouds to hack @jeremyjarvis
  • 53. Chapter 3: Design phase • Process: – Consulted, at first. Network infrastructure gurus. – We’re on our own! – Hands-on, R&D style, lots of testing, experimentation, iteration – Investigated competition (what’s good/bad) – Access to plenty of kit -set up mini-clouds to hack – John and Neil worked very closely on architecture (daily calls) @jeremyjarvis
  • 54. Chapter 3: Design phase • Process: – Consulted, at first. Network infrastructure gurus. – We’re on our own! – Hands-on, R&D style, lots of testing, experimentation, iteration – Investigated competition (what’s good/bad) – Access to plenty of kit -set up mini-clouds to hack – John and Neil worked very closely on architecture (daily calls) – Don’t reinvent the wheel (Rubyists!) @jeremyjarvis
  • 55. Chapter 3: Design phase @jeremyjarvis
  • 56. Chapter 3: Design phase • Elements: @jeremyjarvis
  • 57. Chapter 3: Design phase • Elements: – Network architecture (proof-of-concept) @jeremyjarvis
  • 58. Chapter 3: Design phase • Elements: – Network architecture (proof-of-concept) – Application/software architecture (evolving, iterative) @jeremyjarvis
  • 59. Chapter 3: Design phase • Elements: – Network architecture (proof-of-concept) – Application/software architecture (evolving, iterative) – Hardware selection: @jeremyjarvis
  • 60. Chapter 3: Design phase • Elements: – Network architecture (proof-of-concept) – Application/software architecture (evolving, iterative) – Hardware selection: • Border routers (Cisco) @jeremyjarvis
  • 61. Chapter 3: Design phase • Elements: – Network architecture (proof-of-concept) – Application/software architecture (evolving, iterative) – Hardware selection: • Border routers (Cisco) • Switches (Cisco +) @jeremyjarvis
  • 62. Chapter 3: Design phase • Elements: – Network architecture (proof-of-concept) – Application/software architecture (evolving, iterative) – Hardware selection: • Border routers (Cisco) • Switches (Cisco +) • Host servers (Dell) @jeremyjarvis
  • 63. Chapter 3: Design phase • Elements: – Network architecture (proof-of-concept) – Application/software architecture (evolving, iterative) – Hardware selection: • Border routers (Cisco) • Switches (Cisco +) • Host servers (Dell) • Standardised rack design (modular) @jeremyjarvis
  • 64. Chapter 3: Design phase • Elements: – Network architecture (proof-of-concept) – Application/software architecture (evolving, iterative) – Hardware selection: • Border routers (Cisco) • Switches (Cisco +) • Host servers (Dell) • Standardised rack design (modular) – Datacentre selection (Proximity, Independent, Competing) @jeremyjarvis
  • 65. Chapter 4: Let’s build this thing! @jeremyjarvis
  • 66. Chapter 4: Let’s build this thing! @jeremyjarvis
  • 67. Chapter 4: Let’s build this thing! • Network provisioning (Transit, Metro links, RIPE membership) @jeremyjarvis
  • 68. Chapter 4: Let’s build this thing! • Network provisioning (Transit, Metro links, RIPE membership) • Buying (negotiating) @jeremyjarvis
  • 69. Chapter 4: Let’s build this thing! • Network provisioning (Transit, Metro links, RIPE membership) • Buying (negotiating) • Installing kit (Routers, Switches, Servers) @jeremyjarvis
  • 70. Chapter 4: Let’s build this thing! • Network provisioning (Transit, Metro links, RIPE membership) • Buying (negotiating) • Installing kit (Routers, Switches, Servers) • Use datacentre staff where possible (racking/stacking) @jeremyjarvis
  • 71. Chapter 4: Let’s build this thing! • Network provisioning (Transit, Metro links, RIPE membership) • Buying (negotiating) • Installing kit (Routers, Switches, Servers) • Use datacentre staff where possible (racking/stacking) • Software development (several applications, iterative) @jeremyjarvis
  • 72. Chapter 4: Let’s build this thing! • Network provisioning (Transit, Metro links, RIPE membership) • Buying (negotiating) • Installing kit (Routers, Switches, Servers) • Use datacentre staff where possible (racking/stacking) • Software development (several applications, iterative) • Writing configs (again, iterative - infra as code) @jeremyjarvis
  • 73. Chapter 4: Let’s build this thing! • Network provisioning (Transit, Metro links, RIPE membership) • Buying (negotiating) • Installing kit (Routers, Switches, Servers) • Use datacentre staff where possible (racking/stacking) • Software development (several applications, iterative) • Writing configs (again, iterative - infra as code) • Documentation (wiki, changelogs, code comments) @jeremyjarvis
  • 74. Chapter 5: It’s alive! @jeremyjarvis
  • 75. Chapter 5: It’s alive! @jeremyjarvis
  • 76. Chapter 5: It’s alive! • Nov 2010 - Launched private beta (700 users) @jeremyjarvis
  • 77. Chapter 5: It’s alive! • Nov 2010 - Launched private beta (700 users) • Iteration (fix bottlenecks, improve resilience) @jeremyjarvis
  • 78. Chapter 5: It’s alive! • Nov 2010 - Launched private beta (700 users) • Iteration (fix bottlenecks, improve resilience) • New features (Load balancing, Firewall etc) @jeremyjarvis
  • 79. Chapter 5: It’s alive! • Nov 2010 - Launched private beta (700 users) • Iteration (fix bottlenecks, improve resilience) • New features (Load balancing, Firewall etc) • Billing data (distributed stats collection) @jeremyjarvis
  • 80. Chapter 5: It’s alive! • Nov 2010 - Launched private beta (700 users) • Iteration (fix bottlenecks, improve resilience) • New features (Load balancing, Firewall etc) • Billing data (distributed stats collection) • “Enterprise” billing software *sad face* @jeremyjarvis
  • 81. Chapter 5: It’s alive! • Nov 2010 - Launched private beta (700 users) • Iteration (fix bottlenecks, improve resilience) • New features (Load balancing, Firewall etc) • Billing data (distributed stats collection) • “Enterprise” billing software *sad face* • Oct 2011 - General availability (no change really, just £ £) @jeremyjarvis
  • 82. Chapter 5: It’s alive! • Nov 2010 - Launched private beta (700 users) • Iteration (fix bottlenecks, improve resilience) • New features (Load balancing, Firewall etc) • Billing data (distributed stats collection) • “Enterprise” billing software *sad face* • Oct 2011 - General availability (no change really, just £ £) • Product development (more and better features) @jeremyjarvis
  • 83. Chapter 5: It’s alive! • Nov 2010 - Launched private beta (700 users) • Iteration (fix bottlenecks, improve resilience) • New features (Load balancing, Firewall etc) • Billing data (distributed stats collection) • “Enterprise” billing software *sad face* • Oct 2011 - General availability (no change really, just £ £) • Product development (more and better features) • Marketing (getting the word out, communication) @jeremyjarvis
  • 84. Epilogue: What did we learn? @jeremyjarvis
  • 85. Epilogue: What did we learn? @jeremyjarvis
  • 86. Epilogue: What did we learn? • Building stuff is hard (but can lead to competitive advantage) @jeremyjarvis
  • 87. Epilogue: What did we learn? • Building stuff is hard (but can lead to competitive advantage) • Be your own customers (understand market, use products) @jeremyjarvis
  • 88. Epilogue: What did we learn? • Building stuff is hard (but can lead to competitive advantage) • Be your own customers (understand market, use products) • Don’t *over*estimate competition (look behind the mask) @jeremyjarvis
  • 89. Epilogue: What did we learn? • Building stuff is hard (but can lead to competitive advantage) • Be your own customers (understand market, use products) • Don’t *over*estimate competition (look behind the mask) • Learn good negotiation (clue: it’s not a battle) @jeremyjarvis
  • 90. Epilogue: What did we learn? • Building stuff is hard (but can lead to competitive advantage) • Be your own customers (understand market, use products) • Don’t *over*estimate competition (look behind the mask) • Learn good negotiation (clue: it’s not a battle) • All about the launch (could have timed/co-ordinated things better for more “oomph”) @jeremyjarvis
  • 91. Epilogue: What did we learn? • Building stuff is hard (but can lead to competitive advantage) • Be your own customers (understand market, use products) • Don’t *over*estimate competition (look behind the mask) • Learn good negotiation (clue: it’s not a battle) • All about the launch (could have timed/co-ordinated things better for more “oomph”) • Momentum is important (PR, morale) @jeremyjarvis