SaaS - Software as a Service - Charles University - Prague - March 2013

Post on 08-May-2015

819 views 1 download

description

A presentation about what it takes to deliver a SaaS product as opposed to the traditional software engineering. Delivered to the students of computer science at Charles University, Prague on March 6 2013 as part of the Commercial Workshop series.

Transcript of SaaS - Software as a Service - Charles University - Prague - March 2013

Jaroslav GergicVP, R&D and Operations, GoodDatajaroslav.gergic@gooddata.com

Commercial Workshops series@ D3S MFF UK

March 6 2013

Software as a Service

Reporting & BI has always been aVALUE CHAINMultiple PRODUCTSMultiple DEVELOPMENT CYCLESHigh IMPLEMENTATION COSTSHigh SUPPORT COSTSDedicated HARDWAREDedicated IT RESOURCES

Data Warehouse

Report

ETL

Datamart Datamart

Cube Cube Cube

Dashboard XLS

The old way…

Helping

organizations….analyze their own data embed analytics into their solution

Internal Powered By

Traditional Enterprise Software vs.

Software as a Service

● hosted by SaaS provider● shared Infrastructure● economies of scale

● hosted by customer● HW & Infrastructure costs

borne by customer

Traditional Enterprise Software vs.

Software as a Service

● integrated solution delivered over the Internet

● multiple HW/SW vendors● SW integrators

Traditional Enterprise Software vs.

Software as a Service

● integrated solution delivered over the Internet

● single codebase for everybody

● functional & business consulting

● multiple HW/SW vendors● SW integrators● frequent code

customizations

● armies of technical consultants

Traditional Enterprise Software vs.

Software as a Service

● integrated solution delivered over the Internet

● single codebase for everybody

● functional & business consulting

● customer configuration changes possible

● multiple HW/SW vendors● SW integrators● frequent code

customizations

● armies of technical consultants

● blurred line between code and configuration changes

Benefits of SaaS - Focus on Customer Value

● simplified and consolidated infrastructure allows to focus on customer features instead of technicalities

● easier to accumulate expertise and best practices in a particular domain or industry vertical

● enabling customers to benefit from collective knowledge

● traditional enterprise SW: annual or semi-annual cycle● SalesForce.com pioneer of Enterprise SaaS: seasonal● GoodData: major release every 2 weeks● Continuous Delivery - updates daily or several times a day

Benefits of SaaS - Faster Innovation Cycle

What does it take to be a SaaS Provider?

?

Marketing

What does it take to be a SaaS Provider?

Sales

Account Management

Services

Support

Product Management

Development

Operations

Marketing

What does it take to be a SaaS Provider?

Sales

Account Management

Services

Support

Product Management

Development

Operations

There are two upper-case ‘S’ letters in SaaS: Software as a Service

DevOps in a SaaS Company

● What is DevOps?

DevOps in a SaaS Company

● What is DevOps?○ integrated Development & Operations

● OK, so What do DevOps do?

DevOps in a SaaS Company

● What is DevOps?○ integrated Development & Operations

● OK, so What do DevOps do?○ Beware: The code you write can wake you up in the

middle of the night! (Literally speaking.)

DevOps in a SaaS Company

● What is DevOps?○ integrated Development & Operations

● OK, so What do DevOps do?○ It is not only about developing software, it is also about

running it on behalf of your customers.

DevOps in a SaaS Company

● What is DevOps?○ integrated Development & Operations

● OK, so What do DevOps do?○ It is not only about developing software, it is also about

running it on behalf of your customers:

■ monitoring, error reporting & alerting■ ongoing performance optimizations & fine tuning■ incremental feature rollouts (risk mitigation)

DevOps in a SaaS Company

● What is DevOps?○ integrated Development & Operations

● OK, so What do DevOps do?○ It is not only about developing software, it is also about

running it on behalf of your customers:

■ monitoring, error reporting & alerting■ ongoing performance optimizations & fine tuning■ incremental feature rollouts (risk mitigation)

● All the above influences the way we architect and develop our software and technologies we use.

● 3 sources of change requests in a SaaS company○ Customers - escalated support tickets○ Internal - proactive improvements based on monitoring○ Product Management - new features

SaaS Software Development Methodology

● 3 sources of change requests in a SaaS company○ Customers - escalated support tickets○ Internal - proactive improvements based on monitoring○ Product Management - new features

● Kanban over SCRUM

SaaS Software Development Methodology

● 3 sources of change requests in a SaaS company○ Customers - escalated support tickets○ Internal - proactive improvements based on monitoring○ Product Management - new features

● Kanban over SCRUM○ need to incorporate operational aspects○ customer problems can't wait until the next iteration○ splitting development and sustaining teams destroys

sense of ownership

SaaS Software Development Methodology

● 3 sources of change requests in a SaaS company○ Customers - escalated support tickets○ Internal - proactive improvements based on monitoring○ Product Management - new features

● Kanban over SCRUM○ need to incorporate operational aspects○ customer problems can't wait until the next iteration○ splitting development and sustaining teams destroys

sense of ownership

● Autonomous Cross-Functional Teams

SaaS Software Development Methodology

● 3 sources of change requests in a SaaS company○ Customers - escalated support tickets○ Internal - proactive improvements based on monitoring○ Product Management - new features

● Kanban over SCRUM○ need to incorporate operational aspects○ customer problems can't wait until the next iteration○ splitting development and sustaining teams destroys

sense of ownership

● Autonomous Cross-Functional Teams○ versus traditional Development / QA / Operations split○ difficult with the respect to regulatory compliance

SaaS Software Development Methodology

● think about operational aspects during since beginning:

Developing Cloud SaaS Product

● think about operational aspects during since beginning:○ security

■ IDS systems, audit logging■ regular penetration testing

Developing Cloud SaaS Product

● think about operational aspects during since beginning:○ security

■ IDS systems, audit logging■ regular penetration testing

○ performance■ collect statistics at runtime■ Splunk

Developing Cloud SaaS Product

● think about operational aspects during since beginning:○ security

■ IDS systems, audit logging■ regular penetration testing

○ performance■ collect statistics at runtime■ Splunk

○ deployment automation■ operating hundreds of servers■ Puppet

Developing Cloud SaaS Product

● think about operational aspects during since beginning:○ security

■ IDS systems, audit logging■ regular penetration testing

○ performance■ collect statistics at runtime■ Splunk

○ deployment automation■ operating hundreds of servers■ Puppet

○ monitoring and logging■ alerts, troubleshooting and debugging■ Incinga, Splunk, Ganglia

Developing Cloud SaaS Product

● Programming Languages○ backbone: Erlang/OTP, backend: Java, Perl, C○ tools: Perl, Python, frontend: HTML5, JavaScript

● Databases○ PgSQL, Vertica - backend, MongoDB - metadata○ Cassandra - multi-master geo-replication

● ETL○ CloudConnect (proprietary, based on CloverETL engine)○ AWS Elastic Map Reduce (Hadoop)

● Cloud Platforms○ AWS (EC2, S3, SES, EBS, EMR)○ OpenStack (private cloud)

Mastering Many Diverse Technologies to Implement Full Stack

Mastering Many Diverse Technologies to Implement Full Stack ... continued

● Version Control○ GIT (legacy)○ GitHub - both private & open source repositories

● Continuous Integration○ Jenkins

● Deployment Automation○ Puppet

● Log Analysis○ Splunk (~200GB of logs processed daily)

● Last but not least...○ We use algebra to model our proprietary query language

called MAQL!

Thank You!