SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Components of Social Platform Challenges Technology API Engineering Process
User Profile Relationships Activity Streams
Basic user information Extended information based on the context Player Cards Bragging rights  Points, levels Achievements, badges Activities
Friending Unidirectional (the Twitter model) Bidirectional (the Facebok model)  Association Comments Ratings, Thumbs Bookmarking/favoriting Recommendations
Who is doing what and when All about Actors, Actions, Objects and Targets Activitystrea.ms  standard vs. OpenSocial Commentable
Authentication Performance ActivityStrems Integration Flexibility Testing
People are tired of creating accounts on every site Need to support existing login method if the platform caters to an existing audience Existing auth may not work well with Open API initiatives Open API and Oauth 2 legged: Service to Service 3 legged: User to App to Service
Identify the bottlenecks  Measure everything Use CDNs for all static content Front end optimization via async loading Database optimization via indexes, sharding Caching  Scaling the sorts Scaling up vs. Scaling out CAP theorem Relational vs. NOSQL storage Read vs. Write heaviness
Query vs. Propagation Queries are read heavy Propagation is write heavy Deletion is a pain with propagation Activity Aggregation Aggregation on actor vs. object Normalized vs. Denormalized storage Comments Decorating the activities on each request
Integration with legacy touchpoints Opening up the API More channels like Mobile More independent applications Rate limiting and access control Don’t forget existing data Data outlives code
Flexibility in the code to adapt changing requirements quickly and seamlessly Good design DRY SOCs Flexibility in the infrastructure to adapt changing traffic and behavior Virtualization Heavy replication Flexibility in the team to respond to changes Process
Automated Testing wherever possible Developer Focus on test coverage (80+%) Continuous Integration and Deployment Cucumber + Hudson Cross browser testing (yes, including IE)
Java services Tomcat with Shindig 1.1, 4 nodes REST/JSON Ruby  Rails Admin App for moderation and points/levels Migration Scripts Twitter bot for routing #myign tweets to the platform Misc. scripts to invalidate memache keys and test service endpoints
Memcached Extremely trivial to set up and maintain Almost never dies Massive scale out Careful with Cache hotspots Concurrent writes On the fly scale-out Key/Value size limits
MySQL Proven, cheap to develop and operate Maslow’s hammer Easy scale out Hard to store (and retrieve) network graphs Write scaling with single master Not the best choice for activitystreams Schema changes lock the table(s)
Awesome write scaling Great for activity propagation model In place updates Using $push and $set Excellent for storing social relationships as documents Very easy to cluster We are running replica pairs, plan to move to replica sets Schema-less No need to run alter scripts on 18M-row table
Queryable Rich Query language ($in, $size, $exists, $slice) MapReduce for heavy data crunching Supports Indexing You can even index collections inside a document Storage  ~4x storage compared to relational data Emerging technology Index defragmentation  $or and indexing (to be supported in 1.7) Load balancing support in the driver (coming soon)
RabbitMQ for messaging Ease of clustering Written in Erlang for high performance and availability Used for Propagation of activities Sending out email alerts Indexing data in Solr
Person GET @self, @friends, @followers, @all, PUT/POST @self, @friends Activities GET @global, @self, @friends, POST @self  MediaItems GET @self, @all and POST @self AppData For applications to store/retrieve data as key-value pairs GET/POST @self Status  GET @friends, @self, @followers , POST @self
Must have for any Java/Ruby webapp Monitoring and troubleshooting Save a ton of $ and time by efficient root cause analysis tools Agents for Ruby and Java IGN Engineers helped write PHP and Memcached agents
Social Applications and community Check the pulse of the community UserVoice (http://ign.uservoice.com) Less is more Distinguish yourself and focus on your niche Be Agile - Release early, release often Do not shock your audience Announce the changes/features on a blog Eat your own dog food http://people.ign.com/ign-labs
Released July 2010 as beta Daily API requests ~25M Daily page views ~30K Daily Uniques ~12K 6ms response times Expected traffic 8-10x with more integration and mobile platform
Manish Pandit Engineering Manager, Social Platform at IGN Email: pandit.manish-at-gmail.com Twitter: @lobster1234 LinkedIn: http://www.linkedin.com/in/mpandit Blog: http://contrarianwisdom.blogspot.com MyIGN: http://people.ign.com/mpanditign
http://corp.ign.com http://labs.ign.com http://my.ign.com http://people.ign.com/ign-labs

Weitere ähnliche Inhalte

Was ist angesagt?

Simseer - A Software Similarity Web Service
Simseer - A Software Similarity Web ServiceSimseer - A Software Similarity Web Service
Simseer - A Software Similarity Web ServiceSilvio Cesare
 
Webinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with FusionWebinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with FusionLucidworks
 
Webinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's NewWebinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's NewLucidworks
 
Webinar: Personalized Retail Search & Recommendations with Fusion
Webinar: Personalized Retail Search & Recommendations with FusionWebinar: Personalized Retail Search & Recommendations with Fusion
Webinar: Personalized Retail Search & Recommendations with FusionLucidworks
 
Measure your teams sentiment
Measure your teams sentimentMeasure your teams sentiment
Measure your teams sentimentStefano Tempesta
 
Webinar: Building Conversational Search with Fusion
Webinar: Building Conversational Search with FusionWebinar: Building Conversational Search with Fusion
Webinar: Building Conversational Search with FusionLucidworks
 
Ml ops deployment choices
Ml ops   deployment choicesMl ops   deployment choices
Ml ops deployment choicesAvinash Patil
 
Webinar: Site Search in an Hour with Fusion
Webinar: Site Search in an Hour with FusionWebinar: Site Search in an Hour with Fusion
Webinar: Site Search in an Hour with FusionLucidworks
 
Harnessing the Crowds for Automating the Identification of Web APIs
Harnessing the Crowds for Automating the Identification of Web APIsHarnessing the Crowds for Automating the Identification of Web APIs
Harnessing the Crowds for Automating the Identification of Web APIsCarlos Pedrinaci
 
Career Pathing
Career PathingCareer Pathing
Career PathingHRIntranet
 
DataEngConf SF16 - Three lessons learned from building a production machine l...
DataEngConf SF16 - Three lessons learned from building a production machine l...DataEngConf SF16 - Three lessons learned from building a production machine l...
DataEngConf SF16 - Three lessons learned from building a production machine l...Hakka Labs
 
Getting Started With the TFS Object Model
Getting Started With the TFS Object ModelGetting Started With the TFS Object Model
Getting Started With the TFS Object ModelJeff Bramwell
 

Was ist angesagt? (17)

Simseer - A Software Similarity Web Service
Simseer - A Software Similarity Web ServiceSimseer - A Software Similarity Web Service
Simseer - A Software Similarity Web Service
 
Meghana_Resume_FullTime_May_2016
Meghana_Resume_FullTime_May_2016Meghana_Resume_FullTime_May_2016
Meghana_Resume_FullTime_May_2016
 
Webinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with FusionWebinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with Fusion
 
Webinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's NewWebinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's New
 
Webinar: Personalized Retail Search & Recommendations with Fusion
Webinar: Personalized Retail Search & Recommendations with FusionWebinar: Personalized Retail Search & Recommendations with Fusion
Webinar: Personalized Retail Search & Recommendations with Fusion
 
Measure your teams sentiment
Measure your teams sentimentMeasure your teams sentiment
Measure your teams sentiment
 
Webinar: Building Conversational Search with Fusion
Webinar: Building Conversational Search with FusionWebinar: Building Conversational Search with Fusion
Webinar: Building Conversational Search with Fusion
 
Mayank Wadhawan RESUME
Mayank Wadhawan RESUMEMayank Wadhawan RESUME
Mayank Wadhawan RESUME
 
SagarKamat
SagarKamatSagarKamat
SagarKamat
 
Ml ops deployment choices
Ml ops   deployment choicesMl ops   deployment choices
Ml ops deployment choices
 
Resume-Pavana-Venkataswamy
Resume-Pavana-VenkataswamyResume-Pavana-Venkataswamy
Resume-Pavana-Venkataswamy
 
Mythbusters
MythbustersMythbusters
Mythbusters
 
Webinar: Site Search in an Hour with Fusion
Webinar: Site Search in an Hour with FusionWebinar: Site Search in an Hour with Fusion
Webinar: Site Search in an Hour with Fusion
 
Harnessing the Crowds for Automating the Identification of Web APIs
Harnessing the Crowds for Automating the Identification of Web APIsHarnessing the Crowds for Automating the Identification of Web APIs
Harnessing the Crowds for Automating the Identification of Web APIs
 
Career Pathing
Career PathingCareer Pathing
Career Pathing
 
DataEngConf SF16 - Three lessons learned from building a production machine l...
DataEngConf SF16 - Three lessons learned from building a production machine l...DataEngConf SF16 - Three lessons learned from building a production machine l...
DataEngConf SF16 - Three lessons learned from building a production machine l...
 
Getting Started With the TFS Object Model
Getting Started With the TFS Object ModelGetting Started With the TFS Object Model
Getting Started With the TFS Object Model
 

Andere mochten auch

Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- Μαϊος
Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- ΜαϊοςΕνδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- Μαϊος
Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- ΜαϊοςChristos Gotzaridis
 
Future Agenda Future Of Food
Future Agenda   Future Of FoodFuture Agenda   Future Of Food
Future Agenda Future Of FoodFuture Agenda
 
Mole η μονάδα χημικής ποσότητας
Mole η μονάδα χημικής ποσότηταςMole η μονάδα χημικής ποσότητας
Mole η μονάδα χημικής ποσότηταςChristos Gotzaridis
 
C Level Client Presentation
C Level Client PresentationC Level Client Presentation
C Level Client PresentationThomas Noon
 
Future Agenda Future Of Work
Future Agenda   Future Of WorkFuture Agenda   Future Of Work
Future Agenda Future Of WorkFuture Agenda
 
Material Girl Magazine
Material Girl MagazineMaterial Girl Magazine
Material Girl Magazinejestrada127
 
20131111 slides for crowd funding
20131111 slides for crowd funding20131111 slides for crowd funding
20131111 slides for crowd fundingdbyhundred
 
socials
socialssocials
socialsaiiida
 
Tet Poweroint
Tet PowerointTet Poweroint
Tet PowerointAmber08
 
Introduction To Tcf
Introduction To TcfIntroduction To Tcf
Introduction To Tcfguestf23716
 
Bahia Grande Detached House - Mallorca
Bahia Grande Detached House - MallorcaBahia Grande Detached House - Mallorca
Bahia Grande Detached House - MallorcaPamela Adam
 
20130904 splash maps
20130904 splash maps20130904 splash maps
20130904 splash mapsdbyhundred
 
Dossier robotica Albert Claveria
Dossier robotica Albert ClaveriaDossier robotica Albert Claveria
Dossier robotica Albert Claveriaalbert
 
Powerpoint Activity
Powerpoint ActivityPowerpoint Activity
Powerpoint Activitycchannasch
 
Whatisa Trillion
Whatisa TrillionWhatisa Trillion
Whatisa Trillionguest276365
 
20120512 php カンファレンス関西 2012
20120512 php カンファレンス関西 201220120512 php カンファレンス関西 2012
20120512 php カンファレンス関西 2012Kaz Watanabe
 
ΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεων
ΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεωνΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεων
ΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεωνChristos Gotzaridis
 

Andere mochten auch (20)

Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- Μαϊος
Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- ΜαϊοςΕνδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- Μαϊος
Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- Μαϊος
 
Future Agenda Future Of Food
Future Agenda   Future Of FoodFuture Agenda   Future Of Food
Future Agenda Future Of Food
 
Mole η μονάδα χημικής ποσότητας
Mole η μονάδα χημικής ποσότηταςMole η μονάδα χημικής ποσότητας
Mole η μονάδα χημικής ποσότητας
 
C Level Client Presentation
C Level Client PresentationC Level Client Presentation
C Level Client Presentation
 
Acacia Research and Learning Forum Tutorial 2
Acacia Research and Learning Forum Tutorial 2Acacia Research and Learning Forum Tutorial 2
Acacia Research and Learning Forum Tutorial 2
 
Future Agenda Future Of Work
Future Agenda   Future Of WorkFuture Agenda   Future Of Work
Future Agenda Future Of Work
 
Higher Ground Constructors
Higher Ground ConstructorsHigher Ground Constructors
Higher Ground Constructors
 
Material Girl Magazine
Material Girl MagazineMaterial Girl Magazine
Material Girl Magazine
 
E newsletter
E newsletterE newsletter
E newsletter
 
20131111 slides for crowd funding
20131111 slides for crowd funding20131111 slides for crowd funding
20131111 slides for crowd funding
 
socials
socialssocials
socials
 
Tet Poweroint
Tet PowerointTet Poweroint
Tet Poweroint
 
Introduction To Tcf
Introduction To TcfIntroduction To Tcf
Introduction To Tcf
 
Bahia Grande Detached House - Mallorca
Bahia Grande Detached House - MallorcaBahia Grande Detached House - Mallorca
Bahia Grande Detached House - Mallorca
 
20130904 splash maps
20130904 splash maps20130904 splash maps
20130904 splash maps
 
Dossier robotica Albert Claveria
Dossier robotica Albert ClaveriaDossier robotica Albert Claveria
Dossier robotica Albert Claveria
 
Powerpoint Activity
Powerpoint ActivityPowerpoint Activity
Powerpoint Activity
 
Whatisa Trillion
Whatisa TrillionWhatisa Trillion
Whatisa Trillion
 
20120512 php カンファレンス関西 2012
20120512 php カンファレンス関西 201220120512 php カンファレンス関西 2012
20120512 php カンファレンス関西 2012
 
ΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεων
ΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεωνΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεων
ΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεων
 

Ähnlich wie Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hood

Venkata Sateesh_BigData_Latest-Resume
Venkata Sateesh_BigData_Latest-ResumeVenkata Sateesh_BigData_Latest-Resume
Venkata Sateesh_BigData_Latest-Resumevenkata sateeshs
 
Python + MPP Database = Large Scale AI/ML Projects in Production Faster
Python + MPP Database = Large Scale AI/ML Projects in Production FasterPython + MPP Database = Large Scale AI/ML Projects in Production Faster
Python + MPP Database = Large Scale AI/ML Projects in Production FasterPaige_Roberts
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicDavid Solivan
 
Modern Application Development v1-0
Modern Application Development  v1-0Modern Application Development  v1-0
Modern Application Development v1-0Greg Hoelzer
 
Handling Data in Mega Scale Systems
Handling Data in Mega Scale SystemsHandling Data in Mega Scale Systems
Handling Data in Mega Scale SystemsDirecti Group
 
Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07Steve Feldman
 
Nagarjuna Reddy_Java (1+ Experience)
Nagarjuna Reddy_Java (1+ Experience)Nagarjuna Reddy_Java (1+ Experience)
Nagarjuna Reddy_Java (1+ Experience)Nagarjun Reddy
 
Short reference architecture
Short reference architectureShort reference architecture
Short reference architectureSteve Feldman
 
Architecting an Open Source AI Platform 2018 edition
Architecting an Open Source AI Platform   2018 editionArchitecting an Open Source AI Platform   2018 edition
Architecting an Open Source AI Platform 2018 editionDavid Talby
 
oct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfileoct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfilePrem Bist
 

Ähnlich wie Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hood (20)

RamaRaju
RamaRajuRamaRaju
RamaRaju
 
Shruti Kulkarni (1)
Shruti Kulkarni (1)Shruti Kulkarni (1)
Shruti Kulkarni (1)
 
Venkata Sateesh_BigData_Latest-Resume
Venkata Sateesh_BigData_Latest-ResumeVenkata Sateesh_BigData_Latest-Resume
Venkata Sateesh_BigData_Latest-Resume
 
Python + MPP Database = Large Scale AI/ML Projects in Production Faster
Python + MPP Database = Large Scale AI/ML Projects in Production FasterPython + MPP Database = Large Scale AI/ML Projects in Production Faster
Python + MPP Database = Large Scale AI/ML Projects in Production Faster
 
Resume
ResumeResume
Resume
 
Saloni_Tyagi
Saloni_TyagiSaloni_Tyagi
Saloni_Tyagi
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
SelvaResume
SelvaResumeSelvaResume
SelvaResume
 
Modern Application Development v1-0
Modern Application Development  v1-0Modern Application Development  v1-0
Modern Application Development v1-0
 
Handling Data in Mega Scale Systems
Handling Data in Mega Scale SystemsHandling Data in Mega Scale Systems
Handling Data in Mega Scale Systems
 
Rajesh Ramasamy
Rajesh RamasamyRajesh Ramasamy
Rajesh Ramasamy
 
ABHAY_SHUKLA
ABHAY_SHUKLAABHAY_SHUKLA
ABHAY_SHUKLA
 
Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07
 
Nagarjuna Reddy_Java (1+ Experience)
Nagarjuna Reddy_Java (1+ Experience)Nagarjuna Reddy_Java (1+ Experience)
Nagarjuna Reddy_Java (1+ Experience)
 
Rajeev_Resume
Rajeev_ResumeRajeev_Resume
Rajeev_Resume
 
Short reference architecture
Short reference architectureShort reference architecture
Short reference architecture
 
SelvaResume
SelvaResumeSelvaResume
SelvaResume
 
Architecting an Open Source AI Platform 2018 edition
Architecting an Open Source AI Platform   2018 editionArchitecting an Open Source AI Platform   2018 edition
Architecting an Open Source AI Platform 2018 edition
 
Apache phoenix
Apache phoenixApache phoenix
Apache phoenix
 
oct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfileoct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfile
 

Mehr von Manish Pandit

Disaster recovery - What, Why, and How
Disaster recovery - What, Why, and HowDisaster recovery - What, Why, and How
Disaster recovery - What, Why, and HowManish Pandit
 
Serverless Architectures on AWS in practice - OSCON 2018
Serverless Architectures on AWS in practice - OSCON 2018Serverless Architectures on AWS in practice - OSCON 2018
Serverless Architectures on AWS in practice - OSCON 2018Manish Pandit
 
Disaster Recovery and Reliability
Disaster Recovery and ReliabilityDisaster Recovery and Reliability
Disaster Recovery and ReliabilityManish Pandit
 
Immutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and JenkinsImmutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and JenkinsManish Pandit
 
AWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and JavaAWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and JavaManish Pandit
 
AWS Primer and Quickstart
AWS Primer and QuickstartAWS Primer and Quickstart
AWS Primer and QuickstartManish Pandit
 
Securing your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID ConnectSecuring your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID ConnectManish Pandit
 
Silicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API AntipatternsSilicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API AntipatternsManish Pandit
 
Scalabay - API Design Antipatterns
Scalabay - API Design AntipatternsScalabay - API Design Antipatterns
Scalabay - API Design AntipatternsManish Pandit
 
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixOSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixManish Pandit
 
API Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFAPI Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFManish Pandit
 
Motivation : it Matters
Motivation : it MattersMotivation : it Matters
Motivation : it MattersManish Pandit
 
Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2Manish Pandit
 
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGNIntroducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGNManish Pandit
 
Evolving IGN’s New APIs with Scala
 Evolving IGN’s New APIs with Scala Evolving IGN’s New APIs with Scala
Evolving IGN’s New APIs with ScalaManish Pandit
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented ProgrammingManish Pandit
 

Mehr von Manish Pandit (20)

Disaster recovery - What, Why, and How
Disaster recovery - What, Why, and HowDisaster recovery - What, Why, and How
Disaster recovery - What, Why, and How
 
Serverless Architectures on AWS in practice - OSCON 2018
Serverless Architectures on AWS in practice - OSCON 2018Serverless Architectures on AWS in practice - OSCON 2018
Serverless Architectures on AWS in practice - OSCON 2018
 
Disaster Recovery and Reliability
Disaster Recovery and ReliabilityDisaster Recovery and Reliability
Disaster Recovery and Reliability
 
OAuth2 primer
OAuth2 primerOAuth2 primer
OAuth2 primer
 
Immutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and JenkinsImmutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and Jenkins
 
AWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and JavaAWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and Java
 
AWS Primer and Quickstart
AWS Primer and QuickstartAWS Primer and Quickstart
AWS Primer and Quickstart
 
Securing your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID ConnectSecuring your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID Connect
 
Silicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API AntipatternsSilicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API Antipatterns
 
Scalabay - API Design Antipatterns
Scalabay - API Design AntipatternsScalabay - API Design Antipatterns
Scalabay - API Design Antipatterns
 
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixOSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
 
API Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFAPI Design Antipatterns - APICon SF
API Design Antipatterns - APICon SF
 
Motivation : it Matters
Motivation : it MattersMotivation : it Matters
Motivation : it Matters
 
Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2
 
Scala at Netflix
Scala at NetflixScala at Netflix
Scala at Netflix
 
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGNIntroducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
 
Evolving IGN’s New APIs with Scala
 Evolving IGN’s New APIs with Scala Evolving IGN’s New APIs with Scala
Evolving IGN’s New APIs with Scala
 
IGN's V3 API
IGN's V3 APIIGN's V3 API
IGN's V3 API
 
Java and the JVM
Java and the JVMJava and the JVM
Java and the JVM
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 

Kürzlich hochgeladen

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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.pptxMalak Abu Hammad
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
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 Nanonetsnaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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.pptxKatpro Technologies
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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 WorkerThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
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
 

Kürzlich hochgeladen (20)

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
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
 

Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hood

  • 1.
  • 2. Components of Social Platform Challenges Technology API Engineering Process
  • 3. User Profile Relationships Activity Streams
  • 4. Basic user information Extended information based on the context Player Cards Bragging rights Points, levels Achievements, badges Activities
  • 5. Friending Unidirectional (the Twitter model) Bidirectional (the Facebok model) Association Comments Ratings, Thumbs Bookmarking/favoriting Recommendations
  • 6. Who is doing what and when All about Actors, Actions, Objects and Targets Activitystrea.ms standard vs. OpenSocial Commentable
  • 7. Authentication Performance ActivityStrems Integration Flexibility Testing
  • 8. People are tired of creating accounts on every site Need to support existing login method if the platform caters to an existing audience Existing auth may not work well with Open API initiatives Open API and Oauth 2 legged: Service to Service 3 legged: User to App to Service
  • 9. Identify the bottlenecks Measure everything Use CDNs for all static content Front end optimization via async loading Database optimization via indexes, sharding Caching Scaling the sorts Scaling up vs. Scaling out CAP theorem Relational vs. NOSQL storage Read vs. Write heaviness
  • 10. Query vs. Propagation Queries are read heavy Propagation is write heavy Deletion is a pain with propagation Activity Aggregation Aggregation on actor vs. object Normalized vs. Denormalized storage Comments Decorating the activities on each request
  • 11. Integration with legacy touchpoints Opening up the API More channels like Mobile More independent applications Rate limiting and access control Don’t forget existing data Data outlives code
  • 12. Flexibility in the code to adapt changing requirements quickly and seamlessly Good design DRY SOCs Flexibility in the infrastructure to adapt changing traffic and behavior Virtualization Heavy replication Flexibility in the team to respond to changes Process
  • 13. Automated Testing wherever possible Developer Focus on test coverage (80+%) Continuous Integration and Deployment Cucumber + Hudson Cross browser testing (yes, including IE)
  • 14.
  • 15. Java services Tomcat with Shindig 1.1, 4 nodes REST/JSON Ruby Rails Admin App for moderation and points/levels Migration Scripts Twitter bot for routing #myign tweets to the platform Misc. scripts to invalidate memache keys and test service endpoints
  • 16. Memcached Extremely trivial to set up and maintain Almost never dies Massive scale out Careful with Cache hotspots Concurrent writes On the fly scale-out Key/Value size limits
  • 17. MySQL Proven, cheap to develop and operate Maslow’s hammer Easy scale out Hard to store (and retrieve) network graphs Write scaling with single master Not the best choice for activitystreams Schema changes lock the table(s)
  • 18. Awesome write scaling Great for activity propagation model In place updates Using $push and $set Excellent for storing social relationships as documents Very easy to cluster We are running replica pairs, plan to move to replica sets Schema-less No need to run alter scripts on 18M-row table
  • 19. Queryable Rich Query language ($in, $size, $exists, $slice) MapReduce for heavy data crunching Supports Indexing You can even index collections inside a document Storage ~4x storage compared to relational data Emerging technology Index defragmentation $or and indexing (to be supported in 1.7) Load balancing support in the driver (coming soon)
  • 20. RabbitMQ for messaging Ease of clustering Written in Erlang for high performance and availability Used for Propagation of activities Sending out email alerts Indexing data in Solr
  • 21. Person GET @self, @friends, @followers, @all, PUT/POST @self, @friends Activities GET @global, @self, @friends, POST @self MediaItems GET @self, @all and POST @self AppData For applications to store/retrieve data as key-value pairs GET/POST @self Status GET @friends, @self, @followers , POST @self
  • 22. Must have for any Java/Ruby webapp Monitoring and troubleshooting Save a ton of $ and time by efficient root cause analysis tools Agents for Ruby and Java IGN Engineers helped write PHP and Memcached agents
  • 23. Social Applications and community Check the pulse of the community UserVoice (http://ign.uservoice.com) Less is more Distinguish yourself and focus on your niche Be Agile - Release early, release often Do not shock your audience Announce the changes/features on a blog Eat your own dog food http://people.ign.com/ign-labs
  • 24. Released July 2010 as beta Daily API requests ~25M Daily page views ~30K Daily Uniques ~12K 6ms response times Expected traffic 8-10x with more integration and mobile platform
  • 25. Manish Pandit Engineering Manager, Social Platform at IGN Email: pandit.manish-at-gmail.com Twitter: @lobster1234 LinkedIn: http://www.linkedin.com/in/mpandit Blog: http://contrarianwisdom.blogspot.com MyIGN: http://people.ign.com/mpanditign