Skyen i praksis, smidig2010 skaleres med scrollbar!

Her skal jeg fortelle deg om noe helt fantastisk, som bør forandre synet ditt på IT og hvordan systemer kan lages. Smidig2010.no er blandt 80000+ webapplikasjoner på heroku. På populært buzznorsk er det cloud computing, eller server i “skyen”. Det er så mange som snakker om dette for tiden, det er kurs og seminarer, uten at vi nødvendigvis snakker om samme ting. Vi kjører Smidig2010.no i skyen, i praksis, på ordentlig, i virkeligheten og det er helt rått!

Hvordan virker det egentlig?

  1. Koder: Vi koder som vanlig, i språket ruby og rammeverket rails, deler koden med GIT(lær om git her, et bedre alternativ til svn-, cvs- ) , vårt open-source prosjekt smidig-conference http://github.com/smidig/smidig-conference
  2. Deployer. Deploy til staging, heroku.  Kjører lokalt: git push staging
  3. Deployer. Prodsetting. Kjører lokalt: git push production
good lord!! Kan det være så enkelt? Men…

Hva med drift?

  • Ikketema!
  • Frigjør dine driftsressurser til å bidra med utviklingen og forbedringen av dine tjenester og systemer! Det er best for alle parter, er det ikke? Heroku er din nye driftskostnad, og denne konvergerer mot strøm- og hardwareprisene globalt. Heroku svever på amazon EC2 (som tilnærmet alle andre).

Hva med caching?

  • httpcache, static og varnish, det bare får du uten å løfte fingern, hvem vil IKKE ha det? Eller, hvorfor bruke tid på å sette det opp selv?
  • Memcached er også en addon-kommando unna, men for å cache dynamisk innhold så må du, som alltid, kode hva/hvor lenge, etter hva dine behov er.

Hva med skalering?

  • jo, du har en scrollbar… hvor mange dynos vil du kjøre nå? Se selv! http://heroku.com/
  • Smidig2010.no fyrte opp en ekstra dyno(virtuell prosess ~1Ghz ) kort tid etter lansering, for å bedre ytelsen. Da fikk vi to og betaler 0.05$ timen
  • lastbalansering skjer automatisk etter trafikk.
  • Scrollbar er kult, så det vet jeg å utnytte i dette blogginnlegget, men det er mer nyttig å skalere automatisk ved behov:
    • Har vi stor trafikk mellom 09-15, i arbeidstiden, kan scripte den opp til å kjøre 10 ekstra i denne perioden, om vi vil, og kun betale for tiden de var oppe.
    • Man kan også automatisk skalere opp vha monitoreringsløsninger, som New Relic, for å håndtere peaks i trafikken.
  • Måper du ikke nå, da er det på tide å revurdere din stilling, om du ikke allerede kan skalere på sekundet selv.

Hva med database?

  • Postgresql. Her kan du også klikke deg til større, kraftigere (og dyrere), uten å sure driftere, mye feil og nedetid. Jeg ser ingen grunner til å skulle kjøre oracle, mysql eller annet istedetfor postgresql
  • skal du kjøre annet, er det kun dokumentdatabaser (couchdb, mongodb) eller cassandra som kan forsvares å plugges til. Det fungerer, jeg kjører nå 3 (!) distinkte apper med MongoDB tilkoblet (via MongoHQ), håper å bytte den ene over til couchdb og cloudant snart.
  • du kan plugge til andre databaser også, som amazon aws web service baserte, om man skulle ha slikt behov. Ditt valg!
  • Nyttig og kul: kopi av prodbasen til lokal sandkasse? heroku db:pull –app myAppName
  • Nyttig og kult: kopi av lokal db (eller av produksjonskopien) til test-/stagingmiljø? heroku db:push –app myStageAppName

Hva med monitorering?

  • Nå tar det av! New Relic addon herjer (det er like lett å installere heroku-addons som firefox-extensions).
  • Vi kjør er en gratisversjon av New Relic, som inneholder mer enn nok av det vi trenger (her kan du legge inn automatisk peak-scaling om du oppgraderer). Bildet viser en graf til venstre med brukere i kø (grønt), ruby responstid (blå) og db responstid (brun). Klikk på bildet for å se mer  tydelig.

Hva med Domain/DNS/Schedulering av jobber/SSL/Backup/annet?

  • Check
  • Check (fritt DNS-providervalg)
  • Check
  • Check. Men da ssl-protokollen er gammel og ip-adresse-bundet, koster dette noe mer ($200 mnd). En dedikert maskin må låses på ip hos amazon EC2 (som heroku svever på). Hvor mye koster ssl-sertifikatet ditt?
  • Check. Mange backupmuligheter, du kan f.eks kopiere hele databasen til S3 om du vil, så ofte du vil. Dette er i tilfelle du driter deg ut på egen hånd, sletter ting etc. Heroku kjører også backup over absolutt alt, i tilfelle det lite sannsynlig scenarioet om at en katastrofe skulle inntreffe.
  • annet? Spør om hva som helst du, jeg har begynt å elske skeptiske spørsmål.
Hvordan starter jeg med det heroku?
  • heroku er kun ruby. Det er GRATIS for et helt ok startoppsett! Det betyr; minste databasen, 1 dyno, men også eget domene og et hav av gratis addons, inkl New Relic (bronze) smidig2010 bruker. Jeg har 6 av 80000+ kjørende apper der. Noen betaler jeg på, andre ikke. Start enkelt og skaler opp VED BEHOV.
Andre gode grunner?
  • Trenger du flere?
  • Unintrousive. Ikke ett sted i koden til Smidig2010, unntatt vår velutfylte README (anbefalt lesning om du skal prøve deg), inneholder noe som helst om heroku. Liker du det ikke, sett det opp et annet sted (skulle like å høre om et slikt tilfelle…).
  • Det er Ruby. Se hva som skjer med Ruby og Rails i Norge på irb.no
Er du nysgjerrig, er det 1.sept en IASA samling om nettskyen i praksis. Uformell stemning med pils i hånden. Der vil også jeg holde et kort innlegg(15 min?), med dette blogginlegget som basis. Jeg vil fokusere mer på live visning av Heroku og monitorering av Smidig2010.no på New Relic.
OPPFORDRING: Påmelding (early bird!) og lyntaleforslag er åpnet på Smidig2010.no, der blir det forhåpentlig mer om både kontinuerlig deployering og skyen, meld deg på! Får du et lyntaleforslag (10min) med, belønnes du med gratis inngang, som fra før inneholder en stor konferansemiddag og fest. Det er en deltakernes konferanse, en konferanse som er drevet av 10-15 frivillige fra flere ulike selskaper. Hvorfor? Vi trives best i smidige arbeidsmiljøer.

About Ole Morten Amundsen

Developer, programmer, entrepreneur. Java, .Net, ruby, rails, agile, lean. Opinionated enthusiast!
This entry was posted in agile, cloud computing, git, lean, methodology, rails, ruby, smidig and tagged , , , , , , , , , . Bookmark the permalink.

3 Responses to Skyen i praksis, smidig2010 skaleres med scrollbar!

  1. Pingback: Cloud computing » Blog Archive » Skyen i praksis, smidig2010 skaleres med scrollbar! « Ole Morten …

  2. Pingback: Skyen i praksis, smidig2010 skaleres med scrollbar! « Ole Morten … | cloud computing

  3. Pingback: Skyen i praksis, smidig2010 skaleres med scrollbar! | Ole Morten … | cloud computing

Leave a comment