SlideShare a Scribd company logo
1 of 106
Download to read offline
Scaling      :
          What Went Wrong,
          What Went Right
Ross Snyder
ross@etsy.com
@beamrider9              Sept. 30, 2011
                                          1
Etsy is the world’s handmade marketplace.




          (vintage and supplies, too)
                                            2
Etsy was founded in mid-2005
  and is constantly growing.




  Gross Merchandise Sales ($MM)

                                  3
From humble beginnings...




 June   Four employees, one web*,
2005:   one db, founder’s apartment
        * until getting slashdotted by a link
        from Boing Boing in Aug. 2005

                                                4
... to today’s handmade juggernaut.




Sept.   250+ employees, multiple
2011:   offices, billions of pageviews
        (NYC Mayor Mike Bloomberg visited
        Etsy in June 2011)

                                            5
How’d we get here?




                     6
Answer: with some difficulty.
“There is no education like adversity.” - Benjamin Disraeli

                                                              7
A few disclaimers




                    8
Hindsight is 20/20




                     9
“History is written by the victors”




                                      10
Etsy thrives today
  because of what
its early employees
    accomplished




                      11
Your narrator wasn’t present for most
  of the events covered in this talk




                                        12
Etsy Architecture: 2007




                          13
Etsy Architecture: 2007

Operating System:

       Database:

      Webserver:

      Languages:


                            14
Etsy Architecture: 2007


   Most business logic in
 Postgres stored procedures




                              15
Etsy Architecture: 2007


 Front end / database interaction = stored
procedure calls wrapped with PHP functions




                                             16
Etsy Architecture: 2007


Some database partitioning by feature,
   but still with a large central DB




                                         17
Etsy Architecture: 2007



   Site uptime = not great




                             18
Etsy Architecture: 2007



    “How do we scale?”




                          19
Etsy Architecture: 2007



“Let’s write some middleware!”

(runners up: “Let’s rewrite the site in Java!”
   and “Let’s rewrite the site in Python!”)




                                                 20
Conway’s Law:
“Any organization that designs
a system (defined broadly) will
produce a design whose
structure is a copy of the
organization's communication
structure.”

- Melvin Conway, 1968



                                 21
Etsy Engineering: 2007


Dev      DBA        Ops




                          22
Etsy Engineering: 2007


Dev        DBA          Ops




      Devs write code


                              23
Etsy Engineering: 2007


Dev        DBA         Ops




      DBAs write SQL


                             24
Etsy Engineering: 2007


Dev          DBA           Ops




Ops deploys code & touches prod


                                  25
SILOS




        26
Etsy’s big bet: “Sprouter”
    (the Stored Procedure Router)




                                    27
Sprouter


 Web           Sprouter          DB
(PHP)          (Python)       (Postgres)




        Runs on each webserver,
          listens on port 8010

                                           28
Sprouter


  Web            Sprouter           DB
 (PHP)           (Python)        (Postgres)




  Maps name/arguments to a Postgres
stored procedure, calls it, returns results

                                              29
Sprouter


 Web      Sprouter         DB
(PHP)     (Python)      (Postgres)




        Caches things


                                     30
Sprouter


 Web         Sprouter           DB
(PHP)        (Python)        (Postgres)




   Supports sharding (in theory)


                                          31
Sprouter


 Web        Sprouter          DB
(PHP)       (Python)       (Postgres)




 Devs write PHP, DBAs write SQL,
  meet somewhere in the middle

                                        32
SILOS




        33
Sprouter


 Web          Sprouter          DB
(PHP)         (Python)       (Postgres)




 The hope: easier to scale Sprouter
  than to scale the database itself

                                          34
Sprouter


  Web          Sprouter          DB
 (PHP)         (Python)       (Postgres)



   (scaling the db when everything’s in
stored procedures = somewhere between
           hard and impossible)

                                           35
Sprouter: Timeline
  Fall ’07: Idea first discussed
Spring ’08: Alpha version debuts
  Fall ’08: Released in production




                                     36
Sprouter: Timeline
     Fall ’07: Idea first discussed
   Spring ’08: Alpha version debuts
     Fall ’08: Released in production




Spring ’09: Sprouter deprecated
                                        37
What happened?




                 38
Sprouter: “Good” Parts


 Web          Sprouter          DB
(PHP)         (Python)       (Postgres)




Forcibly centralizes database access


                                          39
Sprouter: “Good” Parts


 Web         Sprouter          DB
(PHP)        (Python)       (Postgres)




  Hides data store implementation
            from caller

                                         40
Sprouter: “Good” Parts


 Web             Sprouter          DB
(PHP)            (Python)       (Postgres)




            Opens the door for
        “clever” automatic caching

                                             41
Sprouter: “Good” Parts


   Web          Sprouter          DB
  (PHP)         (Python)       (Postgres)




Prevents developers from writing SQL (?)


                                            42
43
Sprouter: Not-As-Good Parts


 Web           Sprouter          DB
(PHP)          (Python)       (Postgres)




Creates substantial developer friction


                                           44
Sprouter: Not-As-Good Parts


 Web        Sprouter        DB
(PHP)       (Python)     (Postgres)




Homegrown daemon + dependencies
       for Ops to maintain

                                      45
Sprouter: Not-As-Good Parts


  Web          Sprouter           DB
 (PHP)         (Python)        (Postgres)




Lack of community support / provability


                                            46
Sprouter: Not-As-Good Parts


    Web          Sprouter          DB
   (PHP)         (Python)       (Postgres)




Complex synchronization required to deploy
   (due to tight coupling with Postgres)

                                             47
Sprouter: Not-As-Good Parts


  Web           Sprouter          DB
 (PHP)          (Python)       (Postgres)




Database remains single point of failure
(sharding features never fully formed)

                                            48
Sprouter: Summary
Extra barriers to development




                                49
Sprouter: Summary
Extra barriers to development
+ Negligible (negative?) effect on site reliability




                                                     50
Sprouter: Summary
Extra barriers to development
+ Negligible (negative?) effect on site reliability
+ Deploys even more painful




                                                     51
Sprouter: Summary
Extra barriers to development
+ Negligible (negative?) effect on site reliability
+ Deploys even more painful
+ Requires extra Ops/Dev resources




                                                     52
Sprouter: Summary
Extra barriers to development
+ Negligible (negative?) effect on site reliability
+ Deploys even more painful
+ Requires extra Ops/Dev resources

=




                                                     53
How did attitudes change so quickly?




                                       54
Sprouter: Timeline
     Fall ’07: Idea first discussed
   Spring ’08: Alpha version debuts
     Fall ’08: Released in production




Spring ’09: Sprouter deprecated
                                        55
The Great Etsy Culture Shift




                               56
The Great Etsy Culture Shift


Just as Sprouter went live, many of its
 strongest proponents departed Etsy




                                          57
The Great Etsy Culture Shift



      Taking with them...




                               58
The Great Etsy Culture Shift


   Devotion to Postgres stored
      procedures / types




                                 59
The Great Etsy Culture Shift



  Fear of developers writing SQL




                                   60
The Great Etsy Culture Shift



 Fear of developers touching prod




                                    61
The Great Etsy Culture Shift



Infrequent / large deploys to production




                                           62
The Great Etsy Culture Shift



     “Not developed here”




                               63
The Great Etsy Culture Shift
Then                  Now


            Fall
            ’08




                               64
DevOps




         65
DevOps



Silos = bad




              66
DevOps


Trust, cooperation, transparency,
  shared responsibility = good




                                    67
DevOps



“We’re all in this together”




                               68
The Way Forward: Part 1



     Stabilize the site




                          69
The Way Forward: Part 1
       Stabilize the site



 Improve metrics & monitoring




                                70
The Way Forward: Part 1
      Stabilize the site


            StatsD
http://github.com/etsy/statsd




                                71
The Way Forward: Part 1
      Stabilize the site


 Upgrade database hardware
 vertically as far as possible




                                 72
The Way Forward: Part 1
         Stabilize the site


Give developers production access to
    help troubleshoot problems




                                       73
The Way Forward: Part 2



   Continuous Deployment




                           74
The Way Forward: Part 2
      Continuous Deployment


   Any engineer can deploy to prod
(generally happens 25+ times per day)




                                        75
The Way Forward: Part 2
      Continuous Deployment


            Deployinator
http://github.com/etsy/deployinator




                                      76
The Way Forward: Part 2
   Continuous Deployment



One button that deploys the site




                                   77
The Way Forward: Part 2
      Continuous Deployment



Small changesets, deployed frequently




                                        78
The Way Forward: Part 2
   Continuous Deployment


    Requires solid tests,
    good communication




                            79
The Way Forward: Part 2
    Continuous Deployment



Distributed developer-driven QA




                                  80
The Way Forward: Part 3



    Circumvent Sprouter




                          81
The Way Forward: Part 3
      Circumvent Sprouter



Object-Relational Mapping (ORM)




                                  82
The Way Forward: Part 3
        Circumvent Sprouter


aka “The Vietnam of Computer Science”
              (Google it)




                                        83
The Way Forward: Part 3
         Circumvent Sprouter


Front-end PHP talks directly to database
     via ORM (also written in PHP)




                                           84
The Way Forward: Part 3
      Circumvent Sprouter


ORM can cache where appropriate
      (as can front end)




                                  85
The Way Forward: Part 4



    Database Sharding




                          86
The Way Forward: Part 4
        Database Sharding


 Etsy has a lot of DNA from flickr -
including their DB sharding scheme




                                      87
The Way Forward: Part 4
    Database Sharding



     Based on MySQL




                          88
The Way Forward: Part 4
     Database Sharding



  Battle-tested, well-known




                              89
The Way Forward: Part 4
      Database Sharding


 Scales horizontally to infinity
      (or close enough)




                                  90
The Way Forward: Part 4
     Database Sharding


  No single points of failure
 (master-master replication)




                                91
The Way Forward: Part 4
      Database Sharding


 Gradually phase out Sprouter,
 phase in ORM / sharded data




                                 92
Sprouter: Timeline


  Fall ’07: Idea first discussed
Spring ’08: Alpha version debuts
  Fall ’08: Released in production
Spring ’09: Sprouter deprecated




                                     93
Sprouter: Timeline


   Fall ’07: Idea first discussed
 Spring ’08: Alpha version debuts
   Fall ’08: Released in production
 Spring ’09: Sprouter deprecated




Spring ’11: Sprouter turned off

                                      94
95
Lessons Learned




                  96
Etsy Architecture: 2007

Operating System:

       Database:

      Webserver:

      Languages:


                            97
Etsy Architecture: 2011

Operating System:

       Database:

      Webserver:

      Languages:


                            98
Open & trusting > closed & afraid
  (DevOps DevOps DevOps)




                                    99
Front end/database interaction is too critical
to take chances on novel/untested solutions




                                                 100
Side corollary: If you’re doing something
“clever”, you’re probably doing it wrong




                                            101
The architectural decisions you make today
will have large impact long after you’re gone




                                                102
No architectural hole is so deep that proven
scaling strategies don’t exist for digging out




                                                 103
Acknowledgement


We are probably making decisions today that
 will be the subject of a similar talk in 2015




                                                 104
Learn More:
http://codeascraft.etsy.com/
@codeascraft
                               105
Etsy is hiring!
http://www.etsy.com/careers
@etsy
                              106

More Related Content

What's hot

Organizational Design for Effective Software Development
Organizational Design for Effective Software DevelopmentOrganizational Design for Effective Software Development
Organizational Design for Effective Software DevelopmentDev9Com
 
Lean Agile Metrics And KPIs
Lean Agile Metrics And KPIsLean Agile Metrics And KPIs
Lean Agile Metrics And KPIsYuval Yeret
 
Continuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two ApproachesContinuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two ApproachesRoss Snyder
 
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Agile India
 
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012Patrick McDonnell
 
Portfolio for JIRA & Kanban: How Thrillist Manages Their Product Roadmap
Portfolio for JIRA & Kanban: How Thrillist Manages Their Product RoadmapPortfolio for JIRA & Kanban: How Thrillist Manages Their Product Roadmap
Portfolio for JIRA & Kanban: How Thrillist Manages Their Product RoadmapAtlassian
 
Effect Mapping: A Better Way to Get Really Usable Results Out of IT Projects
Effect Mapping: A Better Way to Get Really Usable Results Out of IT ProjectsEffect Mapping: A Better Way to Get Really Usable Results Out of IT Projects
Effect Mapping: A Better Way to Get Really Usable Results Out of IT ProjectsJonas Söderström
 
Quality Engineering - par oú commencer?
Quality Engineering - par oú commencer?Quality Engineering - par oú commencer?
Quality Engineering - par oú commencer?Antoine Craske
 
How to go from structureless to structured without losing your vibe
How to go from structureless to structured without losing your vibeHow to go from structureless to structured without losing your vibe
How to go from structureless to structured without losing your vibeCamille Fournier
 
Product Manager 101: What Does A Product Manager Actually Do?
Product Manager 101: What Does A Product Manager Actually Do?Product Manager 101: What Does A Product Manager Actually Do?
Product Manager 101: What Does A Product Manager Actually Do?Chris Cummings
 
Introduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project ManagementIntroduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project ManagementDan Chuparkoff
 
뱅크샐러드 파이썬맛 레시피
뱅크샐러드 파이썬맛 레시피뱅크샐러드 파이썬맛 레시피
뱅크샐러드 파이썬맛 레시피겨울 정
 
Lean Product Management for Enterprises: The Art of Known Unknowns
Lean Product Management for Enterprises: The Art of Known Unknowns Lean Product Management for Enterprises: The Art of Known Unknowns
Lean Product Management for Enterprises: The Art of Known Unknowns Thoughtworks
 
Building Great Software Engineering Teams
Building Great Software Engineering TeamsBuilding Great Software Engineering Teams
Building Great Software Engineering TeamsBrian Link
 
Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov
Spiking Your Way to Improved Agile Development - Anatoli KazatchkovSpiking Your Way to Improved Agile Development - Anatoli Kazatchkov
Spiking Your Way to Improved Agile Development - Anatoli KazatchkovAtlassian
 
Agile requirements management
Agile requirements managementAgile requirements management
Agile requirements managementChristian Hassa
 

What's hot (20)

Organizational Design for Effective Software Development
Organizational Design for Effective Software DevelopmentOrganizational Design for Effective Software Development
Organizational Design for Effective Software Development
 
Lean Agile Metrics And KPIs
Lean Agile Metrics And KPIsLean Agile Metrics And KPIs
Lean Agile Metrics And KPIs
 
Continuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two ApproachesContinuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two Approaches
 
Sql Antipatterns Strike Back
Sql Antipatterns Strike BackSql Antipatterns Strike Back
Sql Antipatterns Strike Back
 
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
 
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
 
Portfolio for JIRA & Kanban: How Thrillist Manages Their Product Roadmap
Portfolio for JIRA & Kanban: How Thrillist Manages Their Product RoadmapPortfolio for JIRA & Kanban: How Thrillist Manages Their Product Roadmap
Portfolio for JIRA & Kanban: How Thrillist Manages Their Product Roadmap
 
Tube Map
Tube MapTube Map
Tube Map
 
Product Roadmap
Product RoadmapProduct Roadmap
Product Roadmap
 
Effect Mapping: A Better Way to Get Really Usable Results Out of IT Projects
Effect Mapping: A Better Way to Get Really Usable Results Out of IT ProjectsEffect Mapping: A Better Way to Get Really Usable Results Out of IT Projects
Effect Mapping: A Better Way to Get Really Usable Results Out of IT Projects
 
Quality Engineering - par oú commencer?
Quality Engineering - par oú commencer?Quality Engineering - par oú commencer?
Quality Engineering - par oú commencer?
 
How to go from structureless to structured without losing your vibe
How to go from structureless to structured without losing your vibeHow to go from structureless to structured without losing your vibe
How to go from structureless to structured without losing your vibe
 
Product Manager 101: What Does A Product Manager Actually Do?
Product Manager 101: What Does A Product Manager Actually Do?Product Manager 101: What Does A Product Manager Actually Do?
Product Manager 101: What Does A Product Manager Actually Do?
 
Introduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project ManagementIntroduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project Management
 
뱅크샐러드 파이썬맛 레시피
뱅크샐러드 파이썬맛 레시피뱅크샐러드 파이썬맛 레시피
뱅크샐러드 파이썬맛 레시피
 
Lean Product Management for Enterprises: The Art of Known Unknowns
Lean Product Management for Enterprises: The Art of Known Unknowns Lean Product Management for Enterprises: The Art of Known Unknowns
Lean Product Management for Enterprises: The Art of Known Unknowns
 
Building Great Software Engineering Teams
Building Great Software Engineering TeamsBuilding Great Software Engineering Teams
Building Great Software Engineering Teams
 
Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov
Spiking Your Way to Improved Agile Development - Anatoli KazatchkovSpiking Your Way to Improved Agile Development - Anatoli Kazatchkov
Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov
 
Product roadmap 101
Product roadmap 101Product roadmap 101
Product roadmap 101
 
Agile requirements management
Agile requirements managementAgile requirements management
Agile requirements management
 

Similar to Scaling Etsy: What Went Wrong, What Went Right

Microsoft & open source a 'brave new world' - CORESTART 2.0
Microsoft & open source a 'brave new world' - CORESTART 2.0Microsoft & open source a 'brave new world' - CORESTART 2.0
Microsoft & open source a 'brave new world' - CORESTART 2.0Matt Warren
 
Continuum Analytics and Python
Continuum Analytics and PythonContinuum Analytics and Python
Continuum Analytics and PythonTravis Oliphant
 
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017Matt Warren
 
Open Innovation means Open Source
Open Innovation means Open SourceOpen Innovation means Open Source
Open Innovation means Open SourceBertrand Delacretaz
 
PyData Texas 2015 Keynote
PyData Texas 2015 KeynotePyData Texas 2015 Keynote
PyData Texas 2015 KeynotePeter Wang
 
Building Data Pipelines in Python
Building Data Pipelines in PythonBuilding Data Pipelines in Python
Building Data Pipelines in PythonC4Media
 
Class 39: ...and the World Wide Web
Class 39: ...and the World Wide WebClass 39: ...and the World Wide Web
Class 39: ...and the World Wide WebDavid Evans
 
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...Ambassador Labs
 
SQLCAT: Tier-1 BI in the World of Big Data
SQLCAT: Tier-1 BI in the World of Big DataSQLCAT: Tier-1 BI in the World of Big Data
SQLCAT: Tier-1 BI in the World of Big DataDenny Lee
 
Open Innovation means Open Source
Open Innovation means Open SourceOpen Innovation means Open Source
Open Innovation means Open SourceBertrand Delacretaz
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Jody Garnett
 
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsPyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsUwe Korn
 
IMCSummit 2015 - Day 1 Developer Track - Open-Source In-Memory Platforms: Ben...
IMCSummit 2015 - Day 1 Developer Track - Open-Source In-Memory Platforms: Ben...IMCSummit 2015 - Day 1 Developer Track - Open-Source In-Memory Platforms: Ben...
IMCSummit 2015 - Day 1 Developer Track - Open-Source In-Memory Platforms: Ben...In-Memory Computing Summit
 
Pg nordic-day-2014-2 tb-enough
Pg nordic-day-2014-2 tb-enoughPg nordic-day-2014-2 tb-enough
Pg nordic-day-2014-2 tb-enoughRenaud Bruyeron
 
Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityBuild Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityNational Cheng Kung University
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationNils Hofmeister
 
GraphTour - Workday: Tracking activity with Neo4j (English Version)
GraphTour - Workday: Tracking activity with Neo4j (English Version)GraphTour - Workday: Tracking activity with Neo4j (English Version)
GraphTour - Workday: Tracking activity with Neo4j (English Version)Neo4j
 
H2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to EveryoneH2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to EveryoneSri Ambati
 

Similar to Scaling Etsy: What Went Wrong, What Went Right (20)

Microsoft & open source a 'brave new world' - CORESTART 2.0
Microsoft & open source a 'brave new world' - CORESTART 2.0Microsoft & open source a 'brave new world' - CORESTART 2.0
Microsoft & open source a 'brave new world' - CORESTART 2.0
 
Continuum Analytics and Python
Continuum Analytics and PythonContinuum Analytics and Python
Continuum Analytics and Python
 
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
 
Open Innovation means Open Source
Open Innovation means Open SourceOpen Innovation means Open Source
Open Innovation means Open Source
 
PyData Texas 2015 Keynote
PyData Texas 2015 KeynotePyData Texas 2015 Keynote
PyData Texas 2015 Keynote
 
Building Data Pipelines in Python
Building Data Pipelines in PythonBuilding Data Pipelines in Python
Building Data Pipelines in Python
 
Class 39: ...and the World Wide Web
Class 39: ...and the World Wide WebClass 39: ...and the World Wide Web
Class 39: ...and the World Wide Web
 
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
 
cadec-2017-golang
cadec-2017-golangcadec-2017-golang
cadec-2017-golang
 
SQLCAT: Tier-1 BI in the World of Big Data
SQLCAT: Tier-1 BI in the World of Big DataSQLCAT: Tier-1 BI in the World of Big Data
SQLCAT: Tier-1 BI in the World of Big Data
 
Open Innovation means Open Source
Open Innovation means Open SourceOpen Innovation means Open Source
Open Innovation means Open Source
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...
 
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsPyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
 
IMCSummit 2015 - Day 1 Developer Track - Open-Source In-Memory Platforms: Ben...
IMCSummit 2015 - Day 1 Developer Track - Open-Source In-Memory Platforms: Ben...IMCSummit 2015 - Day 1 Developer Track - Open-Source In-Memory Platforms: Ben...
IMCSummit 2015 - Day 1 Developer Track - Open-Source In-Memory Platforms: Ben...
 
Pg nordic-day-2014-2 tb-enough
Pg nordic-day-2014-2 tb-enoughPg nordic-day-2014-2 tb-enough
Pg nordic-day-2014-2 tb-enough
 
Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityBuild Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the Quality
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
GraphTour - Workday: Tracking activity with Neo4j (English Version)
GraphTour - Workday: Tracking activity with Neo4j (English Version)GraphTour - Workday: Tracking activity with Neo4j (English Version)
GraphTour - Workday: Tracking activity with Neo4j (English Version)
 
H2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to EveryoneH2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to Everyone
 
Intro to Big Data - Spark
Intro to Big Data - SparkIntro to Big Data - Spark
Intro to Big Data - Spark
 

Recently uploaded

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
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 textsMaria Levchenko
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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.pdfEnterprise Knowledge
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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 organizationRadu Cotescu
 
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.pptxHampshireHUG
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 

Recently uploaded (20)

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
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...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
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...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 

Scaling Etsy: What Went Wrong, What Went Right