Release och nytt gym

Denna vecka har gått fort! Jag började i torsdags med att klona nya DEV för att deploya till nya LIVE (produktion) för vårt site-nätverk. Klienterna hade redan hunnit fylla DEV med content så att allt skulle vara up-to-date när nya siterna kopplades på sina huvuddomäner. Det visade sig mycket bra att test-köra siterna internt först mha intern DNS ompekning, för att på sådant sätt validera både URL:er och länkade resurser.

Ett vanligt ”fel” som klienterna gör är att länka absoluta adresser – och emigrerar man då till en annan miljö (ny IP) så blir det problem. Som nämnt tidigare arbetar klienterna på en dev-adress och nu fick vi möjlighet att test-köra under våra huvuddomäner tack vare intern DNS-ompekning.

Jag sprang på ett problem när jag deployat DEV till nya LIVE (produktion) i form av att Drupal site-nätverket ej ville fungera. Loggarna visade att ww-data sql-användaren försökte ansluta till databasen utan lösenord (wth?). Eftersom vi har angivit speciella konton per land (db users med unika credentials) så skall ju user www-data inte vara med här. Loggarna granskades (specifikt mySQL-loggarna) för att verifiera detta konstiga fenomen. Jag validerade även alla inställningar mha ”drush status”.

Efter ca 1 timmes felsökning så lokaliserades ”felet” i sites.php konfigurationen (som fortfarande pekade på gamla DEV via IP). Jag hade haft ca 3 timmars sömn natten till torsdag, och att huvudet inte helt hängde med visade sig konkret i detta fall. Ny VPS med ny IP = konfigurera därefter!

Releasen av nya site-nätverket gick mycket smärtfritt och inga problem har lokaliserats hittills. En stabiliseringsfas på ca 2 veckor är inbokad då jag kommer vara dedikerad/prioriterad till våra sites för bugg-fix etc.

Något jag kommer vilja ta itu med nu är dåligt kodade funktioner från ett tidigare företag som varit inblandad i utvecklingen under min pappaledighet. Det gäller främst saknad av fallbacks och odeklarerade variabler som resulterar i onödiga PHP-felmeddelanden och log-entries.

Privat så har vi kommit till rätta i Täby, och jag inveg idag nya gymmet ”Fresh fitness” som verkligen levererade. Jag tränar alltid ensam och fokuserat, så länge det finns bra ventilation och fria vikter är jag nöjd – och i detta fall fanns det av båda ting + projektorer med dukar aĺa Golds-gym :-)

På morgonen väcktes jag av sonen och frun för ett fars dag firande. Jag fick ett jättefint halsband (dogtags) i svart stål med min sons födelse-data och texten
”Min pappa är världens bästa pappa och min hjälte”

Kärlek!

Mernätkärlek

#mernatkarlek

#mernatkarlek

Idag så lanserade jag sista versionen av #mernätkärlek sidan. Totalt har jag skapat 3 versioner som ingått i 3 olika faser. Fas 1 bestod av röstningsmoment (där man kunde rösta på en kandidat samt bifoga bild), Fas 3 bestod av nominerade vinnare och slutligen Fas 3 med presentation av vinnarna.

I bakgrunden så har vi formulär och databashantering som både lagrar resultat och vidarebefordrar dessa till specificerade mottagare tack vare webforms-modulen.

Detta projekt har varit olikt de andra på en rad olika punkter. Tidigare så användes extern byrå för att leverera kampanjsidor byggda i ett externt ramverk (ofta light-weight baserade på MCV utan CMS-stöd), hostad på en extern server och under en egen domän.

Det finns många nackdelar med detta, exempelvis SEO-biten då vi går från vår huvuddomän utöver content-management biten.

När jag satte upp företagets site-nätverk så lade jag nämligen in paneler (templates) för kampanjsidor – och det var kul att verkligen få testa dessa iom #mernätkärlek kampanjen.

Vi skulle exempelvis tack vare Drupal och rules kunna lägga en specifik produkt baserat på SKU vid sidvisning/laddning som har med kampanjen att göra + tillämpa en unik rabattkod etc (finns redan på plats då jag löste detta i DEV).

Tekniken bakom är väldigt simpel, vi använder Drupals panels med custom CSS/Blocks för att modifiera sidan och minimera störande element som inte har med kampanjsidan att göra – men har fortfarande tillgång till ramverkets (Drupal’s) funktionalitet samt bygger vidare på vår huvuddomäns SEO. För er som jobbat med panels tidigare så har ni säkerligen stött på vissa hinder gällande CSS overrides – och det gäller att planera sin huvud CSS smart där flertalet element finns färdiga att använda för universala positioner, z-index etc.

Jag är strikt emot inline CSS – men tack vare Panels så löses kampanjsidorna hyggligt!

En bonuskunskap jag fick när jag arbetade med Fas 2 – nomineringen var att jag ville minimera antalet custom JS script som lades på sidan i samband med custom kampanjer. Vanligtvis kan vi skapa features/moduler som innehåller de bibliotek vi behöver när en viss nod-typ eller nod-id laddas, men detta skulle innebära att en utvecklare (jag) behöver finnas på plats vid varje ny kampanjsida som kräver nya funktioner.

Efter att ha loggat in i Google Tag Manager kunde jag efter 1 minuts analys lokalisera Tags -> HTML element-input för att injicera custom JS/HTML i headern baserat på site URL. (Just i detta exempel så loopade vi genom sidan efter input types och såg till att enbart en container kunde vara aktiv åt gången. CSS3 lösningen från början räckte tyvärr ej till för att hålla koll på hela DOMen och container-status).

Hursomhelst – detta är oerhört kraftigt, och det leder mig även till en viss tankegång samt kommande hemma-labbar gällande säkerhet för web-applikationer kopplade till Google Tag Manager. Ett tips till er läsare, se till att ni har ett starkt lösenord till era Google Tag Manager konton. Det finns en mängd sätt att tack vare Tags injicera kod som inte bara kan smitta era besökare men även kompromissa säkerheten på både applikation och servernivå!

Full fart och stordatorer

Idag hade jag det andra och sista mötet med konsulten från Sentor. Vi körde på och var klara runt 12:00 (totalt 3 timmar) innan det var dags att tacka för oss. Mycket intressant framkom under dessa 2 dagars sessioner, och vi han med att kort glida in på hash-cracking mha dedikerad GPU samt disskutera Stordata-lösningar och den teknik som fortfarande används idag.

Jag läste härom dagen en artikel som i high-level beskrev problematiken kring bankernas stordatorer samt nya tekniska implementationer gällande just säkerhet.

Många banker sitter fortfarande på stordatorer där utvecklingen sker i programmeringsmiljön Cobol (dominerade på 60-70 talet) och mha verktyg som bla Micro Focus verktyg Mainframe Express kunna underlätta och tillgodose implementationer för dagens behov ( stordatorerna har i många fall portats till virtuella instanser vilket på många sätt underlättar tjänsteutvecklingen).

Men, kontentan är att tekniken och arkitekturen i grund och botten är uråldrig. Med hjälp av extra lager (tjänsteutvecklingen) fortsätter man att bygga på denna arkitektur och sätter sig mer och mer i en s.k kodskuld. Vi läser oftare om banker där säkerheten i deras applikationer visat sig vara mycket bristfälliga – och det senaste exemplet som gör mig påmind är för Danske Bank.

I exemplet ovan så var förklaringen att applikationen (hemsidan i detta fall) var i debug mode- och på sådant sätt läckte känslig information. Men man kan snabbt se via en sökning att även Danske Banks app 2013 via Datainspektionen fick nedslag på deras bristfälliga säkerhet och hotades att stoppas.

Vad är det då som ligger bakom dessa säkerhetsbrister? En artikel som jag läste tidigare men ej har länken till beskrev problemet konkret:

1. Stordatorerna drivs och underhålls idag av mestadels seniorer. Kunskapen som dessa har är på väg att försvinna i samband med generationsskifte
2. Juniorerna (generationsskiftet) besitter den kompetens som tjänsteutvecklingen kräver

Problematiken ligger i att båda ovan saknar förståelse för varandra, och de brister som uppstår i arkitekturen till följd av detta återspeglas i de säkerhetsbrister som uppdagas.

Att gå ifrån stordatorerna och kliva in i 2000-talet är en enorm kostnad som bankerna inte är villiga att ta ännu och vi som kunder kommer att fortsätta betala för detta i form av driftstopp samt i värsta fall att våra kontouppgifter samt medel stjäls.

Som med mycket annat så måste arbetet med säkerhet ske proaktivt och inte bara aktivt. Den kunskap som tidigare krävdes för att utnyttja sårbarheter i server och applikation får både större spridning samtidigt som kraven på dem sänks iom den uppsjö av toolkits som florerar på nätet och är fri för nedladdning.

Vi står inför en spännande men samtidigt skrämmande utveckling. För varje dag som går kopplar vi upp oss mer och mer mot tjänster som vi automatiskt litar på skall hålla god säkerhet. De flesta av oss tänker kanske inte ens tanken gällande säkerhet innan vi med ett klick delat med oss av vår personliga information.

Konsumentsamhällets generation som vi tillhör levereras den ena efter den andra optimerade och effektiviserade köpkanalen- där konverteringarna står som prio #1.
Hela din identitet, betalmedel och köpvanor registreras dagligen – tacksamt och imponerad omfamnar vi varje steg i den evolution som underlättar vårt konsumentbeteende – men stannar sällan upp och reflekterar över de säkerhetsaspekter som faktiskt borde finnas på plats innan de tjänsterna vi använder.

Information är makt, och att ha tillgång till all information är att sitta på all makt. Men vart ligger makten då tjänsteleverantören (ex banken) väljer att prioritera sina marginaler (vinst) framför att säkert förvalta din information?

Svaret är enkelt- makten ligger hos dem som väljer att ta den.

Täby-bo, Sentor och gråare vardag

I helgen genomförde vi flytten som planerat. Allt gick bra tack vare familj och släkt som tacksamt hjälpte till – totala flyttlass blev 2 och vi kunde runt 17:00 tiden samlas i Täby för flyttmiddag (pizza-fest).

Idag när klockan ringde så var både kropp och knopp trött, resan in till jobbet blev ett nytt äventyr i sig då jag nu tar bussen från Täby till Danderyds-sjukhus, byter mot 676:an för att sedan igen byta till 72:an vid Östra station. Jag lyckades missa bussen vid Östra station och fick ta tunnelbanan – men kom in i tid till jobbet.

Idag hade vi möte 1/2 med en konsult från Sentor, och mötet pågick mellan 09:00-15:00. Utkomsten från mötet var mycket bra och jag fick mycket ny kunskap. Det var verkligen ett nöje att få diskutera och gå igenom dagens agenda, mötet fortsätter under morgondagen med mer praktiska utföranden.

Idag kändes vädret, men specifikt kontoret gråare än förra veckan.
– Ain’t no sunshine when she’s gone..