i huvudet på en cloudarkitekt | cloudcache.io
TRANSCRIPT
I HUVUDET PÅ EN CLOUDARKITEKTCLOUDCACHE.IO
Robin Westin Larsson@wlro
JAGUtveckling + Drift =>
Development + Operations =>
DevOp
PROBLEMKartläggning av trafik började under 2013 för att konsolidera vår
infrastruktur utan påverka prestanda.
Det vi hittade var en långjäst surdeg med anor från 1969..
KRAVSPECIFIKATIONOtydlig från kund vad man vill uppnåOtydlig från leverantörer vad man fårHur intressant är bits och bytes egentligen?
KAPACITETSPLANERINGHänsyn till toppar och dalarDyrt att läsa/skriva från diskSamma resurser efterfrågas om och om igenSvårt att uppnå hög densitet
TRAFIKMÖNSTERCMS => dynamiskt innehåll?Tunga statiska resurser (CSS, JavaScript & bilder)Många förfrågningar => hur påverkas mobila besökare?Crawlers (goda och onda)
ATTACKERBrute force - vanlig och distribueradIntrång eller försök till intrångDatainsamling från webbplatserTillgänglighet för att attackera
VISIONTa fram ett transparent lager som fungerar på befintliga
plattformar och som filtrerar, optimerar och snabbar upptrafiken.
VERKTYGSLÅDAN
VIRTUALBOXVirtualiseringTyp 2 hypervisorOS X, Linux, WindowsGratis
VAGRANTWrapperVirtualbox och VMwareVagrantfile per projekt i repoHärja fritt (OBS! /vagrant)
Vagrant.configure("2") do |config| config.vm.box = "saucy64-puppet" config.vm.hostname = "dev.edge.cloudcache.io" config.vm.network :forwarded_port, guest: 80, host: 8088end
robin:~$ vagrant uprobin:~$ vagrant sshrobin:~$ vagrant haltrobin:~$ vagrant destroy
PUPPETConfiguration management & provisoneringSnowflakingManifest och modulerHantera konfiguration i repoBeskriver ett "state"
node default { package { "nginx": ensure => installed }}
NGINXReverse proxy HTTP & HTTPSLågt minnesavtryckBra för att interagera med resurserEvent-drivenModulärt
GOOGLE PAGESPEEDModul för nginx & apache"Web Performance Best Practices"Kräver ingen anpassning av webbplatsenOptimering av CSS, JavaScript & bilderSparar optimeringsresultat i cacheMinskar totala antalet förfrågningar
NAXSINAXSI => Nginx Anti Xss & Sql InjectionWAFPoängsättning för olika mönsterEnkelhetLearning modeBlacklist istället för whitelist
VARNISHHTTP acceleratorLastbalanseringSupersnabbSamtidiga anslutningarVCL => Varnish Configuration Language
UBUNTU LINUXGratisBaserat på DebianNya kernels~2 releaser per årLTS support i 5 år
FABRICPython bibliotekExekvera kommandon lokalt och remoteSystemadministration och deploymentfabfile.py
from fabric.api import *env.use_ssh_config = True
def all(): env.hosts = ['edge1', 'node1']
def deploy(): code_dir = '~/cloudcache' with cd(code_dir): run("git pull") run("./scripts/apply_puppet.sh")
robin:~$ pip install fabricrobin:~$ fab deploy
FPMDEB & RPM paketEnkelt
REPREPROPaketkatalog för DEBStable / Testing brancher
Vi insåg snabbt att detta är något som flera kan ha användningför..
CLOUDCACHE.IOEn tjänst som fungerar oberoende av leverantör för optimering,
säkerhet och skalbarhet
... som är enkel!
... och som är gratis!
WebbplatsinnehavareUtvecklareHostingleverantörer
FRAMTIDENHjälp oss fortsätta optimeringsarbetet för en bättre webb.