Amazon Web Services Case Fonecta. TIE-23600 Palvelupohjaiset järjestelmät 2014-15

Samankaltaiset tiedostot
Amazon Web Services Case Fonecta. Palvelupohjaiset järjestelmät TIE-23600

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

TIE Ohjelmistojen suunnittelu

Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä ! Java luokkia n. 5000

Tikon Ostolaskujenkäsittely versio SP1

Mitä muutoksia pilvipalvelut tulevat aikaansaamaan tietoteknisten ratkaisujen hankinta- ja toimitusmalleissa? Miten pilvipalvelut muokkaavat

Pilvi mitä, miksi ja miten

Automaatio mahdollistaa Software as a Service - arkkitehtuurin

Federoitu keskitetty sovellus

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

DataLake-hanke - AWS , tietohallinto, Matti Valli, Pasi Porkka

Kuinka helpottaa suurten projektien tuskaa pilvipalveluilla?

Tekninen suunnitelma - StatbeatMOBILE

HAKURATKAISUN ANATOMIA - KURKISTUS PELLIN ALLE

ANVIA PILVI. kotimaisia pilvipalveluita yrityksille 24/7

IPv6 käyttöönoton mahdollistajat operaattorin näkemys

Luottamuksellinen. Google Cloud Platform

Hyödynnä DPS- ja SA-setelit Azure hybridipilvi-palveluiden suunnittelussa ja testauksessa!

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

ANVIA PILVI. kotimaisia pilvipalveluita yrityksille 24/7

ZENworks Application Virtualization 11

Ulkoistustoimittajan valvontapalvelu. Ville Mannonen / DataCenter Finland

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä


Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla

Järjestelmäarkkitehtuuri (TK081702)

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas

Valtion konesali- ja kapasiteettipalvelut

Koodistoeditorin toteutuksen lähtökohtia: KaPA-koodistopalvelu ja REST-rajapinnat

Tinkimätöntä tietoturvaa kaikkiin virtuaaliympäristöihin

Tekninen suunnitelma - StatbeatMOBILE

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Työasemien hallinta Microsoft System Center Configuration Manager Jarno Mäki Head of Training Operations M.Eng, MCT, MCSE:Security, MCTS

TW-EAV510AC mallin ohjelmistoversio

Tiedon suojaaminen ja hallinta. Sytyke seminaari

Miten hakea tehoa ja kustannussäästöjä infrastruktuuria optimoimalla. Teemu Salmenkivi, teknologianeuvonantaja

Visma Liikkuvan työn ratkaisut

Mikko Keränen WEB-PALVELUN SKAALAUS ISOILLE KÄYTTÄJÄMÄÄRILLE

Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla. Mika Suvanto, CSC

1. päivä ip Windows 2003 Server ja vista (toteutus)

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

TUTKI OMAT TIETOTURVA-AUKKOSI. ENNEN KUIN JOKU MUU TEKEE SEN PUOLESTASI. F-Secure Radar Ville Korhonen

Pilvee, pilvee, pilvee TERVETULOA! Toni Rantanen

Valppaan asennus- ja käyttöohje

Perinteiset asennuspaketit

Virtualisointi Käytännön kokemuksia järjestelmien virtualisoinnista

Tikon Ostolaskujenkäsittely versio 6.2.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Aditro Tikon ostolaskujen käsittely versio 6.2.0

FuturaPlan. Järjestelmävaatimukset

Hentry. Aiheen esittely. Arkkitehtuuri ja tuotantolinja

Käyttöjärjestelmät. 1pJÄKÄ1 KÄYTTÖJÄRJESTELMÄN HALLINTA, 12 OSP

Työpöytävirtualisointi

Avointen ohjelmistojen käyttö ohjelmistokehityksessä

REST an idealistic model or a realistic solution?

Suuntana kokonaan virtualisoitu palvelininfra Cisco Expo Messukeskus, Helsinki

Taitaja 2015 Windows finaalitehtävä

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen

Sovellusarkkitehtuurit

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Forrester: tietohallinnon prioriteetit

Aalto-yliopiston verkkopalveluiden arkkitehtuuri

Vaivattomasti parasta tietoturvaa

Automatisoitu konesali - vauhtia IT-infran muutoksiin

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

Digikoulu Pilviteknologiat - Tunti 1001: Tiedon varastointi Amazon Simple Storage Service (Amazon S3) palveluun

10:30 Tauko. 12:00 Lopetus. Yhteistyössä:

Projektinhallintaa paikkatiedon avulla

Terveydenhuollon Atk-päivät 2009

statbeatmobile PROJECT REVIEW iteration 1

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

Jouko Nielsen. Ubuntu Linux

Nebula Pilvi 9.0. Nebula-palvelut. Palvelukuvaus 9.1. Aito, avoin ja luotettava.

-Yhdistetty viestintä osana uutta tehokkuutta. Petri Palmén Järjestelmäarkkitehti

Järjestelmäarkkitehtuuri (TK081702) Pilvipalvelut. Pilvipalvelut - lähtökohtia

Mark Summary Form. Tulospalvelu. Competitor No Competitor Name Member

Analysaattorituotteen pilveyttäminen

Kumppaniratkaisu. M-Files Cloud Vault Dokumenttien hallinta on helppoa. Paranna tietotyön tehokkuutta ja laatua!

HiQ Finland Älypuhelinsovellusten käyttäjälähtöisen kehityksen tukeminen

Miten pilvipalvelut sopivat teidän organisaationne tarpeisiin? Case-esimerkki: M-Files; verkkolevykaaoksesta tehokkaaseen tiedonhallintaan

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Virtuaalityöpöydät (VDI) opintohallinnon järjestelmien käyttöympäristönä.

ONKO ORGANISAATIOSI KYPSÄ DEVOPSIIN?

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

PILVILASKENTA JA PILVIPALVELUT

Jatkuvan integraation ympäristö pilvipalvelussa

HELPPOUDEN VOIMA. Business Suite

Visma Avendon asennusohje

Linux palomuurina (iptables) sekä squid-proxy

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

Juha Karppinen liiketoimintajohta palvelinohjelmistot Microsoft Oy. Millaisiin ratkaisuihin pilvipalvelut soveltuvat?

Ohjelmistojen testaus ja hallinta. Gradle

Ympäristöystävällinen IT

Transkriptio:

Amazon Web Services Case Fonecta TIE-23600 Palvelupohjaiset järjestelmät 2014-15 Tapio Rautonen Ohjelmistoarkkitehti, Gofore Oy tapio.rautonen@gofore.com http://fi.linkedin.com/in/trautonen https://github.com/trautonen www.gofore.com 2014 Gofore - Tapio Rautonen 7.11.2014 1

Luentojen sisältö Tiistai (12-14) Gofore lyhyesti Case Fonecta Työkalut ja teknologiat Käytetyt AWS-palvelut Keskiviikko (klo 14-16) AWS arkkitehtuuri Käytetyt ratkaisumallit Mitä on opittu? 2014 Gofore - Tapio Rautonen 7.11.2014 2

Gofore Oy Vuonna 2001 perustettu IT-johdon konsultoinnin ja tietojärjestelmien kehittämisen asiantuntijayritys Vahvassa kasvussa oleva yritys Liikevaihto 6 MEUR (2013) Ennustettu liikevaihto yli 9 MEUR (2014) Vajaa 90 asiantuntijaa Taloudellisesti vakavarainen työnantaja Liikevoitto yli 10 % viimeiset yhdeksän vuotta Soliditetin AAA-luottoluokitus vuodesta 2006 yhtäjaksoisesti Toimistot Helsingissä ja Tampereella Työilmapiirin kouluarvosana 9.47 Työyhteisön yhteishenki 9.45 Suvaitsevaisuus 9.30 Tasavertainen kohtelu asemastani riippumatta 9.39 Tasa-arvoinen kohtelu sukupuolestani riippumatta 9.67 Henkilöstötyytyväisyystutkimus 11/2013, Barona IT 2014 Gofore - Tapio Rautonen 7.11.2014 3

Case Fonecta Vuoden 2011 lopulla aloitettiin Amazonin pilvi-infrastruktuurin käyttö uusissa projekteissa AWS palveluita kokeiltiin ensimmäisenä Osuma.fi-palvelussa Dynaaminen monitoimittajaprojektitiimi, jota johtaa Fonecta Vuonna 2012 Fonecta.fi ja Eniro.fi -palvelut yhdistettiin uudeksi Fonecta.fi-palveluksi Amazonin pilvi-infrastruktuurin päälle Vuosien 2012-2014 aikana toteutettu yli 35 sovellusta tai palvelua 2014 Gofore - Tapio Rautonen 7.11.2014 4

Case Fonecta työkalut Lähtökohtana mahdollisimman automatisoitu ympäristö Chef pilvi-infrastruktuurin hallinta ja sovellusten päivitys keskitetty hallinta, asiakasohjelma virtuaalipalvelimella devops ei ole vain buzzword Jenkins jatkuvan integraation palvelin sovellusten julkaisu, testiautomaatio julkaisujen ylennys eri ympäristöihin Nexus artifaktirepositorio vain julkaistuja artifakteja voi ottaa käyttöön New Relic palvelinten ja sovellusten valvonta SAAS pilvipalvelu 2014 Gofore - Tapio Rautonen 7.11.2014 5

Case Fonecta teknologiat ja sovelluskehykset Palvelut Versionhallinta Java, Scala, JavaScript Git, Bitbucket Tomcat, Jetty, Netty Jersey (JAX-RS), Play Framework Käyttöliittymät Apache CXF (JAX-WS) HTML5, Freemarker, Jade, AngularJS Guice, NodeJS JavaScript, CoffeeScript Solr, ElasticSearch CSS3, LESS MySQL, MongoDB Hibernate, Morphia, ReactiveMongo Jackson, ModelMapper JUnit, ScalaTest, Selenium, Robot Framework 2014 Gofore - Tapio Rautonen 7.11.2014 6

Käytetyt AWS palvelut Amazon Virtual Private Cloud (VPC) eristetty palvelu-infrastruktuuri Amazon Elastic Compute Cloud (EC2) virtuaalipalvelin Elastic Load Balancing kuormantasaaja Amazon Simple Storage Service (S3) staattisten resurssien tietovarasto Amazon CloudFront staattisten resurssien välimuisti Amazon Relational Database Service (RDS) relaatiotietokanta (MySQL, Oracle, PostgreSQL, Microsoft SQL Server) Amazon ElastiCache muistinvarainen välimuisti 2014 Gofore - Tapio Rautonen 7.11.2014 7

Käytetyt AWS palvelut Amazon Simple Queue Service (SQS) hajautettu viestijono Amazon Simple Email Service (SES) sähköpostin lähetyspalvelu Amazon Route 53 nimipalvelu Amazon CloudWatch pilvipalveluiden valvonta 2014 Gofore - Tapio Rautonen 7.11.2014 8

Käytetyt AWS palvelut numeroin 230+ EC2 virtuaalipalvelinta 100+ ELB kuormantasaajaa (julkiset ja sisäiset) 25 SQS viestijonoa 12 RDS relaatiotietokantaa 10 ElastiCache välimustia 6 CloudFront välimuistia 2 VPN yhteyttä 1 S3 staattisten resurssien tallennuspalvelu 190+ Jenkins tehtävää 150+ Git repositoriota 2014 Gofore - Tapio Rautonen 7.11.2014 9

Amazon Virtual Private Cloud (VPC) Tarjoaa eristetyn pilvialueen omaan käyttöön ja mahdollistaa virtuaalisen verkkotopologian rakentamisen Kaikki Fonectan palvelut ovat VPC sisäverkossa eikä niihin ei ole suoraa pääsyä internetistä pääsy NAT palvelimen kautta ja SSH tunneleilla (vaihtoehtoisesti VPN, joka maksaa) käyttäjien SSH avaimia hallitaan etcd-palvelulla, reaaliaikainen oikeuksien lisäys ja poisto vain kuormantasaajia näkyy internetiin ja niillä ohjataan liikennettä VPC:n sisälle Lisää tietoturvaa ja säästää kustannuksia datasiirtomaksut eivät päde VPC:n sisällä mikään palvelin ei ole suoraan internetissä, joten hyökkäyksiä on hankala tehdä SSH tunnelointi tuo lisähaasteita erityisesti Windows kehittäjille Palvelut jaettu eri Availability Zoneille VPC:n sisällä 2014 Gofore - Tapio Rautonen 7.11.2014 10

Amazon Elastic Compute Cloud (EC2) Virtuaalipalvelimilla käytetään Amazonin omaa Linux AMI jakelua perustuu RedHat 5.x ja RedHat 6.x jakeluihin binääriyhteensopiva RedHat 5.x ja Centos 5.x jakeluiden kanssa Varusohjelmat ja käyttöjärjestelmä alustetaan Chefin avulla tyhjästä toimiva virtuaalikone muutamassa minuutissa Virtuaalipalvelin voi hajota Werner Vogels: "Everything fails all the time" palvelimet usealle Availability Zonelle autoskaalauksella korjataan hajonneet instanssit Käytössä erikokoisia perusinstansseja perusinstanssit eivät ole nykymittapuulla arvioituna kovin tehokkaita erikoisinstansseissa käyttökustannukset nousevat huomattavasti aloita pienellä, skaalaa tarvittaessa horisontaalisesti ja vertikaalisesti instanssin tyyppi määriteltävä käyttötarkoituksen mukaan 2014 Gofore - Tapio Rautonen 7.11.2014 11

Elastic Load Balancing Internetistä tulevan liikenteen sekä VPC:n sisäisen liikenteen kuormantasaus Pääsynhallinnalla voidaan rajoittaa pääsyä kuormantasaajan kautta palveluihin ELB skaalautuu automaattisesti ei mahdollista saada staattista IP:tä, voi olla ongelma ulkoisten palomuurien kanssa Tukee health check sivuja rekisteröidyillä instansseilla health check sivun toteutus kriittinen mutta kun 0 instanssia on toiminnassa, tarjoaa vain tyhjän HTTP 503 virhesivun ominaisuus jota on pyydetty Amazonilta jo pitkään, mutta sitä ei ole edelleenkään saatavilla tilanne täytyy ennakoida ja hallita ohjaus kuormantasaajalta omalle virhesivulle nyt tosin mahdollista toteuttaa virheohjaus Route 53 nimipalvelun avulla SSL pysäytys kuormantasaajaan sovelluspalvelinten vaatima prosessoriaika vähenee oikea konteksti käsiteltävä sovelluksissa HTTP-otsikon avulla (X-Forwarded-Proto) 2014 Gofore - Tapio Rautonen 7.11.2014 12

Amazon Simple Storage Service (S3) Internetin yli toimiva staattisten resurssien tallennusvarasto Hyödynnetään erilaisissa käyttötarkoituksissa sovellusten staattisten resurssien varasto sisällöntuotannon julkaisupaikka integraatiokanava tietolatauksille Tarjoaa resursseille pääsynhallinnan mutta esimerkiksi komentorivityökaluissa on vaihteleva tuki näille Resurssit eivät muodosta oikeasti hakemistorakennetta, vaan niillä on vain yksilöllinen avain tietyllä tavalla muodostetut avaimet voidaan kuitenkin näyttää asiakasohjelmissa ikään kuin hakemistoina Resursseille mahdollista asettaa meta-tietoja esimerkiksi HTTP-otsikoita 2014 Gofore - Tapio Rautonen 7.11.2014 13

Amazon CloudFront Staattisten resurssien välimuisti tehokkaaseen sisällön jakeluun Lähin EC2 ja S3 palvelinkeskus on Irlannissa, CloudFront palveluita saa Tukholmasta Käytetään dynaamisen sisällön sekä S3 resurssien välimuistina Lokakuusta 2013 lähtien tuki käytännössä kaikille HTTP metodeille GET, OPTIONS, POST, PUT, DELETE, OPTIONS ja PATCH mahdollistaa dynaamisten sivustojen viemisen kokonaan välimuistin taakse Mahdollista liittää oma domain CNAME:n avulla tukee nyt myös omia SSL sertifikaatteja CloudFront noudattaa Cache-Control HTTP-otsikoita oletusvälimustiaika on 24 tuntia otsikoiden kanssa täytyy olla huolellinen välimuistin tuhoaminen työlästä ja kallista 2014 Gofore - Tapio Rautonen 7.11.2014 14

Amazon Relational Database Service (RDS) Relaatiotietokantapalvelu MySQL, Oracle, PostgreSQL, Microsoft SQL Server Replikointimahdollisuus multi-az replikointi MySQL lukureplika Perusratkaisussa vaihtelevan nopea I/O useita instanssivaihtoehtoja, suorituskyky kannattaa evaluoida vakionopeuksinen I/O lisäkustannuksella Helppo ylläpitää päivitykset voidaan tehdä automaattisesti valitun huoltoikkunan aikana tietokanta uudelleenkäynnistetään tarvittaessa automaattisesti Konfiguraation vaikeus saattaa yllättää esimerkiksi MySQL triggereiden käyttöönotto vaatii parametriryhmien määrittelyn ja käyttöönoton 2014 Gofore - Tapio Rautonen 7.11.2014 15

Amazon ElastiCache Muistinvarainen välimuisti toteutuksena MemCached tai Redis klusteroitu Matalan latenssin ja suuren suorituskyvyn avain-arvoparimuisti esimerkiksi käyttäjien sessiot, tietokantojen välimuisti, väliaikainen tiedon tallennus Halvempi käyttää ja ylläpitää kun paikalliset välimuistit EC2 virtuaalipalvelimilla paikalliset välimuistit tehokkaampia (ei verkkolatenssia) paikallisissa välimuisteissa tieto ei välttämättä ole yhdenmukaista ja synkronoitua Lisätty tuki käytölle VPC:n sisällä rajoitti aiemmin huomattavasti käyttöä 2014 Gofore - Tapio Rautonen 7.11.2014 16

Amazon Simple Queue Service (SQS) Hajautettu viestijono Pysyvä viestien tallennus mutta maksimissaan vain 14 päivää Ei transaktioita toteutetaan näkyvyysajan avulla lukijan on tuhottava luettu viesti voi olla mahdollista että sama viesti luetaan useaan kertaan Java SDK:ssa tuki asynkronisille toiminnoille Pitkää viestiodotuspyyntöä kannattaa käyttää maksimissaan 20 sekunnin odotus vähentää kustannuksia ja suoritusaikaa kuluttavia odottavia silmukoita sovelluksessa SNS:n avulla viestit voidaan monistaa useisiin jonoihin 2014 Gofore - Tapio Rautonen 7.11.2014 17

Muita palveluita Elastic BeansTalk yksinkertainen ajoympäristö Java-ympäristö kehno, mutta mahdollista käyttää Docker-säiliöitä OpsWorks Amazonin oma infrastruktuurin hallintatyökalu yhteensopiva Chefin kanssa DynamoDB web scale nosql ennustettava suorituskyky Elastic MapReduce Hadoop As A Service helppo provisioida jopa tuhansia laskentayksiköitä CloudFormation mallipohjainen infrastruktuurin provisiointi infrastruktuurin formaali dokumentointi ja samankaltaisten ympäristöjen nopea rakennus 2014 Gofore - Tapio Rautonen 7.11.2014 18

AWS arkkitehtuuri Internet VPC A1 A1 A1 A2 A2 EC SSH tunnel SSH tunnel NAT A3 A3 SQS RDS 2014 Gofore - Tapio Rautonen 7.11.2014 19

Käytetyt ratkaisumallit Uuden virtuaalikone-instanssin käyttöönotto koneen rakennus tyhjästä Palveluiden korkea saatavuus toteutus ja saatavuuden valvonta Sovellusten jatkuva integraatio ja katkoton päivittäminen build promotion blue-green deployment Automaattinen skaalaus horisontaalisesti skaalautuvat palvelut Sisällönjulkaisuverkko ajonaikainen malli päivitysaikainen malli 2014 Gofore - Tapio Rautonen 7.11.2014 20

Käytetyt ratkaisumallit uuden instanssin käyttöönotto Uusi instanssi luodaan Amazon Linux AMI julkaisun päälle Skripti asentaa Chef asiakasohjelman tyhjään instanssiin hakee instanssin tageista Chef nimet, roolit ja ympäristöt Chef asiakasohjelma ajaa halutun roolin, joka alustaa instanssin Instanssille määritellään Chef rooli rooli kuvaa mikä instanssin tehtävä on mitä Chef asiakasohjelma asentaa ja konfiguroi palvelimelle rooliin liittyy yksi tai useampi resepti jonka avulla tarkemmat määritykset kuvataan roolin asetuksen jälkeen Chef asiakasohjelman ajo riittää instanssin käyttöönottoon Chef palvelimella hallitaan rooliin liittyviä määrityksiä roolit määritellään usein projekteittain mutta myös projektien sisällä saattaa olla useita rooleja riippuen kuinka paljon projektiin liittyy erilaisia palveluita kehittäjillä iso vastuu infrastruktuurin ja virtuaalipalvelinten hallinnassa Devops 2014 Gofore - Tapio Rautonen 7.11.2014 21

Käytetyt ratkaisumallit korkea saatavuus Kaikki palvelut vähintään kahdella palvelimella palvelimet autoskaalausryhmässä kuormantasaajan takana VPC:n sisällä jaettu vähintään kahdelle Availability Zonelle autoskaalaus korjaa hajonneet palvelimet Jatkuva palveluiden ja palvelinten valvonta perusvalvonta Amazonin CloudWatchin avulla palvelinten ja sovellusten valvonta New Relicissä Pingdom, Zabbix, jne. palveluiden seurantaan StatusPage.io tilanneseuranta sisäiseen ja asiakkaiden käyttöön Keskitetty käyttäjäsessioiden hallinta (Redis) sessiot voimassa, vaikka palvelimet hajoavat mahdollistaa täysin katkottoman sovellusten päivittämisen 2014 Gofore - Tapio Rautonen 7.11.2014 22

Käytetyt ratkaisumallit jatkuva integraatio ja julkaisu Muutos versionhallinnassa käynnistää jatkuvan integraation palvelimella tehtävän Testit läpäisevä versio julkaistaan artifaktirepositorioon Jokainen julkaisu viedään Amazonissa ajettavaan testiympäristöön Jo olemassa olevia julkaisuja voidaan ylentää eri ympäristöihin (Build Promotion) Päivitys käynnistetään jatkuvan integraation palvelimelta Jenkins ja Chef tekevät päivitysprosessissa yhteistyötä knife ssh -työkalulla etsitään rooliin ja ympäristöön liittyvät instanssit, joille ajetaan Chef asiakasohjelma joukko shell skriptejä ja kasa ruby koodia Kun päivitys on valmis ja palvelu vastaa healthcheck-testiin 3 kertaa, luodaan levykuva levykuva pudotetaan autoskaalausryhmään instanssien tila identtinen ja nopeutetaan päivitysprosessia kun instansseja on paljon etcd-palvelulla hallitaan pääsyoikeuksia ja palvelinten varusohjelmien päivityksiä nähdään keskitetysti varusohjelmien versiot ja mahdolliset tietoturvaongelmat 2014 Gofore - Tapio Rautonen 7.11.2014 23

Käytetyt ratkaisumallit jatkuva integraatio ja julkaisu update update DEV Build 1 2014 Gofore - Tapio Rautonen 7.11.2014 24

Käytetyt ratkaisumallit jatkuva integraatio ja julkaisu update update DEV update update DEV Build 1 Build 2 2014 Gofore - Tapio Rautonen 7.11.2014 25

Käytetyt ratkaisumallit jatkuva integraatio ja julkaisu update update DEV update update DEV Build 1 Build 2 promote promote QA 2014 Gofore - Tapio Rautonen 7.11.2014 26

Käytetyt ratkaisumallit jatkuva integraatio ja julkaisu update update DEV update update DEV update update DEV Build 1 Build 2 Build 3 promote promote QA 2014 Gofore - Tapio Rautonen 7.11.2014 27

Käytetyt ratkaisumallit jatkuva integraatio ja julkaisu update update DEV update update DEV update update DEV Build 1 Build 2 Build 3 promote promote promote promote QA QA 2014 Gofore - Tapio Rautonen 7.11.2014 28

Käytetyt ratkaisumallit jatkuva integraatio ja julkaisu update update DEV update update DEV update update DEV update update DEV Build 1 Build 2 Build 3 Build 4 promote promote promote promote QA QA 2014 Gofore - Tapio Rautonen 7.11.2014 29

Käytetyt ratkaisumallit jatkuva integraatio ja julkaisu update update DEV update update DEV update update DEV update update DEV Build 1 Build 2 Build 3 Build 4 promote promote promote promote promote promote QA PROD QA 2014 Gofore - Tapio Rautonen 7.11.2014 30

Käytetyt ratkaisumallit blue-green deployment Katkoton jatkuvan tuotantoonviennin päivitysmalli Kaksi identtistä ympäristöä (blue ja green) toinen ympäristöistä aktiivinen Päivitys inaktiiviseen ympäristöön onnistuneen päivityksen jälkeen reititys vaihdetaan ympäristöstä toiseen Helppo tehdä palautus epäonnistuneen päivityksen jälkeen Inaktiivisessa ympäristössä tehdään viimeiset savutestit varmistetaan että palveluiden healthcheck on kunnossa voidaan suorittaa ylimääräisiä testejä 2014 Gofore - Tapio Rautonen 7.11.2014 31

Käytetyt ratkaisumallit blue-green deployment A v1 A v1 A v1 2014 Gofore - Tapio Rautonen 7.11.2014 32

Käytetyt ratkaisumallit blue-green deployment 1. build green ASG with v2 A v1 A v1 A v1 A v2 A v2 A v2 2014 Gofore - Tapio Rautonen 7.11.2014 33

Käytetyt ratkaisumallit blue-green deployment 1. build green ASG with v2 2. verify healthcheck and smoke tests healthcheck smoke test A v1 A v1 A v1 A v2 A v2 A v2 2014 Gofore - Tapio Rautonen 7.11.2014 34

Käytetyt ratkaisumallit blue-green deployment 1. build green ASG with v2 2. verify healthcheck and smoke tests 3. connect green ASG to ELB A v1 A v1 A v1 A v2 A v2 A v2 2014 Gofore - Tapio Rautonen 7.11.2014 35

Käytetyt ratkaisumallit blue-green deployment 1. build green ASG with v2 2. verify healthcheck and smoke tests 3. connect green ASG to ELB 4. disconnect blue ASG from ELB A v1 A v1 A v1 A v2 A v2 A v2 2014 Gofore - Tapio Rautonen 7.11.2014 36

Käytetyt ratkaisumallit blue-green deployment 1. build green ASG with v2 2. verify healthcheck and smoke tests 3. connect green ASG to ELB 4. disconnect blue ASG from ELB 5. terminate blue ASG rollback to blue ASG A v2 A v2 A v2 2014 Gofore - Tapio Rautonen 7.11.2014 37

Automaattinen skaalaus Tuotantoympäristöjen skaalaus kuorman mukaan yöllä vähemmän liikennettä, tarvitaan vähemmän resursseja kuormituspiikit (joulukorttiruuhka) Instanssit pystytetään valmiista levykuvasta nopea provisiointiaika voidaan varmistua, että kaikki instanssit ovat samassa tilassa Huoltovarmuus rikkinäiset instanssit korjautuvat itsestään sovelluksen kaatuminen käynnistää instanssin vaihdon Skaalaus liitetty prosessorikuormaan voi olla joskus liian karkea tai hidas mittari Virtuaalipalvelimilla pidetään vain ajettava sovellus ja sen konfiguraatio logit keskitettyyn varastoon (logstash / Splunk) tuhottuja instansseja mahdoton selvitellä jälkikäteen 2014 Gofore - Tapio Rautonen 7.11.2014 38

Käytetyt ratkaisumallit sisällönjulkaisuverkko Sisällönjulkaisuverkko kahdella erilaisella ratkaisumallilla Ajonaikainen malli sisältö palvellaan dynaamisesti sovelluspalvelimilta CloudFrontin läpi käytössä on todellisuudessa vain yksi versio resursseista haasteena yksittäin päivitettävät sovellukset kuormantasaajan takana Päivitysaikainen malli sisältö siirretään päivityksen yhteydessä S3 varastoon, josta se palvellaan CloudFrontin läpi mahdollistaa resurssien useiden eri versioiden olemassaolon yhtä aikaa resurssien siivoaminen ja julkaisuprosessi monimutkaistaa päivitystä 2014 Gofore - Tapio Rautonen 7.11.2014 39

Käytetyt ratkaisumallit sisällönjulkaisuverkko / ajonaikainen /js/main.js request CloudFront CDN VHost Application /companies.html request App VHost 2014 Gofore - Tapio Rautonen 7.11.2014 40

Käytetyt ratkaisumallit sisällönjulkaisuverkko / päivitysaikanen /js/main.js request CloudFront S3 deploy assets /companies.html request App Vhost Application deploy app Jenkins 2014 Gofore - Tapio Rautonen 7.11.2014 41

Mitä on opittu? Kertakäyttöiset virtuaalipalvelimet palvelinten hajoamisella ei väliä ei tarvetta edes SSH yhteydelle, koneilla säilötään vain ajettava sovellus Platform As A Service jokainen käytetty palvelu on vähemmän infrastruktuuria ja koodia ylläpidettäväksi kehity alustan mukana, mutta onko vaihtoehtoja kun kerran on sisällä Konfiguraationhallinta konfiguraatio niin yksinkertaisena kuin mahdollista kehitysympäristöt pitää olla mallia kloonaa ja aja Palvelupohjainen arkkitehtuuri ei yksittäisiä vikaantumispisteitä, horisontaalinen skaalaus palveluiden välinen viestintä vikasietoisilla asynkronisilla viesteillä itsenäiset mikropalvelut 2014 Gofore - Tapio Rautonen 7.11.2014 42

Kiitos mielenkiinnosta Sähköisten palveluiden RAKENNUSTOIMISTO Avoimuudella, riippumattomuudella ja toimintalähtöisyydellä saadaan aikaan tietojärjestelmiä, jotka aidosti palvelevat tuottavuuden tekijöiden arkea. 2014 Gofore - Tapio Rautonen 7.11.2014 43