Coding for the enterprise server



Similar documents
Content. Development Tools 2(63)

Building a Continuous Integration Pipeline with Docker

High Availability of the Polarion Server

DevOps Course Content

Continuous Integration. CSC 440: Software Engineering Slide #1

Continuous Integration & Automated Testing in a multisite.net/cloud Project

Continuous Integration and Delivery at NSIDC

Platform as a Service and Container Clouds

Software Configuration Management and Continuous Integration

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

TEST AUTOMATION FRAMEWORK

In depth study - Dev teams tooling

IBM Rational ClearCase, Version 8.0

Sygate Secure Enterprise and Alcatel

Software configuration management

Version Control with Subversion

Case Study. Data Governance Portal Brainvire Infotech Pvt Ltd Page 1 of 1

Jenkins on Windows with StreamBase

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

Solution Guide Parallels Virtualization for Linux

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Big Data Analytics - Accelerated. stream-horizon.com

Continuous Keylane

pure::variants Transformer for Software Configuration Management Manual

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

Introduction to Git. Markus Kötter Notes. Leinelab Workshop July 28, 2015

flex support Service Overview

What Does Tequila Have to Do with Managing Macs? Using Open Source Tools to Manage Mac OS in the Enterprise!

CRM Comparison Guide. Microsoft Dynamics CRM and Act! compared

Application Release Automation (ARA) Vs. Continuous Delivery

Software Automated Testing

SOFTWARE DEVELOPMENT BASICS SED

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

Adobe Marketing Cloud Data Workbench Monitoring Profile

Developer Workshop Marc Dumontier McMaster/OSCAR-EMR

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SERVER STANDARD EDITION

vs. Web Site: Blog: blog.soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

Mobile Development with Git, Gerrit & Jenkins

Enterprise-level EE: Uptime, Speed, and Scale

Version Control. Version Control

Web Analytics Understand your web visitors without web logs or page tags and keep all your data inside your firewall.

DeBruin Consulting. Key Concepts of IBM Integration Broker and Microsoft BizTalk

Interactive Applications for Modeling and Analysis with Shiny

SapphireIMS 4.0 BSM Feature Specification

Using DeployR to Solve the R Integration Problem

Dell s SAP HANA Appliance

An introduction to the benefits of Application Lifecycle Management

Continuous Integration (CI)

LoadRunner and Performance Center v11.52 Technical Awareness Webinar Training

SNMP and Web-based Load Cluster Management System

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

It s Not Called Continuous Integration for Nothing!

Software Development In the Cloud Cloud management and ALM

NextLabs International Private Limited. 1. Position: Software Engineer (Java) Location: Singapore

Secure Remote Support

Best Overall Use of Technology. Jaspersoft

Optimos Enterprise Helpdesk Automation Solution Case Study

Fully Managed IT Support. Proactive Maintenance. Disaster Recovery. Remote Support. Service Desk. Call Centre. Fully Managed Services Guide July 2007

PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone

SapphireIMS Business Service Monitoring Feature Specification

Architectural patterns for building real time applications with Apache HBase. Andrew Purtell Committer and PMC, Apache HBase

ArcGIS for Server in the Cloud

enterprise IBM Rational Team Concert 2 Essentials

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

Microsoft HPC. V 1.0 José M. Cámara (checam@ubu.es)

Surround SCM Best Practices

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

JumpCloud is your Directory-as-a-Service. A fully managed directory to rule your infrastructure whether on-premise or in the cloud.

Non-Stop Hadoop Paul Scott-Murphy VP Field Techincal Service, APJ. Cloudera World Japan November 2014

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

High Availability Storage

HC DYNAMICS CRM MODULE SERVER CONFIGURATION. User Manual. Hosting Controller All Rights Reserved.

File S1: Supplementary Information of CloudDOE

Metalogix SharePoint Backup. Advanced Installation Guide. Publication Date: August 24, 2015

Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)

Integration eines SOA Repositories mit Subversion zur Anbindung an den ESB

NoSQL Performance Test In-Memory Performance Comparison of SequoiaDB, Cassandra, and MongoDB

Building your Server for High Availability and Disaster Recovery. Witt Mathot Danny Krouk

SUNY Learning Network Service Level Agreement Blackboard Learn Application and Hosting Services

Prof. Dr. Lutz Heuser SAP Research

Source Control Systems

XpoLog Center Suite Log Management & Analysis platform

Build Automation for Mobile. or How to Deliver Quality Apps Continuously. Angelo Rüggeberg

Transcription:

Coding for the enterprise server What does it mean for you? user 2015 Conference Aalborg Wednesday July 1, 2015 2015 HMS Analytical Software GmbH

The UniveRse 2015 HMS Analytical Software GmbH 2

Enterprise R Small, but growing part of the R universe R begins to replace first generation analytical platforms and solutions R has better price to performance ratio Data scientists want R Mission critical applications are ported to R Questions: Is this possible and safe? Yes! Who can develop and support solutions? 2015 HMS Analytical Software GmbH 3

Car insurance web portal To get an exact quote for your car you have to answer some questions about yourself, the car, and the requested insurance policy. The main challenges are: reliability (24/7), security and privacy, and of course you expect fast answers. 2015 HMS Analytical Software GmbH 4

Quality control of consumables for diagnostic equipment Consumables for medical testing are a major source of income for a device manufacturer and have to be produced according to very high quality standards. Every batch is quality checked individually, and this process is supported by an server side application. Here the challenges are: stability (to avoid production downtime), and very strictly regulations set by the FDA. 2015 HMS Analytical Software GmbH 5

Server side application characteristics Interaction via a separate user interface Multiple sessions Runs continuously: stability Does it work with any kind of data? Results are not guaranteed Exception handling and interactivity: What is an error? Who decides? How? Messages: with what content, in which language? Division of labor, roles, skills: Statisticians vs. developers vs. IT/operating Software engineering, architecture: High coupling? Bad! Separation of concerns? Good! 2015 HMS Analytical Software GmbH 6

Corporate IT environments are special: The time factor Corporate IT environments are special: they have a long history...... and IT systems reflect this situation: even mainframes are still running. New applications have fit into this environment, and are expected to last 10 yers or more. Long term maintenance is expensive, so keeping the total cost (of ownership) for an application low has top priority within a company. 2015 HMS Analytical Software GmbH 7

IT operates server applications Application owners vs. IT department & operating: separate entities Requirements for maintaining an application: Stability, max. downtime, reaction time: Service Level Agreements (SLA s) Supported software versions: stable, supported Emergency management External support, training (e.g. Revo AdviseR, AcademyR) 2015 HMS Analytical Software GmbH 8

Stable versions of R and packages / Reproducibility Required by regulations and/or IT operations In your own interest: stability, reliability of server application: use fixed / supported versions of Open Source R, Revolution R Enterprise, etc. Versioned Repository: Revo Reproducible R Toolkit Stable set of packages: local repository (source, download), Skript, installer or Linux package with complete R and packages 2015 HMS Analytical Software GmbH 9

Stakeholders and requirements Most challenges are not directly related to the specific analytical task at hand. Many more challenges exist, To make things more difficult: many stakeholders are involved in application related decisions, and all of them have their own priorities. You may be the ones that have to make such decisions, or at least influence them as stakeholders 2015 HMS Analytical Software GmbH 10

Well known tools and techniques Versioning: Git, Subversion; creating branches, merging branches, setting tags etc. Programming environments, IDEs: Rstudio, Eclipse etc. Unit-Testing: Runit, Testthat Documentation and reporting tools: Roxygen, sweave, knitr, Markdown, pandoc 2015 HMS Analytical Software GmbH 11

Fault tolerant programming Handling exceptions: try-catch Raising exceptions, returning meaningful messages: message(), warning(), stop() Controlling timeouts and loops Etc. 2015 HMS Analytical Software GmbH 12

Internationalization Meaningful messages? In which language? Switching the locale of R Sys.setLocale() : not so good Throwing errors/exceptions with an id number Handling translation outside of R in the user interface or server application 2015 HMS Analytical Software GmbH 13

Logging Logs: different reasons, types Success of a specific sub-task (e.g. function call) Complete user task or session Application log Server log Laws and regulations: traceability Logging in a single language: English Different parallel user sessions: separate logs or unique session identifier in a common log Logging configuration: timestamps, source, messages, severity, target location Packages: Logging, futile.logger, log4r, logr, loggr etc. 2015 HMS Analytical Software GmbH 14

Different (execution) environments Good practice: multiple, separate development-, test- and production environments Creating new instances: installation packages, scripts, Linux packages Installing / promoting application versions: R packages, configuration via environment variables Sys.getenv(), configuration files or DB Switching computing envionments: Revolution R Enterprise 2015 HMS Analytical Software GmbH 15

Continuous integration (CI) Automates repetitive tasks: creation, installation and testing of software. Process is controlled by build and test scripts. Has it s own web interface E.g. Jenkins 2015 HMS Analytical Software GmbH 16

Installation tests, functional tests Open Source R: testinstalledbasic(), testinstalledpackages() Revolution R Enterprise: IQ/OP scripts Functional qualification tests/scripts for custom packages Integration testing for the complete application? 2015 HMS Analytical Software GmbH 17

Resource utilization / performance / scalability Save memory with out-of-memory processing: Revo ScaleR Gain performance with in-memory solutions, shared memory: bigmemory Flexibility in switching between in-memory, out-of-memory solutions: Revo ScaleR Switch between local and remote computing environments: distributed computing, cloud computing 2015 HMS Analytical Software GmbH 18

Isolation / Sandboxing / Containers Mandatory access control and sandboxing with RAppArmor from Jeroen Ooms (Linux only) Use Docker as application container (with sandboxing)? 2015 HMS Analytical Software GmbH 19

Network / Server interfaces to R Language independent access/clients: Rserve, DeployR, OpenCPU Standards compliant interface: Webservices Webservices: Revolution DeployR / DeployR Open, OpenCPU, R Service Bus Flexibility, Scalability: Revolution DeployR For production better use: Linux Access LDAP, Active Directory from Revo DeployR, Shiny Server Pro etc. 2015 HMS Analytical Software GmbH 20

Please remember server side applications are different for a reason. You should try to understand the specific situation and requirements of the (different) stakeholders and the IT department and the resulting requirements. Only then should coding begin. 2015 HMS Analytical Software GmbH 21

Thank you for your attention! Any questions? Senior Software Engineer Contact: HMS Analytical Software GmbH Rohrbacher Str. 26 69115 Heidelberg Telefon +49 6221 6051-142 Friedrich.Schuster@analytical-software.de Web: http://www.analytical-software.eu/ 2015 HMS Analytical Software GmbH 22