modernizing the legacy - how dish is adapting its soa services for a cloud first future

18
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Softw licensed under a Creative Commons Attribution-NonCommercia http://creativecommons.org/licenses/by- Modernization of Legacy How Dish is Adapting its SOA Services for a Cloud First Future By Rob Bennett, Lax Rastogi, Chandra Nemalipuri

Upload: pivotal

Post on 15-Jan-2017

349 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/

Modernization of LegacyHow Dish is Adapting its SOA Services for a Cloud First Future

By Rob Bennett, Lax Rastogi, Chandra Nemalipuri

Page 2: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/2

Introductions• Rob Bennett – Director• Lax Rastogi – Sr. Manager• Chandra Nemalipuri – Principal Developer

Page 3: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/3

Background• Strong tradition of Service Oriented Architecture

• Coarse grained services • High Reuse

• Services built on a platform mixing Java and configRecently…• Several teams working on Cloud Native projects• Want to adapt our SOA portfolio to Cloud Native

• Microservices with SpringBoot & Cloud Foundry• TDD• CI/CD

Page 4: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/4

Coarse Grained Service Challenges• Coarse Grained was great

• Helped keep the “chattiness” low• Downsides of Coarse Grained

• Mixed frequently changing business logic with slow changing• Services change a lot (fewer buckets for change)• Many clients – they have to release when we release

o Or get into old version heck• Extensive Testing (TDD??)• Risky

o So let’s only deploy at 2am!

• Summary• Difficult to change services that change all of the time

Page 5: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/5

Technology Platform Challenges• Development Challenges

• Hard to hire for a unique development platform• Rigid IDE used for development• No out of box support for version control• Business logic within code cannot be extracted and reused

• Operational Challenges• No support for cloud like environment• Lack of Continuous Integration/Deployment• Limited automation capabilities• Downtime for deploying newer versions• Requires validation efforts after every build• Performance issues

Page 6: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/6

How do we get there from here?• Let’s switch to Microservices!• All we have to do is:

• Analyze and decompose our coarse grained services into constituent parts

• Define the contracts for the micro services• Orchestration/Choreography

• Looks like we can have a lot of fun discussing that one• Re-write every client

• That shouldn’t take long• What else can we do?

Page 7: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/7

Dish’s Middleware• Supporting ~13.6 MM pay TV subscribers• Comprises of 100+ SOAP webservices with about 600 operations• Handling 60 MM transactions per day• ~600 application instances • Integrated with numerous internal as well as third party providers• Only about 5% Java code in current services• Some of the service functions are:

• Integration with billing provider• Address, Email, phone validation• Credit scoring, credit card hold, payment• Order Creation, appointment scheduling, equipment activation

• Generating more than a billion events per day

Page 8: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/

Services Roadmap

8

Front end apps, self service, IVR, CSRs

Back end resources

Legacy SOAP Services

SHARED CODE LIBRARIES

PCF SOAP Services

STAGE 1@endpoint

REST Microservices

STAGE 2

Modified front end apps

@RESTController

Page 9: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/9

Preparing the migration• Services categorization

• Design patterns used• Size of services• # of moving parts in each service

• Deciding scope of work• Assigning priorities, efforts estimation• Choosing the right technology to support the services roadmap• Plan to start small, build the foundation, go big• Spread the word• Don’t forget the buy-in from management

Page 10: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/10

Key Technologies

Page 11: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/11

Where are we now?• No new development on legacy platform• 7 legacy services have been converted to PCF apps so far• New services are being built as microservices on PCF, stage 2 in

roadmap• 12 microservices deployed using new technology stack• Reusing Integration TEST suite build for legacy services to test new

services• Zero to minimal impact to services consumers• Each PCF service has 8 AIs (4 PROD, 2 TEST, 1 DEV and 1 INT)

Page 12: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/12

Conversion Approach – Design• Development Tools/Conventions

• @SpringBootApplication• Test Driven Development• 12 Factor app guidelines (http://12factor.net/)• Integration Tests Suite – reusing for CF service

• Client Interfaces• SOAP (Spring-WS)

• WSDL to Java using wsdl4j, JAXB with XJC• @Endpoint with @PayloadRoot

• REST (Spring-Web)• @RestController with @RequestMapping

Page 13: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/13

Conversion Approach – Runtime• Runtime Platform

• Pivotal Cloud Foundry• Spring Cloud components• PCF Marketplace Services

• Config Server• Rabbit MQ

• PCF User Provided Service(UPS)• Database connection config• External service URIs• Elastic search• Mongo DB

• Distributed caching using Gemfire

Page 14: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/14

Conversion Approach – CI/CD• Automated CI/CD pipelines

Page 15: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/15

Logging & Metrics• Latency analysis using Zipkin & SpringCloud Sleuth

• LogStash consumer • KAFKA • Cassandra• OpenZipkin collector • OpenZipkin Query• OpenZipkin web server

• Log Analytics• ELKK Stack

Page 16: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/16

Dish’s Twelve Factor Checklist

Source: http://12factor.net

• Stakeholders• Development Team • DevOps• PCF

Page 17: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/17

Application Demo• Walkthrough

Spring Boot Dish_properties (Spring Cloud Config repo) SOAP & REST Spring Cloud Sleuth and Zipkin Service Mocking CI/CD Cloud Native App Development Life Cycle

• Source Code springone-demo-app: https://github.com/nemalipuri/springone-demo-app adapter-api-simulator: https://

github.com/nemalipuri/adapter-api-simulator

Page 18: Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud First Future

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/18