26
Cloud Design Patterns Sharath Sahadevan, Pivotal @sharath_sahadev

Cloud Design Patterns - events.static.linuxfound.org · Cloud Foundry is … • Open Source Application platform-as-a-service • Supported by dozens of major organizations • Language

Embed Size (px)

Citation preview

Cloud Design Patterns

Sharath Sahadevan, Pivotal@sharath_sahadev

Agenda

• Introduction• Overview of Cloud Design Patterns• Demo• Q/A

About Pivotal

3

Structured PaaS Framework

Contract: Cloud Native App

Contract: BOSH Release

Contract: Cloud Provider Interface

Culture

Dev

Dev IT Ops

Application Framework

Runtime Platform

Infrastructure Automation

InfrastructureIT Ops

IT Ops

Tools

Spring Boot

BOSH

4

Cloud Foundry is …

• Open Source Application platform-as-a-service• Supported by dozens of major organizations• Language and framework agnostic• Manages VM’s and Containers• Orchestrates applications and data services• Abstracts infrastructure

Cloud Foundry is …

• Open Source Application platform-as-a-service• Supported by dozens of major organizations• Language and framework agnostic• Manages VM’s and Containers• Orchestrates applications and data services• Abstracts infrastructure

Transferred from VMWare to Pivotal

1 trillion dollars in market cap supporting the project

Governance passed to Cloud Foundry Foundation

2013 2014 20157

Design Patterns

• Microservices• Abstraction• Twelve Factor• API Gateway• Service Registry• Config Server• Circuit Breaker

Monolithic Architecture

Tomcat

Browser Apache Inventory Service

DB

Accounting Service

Store Front UI

Microservice

• Loosely coupled Service Oriented Architecture with bounded context

Microservices

Scaling a Monolith Vs a Microservice

• A Monolith puts all its functionality into a single process• More efficient use of resources

Abstraction

Abstraction

Agility and Cost Savings

StorageServers

Networking

O/SMiddleware

Virtualization

DataApplication

Runtime

You

Man

age

O/S

Servers

Networking

Middleware

Virtualization

DataApplication

Runtime

You

Man

age

IaaS

Pr

ovid

erYo

uM

anag

e

O/S

Servers

Networking

Middleware

Virtualization

DataApplication

Runtime

Pivo

tal C

loud

Fou

ndry

Con

tain

er

Automation

@SpringBootApplication@EnableCircuitBreaker@EnableDiscoveryClientpublic class CustomerApp extends RepositoryRestMvcConfiguration {

@Overrideprotected void configureRepositoryRestConfiguration(RepositoryRestConfiguration

config) {config.exposeIdsFor(Customer.class);

}

public static void main(String[] args) {SpringApplication.run(CustomerApp.class, args);

}

}

@SpringBootApplication@EnableCircuitBreaker@EnableDiscoveryClientpublic class CustomerApp extends RepositoryRestMvcConfiguration {

@Overrideprotected void configureRepositoryRestConfiguration(RepositoryRestConfiguration

config) {config.exposeIdsFor(Customer.class);

}

public static void main(String[] args) {SpringApplication.run(CustomerApp.class, args);

}

}

Q/A