Continuous delivery on the cloud

32
Java on Heroku Deploying and Scaling on the Cloud

description

 

Transcript of Continuous delivery on the cloud

Page 1: Continuous delivery on the cloud

Java on HerokuDeploying and Scaling on the Cloud

Page 2: Continuous delivery on the cloud

Safe harbor statement under the Private Securities Litigation Reform Act of 1995.

This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward looking-statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.

The risks and uncertainties referred to above include - but are not limited to - risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site.

Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

Safe Harbor StatementSafe Harbor Statement

Page 3: Continuous delivery on the cloud

Cloud Application

Trendscontinuous delivery

Page 4: Continuous delivery on the cloud

Continuous Delivery

“..reducing the cycle time between an idea and usable software”

- Martin Fowler

“Software delivers no revenue until it is in the hands of its users.”

-Jez Humble

“.. leads to deeper relationship between IT, their business customer, and their final customers.”

-Jez Humble

Page 5: Continuous delivery on the cloud

In-frequent Releases

Dev-Production Parity

Deploying Manually

Anti-Patterns

Page 6: Continuous delivery on the cloud

Monolithic > Micro apps

JVM

App Server Core

Session Managers

M&M

Web App -1

EJBs

Clustering

Message Listeners

MDBsScheduled Jobs

Web App -2

Slower Releases

-

Single Language

-

Memory footprint-

“noisy” neighbour

-

Page 7: Continuous delivery on the cloud

Monolithic > Micro apps

JVM / Container

Web App 1

JVM / Container

Web App 2

JVM / Container

MessageDriven apps

JVM / Container

BatchJobs

Cloud Services

Faster Releases

+

Isolation+

Small Optimized Apps

+

Composite Apps+

Scale independently

+

Polyglot Architecture

+

Cloud icon – courtesy from The Noun Project collection

Page 8: Continuous delivery on the cloud

Presentation Tier(JSP, JSF, Struts)

Business Logic Tier(Java)

Data TierRDBMS

One language > Polyglot

No one size fits all-Lower productivity-

Page 9: Continuous delivery on the cloud

Presentation Tier(JSP, JSF,, Struts)

Business Logic Tier(Java)

Data Tier(RDBMS)

Presentation Tier(Rails, HTML5..)

Business Logic Tier(Java, Scala, NodeJS)

Data TierRDBMS, NoSQL

One platform > Polyglot

Productivity+

Performance+

Language strengths

+

Page 10: Continuous delivery on the cloud

Application UIs > APIs

Application UI(Browser)

Data Tier

Business Logic

SOAP-Single Viewport

-

Stateful apps-

Page 11: Continuous delivery on the cloud

Application UI > APIs

Application UI(Browser)

Data Tier

Business Logic

Application UI

(Browser)

Data Tier

Business Logic API

Mobile / Tablets

(Java,iOS)

Devices

JSON+

Stateless apps

+

Multi-Device+

Monetization+

Page 12: Continuous delivery on the cloud

Stateful > Stateless

App Server

1

App Server

1

App Server

1

Sticky State Load Balancer

Session

Session

Session

No continuous deployment

-Memory footprint-

Less elastic-

Page 13: Continuous delivery on the cloud

Stateful > Stateless

Continuous Deployment+

Lower memory footprint

+

App App App

Load Balancer

App Server

1

App Server

1

App Server

1

Sticky State Load Balancer

Session

Session

Session

Distributed Cache

Elastic Scale+

Page 14: Continuous delivery on the cloud

App Server > Applications

HTTPContainer

Dev / Production Parity-Complex packaging / deployment

-

Page 15: Continuous delivery on the cloud

App Server > Applications

HTTPComponent

simplified packaging & deployment

+

Simplified application start

+

Dev / Prod parity & Environments

+

Environment

Page 16: Continuous delivery on the cloud

Config > Environments

Resource Configuration

Application Code

JVM PropertyJNDI Property

Multiple build artifacts by envDatasources

Page 17: Continuous delivery on the cloud

Config > Environments

App

DB_URL=jdbc://.. /DBDev

Environment Variable:

DB_URL=jdbc://postgres….

App will access the URL with:

System.getenv(“DB_URL”)

SFDC_OAUTH=DEV

Dev, Prod

Resource Configuration

Application Code

JVM PropertyJNDI Property

Multiple build artifacts by envDatasources

Page 18: Continuous delivery on the cloud

Mdlwr > Cloud Services

Application Code

Email Services

Databases

Databases

Infrastructure not innovation

-Maintenance overheads-

Productivity-

Page 19: Continuous delivery on the cloud

Mdlwr > Cloud Services

Application Code

Email Services

Databases

Databases

App

Dev, Prod

Send GridDB_URL

PubNubPUB_URL..

Papertrail..URL..

Focus on innovation+

Rapid prototyping+

Lower maintenance overheads

+

Page 20: Continuous delivery on the cloud

INTRO TO HEROKU

Page 21: Continuous delivery on the cloud

Building Cloud Apps

Page 22: Continuous delivery on the cloud

IaaS Reduces Costs

Software Infrastructu

re(Slow)

Hardware Infrastructu

re (Expensiv

e)

Your Apps

Traditional On-Premise

Development

Infrastructure as a Service

Software Stack Software Stack

Increase server utilization

Reduce server costs

Ease server administration

Mobile Server

Web Server

App Server

Hyper V Server

Security Server

Operating System

Mobile Server

Web Server

App Server

Hyper V Server

Security Server

Operating System

Page 23: Continuous delivery on the cloud

Still have stack management

Software Infrastructu

re(Slow)

Hardware Infrastructu

re (Expensiv

e)

Your Apps

Infrastructure as a Service

Software Stack

You still manage the software stack

You still upgrade and patch

You still manually scale, tune and back-up

Mobile Server

Web Server

App Server

Hyper V Server

Security Server

Operating System

Page 24: Continuous delivery on the cloud

ForgetServers

Run Anything

SeeEverything

Trust &Manage

Page 25: Continuous delivery on the cloud

Ruby

PHPSpring MVC

NodeJS

GrailsGroovy

Scala

JavaPython

DjangoJavaScript

Clojure

Spring Roo

Play !

Hibernate

NoSQL

MongoDB

HTML5

Rails

CometD PerlApex

SOQL

Run anything

Page 26: Continuous delivery on the cloud

pol·y·glot [pol-ee-glot]

adjective1. able to speak or write several languages; multilingual.2. containing, composed of, or written in several languages: a polyglot Bible.

Run anything

Page 27: Continuous delivery on the cloud

Elastic Load balancing

Dyno manifold

Forget Servers

Dyno manifold

• Virtualized Linux containers (LxC)

• Dynos are fully isolated from each other

• Erosion resistant

Trust & Manage

Page 28: Continuous delivery on the cloud

Dyno manifold

Logplex

• Real time stream of all your application events

• Consumable by 3rd party services or syslog drains

Logplex

See Everything

Elastic Load balancing

Page 29: Continuous delivery on the cloud

Dyno manifold

API

• Process status

• Manage your processes

• Scale up or down your apps

Clients:• CLI• Eclipse

plugin• Apps

Logplex

See Everything

Contr

ol Surf

ace

API

Elastic Load balancing

Page 30: Continuous delivery on the cloud

Dyno manifold

Addons

• Extend the Platform

• Pre-Installed Services

• Common Components Logplex

Contr

ol Surf

ace

API

Addons

Elastic Load balancing

Page 31: Continuous delivery on the cloud

Micro apps Web app, API service

Cloud Services PubNub, Papertrail

Environments Salesforce Oauth

Stateless Distributed sessions w/Memcache

Containerless Webapp-runner

Trend You will be building

Page 32: Continuous delivery on the cloud

12 Factor Apphttp://www.12factor.net