Vinnaren i pepparkakshustävlingen!
2017-02-08, 17:08
  #1
Medlem
yiys avatar
Rent funktionsmässigt verkar det ganska enkelt att göra sidor likt imgur som exempel. Att kunna ladda upp bilder och skriva kommentarer är inte så avancerade funktioner. Ett forum är inte så svårt heller. Men att göra sidor som kan hantera, som Flashback nu, 35000 besökare samtidigt - vad är det som en stor sida har som inte en amatörsida har? Jag förstår att det är enorm skillnad på kodens kvalité i helhet, så det behövs ej påpekas.

Jag planerar inte på att försöka mig på att göra en sida likt imgur, men jag vill gärna få förslag om vad jag ska läsa om för att lära mig mer om hur man bygger en sida där phpkoden är optimal för stora sidor. Som caching är något jag läst lite om, vad mer finns att läsa om?

Tack för svar
Citera
2017-02-08, 17:36
  #2
Medlem
Är det en riktigt stor sida är det inte säkert att det räcker med enbart optimerad php-kod. Du lär också fixa en del med lastbalansering på serversidan och utformningen på databasen. För en sida som imgur har jag svårt att tro att det är php-koden som är det kritiska.
Citera
2017-02-08, 17:41
  #3
Medlem
edm4lifes avatar
Du kan läsa om indexering av databaser och hur man skriver effektiva SQL queries. Det är ett problem som man vanligtvis inte märker av prestandamässigt i början men det kan visa sig tydligt när databasen och traffiken till den växer.
Citera
2017-02-08, 17:51
  #4
Medlem
"riktiga" sidor använder ju inte heller bara php, utan beroende på vad som ska göras andra scriptpråk som kanske är smidigare för bakgrundsgrejer. underhållsgrejer som att rensa tillfälliga databasposter, radera oanvända filer osv behöver kanske inte webbsidan göra så att säga.
Citera
2017-02-08, 18:01
  #5
Medlem
studioxswes avatar
Citat:
Ursprungligen postat av tomtoddler
"riktiga" sidor använder ju inte heller bara php, utan beroende på vad som ska göras andra scriptpråk som kanske är smidigare för bakgrundsgrejer. underhållsgrejer som att rensa tillfälliga databasposter, radera oanvända filer osv behöver kanske inte webbsidan göra så att säga.

Facebook använder iofs enbart php för sin frontend och de har väl runt en miljard besökare. Så nog kan man göra rätt mycket med PHP i sig.. (om man är facebook alltså och gör sin egen php compiler)
Citera
2017-02-08, 18:03
  #6
Medlem
studioxswes avatar
Vad är syftet med inlägget? förstår att du vill lära dig och det är ju superbra. Men att själv kunna skapa en sida som har lika många besökare som facebook? Inte möjligt på långa vägar.

Jag kan inte ge dig dig direkta tips mer än att googla, det finns tusentals artiklar om hur man dels optimerar kod, hur man cachear sidor, hur man använder lastbalanserare, hur man använder CDN och annan Geo-IP routing.

Det är ett komplext ämne. Börja jobba på någon stor webbsite så kommer du lära dig. ingen förväntar sig att någon blivit expert genom att plugga lite hemma
Citera
2017-02-08, 19:55
  #7
Medlem
Citat:
Ursprungligen postat av yiy
Rent funktionsmässigt verkar det ganska enkelt att göra sidor likt imgur som exempel. Att kunna ladda upp bilder och skriva kommentarer är inte så avancerade funktioner. Ett forum är inte så svårt heller. Men att göra sidor som kan hantera, som Flashback nu, 35000 besökare samtidigt - vad är det som en stor sida har som inte en amatörsida har? Jag förstår att det är enorm skillnad på kodens kvalité i helhet, så det behövs ej påpekas.

Jag planerar inte på att försöka mig på att göra en sida likt imgur, men jag vill gärna få förslag om vad jag ska läsa om för att lära mig mer om hur man bygger en sida där phpkoden är optimal för stora sidor. Som caching är något jag läst lite om, vad mer finns att läsa om?

Tack för svar

Bli inte rädd nu men här finns lite exempel på hur det kan se ut:

https://meta.wikimedia.org/wiki/Wikimedia_servers
Citera
2017-02-08, 20:37
  #8
Medlem
En enkel teknik för att skala är att låta någon annan göra det: Amazon eller någon annan som kör molntjänster där du kan deploya din kod.
Amazon har helt suveräna tjänster för att hantera det du vill göra. Jag kör själv några EC2-instanser, MySQL i RDS och bilder i S3. Hur enkelt som helst att deploya och administrera. Det kan kosta en del om man använder mycket resurser, men man får se till att pengarna rullar in i minst samma takt som resursanvändandet.
Amazon har ett free tier som man får köra i 12 månader så man kan testa hur allt fungerar och så att man hinner bli beroende av tjänsterna :-)
Citera
2017-02-08, 21:47
  #9
Medlem
yiys avatar
Citat:
Ursprungligen postat av studioxswe
Vad är syftet med inlägget? förstår att du vill lära dig och det är ju superbra. Men att själv kunna skapa en sida som har lika många besökare som facebook? Inte möjligt på långa vägar.

Jag kan inte ge dig dig direkta tips mer än att googla, det finns tusentals artiklar om hur man dels optimerar kod, hur man cachear sidor, hur man använder lastbalanserare, hur man använder CDN och annan Geo-IP routing.

Det är ett komplext ämne. Börja jobba på någon stor webbsite så kommer du lära dig. ingen förväntar sig att någon blivit expert genom att plugga lite hemma

Citat:
Ursprungligen postat av B.R.Donut
Bli inte rädd nu men här finns lite exempel på hur det kan se ut:

https://meta.wikimedia.org/wiki/Wikimedia_servers
I den där länken, hur mycket ska man "kunna"?

Som svar angående syfte med tråden studioxswe, ja jag vill lära mig. I framtiden vill jag gärna jobba inom detta, och även fast jag idag kan skapa en sida som fungerar likt imgur, eller ett forum(vilket är ganska grundläggande), så lär koden i sig vara dålig/ineffektiv - iaf jämfört med imgur/flashback/valfri icke-amatör sida

Det känns som jag inte har lärt mig mycket, på länge. Förut lärde jag mig från varje litet projekt och googlande, nu känns det som jag inte kan komma på något som jag inte vet hur jag gör. Jag behöver lära mig om andra tekniker.
Citera
2017-02-09, 02:15
  #10
Medlem
yiys avatar
kan inte ändra inlägget ovan, en till sak jag gärna skulle vilja veta lite mer om är hur exempelvis youtube views fungerar? Körs en query för varje ny view, eftersom den ökar direkt(antar att det blir +2 för tittare #2 om den tittar direkt efter). Det skulle ju bli väldigt många queries varje sekund.

Eller hur Facebooks databasstruktur kan tänkas se ut, med tanke på hur otroligt mycket diverse data som sparas om varje person?
Citera
2017-02-09, 08:15
  #11
Moderator
Protons avatar
Citat:
Ursprungligen postat av yiy
Rent funktionsmässigt verkar det ganska enkelt att göra sidor likt imgur som exempel. Att kunna ladda upp bilder och skriva kommentarer är inte så avancerade funktioner. Ett forum är inte så svårt heller. Men att göra sidor som kan hantera, som Flashback nu, 35000 besökare samtidigt - vad är det som en stor sida har som inte en amatörsida har? Jag förstår att det är enorm skillnad på kodens kvalité i helhet, så det behövs ej påpekas.

Jag planerar inte på att försöka mig på att göra en sida likt imgur, men jag vill gärna få förslag om vad jag ska läsa om för att lära mig mer om hur man bygger en sida där phpkoden är optimal för stora sidor. Som caching är något jag läst lite om, vad mer finns att läsa om?

Tack för svar
Gör du inte några riktiga WTFer i din kod är ju exekveringstiden beroende av vad för maskineri du kör den på. Som nån påpekat är ju cachetjänster likt Amazon och Akamai de man brukar använda sig av, hårdvara är ju annars rätt dyrt om man ska sköta cachningen själv.

Det som däremot VERKLIGEN imo brukar vara prestandabovarna i sammanhanget är databasen, dels beträffande design men även beträffande vilka frågor man ställer mot den. Även den mest kraftfulla databas kan fås att gå på knäna med de mest uselt skrivna frågorna. Att kasta på index på tabellerna kan såklart hjälpa upp en del, men i det långa loppet handlar det om att konstruera frågorna så dessa kan exekveras på enklast möjliga vis.

Just databasproblem är svåra att hitta från början, men har systemet varit i drift ett tag och man har en del data i databasen blir det efter ett tag påtagligt att den inte mår speciellt bra.
Citera
2017-02-09, 08:20
  #12
Moderator
Protons avatar
Citat:
Ursprungligen postat av yiy
kan inte ändra inlägget ovan, en till sak jag gärna skulle vilja veta lite mer om är hur exempelvis youtube views fungerar? Körs en query för varje ny view, eftersom den ökar direkt(antar att det blir +2 för tittare #2 om den tittar direkt efter). Det skulle ju bli väldigt många queries varje sekund.

Eller hur Facebooks databasstruktur kan tänkas se ut, med tanke på hur otroligt mycket diverse data som sparas om varje person?
Här är en blogg jag hittade:
https://www.techworm.net/2013/05/wha...book-uses.html

Lite mer läsning:
https://www.quora.com/Which-database...s-Facebook-use

Som synes handlar det inte speciellt mycket om strukturen och inte endast en databas. Strukturen på tabellerna är väl i princip den man kan lista ut. många till många för att lista ut vem man har på Facebook etc...
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback