SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
Seu produto é um
                            sucesso, e agora?
                            desafios técnicos que
                            uma start-up enfrenta
                              Phil Calçado - SoundCloud
                                      @pcalcado
                                http://philcalcado.com
Thursday, February 16, 12
ôpa!

                              meu nome é
                               phillip.


Thursday, February 16, 12
eu trabalho aqui:




Thursday, February 16, 12
Thursday, February 16, 12
e você deveria ir pra lá também.




Thursday, February 16, 12
http://bit.ly/work-at-soundcloud


Thursday, February 16, 12
as pessoas desenvolvem
                            sistemas de maneiras bem
                              diferentes hoje em dia.



Thursday, February 16, 12
“Engenharia de Software”
                            (i.e. waterfall)




Thursday, February 16, 12
Thursday, February 16, 12
feedback




Thursday, February 16, 12
Agile Típico


Thursday, February 16, 12
Thursday, February 16, 12
feedback




Thursday, February 16, 12
Startup
                            (i.e. “Eu não tenho a menor idéia se esse
                                        troço vai vingar...”)




Thursday, February 16, 12
Thursday, February 16, 12
feedback




Thursday, February 16, 12
experimentação
                                 rápida.




Thursday, February 16, 12
mas e o sistema,
                             como fica?




Thursday, February 16, 12
sound.erb


                            SoundController
                            view
                            upload

                                 Sound



                               Database




Thursday, February 16, 12
sound.erb                 sound.json.erb



                              SoundController           SoundApiController
                              view                      view
                              upload                    upload



                                                Sound
                            Database




Thursday, February 16, 12
sound.erb           sound.json.erb



                            UploadController   SoundController   SoundApiController
                            upload             view              view
                                                                 upload



                                S3
                                                Sound            Database




Thursday, February 16, 12
Cache




                                                sound.erb                sound.json.erb



                            UploadController   SoundController      SoundApiController
                            upload             view                 view
                                                                    upload



                                S3
                                                Sound                        Database



                                                            Cache

Thursday, February 16, 12
Cache




                                                sound.erb                sound.json.erb



                            UploadController   SoundController      SoundApiController
                            upload             view                 view
                                                                    upload



                                S3                                           Database     Database   Database
                                                                                 1            2         N
                                                Sound


                                               Cache                             Master/Slave


Thursday, February 16, 12
startups




Thursday, February 16, 12
startups
                            A grande maioria falha




Thursday, February 16, 12
startups
                            A grande maioria falha,
                       fazer é mais importante que planejar




Thursday, February 16, 12
startups
                            A grande maioria falha,
                            mas algumas dão certo.




Thursday, February 16, 12
Após esta corrida dos 100m rasos,
          como recuperar o fôlego?



Thursday, February 16, 12
1) Não padronize, encoraje
2) Não re-comece do zero
3) Quebre o monolito



Thursday, February 16, 12
1) Não padronize, encoraje




Thursday, February 16, 12
1) Não padronize, encoraje




Thursday, February 16, 12
1) Não padronize, encoraje




Thursday, February 16, 12
1) Não padronize, encoraje




Thursday, February 16, 12
1) Não padronize, encoraje




Thursday, February 16, 12
1) Não padronize, encoraje




Thursday, February 16, 12
1) Não padronize, encoraje




Thursday, February 16, 12
1) Não padronize, encoraje




Thursday, February 16, 12
1) Não padronize, encoraje




Thursday, February 16, 12
2) Não re-comece do zero




Thursday, February 16, 12
2) Não re-comece do zero
                                                       App 1




                             Vídeo            Música   App 2
      Banco de
       Dados
                                         Data de
                            Matéria     Aniversário

                                  "O Framework"
                                                       App N




Thursday, February 16, 12
2) Não re-comece do zero

                             Vídeo            Música
 Banco de                                                                      Música
  Dados                                                        OBM*
                                         Data de
                            Matéria     Aniversário                            Vídeo


                                  "O Framework"                      App N+1


                                                       * OBM: Object-to-Bolovo Mapper




Thursday, February 16, 12
3) Quebre o monolito




Thursday, February 16, 12
3) Quebre o monolito




Thursday, February 16, 12
3) Quebre o monolito




Thursday, February 16, 12
3) Quebre o monolito


                            VídeoController       MúsicaController



                               Vídeo                Música



                                               Data de
                             Matéria          Aniversário




Thursday, February 16, 12
3) Quebre o monolito


                            VídeoController   MúsicaController



                               Vídeo           Música




                             Matéria
                                               Data de
                                              Aniversário




Thursday, February 16, 12
3) Quebre o monolito

                        VídeoController         MúsicaController


                                              MúsicaService

                                  Vídeo

                                                       Música
                            Matéria


                                               Data de
                               VídeoService   Aniversário



Thursday, February 16, 12
3) Quebre o monolito

           Matéria


                                          <<interface>>                    MúsicaController

             Vídeo


                                                                      Música
                             Data de
                            Aniversário

      VídeoController

                                                      <<interface>>
             VídeoService                                                  MúsicaService




Thursday, February 16, 12
Lembre-se:



Thursday, February 16, 12
Thursday, February 16, 12
Thursday, February 16, 12
Problemas financeiros são resolvidos
com dinheiro.




Thursday, February 16, 12
Problemas financeiros são resolvidos
com dinheiro.
Problemas técnicos requerem
dinheiro e tempo.

Thursday, February 16, 12
http://bit.ly/work-at-soundcloud


Thursday, February 16, 12

Contenu connexe

Plus de Phil Calçado

The Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to ServerlessThe Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to Serverless
Phil Calçado
 
An example of Future composition in a real app
An example of Future composition in a real appAn example of Future composition in a real app
An example of Future composition in a real app
Phil Calçado
 
Evolutionary Architecture at Work
Evolutionary  Architecture at WorkEvolutionary  Architecture at Work
Evolutionary Architecture at Work
Phil Calçado
 
Structuring apps in Scala
Structuring apps in ScalaStructuring apps in Scala
Structuring apps in Scala
Phil Calçado
 
From a monolithic Ruby on Rails app to the JVM
From a monolithic  Ruby on Rails app  to the JVMFrom a monolithic  Ruby on Rails app  to the JVM
From a monolithic Ruby on Rails app to the JVM
Phil Calçado
 
Applying Evolutionary Architecture on a Popular API
Applying Evolutionary Architecture on a  Popular APIApplying Evolutionary Architecture on a  Popular API
Applying Evolutionary Architecture on a Popular API
Phil Calçado
 
SoundCloud Masterclass on Brazil
SoundCloud Masterclass on BrazilSoundCloud Masterclass on Brazil
SoundCloud Masterclass on Brazil
Phil Calçado
 
SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...
Phil Calçado
 
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
Phil Calçado
 

Plus de Phil Calçado (20)

The Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to ServerlessThe Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to Serverless
 
Ten Years of Failing Microservices
Ten Years of Failing MicroservicesTen Years of Failing Microservices
Ten Years of Failing Microservices
 
The Next Generation of Microservices
The Next Generation of MicroservicesThe Next Generation of Microservices
The Next Generation of Microservices
 
The Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 BrisbaneThe Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 Brisbane
 
The Economics of Microservices (2017 CraftConf)
The Economics of Microservices  (2017 CraftConf)The Economics of Microservices  (2017 CraftConf)
The Economics of Microservices (2017 CraftConf)
 
Finagle @ SoundCloud
Finagle @ SoundCloudFinagle @ SoundCloud
Finagle @ SoundCloud
 
A Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing OrganisationsA Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing Organisations
 
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
 
Rhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a FunctionRhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a Function
 
ScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a FunctionScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a Function
 
An example of Future composition in a real app
An example of Future composition in a real appAn example of Future composition in a real app
An example of Future composition in a real app
 
APIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog FoodAPIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog Food
 
Evolutionary Architecture at Work
Evolutionary  Architecture at WorkEvolutionary  Architecture at Work
Evolutionary Architecture at Work
 
Structuring apps in Scala
Structuring apps in ScalaStructuring apps in Scala
Structuring apps in Scala
 
From a monolithic Ruby on Rails app to the JVM
From a monolithic  Ruby on Rails app  to the JVMFrom a monolithic  Ruby on Rails app  to the JVM
From a monolithic Ruby on Rails app to the JVM
 
Applying Evolutionary Architecture on a Popular API
Applying Evolutionary Architecture on a  Popular APIApplying Evolutionary Architecture on a  Popular API
Applying Evolutionary Architecture on a Popular API
 
SoundCloud Masterclass on Brazil
SoundCloud Masterclass on BrazilSoundCloud Masterclass on Brazil
SoundCloud Masterclass on Brazil
 
SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...
 
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
 
(v2.0) Better Functional Design Through Test-Driven Development
(v2.0) Better Functional Design Through Test-Driven Development(v2.0) Better Functional Design Through Test-Driven Development
(v2.0) Better Functional Design Through Test-Driven Development
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

(In Portuguese) Seu produto é um sucesso, e agora? desafios técnicos que uma start-up enfrenta -