rez gateway (rezos) innovate the future

25
RezGateway Inc. Innovate the Future Sept 26, 2016 Before Innovation , Imagination must be cultivated Indika Maligaspe

Upload: indikamaligaspe

Post on 15-Apr-2017

111 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Rez gateway  (RezOS) innovate the future

RezGateway Inc.Innovate the FutureSept 26, 2016

Before Innovation , Imagination must be cultivated

Indika Maligaspe

Page 2: Rez gateway  (RezOS) innovate the future

Meeting Agenda

1. The Beginning2. Road So Far3. Present Focus4. Next Two Years

Page 3: Rez gateway  (RezOS) innovate the future

The Beginning

Page 4: Rez gateway  (RezOS) innovate the future

2012 – Architecture , Process, Technology

Though the architecture of our products was defined to be a three tier layered architecture in 2012 product (Rezpack) was a Big Ball of Mud

Page 5: Rez gateway  (RezOS) innovate the future

2012 – Architecture , Process, TechnologyArchitecture smells due to the Big Ball of Mud

• A single change has unpredictable impact• No layering between UI / App and Data (web server , application server and database all acting as application servers)• Unable to do large scale development ( Time Cost , Resource Cost , Opportunity Cost)• Incredibly difficult to fix issue • No possibility of scaling ( No failover , No load balancing , No disaster recovery )

Page 6: Rez gateway  (RezOS) innovate the future

2012 – Architecture , Process, TechnologyProcess smells due to the Big Ball of Mud

• Single Development items takes months to complete• Long QA cycle with manual testing (still no guarantee can be given)• Each regression cycle produced close to 2000 bug fixes before a production ready version was available, even that could not be guaranteed• Each environment (Dev / QA / Staging / Production) had unique challenges• Versioning issue with multiple version being maintained for each client

Page 7: Rez gateway  (RezOS) innovate the future

2012 – Architecture , Process, TechnologyTechnology smells due to the Big Ball of Mud

• Java – 5 (no support)• Struts 1.x (not supported and dead)• JBoss 4.0.x – (no support)• PostgreSQL 8.2 (no support)• Hibernate 3.x (no support)• EJB 2 spec (dead)• Infrastructure – Iron age bare metal servers• CVS code repo – no active support

Page 8: Rez gateway  (RezOS) innovate the future

Road So Far

Page 9: Rez gateway  (RezOS) innovate the future

By end of 2015

Refactored the application so that the big ball of mud could be cleaned. This allowed the development teams to anticipate and develop with at least some level of confidence.

Page 10: Rez gateway  (RezOS) innovate the future

Recent Progress – progress was made in several areas in the last two years•  QA automation on around 80% of the key scenarios

– Still no focus on fixing reported automation issues– New features are not possible to automate– Automation not available service vise

• Use of Jenkins build tool to release, yet no Release / Delivery Pipeline• Use of cloud based infrastructure, yet advantage of cloud native was not fully used• Failover / Load balancing available but not optimally used• Agile development process implemented with scrum, yet not fully agile• Some Macro services separated out with

– UI business logics moved to app server– Template based UI introduced – Business logic in database reduced by at least 60%

• Moved from CVS code repository to GIT code repository for easier version management, yet the repository was not used properly to utilize it’s advances

But still we had several challenges

Page 11: Rez gateway  (RezOS) innovate the future

Present Focus

Page 12: Rez gateway  (RezOS) innovate the future

Introducing RezgOS

With a focused effort on bringing predictability , stability , maintainability and scalability on Architecture , Automation and Process introduced a new platform for RezGateway.

A platform for all RezPack applications to run on, will become the Operating System for all RezGateway products.

Page 13: Rez gateway  (RezOS) innovate the future

RezPack Architecture Vision - Service Oriented• RezPack - decoupled to be service oriented with all

operations to be microservices. • Utilize Spring Cloud Native support with Netflix set of tools• All applications that are integrating to RezPack integrated

via service end points Supplier Integration As a Service Content As a Service Data As a Service

• Each service to be whole services, with UI , API , Application logic and it’s own database

• All Macro Service converted to a set of microservices that can be reengineered with ease

Page 14: Rez gateway  (RezOS) innovate the future

RezPack Architecture - By end of 2016

Page 15: Rez gateway  (RezOS) innovate the future

RezPack Architecture – Macro Services

Page 16: Rez gateway  (RezOS) innovate the future

Supplier Integration Architecture - An EIA platform

• Supplier integration - with a centralized service which supports EIA and SOA• Each supplier integration - a service that feeds to RIDE Aggregator Service

(RAS)• Enabling REST service communication with JSON which improves

performance and scalability• Reduce integration issues which are prevailing in the system when

connecting to suppliers Broken connections Application failures Supplier errors

• Tracking , Monitoring and Alerting with ELK stack , Hystrix ,Dynamic Graphs

Page 17: Rez gateway  (RezOS) innovate the future

Presentation Architecture - will be a “Single Page Apps”

• User Interfaces is purely HTML5 / CSS3 and JavaScript based• All pages generated on client side with REST service

consumption• Seamless and Fast UI customizations without any impact to

Applications• Improved performance with WebSockets and Asynchronous

data streaming

Page 18: Rez gateway  (RezOS) innovate the future

Automation - Continues Integration / Continues Delivery (CI/CD) pipeline

• A single pipeline for all deployment• Each commit merge to repository master branch triggers a

deployment to CI environment which trigger automation suite for that service

• At any given time most service, most feature can be delivered to QA / Staging or Production environment with guaranteed results within minutes

• DEV / CI / QA release belongs to DEV and Staging / PROD belongs to business

Page 19: Rez gateway  (RezOS) innovate the future

Automation - CI / CD pipeline utilizing• Cohesive MicroServices

Each service will have it’s own wholeness to be deployed as a single deployment No patch releases

• Infrastructure As Code Infrastructure is ephemeral and is instanced as and when needed Complete grounds up deployment

• Database as Code No logic in database Database to reside in the repo of each service

• Quality Assurance as Code Every service to have automation to test Each development to complete when automation is available only Automation to run with each and every single deployment from DEV to PROD

Page 20: Rez gateway  (RezOS) innovate the future

Automation - CI / CD pipeline - By end of 2016

Page 21: Rez gateway  (RezOS) innovate the future

Automation - CI / CD pipeline - By end of 2016

Page 22: Rez gateway  (RezOS) innovate the future

Process – DevOps / Microservice centric

• Teams formed around services. Each team is cross functional , small and agile. They will have a definition of “Done” when the service is running without any issue in PROD

• Team is responsible for the QOS of the service and to make sure that the services are running for clients without any issue. If OPS find any issue in the service it will be All Hands On Deck for the team

• Each feature deployable from DEV environment to PROD environment complete with deployment scripts, automation and complete CI / CD cycle

• The team innovates, automates and grows with the service throughout the life cycle of the service.

• Productivity tools implemented so that we can guarantee that code quality is always met (sonarQube / PMD/ JVisualAnlyzer / etc..)

Page 23: Rez gateway  (RezOS) innovate the future

Technology Stack

• Java 8• Spring Suite of tools (Spring Boot, Spring Cloud, Spring Data, Spring REST)• Tomcat (8 / 9) / Jetty or Jboss Wildfly as needed• Netflix OSS suite of tools (Eureka, Zuul, Hysterix, SideCar , Ribbon, Archius etc..)• PostgreSQL 9.5 , CouchDB and REDIS• PHP5, REACT JS, REDUX for UI• Ansible, Gradle , Selenium and Jenkins for automation and deployment• Python for RezOs platform scripting• Pentaho for BI• As the services will be technology agnostic, we are open for any Open Source stack

The services and applications will be polyglot and technology agnostic. The stack will as of now will consists of

Page 24: Rez gateway  (RezOS) innovate the future

Next Two Years

Page 25: Rez gateway  (RezOS) innovate the future

Next Two years

• More micro level service separations with a focus towards Domain Driven Services which will include development to automation

• Inbuilt monitoring , tracing and Application Health checks with spring sleuth + zepkin, Turbine / Chaos Monkey and Chaos Gorilla

• Improve Security of application with Stormpath API• Advance content curate service integrations• Advance data mining and warehousing for data services with RedShift and

BigSQL• RnD into IoT based services

The next two years will be on improving RezOS platform , which will include the following key areas