cloud foundry cookbook: recipes for a successful cloud foundry deployment in production (cloud...

31
© 2014

Upload: pivotal

Post on 27-Jan-2015

117 views

Category:

Technology


4 download

DESCRIPTION

Technical Track presented by Vinícius Carvalho, Senior Field Engineer at Pivotal. Cloud Foundry provides the foundation for your PaaS infrastructure. It streamlines deployment and turns your developers and your ops into super heroes when it comes to time to market. But what about your architecture? How should you build your services (or microservices)? How can you guarantee security is being enforced on every layer of your architecture? How can you solve cross-service dependencies? How can services discover each other? How could developers leverage an API explorer to test your services and build apps on top of it? How could you leverage a data pipeline to solve polyglot persistence and cascading operations on diverse persistence technologies? How can you monetize on top of your public services? How could you use a service registry to boost your models with extended metadata? This session presents a few recipes to demonstrate how to solve some of the problems found when applying cloud patterns to real business scenarios.

TRANSCRIPT

Page 1: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

© 2014!

Page 2: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

RECIPES FOR A SUCCESSFUL CLOUDFOUNDRY PRODUCTION DEPLOYMENT!

Vinicius  Carvalho  –  Pivotal  @vccarvalho  

Page 3: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

I  am  a  developer  

Page 4: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

CF  power  up  

Page 5: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Challenges  •  Large  distributed  Systems  :  Failure  becomes  the  norm  not  the  excepAon  

•  Enhance  developer  experience  of  your  API  •  Enforce  security  and  access  control  of  endpoints  •  Service  discovery  •  Avoid  duplicaAon  

Page 6: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Give  this  to  your    developers  

Page 7: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

They  will  soon    as  for  this  

Page 8: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Powered  by  Swagger  

Page 9: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Talking  about  services  

Busin

ess  V

alue

  Reusability  Biz  

Services  Biz  

Services  Biz  

Services  

Core  Services  

Core  Services  

Core  Services  

Core  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Apps   API  

Page 10: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Core  Biz  Services  

Who  the  hell  are  those?  

Page 11: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Service  Registry  •  Stores  service  informaAon  – API  endpoints  – Security  metadata  (Access  Control  Lists,  Roles)  – Resource  relaAonships  – Quality  of  service  – Extended  Metadata  

Page 12: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Service  Registry  Services  

Instances  

API  

Endpoints  

Security  

UI  Metadata  

QOS  

Billing  

/api/apidocs!

GET /users!PUT /{id}!

GET /users! - ClientId: myapp! - roles: [USER,MANAGER]

!!

User : {! SSN: {! type: “string”,! selectable: false,! editable: false! }!}!

/search : {! limit : {! value : 300,! time: 3600,! unit: “seconds”! } !}!

/search : {! rate : {! currency : “USD”,! value : 0.10,! meterType: “UNIT”,! meterValue: 1000! }!}!

Page 13: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Cloud  Controller  

DEA   Registry  

GET  /v2/events  

GET  /api/apidocs  

push  app  +  app  MD  

Router  

Page 14: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

UAA  

     NeUy  Pipeline  

GET /users!Authentication: Bearer <token>!

Service  Proxy  

User  Service  

Registry  

Obtain  metadata  

Validate  CredenAals   QoS   Billing  

Page 15: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

UAA  

     NeUy  Pipeline  

GET /users!Authentication: Bearer <token>!

Service  Proxy  

User  Service  

Registry  

Data  Filter  

{!“firstname” : “joe”,!“lastname” : “doe”,!“comp” : 135,000.00!}!

Obtain  metadata  

Validate  CredenAals   QoS   Billing  

Page 16: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

UAA  

     NeUy  Pipeline  

GET /users!Authentication: Bearer <token>!

Service  Proxy  

User  Service  

Outbound    handler  

Registry  

Data  Filter  

Obtain  metadata  

Validate  CredenAals   QoS   Billing  

Outbound    handler  

{!“firstname” : “joe”,!“lastname” : “doe”,!}!

{!“firstname” : “joe”,!“lastname” : “doe”,!“comp” : 135,000.00!}!

Page 17: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Security    •  Don’t  use  LDAP  for  authorizaAon  •  Corporate  LDAPs  can  be  very  polluted,  move  away  from  role  

mapping  and  don’t  add  more  noise  to  them  

UAA  

LDAP  

AuthenAcate  

{! "jti":"4657c1a8-b2d0-4304-b1fe-7bdc203d944f",! "aud":["openid","cloud_controller"],! "scope":["read"],! "email":"[email protected]",! "exp":138943173,! "user_id":"41750ae1-b2d0-4304-b1fe-7bdc24256387",! "user_name":"marissa",! "client_id":"vmc"!}!

ACLS  

Page 18: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Biz  Services  

Data  Services  

Core  Services  

Make  sure  your  rest  client  propagates  the  token  for  the  next  service  

Page 19: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

The  Dark  side  of  microservices  architectures  

•  MulAple  remote  calls  •  EnAty  relaAonships  •  Great  arAcle  by  Chris  Richardson  :  hUp://

www.infoq.com/arAcles/microservices-­‐intro  

Page 20: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Biz  Services  

Biz  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Apps  

Core  Services  

Core  Services  

Core  Services  

Core  Services  

Respon

se  Tim

e  

Page 21: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Biz  Services  

Biz  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Apps  

Core  Services  

Core  Services  

Core  Services  

Core  Services  

Respon

se  Tim

e  

Page 22: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Biz  Services  

Biz  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Apps  

Core  Services  

Core  Services  

Core  Services  

Core  Services  

Respon

se  Tim

e  

Page 23: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Biz  Services  

Biz  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Data  Services  

Apps  

Core  Services  

Core  Services  

Core  Services  

Core  Services  

Respon

se  Tim

e  

Page 24: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)
Page 25: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

TX  Manager  

Hibernate    Session  

TradiAonal  web  applicaAon  

Controller  

Service   Repo  

EnAty   EnAty  

Cascading operations are managed by the session factory

Page 26: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Ripple  effect  of  enAty  relaAonship  

Product  

Inventory  

Orders   Users  

Page 27: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Event  driven  data  services  

Inventory   Orders   Users  

{enAty:  Product,  Event:  UPDATE}  

Product  

Page 28: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

HTTP  events  

•  High  efficient  server  sent  events  using  non  blocking  containers  (JeUy  9,  Tomcat  8,  Spray,  Play,  NeUy)  

•  Use  webhooks  when  comet/conAnuaAons  are  not  possible  

•  Pubsubhubbub?  

Product  

GET  /{id}  PUT  /{Id}  POST  /    GET  /events  à  SSE  POST  /hook/  à  callback  url  

Page 29: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Polyglot  persistence  

Page 30: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Polyglot  persistence  

Data    Service  

{! "posts": [{! "id": "1",! "title": “The four levels of HA on pivotal CF",! "links": [{! ”author": {! "href": "http://blog.gopivotal.com/author/cdavis",! "id":”ffd5b644-b220-4f7c-efad-2dfee6768bb9” ! }]!}! }]!}!

EnAty    RelaAonship  

Data    Service  

Data    Service  

Data    Service  

Data    Service  

Page 31: Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in Production (Cloud Foundry Summit 2014)

Thank  you!