Softwareentwicklung in der industriellen Praxis



Ähnliche Dokumente
Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Formular»Fragenkatalog BIM-Server«

Commerce-Anwendungen. Entwicklung von E- Prof. Dr. Susann Kowalski

Step by Step Webserver unter Windows Server von Christian Bartl

INSTALLATION VON INSTANTRAILS 1.7

Installation der SAS Foundation Software auf Windows

Updatehinweise für die Version forma 5.5.5

peer-to-peer Dateisystem Synchronisation

Systemvoraussetzungen Sitzungsmanager

Ein mobiler Electronic Program Guide

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

SolarWinds Engineer s Toolset

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Leitfaden zur Installation von Bitbyters.WinShutdown

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

EIDAMO Webshop-Lösung - White Paper

Stud.IP Performance Testing

HFT App. Prof. Dr. Gerhard Wanner Michael Kolb B.Sc. Sonntag, 26. Mai 13

Virtual Desktop Infrasstructure - VDI

Installation von MySQL

Systeme 1. Kapitel 10. Virtualisierung

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Internet Explorer Version 6

SharePoint Demonstration

Webseiten werden mobil Planung geht vor

Zwei Wege zur automatisierten SW Verteilung Am Beispiel der Lösungen von Jungheinrich. Matthias Nischwitz,

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Lokale Installation von DotNetNuke 4 ohne IIS

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Einführung in PHP. (mit Aufgaben)

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Contentmanagement Übung

NetScaler Integration bei Hellmann Worldwide Logistics. Benjamin Kania IS Enterprise Services Manager Hannover,

Einsatzbearbeitung im Sanitätsdienst

SJ OFFICE - Update 3.0

Prof. Dr. Norbert Pohlmann, Institut für Internet Sicherheit - if(is), Fachhochschule Gelsenkirchen. Lage der IT-Sicherheit im Mittelstand

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Excel beschleunigen mit dem mit Windows HPC Server 2008 R2

LOAD BALANCING LASTVERTEILUNG BEI INTERNETANWENDUNGEN

Installationsvoraussetzungen

... über OGVIT GmbH & Co. KG

VMware als virtuelle Plattform

PROFIS Software Lösungen

Upgrade-Leitfaden. Apparo Fast Edit 1 / 7

Anbindung des eibport an das Internet

Installationsanleitung dateiagent Pro

Backups einfach gemacht mit Backup Manager

Anwendervortrag auf dem 2. LUGD-Tag am in Frankfurt. Liferay an Bord Portale für Zeppelin

opsi-401-releasenotes-upgrade-manual

Webseiten sind keine Gemälde. Webstandards für ein besseres Web. Webstandards für ein besseres Web

Systemanalyse I Software-Entwicklung. Die Phase Design.? Prof. Dr. Susann Kowalski

Tutorial -

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Mobile Angebote Strategie einer Verwaltung. Freie und Hansestadt Hamburg Dr. Ursula Dankert

Oracle GridControl Tuning Pack. best Open Systems Day April Unterföhring. Marco Kühn best Systeme GmbH

Software-Lizenzierung und Aktivierung: Verteilen von Software mit Apple Remote Desktop

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Lizenzierung von Windows Server 2012

Cloud-Provider im Vergleich. Markus

Software Projekt 2 / Gruppe Knauth Lernziele:

Benutzung der LS-Miniscanner

Anleitung zur Installation von Windows Live Mail unter Windows 7 und Anbindung an das System Communigate Pro

ANYWHERE Zugriff von externen Arbeitsplätzen

OCTOPUS Appointment System von ADCOTEL -- System Architektur Version 1.1 vom Adcotel GmbH. I. Übersicht

TimeMachine. Installation und Konfiguration. Version 1.4. Stand Dokument: installcentos.odt

Sicherheit in Rich Internet Applications

JEAF Cloud Plattform Der Workspace aus der Cloud

Gliederung. 1. That s Radiant 2. User Interface 3. Rollen 4. Installation 5. Extensions 6. Fazit

Verwendung des Terminalservers der MUG

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

Konfiguration des Novell GroupWise Connectors

FRONT CRAFT.

Content-Management- Systeme (CMS) Inhaltsverwaltungssystem, Redaktionssystem

Konfiguration Zentyal 3.3 Inhaltsverzeichnis

Schwachstellenanalyse 2012

Allgemeine Aspekte zu CM-Systemen. Was genau ist ein CMS? BIT-Workshop 2009 Content-Management-Systeme (CMS) Administration

Durchführung der Netzwerk bzw. Mehrplatzinstallation

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Datenübernahme easyjob 3.0 zu easyjob 4.0

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

NbI-HS. NbIServ Bethenhausen Bethenhausen

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

PRAXIS. PxDigiStift. Schreiben - Übertragen - Fertig! Kurzanleitung. EDV-Betriebswirtschaft- und Software-Entwicklung AG

Di 8.4. Silverlight: Windows Presentation Foundation für s Web. Christian Wenz

Der Weg zur eigenen App

Vitaphone Software Entwicklung Vorgehensmodell 19. Oktober 2011 Berlin. Dr. Michael Hübschen

1. Voraussetzungen S Installation des OpenVPN Clients S OpenVPN Client installieren S Entpacken des Zip Ordners S.

Lehrveranstaltung Grundlagen von Datenbanken

Transkript:

Softwareentwicklung in der industriellen Praxis Cloud-Systeme: Besonderheiten bei Programmierung und Betrieb Steffen Gemkow / Paul Fritsche - ObjectFab GmbH 26.11.2012

Simple is beautiful Don t repeat yourself (DRY) Scalability >> Performance Design for scalability

Überblick Aufgabe Architektur Deployment und Betrieb Programmierung Fazit

Aufgabe Webanwendung Agile Entwicklung hohe zu erwartende Last viel dynamischer Inhalt geringe laufende Kosten

Webanwendung Integrationsplattform Login und Rollensystem Anbindung vieler externer Dienste und Datenquellen

Dynamischer Inhalt Webseite läd asynchron Daten nach (AJAX) viele kurze Requests anstatt weniger langer Requests an unterschiedliche Ziele Chat (Websockets/Longpolling)

Agile Entwicklung viele Details liegen noch im Dunkeln konkretes Layout Usability Features Prototyp, schnelles Feedback, kurze Iterationen

Lastverhalten

Cloud dynamisches Hinzufügen/Entfernen von Serverkapazitäten virtuelle Hardware

Cloud Anbieter Amazon Elastic Compute Cloud (EC2) JiffyBox Scalarium Heroku

Festlegungen Technologie Ruby on Rails, Websockets, SSL Vorgehensmodell Lastverhalten kurze Iterationen (1-2 Wochen) KanBan / Scrum tageszeitabhängig ca. 1000 parallele Nutzer Cloudanbieter JiffyBox von DomainFactory

Architektur LB WEB WEB APP APP APP CHAT CACHE DB

Webserver LB WEB WEB APP APP APP CHAT CACHE DB

Webserver liefert statischen Inhalt Bilder, CSS, JS führt kein Applicationcode aus braucht wenig CPU, wenig Speicher Apache, nginx

Application Server LB WEB WEB APP APP APP CHAT CACHE DB

Application Server führt die Rails Umgebung inkl. der Anwendung aus jeder Request benötigt eine Rails Umgebung (= Prozess) Phusion Passenger: startet mehrere Rails Prozesse verteilt Requests

Chat Server LB WEB WEB APP APP APP CHAT CACHE DB

Chat Server Chat benötigt Rückkanal für Nachrichten vom Server zum Client Websockets / Longpolling würde viele (teure) Rails Prozesse blockieren event-driven, non-blocking IO viele Requests in einem Prozess node.js, Evented Ruby

Cache LB WEB WEB APP APP APP CHAT CACHE DB

Cache korrekt eingesetzt bringt Caching sehr hohen Performancegewinn Session Datenbankabfragen komplette HTML Seite Teile einer HTML Seite memcached

Load Balancer LB WEB WEB APP APP APP CHAT CACHE DB

Load Balancer Regel Aktion Port 80 Redirect auf Port 443 wss://* https://static* chat web0..webx (load balanced) * app0..appy (load balanced)

Eingesetzte Software Ruby RVM mit Ruby 1.9.2 LB haproxy mit SSL WEB Apache 2 APP CHAT CACHE DB Phusion Passenger Node.JS memcached mysql

Deployment Wer betreibt den Cluster? Wie wird die notwendige Software installiert? Updates? Wie wird die Anwendung ausgerollt? Neues Release?

Dokumentation Auflistung sämtlicher zu installierender Software, inkl. Version Konfigurationsdateien Im Idealfall 2 Dokumente: Installationsanweisungen für frisches System Änderungen zur Vorversion

Script Ausführbare Dokumentation Installiert Software parallel auf mehreren Servern Erstellt Konfigurationsdateien Startet/Stoppt alle Dienste wiederholbar, parameterisierbar

Capistrano Führt SSH Befehle auf mehreren Rechnern parallel aus Rezepte: Ausführung vor oder nach einem anderen Rezept parallel auf mehreren Rechnern Rollen: Jeder Rechner hat eine oder mehrere Rollen Jedes Rezept gehört zu einer Rolle

Capistrano bietet fertige Rezepte zum Deployment einer Rails Anwendung zusätzliche Rezepte zum Installieren der Software Anbindung an JiffyBox-API

Programmierung Kenntnisse in vielen Programmiersprachen/Frameworks notwendig Ruby/Rails Javascript/Coffeescript, HTML/CSS Linux, Bash

Programmierung viele kurze Requests >> wenige lang laufende Requests Rails Prozesse sind teuer effektivere Auslastung der gesamten Cloud Trend zu non-blocking IO

Programmierung Requests werden von verschiedenen Prozessen verarbeitet keine Singletons im Programmcode DB / Cache zum Synchronisieren (z.b. Sessions)

Programmierung Am längsten dauert das Erzeugen des HTML in einem Request soviel wie möglich cachen Daten und Inhalte asynchron laden

Programmierung Externe Daten in einem Request asynchrone Aufrufe (non-blocking IO) im Hintergrund laden und zwischenspeichern (Cache oder DB)

Fazit komplexe Architektur wiederholbares Installieren/Konfigurieren aller beteiligter Systeme wiederholbares Deployment der eigentlichen Anwendung einfacher Aufbau verschiedener Test- und Stagingsysteme Grundlage zur dynamischen Steuerung der Cloud Integration in CI möglich

Fazit 8000 5x Level 1 (4P) 10x Level 1 (4P) 5x Level 2 (16P) 5x Level 3 (16P) 6000 Antwortzeit in ms 4000 2000 0 100 200 500 1000 Anzahl Nutzer

Vielen Dank http://www.objectfab.de/download/121126_vortrag.pdf Kontakt: http://www.objectfab.de info@objectfab.de, @ObjectFab paul.fritsche@gmail.com, @synopia http://www.ruby-dresden.de, 6.12.2012 nächstes Treffen