Rez gateway (RezOS) innovate the future

Post on 15-Apr-2017

109 views 3 download

Transcript of Rez gateway (RezOS) innovate the future

RezGateway Inc.Innovate the FutureSept 26, 2016

Before Innovation , Imagination must be cultivated

Indika Maligaspe

Meeting Agenda

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

The Beginning

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

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 )

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

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

Road So Far

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.

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

Present Focus

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.

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

RezPack Architecture - By end of 2016

RezPack Architecture – Macro Services

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

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

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

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

Automation - CI / CD pipeline - By end of 2016

Automation - CI / CD pipeline - By end of 2016

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..)

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

Next Two Years

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