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

32
Jaroslav Gergic VP, R&D and Operations, GoodData [email protected] Commercial Workshops series @ D3S MFF UK March 6 2013 Software as a Service

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

Page 2: SaaS - Software as a Service - Charles University - Prague - March 2013

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…

Page 3: SaaS - Software as a Service - Charles University - Prague - March 2013
Page 4: SaaS - Software as a Service - Charles University - Prague - March 2013

Helping

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

Internal Powered By

Page 5: SaaS - Software as a Service - Charles University - Prague - March 2013

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

Page 6: SaaS - Software as a Service - Charles University - Prague - March 2013

Traditional Enterprise Software vs.

Software as a Service

● integrated solution delivered over the Internet

● multiple HW/SW vendors● SW integrators

Page 7: SaaS - Software as a Service - Charles University - Prague - March 2013

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

Page 8: SaaS - Software as a Service - Charles University - Prague - March 2013

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

Page 9: SaaS - Software as a Service - Charles University - Prague - March 2013

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

Page 10: SaaS - Software as a Service - Charles University - Prague - March 2013

● 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

Page 11: SaaS - Software as a Service - Charles University - Prague - March 2013

What does it take to be a SaaS Provider?

?

Page 12: SaaS - Software as a Service - Charles University - Prague - March 2013

Marketing

What does it take to be a SaaS Provider?

Sales

Account Management

Services

Support

Product Management

Development

Operations

Page 13: SaaS - Software as a Service - Charles University - Prague - March 2013

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

Page 14: SaaS - Software as a Service - Charles University - Prague - March 2013

DevOps in a SaaS Company

● What is DevOps?

Page 15: SaaS - Software as a Service - Charles University - Prague - March 2013

DevOps in a SaaS Company

● What is DevOps?○ integrated Development & Operations

● OK, so What do DevOps do?

Page 16: SaaS - Software as a Service - Charles University - Prague - March 2013

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.)

Page 17: SaaS - Software as a Service - Charles University - Prague - March 2013

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.

Page 18: SaaS - Software as a Service - Charles University - Prague - March 2013

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)

Page 19: SaaS - Software as a Service - Charles University - Prague - March 2013

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.

Page 20: SaaS - Software as a Service - Charles University - Prague - March 2013

● 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

Page 21: SaaS - Software as a Service - Charles University - Prague - March 2013

● 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

Page 22: SaaS - Software as a Service - Charles University - Prague - March 2013

● 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

Page 23: SaaS - Software as a Service - Charles University - Prague - March 2013

● 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

Page 24: SaaS - Software as a Service - Charles University - Prague - March 2013

● 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

Page 25: SaaS - Software as a Service - Charles University - Prague - March 2013

● think about operational aspects during since beginning:

Developing Cloud SaaS Product

Page 26: SaaS - Software as a Service - Charles University - Prague - March 2013

● think about operational aspects during since beginning:○ security

■ IDS systems, audit logging■ regular penetration testing

Developing Cloud SaaS Product

Page 27: SaaS - Software as a Service - Charles University - Prague - March 2013

● 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

Page 28: SaaS - Software as a Service - Charles University - Prague - March 2013

● 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

Page 29: SaaS - Software as a Service - Charles University - Prague - March 2013

● 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

Page 30: SaaS - Software as a Service - Charles University - Prague - March 2013

● 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

Page 31: SaaS - Software as a Service - Charles University - Prague - March 2013

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!

Page 32: SaaS - Software as a Service - Charles University - Prague - March 2013

Thank You!