Fra classic til cloud - Cloud based build & deployment IT & Telestyrelsen 2010 Møde d. 13 april 2010.

Slides:



Advertisements
Lignende præsentationer
Automatiseret GUI-test Lars Kjølholm Testnet maj 2009.
Advertisements

Urtekram’sk VMI 13. April 2011 M3UG årsmøde 2011.
Dau – IDA – DI ITEK Automation og industrielle it projekter Hvordan planlægger og gennemfører du dit projekt optimalt? Produktionen må da godt crashe i.
SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
CMS Installation at NIRAS
Drupal[.org] Open Source CMS 6/
Agenda • Hvorfor? • Case • Google App Engine • Alternativer til GAE • Hvad er GAE velegnet til?
Softwaretest. Introduction to Software Testing (Ch 1), g.com © Ammann & Offutt2 Failures in Production Software •NASA’s Mars lander,
1 Test – bl.a. med fokus på sharepoint løsninger Automatisering af deploy og test ifm. VSTS •Kort om build jobs med Team Foundation Server •Support for.
Introduktion til sikkerhed i.NET Mark S. Rasmussen iPaper ApS Part 2.
Firewalls & netsikkerhed Henrik Størner,
Virtual Automation Technologies
Når en applikation går i fejl… … er det interessant, at vide noget om: Hvornår gik applikationen i fejl Hvilken applikation gik i fejl Hvad er fejlen.
SMALL BUSINESS er BIG BUSINESS Tips og Tricks til Small Business Server Rico Raja marts 2006.
© bedre læring på kortere tid IT universitetet MKUM-E2009 Villads Keiding Konceptudvikling og Interaktive Digitale Medier MKUM 2009, Master i IT, ITU MKUM.
App Inventor. Hvad er App Inventor? Et web-baseret app udviklings ”tool” hvor programmør novicer kan udvikle Android apps. Det bruges stort set ligesom.
Microsoft Windows.NET Compact Framework Niels Hilmar Madsen Developer & Platform Strategy Group Microsoft Danmark.
Select one of the 3 title pages and delete the others. Please do not create new title pages by using the layouts Title 1 – 3 as these layouts do not contain.
Communication & Design ODEUM e-Plan Landinspektør Martin Høgh Urban Planning and Transport.
FNI marts Dupline introduction. FNI marts Sensors, Switches, Relays, Valves, Motors Counters, Timers, Drives Dupline PLC's PC's, SCADA Prod.
Using Transactional NTFS (TxF) in.NET Mark S. Rasmussen iPaper ApS improve.dk.
SMALL BUSINESS er BIG BUSINESS ISA Workshop Rico Raja, Technology Specialist Brian Thumann Madsen, Senior Executive Consultant.
Deployment – Udrulning af arbejdspladser i et Microsoft netværk Martin Vittrup Senior Technology Specialist.
B.V. Electronic Østerbro Skive GuideOnLine.
Web Services Protokoller og Arkitektur
Distribueret programmering, specielt Web Services Rasmus D. Lehrmann DM
Efteruddannelse Embedded C Modul 4 (Torsdag den 22/4-2010)
Projektledelse IT-projektledelse (ITP) Projektledelse og Produktion af Digitalt Indhold (DPI) Projektledelse IT-projektledelse (ITP) Projektledelse og.
13 – Database med JDBC. 2 NOEA2009Java-kursus – JDBC JDBC JDBC er et standard bibliotek til at tilgå relational databaser API’et er en standardiseret.
MAXIFUELS: Second generation bioethanol technology Birgitte K. Ahring.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Arne Winther Et værdifuldt samarbejde mellem hospital og produktudvikler.
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
System Center Suiten - helhedsbilledet
Udvikling med Microsoft 2007 Office System Michell Cronberg Microsoft MVP, MCT, MCAD ISV Innovation Day 2006 ServerServer.
Udvikling med Microsoft 2007 Office System Michell Cronberg Microsoft MVP, MCT, MCAD ISV Innovation Day 2006 KlientKlient.
Microsoft Solutions for Management Peter Colsted Direktør Enterprise & Partner Group Microsoft Danmark.
Projektledelse IT-projektledelse (ITP) Projektledelse IT-projektledelse (ITP) Lektion september 2004 Peter Olaf Looms.
Visual Studio Team System Work Item tracking med Microsoft templates.
Selected Partner Network briefing – d. 17. september 2008 How to Sell? Licensiering Jon Meldgaard Hansen - LMM, SMS&P How to Sell – september 2008.
Operations Manager Historik NetIQ Operations Manager (One Point) MOM 2000 SP1 Microsoft Operations Manager MOM 2000 Microsoft Operations Manager.
Technology Briefing. Hvorfor snakker vi drift? Meget fokus fra Microsoft på effektiv drift Dynamic Systems Initiative MS Operations Framework Meget fokus.
Introduktion til.NET- platformen og version 2.0 Michell Cronberg Microsoft MVP
Distribution af funktionalitet Webservice med WCF x.
Distribution af funktionalitet Webservice med WCF x.
Web service - elementer SOAP (Simple Object Access Protocol) WSDL (Web Service Description language) UDDI (Universal Description, Discovery and Integration)
Web service - elementer SOAP (Simple Object Access Protocol) WSDL (Web Service Description language) UDDI (Universal Description, Discovery and Integration)
ASP.NET Custom Web Controls Deployment. Agenda – ASP.NET Web User Controls Composite Control Rendered Custom Control Deploy en Web Applikation.
- 1 - Service & Support Forum 2005 Case A Jens Helstrup Solution Consultant – Nordic Region.
© 2013 Netcompany A/S Netcompany A/S · Grønningen 19 · 1270 København K · Tlf Side 1 Simon Otto Nielsen Diplomingeniør i informations og kommunikationsteknologi.
W: E: xTrace – trace på z/OS Dansk Gen brugergruppe 2008 Henrik Meisner Meisner IT.
TFS > TFS 2008 migrering Team System ERFA TFS > TFS 2008 migrering.
Enterprise Strategy Program
edgemo summit Session: ”Skomagerbackup”
Kristian F. Thomsen infrastructure specialist i edgemo Claus Egeberg-Gjelstrup infrastructure specialist i edgemo
Velkommen Microsoft Partner Update Dagens Program.
Reliable Architecture Ved Henrik Bærbak Christensen Reflective Architectures Emne: reflective architecture overview 11 december 2009.
Windows Vista Nis Bank Lorenzen Divisionschef – Windows Client
Patch Management i KMD. Side 2 Dato: 11. januar 2015 Patch Management Implementation i KMD Henrik Sawa Christensen Teknisk Senior Konsulent, MCSE Specialist.
Hvad er Liferay? Leading open source portal platfom Udvikles af Liferay.com og sponsorer Releases hver 8 md Stort community omkring Liferay Ca. 4 mio downloads.
MSBuild & Team Build i C#/C++ solutions VSTS ERFA d. 25 November.
Evaluering af Udbud og Modenhed af Cloud Computing Software Teknologier Præsentation af hovedopgave og resultater Vejleder: Henrik Bærbak Christensen Af:
1 Team Build med Team Foundation Server 2008 Konfiguration og udvidelse af build jobs Kort præsentation Hvorfor bruge Team Build Afvikling af et build.
ASP.NET – web site publish. ASP.NET – site-version.
Web Services. OO (C++/ C#/Java) COM DCOM Web Services.
Kan Power™ vinde over Windows™ Kan ”styrke” vinde over ”udseende” – eller skal vi bare styrke vores udseende?
Effektiv vækst - Workshop
Cloud Computing Model-View-Controller
Problem med at følge de konstant voksende datamængder
Software Construction
Præsentationens transcript:

Fra classic til cloud - Cloud based build & deployment IT & Telestyrelsen 2010 Møde d. 13 april 2010

Agenda • Introduktion - Hvad betyder skyen • Paradigmeskifte – Fra ”classic” til ”cloud” • Case: TradeShift – Lessons learned • Build, deploy og operation • Erfaringer og opsummering • Spørgsmål

I think there is a world market for maybe five computers -- ”Berømt” citat af Thomas Watson, IBM 1943

De fem computere i verden • Amazon EC2 • Google AppEngine • Microsoft AZURE • Salesforce Force.com • Facebook Applications

Vi er en forholdsvis lille planet • beboere (wikipedia.com) • er on-line (internetworldstats.com) • er på Facebook (facebook.com) – De bruger i øvrigt minutter per måned (23 timer/bruger/måned) – Ca. 25% af markedet – FB viser Ads per år. (mashable.com)

Cloud – et ny paradigme • Internet hastighed og båndbredde til alle • WiFi og Mobil høj(nok)hastighed ”overalt” • Ekstrem skalerbar service – 1 til 100 servere på ”no time” • Integration med andre systemer – REST, Soap, XML, JSON • Apps til kundespecifikke funktioner

Fra Classic til Cloud Classic Som vi gjorde for 10 år siden Classic Som vi gjorde for 10 år siden Cloud Som vi gør det I dag Cloud Som vi gør det I dag

Erfaringer– Classic • SDC – Netbank, Aktie handels portal, CMS til 150 penge institutter i Norden, performance optimering • CSC, PBS – Payment gateway, Logistic hub integration Deutche Post • Nykredit, KMD – Konsulent arbejde • FedEx, Aldo, DHL, LaPoste, Sydney Airport, … – Logistik styrings opgaver og integration

Erfaring(er)- Cloud • Tradeshift – Global E-faktura – Amazon EC2, github, zendesk, • Bookieman.net – Vagt planlægning og afvikling – Rackspace, bitbucket • OfficeDesign – Mindre dansk, nu ”virtuelt” firma – Basecamp, Highrise, Bitbucket, Gmail, GAE, Hyperspin, e- conomics

Teknologier ClassicCloud Udviklings paradigmeVandfaldAgil Programmerings sprogStatisk (Java, C#, C++)Dynamisk (Python, Ruby, Scala) SCMVCS (CVS, SVN)DVCS (Mercurial, git) RepositoryIntern serverBitbucket, github, code.google.com, codeplex HostingInterne servereAmazon, Google, AZURE, Salesforce, Facebook Mail og kalenderExchange, GroupWise, Notes Gmail, Google Apps Projekt styringMS ProjectBasecamp, PODIO, Timelog Issue trackingExcel, AccessTrac, Jira CRMMS CRM, SuperOfficeSalesforce, highrise

Build, test, deploy - Classic Devel Test Staging Produktion Repository •Single repository (Subversion, CVS) •Lokale udviklingsmaskiner •Testsetup er nedskaleret version af produktion •Staging ligner produktion •Kode skubbes fremad i systemet, ofte med manuelle operationer •Stor forskel på Test og Produktions miljø •Produktion står stille medens ny kodebase installeres •Rollback kan være svær

Build, test, deploy - Cloud Build Test Produktion2 Repository Devel Artifacts Produktion1Produktionn •Distribueret versions kontrol •Test, Staging og Produktion er ens •Pull arkitektur •Switch Staging til Produktion

Drift, support og overvågning • Classic • Drift – Bemandet kontrol rum • Overvågning – TNG, Tivoli, OpenView • Support – Lokal løsning • Cloud • Drift – Hotline/SMS • Overvågning – Hyperspin, site24x7.com, Hyperic • Support – Zendesk

Case - TradeShift • Global e-faktura management – Med Social media dimension • Historie – 2009 Dec Første design møde – 2010 Maj Produktion DK – 2010 Jul Launch EU – 2010 AugLaunch USA • Ekstrem skalerbar forretning – 0 til brugere på et kvartal

Amazon Elastic Compute Cloud (EC2) • AMI – Amazon Machine Image: Et image som er gemt. • S3 – Snapshot af AMI gemmes her. • Instans: Kørende version af AMI. En ”PC” der kan installeres og konfigureres efter behov. • EBS – Elastic Block Store: Persistent lagring. • EIP – Elastic IP Addresses: Reservering af ”fast” IP adresse. • Security groups: Amazon firewall som kobles på instanser når de startes. • CloudWatch: Metrikker på en instans. • Auto Scaling: Oprettelse af nye instanser baseret på metrikker. • ELB – Elastic Load Balancing: Distribuering af trafik imellem instanser.

Amazon EC2 i use case contekst Frontend Backend PostgreSQL ESB (API) I.S. Public zone DMZ Private zone

Build • ”Single” click build og release af projekter. • Build – Fleksibel, åben og næsten standard. • Versionering af pakker, moduler og releases. • Cloud baseret build/deploy servere. • Nye releases kan automatisk deployes • Nye instanser startes automatisk

Build arkitektur Mercurial Hudson Nexus Maven

Build, Test and Deploy

Deploy • ”Single” click deployment af servere og services, hvor alt sættes op automatisk. • Automatiserede tests køres efter deploy. • Minimalt manuelt arbejde sikrer maksimal tiltro til deploy. • Fleksibel overgang fra test til staging, og videre til produktion. • Opstramning i release proceduren konfigureres efter behov. • Framework er allerede lavet. Konfigureres vha. XML. • Nye komponenter tilføjes i Python

Deployment cycle Hudson build Hudson build Change production servers Configure servers Install packages Restore Backup snapshot Create packages Create servers Test deployment

Operation • Hyperic – Overvågning af instanser og deploys. • Hyperic agenter konfiguration igennem deployment. • Hyperic server er placeret i EC2. • 24/7 hotline.

• Module release • Tradeshifts release Software release

Deploy • Software release – Moduler der skal fordeles

Deploy • Moduler fordelt på forskellige servere

Deploy • Hvordan deployes der til Amazon instanser – Deploy tool opbygning Test Staging Production Id Step 1 Step 2 Step 3 Step n Step 2 Step 3 Step 5 Step 2 Step 7 Step 8 (Data)

Deploy • Hvordan deployes der til Amazon instanser – Deploy opdelt i ansvarsområder / steps 1.”Capture data” fra fra kørende build 2.”Instantiate amazon resources” 1.Instance, EIP, EBS, S3 access, SQS etc 3.”Configure modules” dynamisk konfiguration af moduler i forhold til det aktuelle deploy 4.”Create install packeges” pak software + konfiguration + installere i zip filer til brug på nye amazon instanser 5.”Install instances” kopier og intaller software på amazon instanser 6.”Restore persistent data” tag test/produktions data fra backup og ”rul ud” på nye instanser 7.”Integrations test” test at systemet fungere med test/produktions data

Dynamisk konfiguration af moduler i forhold til det aktuelle deploy (Data) Konfigurations- database Server layout Ekstra konfigurations værdier ’Secrets’ Module A Module B Module C

Konfiguration af deploy • Deploy konfiguration – Software release – definere software releasen der skal benyttes (version, snapshot, beta, rc, final) – Server layout – Service – information om diverse services – Security group – firewall konfiguration – Instance type – server størrelsen – Elastic ip – ved brug af fast ip – Elastic blok store – hardisk snapshot der skal benyttes – Software component – En component svarer til Maven artifact, e.g. Tradeshift-backend

Konfiguration af deploy • Deploy specifikke værdier – Forskellige backup lokationer – Loglevel - Debug i Test – Forskellige setups, alle mails til test eller rigtig udsendelse – Opsætning af database driver: e.g. postgres til test, oracle til produktion – Generelt kan der gives ekstra konfiguration med heri

Konfiguration af deploy • Håndtering af ’secrets’ – keys – Key filer – ssh, keystore, ssl certifikater – Password • Deploy server er ”trusted” og indeholder alle ’secrets’ – Man refererer fra deployConfiguration.xml til stier / filer på build serveren – Deploy konfigurerer moduler med adgang til databaser, backup, nøgler mm.

Konfiguration af deploy • Modulers ’config’ folder – Mulighed for at customisere en installerings sekvens på serveren – Mulighed for at medbringe filer, zip filer, kataloger m.m. – Konfiguration af.xml og.properties filer med • Konfiguration af værdier som først er kendt på deploy tidspunkt – Private / public ip’er af servere – Private / public ip’er af forskellige software serivices • Deploy specifikke værdier – Modul specifikke værdier – Værdier fra deployment

Konfiguration af deploy • Eksempel på.properties fil • Eksempel på.xml fil commercial = ${server.Frontend-Product.privateDns} product = ${server.Frontend-Commercial.privateDns} commercialPublic = ${server.Frontend-Product.publicDns} productPublic = ${server.Frontend-Commercial.publicDns} tradeshift-backend

Erfaringer • Lokal test bliver sværere for udviklere – Men fuld deploy og test er meget nemmere. • Forholdet til servere og testmiljø ændrer sig væsentligt for udviklere. – Nu er der løbende forsøg på at reducere antal kørende servere • Der er altid styr på konfiguration. – Der kan ikke deployes uden • Continuous integration fungerer.

Forbrug og priser • 9 dages periode ~ 17 instanser i gennemsnit • 1 måned – 1 instans ~ 78$ – Samt det løse

Næste projekt – lessons learned • Overvågning fra anden sky – Fx. Google • DVCS frem for VCS – Mercurial frem for Subversion • Pull frem for Push under deploy • Endnu mere dynamik – Python frem for Java • Fleksibilitet frem for performance

Referencer Logistics…  Sikre track and trace på alle det Britiske forsvars forsendelser.  Udvikler interface system til kommunikation mellem PostDanmark’s systemer – for alle pakker sendt med PostDanmark.  Sikre at de I Charles De Gaul fragt terminal kan udføre statistik på hele deres operation – så der kan optimeres på processerne.  Håndtere den interne styring af kufferter mellem flyene I Lufthavnen I Sydney.

Kontakt info René Nejsum Tlf Logistics A/S Gasværksvej 26B 9000 Aalborg