I huvudet på en cloudarkitekt | cloudcache.io

Preview:

Citation preview

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.

KONTAKTRobin Westin Larsson

Twitter: @wlro

E-post: robin@cloudcache.io

Recommended