bangalore cloud foundry meetup - mani

16
1 © Copyright 2015 EMC Corporation. All rights reserved. Cloud Native Development using Microservices on Pivotal CF Mani Chandrasekaran Advisory Consultant @cmani

Upload: mani-chandrasekaran

Post on 13-Apr-2017

437 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Bangalore Cloud Foundry meetup - Mani

1 © Copyright 2015 EMC Corporation. All rights reserved.

Cloud Native Development using Microservices on Pivotal CF

Mani Chandrasekaran Advisory Consultant

@cmani

Page 2: Bangalore Cloud Foundry meetup - Mani

2 © Copyright 2015 EMC Corporation. All rights reserved.

Microservices

Page 3: Bangalore Cloud Foundry meetup - Mani

3 © Copyright 2015 EMC Corporation. All rights reserved.

Microservices http://martinfowler.com/articles/microservices.html)

Page 4: Bangalore Cloud Foundry meetup - Mani

4 © Copyright 2015 EMC Corporation. All rights reserved.

Cloud Maturity Model

Source - https://twitter.com/wattersjames/status/664044293250641920

Page 5: Bangalore Cloud Foundry meetup - Mani

5 © Copyright 2015 EMC Corporation. All rights reserved.

5

Cloud Native

DevOps Continuous Delivery

Containers Micro services

Page 6: Bangalore Cloud Foundry meetup - Mani

6 © Copyright 2015 EMC Corporation. All rights reserved. 6

Cloud Native Framework

Contract: 12 Factor App

Contract: BOSH Release

Contract: Cloud Provider Interface

Culture

Dev

Dev IT Ops

Tools

Spring Cloud Spring Boot

Cloud Foundry

BOSH

AWS VMware OpenStack

Application Framework

Runtime Platform

Infrastructure Automation

Infrastructure IT Ops

IT Ops

Page 7: Bangalore Cloud Foundry meetup - Mani

7 © Copyright 2015 EMC Corporation. All rights reserved. 7

Spring Cloud Spring Boot Dev

Spring Boot From 0 to app in < 5 min

Spring Cloud Designed for fragile infrastructure in

partnership with Netflix

Application Framework

Page 8: Bangalore Cloud Foundry meetup - Mani

8 © Copyright 2015 EMC Corporation. All rights reserved.

Cloud Native App Dev Framework

Spring Cloud •  Runtimes and their client

libraries for: –  Service Discovery –  Configuration Management –  Circuit Breakers –  Intelligent Client Side Routing –  Reverse Proxies –  ….and much more

•  Security (encrypt, SSO, roles)

Spring Boot •  Convention-over-configuration,

no XML, no code generation

•  Auto-configure, embedded servlet engine

•  Get out of the way quickly if you want to change defaults

•  Service Binding for Cloud Foundry, Java, Spring, Groovy

Page 9: Bangalore Cloud Foundry meetup - Mani

9 © Copyright 2015 EMC Corporation. All rights reserved.

Demo – Spring Boot Migrating a Monolithic app to Cloud Native

Source – https://github.com/jholmes2001/spring-boot-cities

Page 10: Bangalore Cloud Foundry meetup - Mani

10 © Copyright 2015 EMC Corporation. All rights reserved.

Demo – Spring Boot – Introspection, Monitoring and Healthchecks

Source – https://github.com/jholmes2001/spring-boot-cities

•  metrics •  http://<<microservice-app-on-springboot>>/metrics •  trace •  http://<<microservice-app-on-springboot>>/trace

•  dump •  http://<<microservice-app-on-springboot>>/dump

•  health •  http://<<microservice-app-on-springboot>>/health

Page 11: Bangalore Cloud Foundry meetup - Mani

11 © Copyright 2015 EMC Corporation. All rights reserved.

Spring Boot - Metrics

Page 12: Bangalore Cloud Foundry meetup - Mani

12 © Copyright 2015 EMC Corporation. All rights reserved.

Demo – Spring Cloud using Fortune app

https://github.com/spring-cloud-samples/fortune-teller

Page 13: Bangalore Cloud Foundry meetup - Mani

13 © Copyright 2015 EMC Corporation. All rights reserved.

Eureka – Microservice service registry

Page 14: Bangalore Cloud Foundry meetup - Mani

14 © Copyright 2015 EMC Corporation. All rights reserved.

Spring Cloud – Hysterix circuit breaker

Page 15: Bangalore Cloud Foundry meetup - Mani

15 © Copyright 2015 EMC Corporation. All rights reserved.

Resources •  MicroPCF - https://github.com/pivotal-cf/micropcf

•  12 factor app - http://www.slideshare.net/SpringCentral/12-factor-cloud-native-apps-for-spring-developers

•  Spring Boot - http://projects.spring.io/spring-boot/

•  Spring Cloud - http://projects.spring.io/spring-cloud/

•  https://github.com/spring-cloud-samples

•  https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples

•  https://github.com/jholmes2001/spring-boot-cities

•  Bangalore cloud foundry meetup - http://www.meetup.com/Bangalore-Cloud-Foundry-Meetup/

Page 16: Bangalore Cloud Foundry meetup - Mani