visa hela sajten visa mobil version
Improove på Twitter:
"improove: Idag hade vi finbesök på KUSen. Andreas Ehn från Wrapp kom och pratade kring deras spännande startup. Vad tycker... http://t.co/DFGJnLOz"
Sagt om oss på Twitter:
"@kjwatts Telia kommer att sälja dem. Oklart om kvalitetsproblemen. Vi har fått in ett par för test på @Improove."

Är Amazons servermoln så fluffigt som det verkar vara?

26 Dec 2008,

Det har skrivits en hel del, bland annat av mig, om molnet på sistone. Det intressantaste är nog själva servermolnet där vi inte själva längre äger någon server utan istället köper serverkraft på lösvikt. Det låter ju fantastiskt och har onekligen sina fördelar. Jag har ägnat de sista två veckorna åt att utvärdera Amazons tjänst för servermoln Amazon EC2 och tänkte försöka dela mina erfarenheter.

Varför skall man använda serverkraft i molnet?
Till att börja med. Varför skall man alls ha sin server i molnet? Jag ser fyra fördelar. 

  • Horisontell prestanda
  • Flexibla resurser – Lägg till när det behövs
  • Självbetjäning
  • Variabel kostnad – Betala bara för vad du använder

Jag tycker du skall välja servermoln om de viktigaste för dig är att inte behöva planera dina resurser och vill slippa uppgradera servern för de dagar då du av någon anledning får oplanerade många besök. Om du skulle råka bli Diggad på Digg.com eller Slashdotted så behövs mycket mer trafik och mycket mer datatrafik och då är det här överlägset. Utan att ändra inställningar så får du automatiskt tillgång till mer datorkraft när så behövs. 

Vill du ha full kontroll på din server eller kräver extrem vertikal prestanda som krävs när du t.ex. skall köra Magento Commerce så är inte det här rätt lösning. Men behöver du en enkel dedikerad webbserver på vilken du kan installera  vilka programvaror du vill så är det här valet för dig. Flexiblare tjänst får man leta efter. Att det sedan tar ca 5 minuter att sätta upp en helt ny webbserver är helt oöverträffat. 

Hur fungerar det? 
Detta är väl vad som imponerar mest på mig från Amazons sida. Det är nästan hur enkelt som helst. Efter att man tecknat sig ett konto installerar man enklast ett Firefoxplugin som heter Elasticfox från vilket du kan styra hela din serverpark. Efter lite pill med hur man ställer in säkerhetsinställningar så väljer man först om man vill hosta en server i USA eller i Europa. Efter det får man upp en lång lista över servrar som man kan välja att starta. Här finns allt från Liunxinstallationer i 32 eller 64 bitar. Windows 2003-servrar eller helt andra system. Det finns väldigt många alternativ. Fler i USA än i Europa. Ca 50st i Europa och 150 i USA. 

Det krångliga börjar när man skall connecta till server. Först av allt måste man öppna de portar som behövs för att connecta till servern. Detta gör man rätt snyggt genom säkerhetsgrupperna som Amazon använder sig av. Då kan man öppna en port från just sin egna IP-adress som rekommenderas varmt. Annars kan man öppna den för alla IP genom att ange IP 0.0.0.0/0. Ett tips kan väl vara att bara öppna för alla på port 80 för HTTP-trafiken. 

Ganska bökigt är det också att connecta genom SSH då man inte använder lösenord utan istället använder sig av säkra nycklar. När du skapade ditt nyckelpar vid installationen av Elasticfox fick samtidigt generera en nyckelfil. Tyvärr fungerar denna inte på Windows om du använder Putty utan då måste du konvertera den från en .PEM-fil till en .PPK-fil med programmet PuttyGen. När man gjort det ställer man i Putty in att att koppla upp sig med denna nyckelfil och du loggas direkt in på servern. Det är också denna PPK-fil som används om du vill skicka filer genom t.ex. WinSCP.

När du lärt dig hur allt det här fungerar, vilket tar ett tag, så är man väldigt fri. Man kan starta upp en webbserver på blott en minut. Oslagbart! 

elasticfox

Vad kostar det? 
Även om man i EC2 enbart betalar för den serkraft man faktiskt använder skall det väl redan nu sägas att detta inte är det billigaste tänkbara alternativet om du bara skall lägga upp en enkel hemsida. Då kan du lika gärna hyra ett konto på Loopia.se. Men vill man ha en egen maskin törs jag säga att det här är riktigt prisvärt. Framför allt om din sajt kan tänkas växa okontrollerat. Serverkraft i molnet är inte lika billigt som lagring i molnet(Amazon S3) men ändå fullt överkommligt.  Serverkraft hos Amazon styrs av 3 parametrar: 

  • Hur kraftig server du vill ha (liten, mellan eller stor) (betalar per använd timme)
  • Hur mycket bandbredd du använder (per överförd Gigabyte)
  • Hur mycket data du lagrar (per lagrad Gigabyte)

Här nedan visar jag några exempel på de servrar jag satt upp. Vad som stuckit iväg nedan är framför allt trafik mot den amerikanska linuxservern där jag installerat en Proxy för att kunna titta på filmer från amerikanska sajter som t.ex. Nbc.com eller Hulu.com och därför har datatrafiken vuxit så mycket. Sajterna från euorpa har däremot enbart använts för utveckling av av en webbplats och har inte i närheten av samma trafikmängder. Dock är dessa den stora modellens 64-bitarsprocessor varför processorkostnaden har blivit desto större. 

amazon

Enligt modellen ovan kan du se att en liten server i Europa kostar 0.11 dollar per timme och således ca $80 per månad. I dagens växelkurs ca 640 kr per månad. Och med rimliga mängder datatrafik kan man väl gissa att det motsvarar ca 1000kr/månad för en mindre webbserver. Och det är väl ungefär hälften av vad man får betala för en dedikerad webbserver på ett svenskt webbhotell. 

Det gör ju att man för ungefär halva kostnaden mot en dedikerad maskin i sverige får en server som kan klara av i stort sett hur mycket trafik som helst och där man inte behöver bekymra sig för backuper eller falerande hårdvara. Det tycker jag det kan vara värt om man har det behovet.


Typeface.js – Embedda fonter på dina webbsidor

23 Dec 2008,

Ett av de största begräsningarna i webbläsare sedan dag ett har varit typsnitt. Man har varit begränsad till ett mindre antal fonter som fungerar i samliga webbläsare. Man kan ju tycka att det vid det här laget borde finnas metoder för att embedda fonter i webbsidor men så är icke fallet. Det finns olika typer av work arounds till detta problem. Den vanligaste är att använda Flash för att rendera fonter i rubriker genom plugins som t.ex. WordPress Flash Titles. Ett annat alternativ är att använda serverside script som genererar GIF-bilder för rubriker. Jag förespråkar den senare då den belastar klienten minst men det kan vara lite bökigt att uppnå. Flash är betydlig enklare men båda har sina nackdelar. Framför allt är väl problemet Google-optimering. Texter som är genererade av flash är svåra att indexera och även om man lyckas är det långt ifrån optimala lösningar som luktar lite för mycket fulhack.

Just där för är Typface.js ett av de intressantaste kodbiblioteken som släppts på mycket länge. Det använder sig av Canvas-klasserna för att rita ut pixelgrafik genom Javascript. Detta fungerar numera i de flesta webbläsare. Och genom att först konvertera TrueType-fonter till kurvor i en Javascript-fil kan man rita upp vilka fonter som helst i canvasytor. Detta görs som vanligt genom CSS och sedan körs bara ett script som byter ut alla element med klassen: typeface-js. Man CSS-style’ar bara html-koden som vanligt och sedan lägger man in en script-fil och font-scriptfil och sätter helt enkelt bara font-family enligt nedan.
 

<script type="text/javascript" src="typeface-0.11.js"></script>
<script type="text/javascript" src="helvetica_regular.typeface.js"></script>
<div class="myclass typeface-js" style="font-family: Helvetiker">
	Text here in Helvetiker font...
</div>

Det enda kruxet med det här tillvägagångssättet är hur man konverterar TrueType-fonter till Javascript-kurvor. På Typeface-sidan finns ett verktyg för att göra just detta men de allra flesta kommersiella fonter är kodade med ett attribut som säger att de just inte får embeddas. Jag är inte säker på juridiken här men OM man faktiskt har köpt fonten kan jag tycka att man borde få embedda den på webbsidor. Så för att ändå konvertera fonten kan du ladda ned programmet Font Creator från High Logic. Genom att öppna fonten i det programmet kan du gå in i menyn på: Format -> Settings ->General -> Font Embedding och där klicka bort alla boxar. Sedan sparar du ned fonten och laddar upp den igen på Typeface-sidan. Då kan du konvertera fonten och lägga in den på din sida. 

Exempel:

Så här kan det se ut med Helvetica som typsnitt

Flexibilitet är viktigare än performance

22 Dec 2008,

När jag jobbade mina första år i branschen föll det på Spockes lott att vara min mentor. När vi byggde våra projekt var jag väldigt färgad av högskolan och försökte tänka performance i varje läge. På ett sätt ett bra perspektiv på programkoden men ganska snart försökte han lära mig att: Flexibilitet är viktigare än performance. Jag uppfattade det som något slösaktigt coh provocerande men efter par år så förstod jag vad han menade. Hårdvara är billigt jämfört men arbetstid. Och kan man spara en veckas jobb genom att ersätta det med en server så är det tyyp värt det. En server är bilig och är lätt att uppgradera.

Om det man bygger inte kommer att skalas bortom denna värld är man ofta safe. Och ooptimerad kod behöver ju inte stå i motsats till horizontell skalning heller. Något som idag är mycket mer prioriterat än vertikal dito. Allt vi gör är trådar och då är det bara att lägga servern i ett moln och låta molnet lösa hastigheterna. 

Tomas Hardware har skrivit en artikel i ämnet som är inne på samma linje. Han har till och med följande rekommendation för hur man skall jobba. 

  1. Throw cheap, faster hardware at the performance problem.
  2. If the application now meets your performance goals, stop.
  3. Benchmark your code to identify specifically where the performance problems are.
  4. Analyze and optimize the areas that you identified in the previous step.
  5. If the application now meets your performance goals, stop.
  6. Go to step 1.