serving millions of customers with cloud native and devsecops · 2020. 8. 31. · account details...

26
Cloud Native Computing Foundation Webinar July 15, 2020 Serving Millions of Customers with Cloud Native and DevSecOps

Upload: others

Post on 30-Dec-2020

5 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

Cloud Native Computing Foundation WebinarJuly 15, 2020

Serving Millions of Customers with Cloud Native and DevSecOps

Page 2: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

2CNCF Webinar © Capgemini 2020. All rights reserved | 2CNCF Webinar © Capgemini 2020. All rights reserved |

About the speakers

twitter.com/akshai

linkedin.com/in/akshaisarathy

twitter.com/chollies72

linkedin.com/in/cjph-cloudthinking

Page 3: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

3CNCF Webinar © Capgemini 2020. All rights reserved | 3CNCF Webinar © Capgemini 2020. All rights reserved |

Agenda

Customer

Challenge

Solution

Results

Page 4: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

4CNCF Webinar © Capgemini 2020. All rights reserved | 4CNCF Webinar © Capgemini 2020. All rights reserved |

The Customer

One of Scandinavia’s leading credit market companies with over 2 million customers in three markets.

Present in Norway, Sweden and Denmark and have 450 dedicated employees.

Making up 20% of the Credit Card Scandinavian Market.

CREDIT CARD

0000 0000 0000 0000

00/00NAME

Page 5: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

5CNCF Webinar © Capgemini 2020. All rights reserved | 5CNCF Webinar © Capgemini 2020. All rights reserved |

Agenda

Challenge

Page 6: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

6CNCF Webinar © Capgemini 2020. All rights reserved | 6CNCF Webinar © Capgemini 2020. All rights reserved |

Compliance Deadlines Open Banking Strategy

Legacy ArchitectureAging Infrastructure

Challenges

Page 7: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

7CNCF Webinar © Capgemini 2020. All rights reserved | 7CNCF Webinar © Capgemini 2020. All rights reserved |

Key Challenges in Architecture

Disconnect between Conceptual and

Technical Architecturesmade it extremely difficult to define future roadmaps

“All eggs in one basket” and “no

change” culture no longer helping the

business.

No clear capabilities to deliver, secure and manage REST APIs

Enterprise Architecture had too much detail. But no one really

understood it!

No one really hadgood understanding

of the entire IT Landscape and

available capabilities

Page 8: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

8CNCF Webinar © Capgemini 2020. All rights reserved | 8CNCF Webinar © Capgemini 2020. All rights reserved |

Must-have Non-Functional Requirements

Modular & Decoupled

• Architecture based on microservices and event steaming

• Services grouped by business capability

• Loosely couple different capabilities

Scalable

• Elastically scalable on demand

• Hybrid. Able to run on-premise or cloud

• Configurable to accommodate future services

Speed to Market

• Quick to build, change and deploy

• Rapidly responsive to business needs

• API-based

Performance / Stability

• Stable and highly available

• Able to handle large volumes

• Sub-500ms API response times

• Monitoring framework with notifications and eventing

Secure

• Banking-grade security

• Lightweight, modern authorisation protocol

• Integration with third party OAuth server

Page 9: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

9CNCF Webinar © Capgemini 2020. All rights reserved | 9CNCF Webinar © Capgemini 2020. All rights reserved |

Agile Innovation Platform – The basis

Embracing the core concepts of omesa.io, Capgemini Agile Innovation Platform is a platform of tools and accelerators which enable architects to design elegant solutions with the primary aim of delivering business benefit.

AIP supports –• Microservice Architecture• Digital Transformation• Cloud-Native development• Modern App Development• Integration with on-

premise and legacy solutions

• Application Pace Layering (Gartner)

Capgemini Agile Innovation Platform blends legacy/proprietary technology with new/Open Source technology in the right combination for the target solution.

Page 10: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

10CNCF Webinar © Capgemini 2020. All rights reserved | 10CNCF Webinar © Capgemini 2020. All rights reserved |

The first step

was to re-define

the Enterprise

Architecture

into an API-led

architecture

based on

OMESA.IO

APIs

Single Purpose API

Multi-Purpose API

Service Implementation

Semi-decoupled Fully-decoupled (Microservices)

Enterprise Information Systems

COTS Bespoke

Microservice Persistence

Event HubServiceRegistry

Non-SharedStorageEnterprise Integration

Digital Engagement

Customers Partners Colleagues Id

entity

& A

ccess

Identity

Managem

ent

Identity

Federa

tion

Access M

anagem

ent

Lifecycle

Managem

ent

Managem

ent

& M

onitoring

Code M

anagem

ent

CIC

DD

evelo

pm

ent

Collabora

tion

SIE

MLog A

naly

tics

APM

BTM

Data/Batch Replication

Managed File Transfer

AsynchIntegration

Process Integration

Agile Innovation Platform – The evolution

Page 11: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

11CNCF Webinar © Capgemini 2020. All rights reserved | 11CNCF Webinar © Capgemini 2020. All rights reserved |

Capgemini Accelerators

• Patterns for globalization

• Documented patterns to address particular requirements

• Design guidelines – e.g. Technology selection

• NFR Different approaches

Code, ranging from…

• Terraform Templates

• Code framework generators

• Continuous Delivery build and deploy pipelines

• Support tools

Operational Processes & Monitoring:

• Standardized monitoring,

• Tools to support operational processes

• Operational guidance

Patterns Code Processes

Page 12: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

12CNCF Webinar © Capgemini 2020. All rights reserved | 12CNCF Webinar © Capgemini 2020. All rights reserved |

Why Oracle?

• CNCF Platinum member

• Linux Foundation Platinum member

• Open Container Initiative (OCI) Member

• Eclipse Foundation

• Sponsor & contributor to key conferences

• DockerCon, Kubecon, CoreOS Fest, others

• Oracle Container Engine for Kubernetes (OKE)

• Oracle Functions (Fn Project)

• Oracle Blockchain Cloud Service (Hyperledger Fabric)

• Oracle Event Hub (Apache Kafka)

• MySQL Cloud Service

• Big Data - Hadoop and Spark

Page 13: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

13CNCF Webinar © Capgemini 2020. All rights reserved | 13CNCF Webinar © Capgemini 2020. All rights reserved |

The Business Case

Meet regulatory

requirements

99.99% Uptime

Improve response times 10X

Increase scalability

Reduce SOA dependence

Improve time to market by at least 40%

Avoid vendor lock-in

Break organisational

silos

Deliver Open Banking via Open APIs ?

Page 14: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

14CNCF Webinar © Capgemini 2020. All rights reserved | 14CNCF Webinar © Capgemini 2020. All rights reserved |

Agenda

Solution

Page 15: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

15CNCF Webinar © Capgemini 2020. All rights reserved | 15CNCF Webinar © Capgemini 2020. All rights reserved |

Microservices Platform

Inte

rnal

SubN

et

OCI Compute

Third Party Provider Apps

On

-Prem

ise

In

tern

al

Netw

orks

Core Banking DBs Core Banking DBs

Golden Gate

DM

Z

SubN

et

API Logical Gateway

API Gateway API GatewayDMZ Gateway

Web Application Firewall

OCI Load BalancerAuthZ/AuthN

Oracle Container Engine CICD

IDCS(Identity Store)

Curity(OAuth Server)

API Management

Mng Console

Dev Portal

OCI Compute

Ingress LB

PO

DS

READSUBS

READ

SYNC READS

PO

DS

READSUBS

READ

SYNC READS

PO

DS

MySQL ReplicaMySQL Source

READSUBS

READ

SYNC READS

Kafka Broker Cluster

Read Topics Write TopicsDIPC RemoteAgent

SCIMAPIs

Oracle Container Registry

Obtain OAuth Obscure

Token

Internet GatewayAPI Calls

Custom API Portal

Ora

cle

Managem

ent C

loud

Reverse Proxy

SIEM

Mutual TLS

Mutual TLS

Page 16: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

16CNCF Webinar © Capgemini 2020. All rights reserved | 16CNCF Webinar © Capgemini 2020. All rights reserved |

API Request Flow – LB/Mutual TLS or Curity/API Gateway Node

AVAILABILITY DOMAIN:AD1 AVAILABILITY DOMAIN:AD2

MSP-RP-Prod-01

AVAILABILITY DOMAIN:AD3

MSP-RP-Prod-02 MSP-RP-Prod-03

API Traffic1. Request from external API consumer to

public IP is routed to Oracle Load Balancer. 2. Load Balancer configured as pass through

for 3 back ends.3. Traffic sent via round robin to Mutual

TLS/Reverse Proxies.4. Reverse proxies authenticate request

through use of Mutual TLS certificate and serial number check or forwarded to Curity for authentication/authorisation (5). The authentication mechanism is determined via URL path rules in the Reverse Proxy configuration

5. Request sent to Curity for token authorisation flow (see next slide)

6. If authentication success, then request is forwarded to the API Gateway Nodes via round robin.

7. API Gateway node receives the request, checks whether API is deployed and applies policies as applicable.

8. Request is forwarded onto the Kubernetes Ingress service to send the request onto the Micro Service

PRIVATE SUBNET

PRIVATE SUBNET

agwn-prd-inst1 agwn-prd-inst2 agwn-prd-inst3

PUBLIC SUBNET

Active Load

Balancer

Passive/Failover

Load Balancer

API Consumer

1

3

7

5

2

4

6

K8s Ingress

https://openbanking.Customer.com/

PRIVATE SUBNET

8

Page 17: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

17CNCF Webinar © Capgemini 2020. All rights reserved | 17CNCF Webinar © Capgemini 2020. All rights reserved |

2

1. API request from TPP2. Mutual TLS termination. NGINX validates client certificate.3. OAUTH token requested4. OAUTH token returned5. API call with OAUTH token in header for PSD2 service6. Token introspection call using NGINX mod for Curity, ie. Is

this a valid token and what are some attributes of the caller?

7. Validate token. If the service call requires Signicat authentication, then Curity does that by punching out to Signicat. User is redirected to Signicat for authentication. A certified and signed SAML token is then embedded in the user request that is validated by the NGINX/Curity Authenticator.

8. Validated requested as the SAML token embedded into JWT and forwarded onto the API Gateway.

9. Original API request forwarded to API Gateway node

64

1

4

5

3

7

8 9

TPP App

Runtime authorisation flow

7

8

Page 18: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

18CNCF Webinar © Capgemini 2020. All rights reserved | 18CNCF Webinar © Capgemini 2020. All rights reserved |

Data Integration Platform Cloud - OGG for Big Data

On-premise data center

Oracle Cloud Infrastructure (OCI)

Autonomous Data Integration Platform CS

PRIME DB

ONLINE DB

Realtime Data replication to Kafka via DIPC Remote Agent

running OGG Big Data ORACLE CLOUD INFRASTRUCTURE REGION (eu-frankfurt-1)

EC-VCN-MSP

12.1.0.2

12.1.0.2

Oracle GoldenGate Classic (12.2)

DIPC

Compute VM

TCP:7819

Kafka

Cluster

Oracle GoldenGate for Big Data 12c (12.3.2.1)

Encrypted Oracle GoldenGate Trail Files with the master key and wallet.

HUB-VCN

NetworkInfra

Hub compartment

LPG

Local Peering Gateway (LPG)

IPSec

VPN

IPSec VPN

DRG

Dynamic Routing Gateway

PROS DB

12.1.0.2

MicroServicesS

O

C

K

S

p

r

o

x

y

s

e

r

v

e

r

K8s

Cluster

Secure Connection to Kafka Cluster via TLS

MySQL

Page 19: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

19CNCF Webinar © Capgemini 2020. All rights reserved | 19CNCF Webinar © Capgemini 2020. All rights reserved |

Zookeeper 3Zookeeper 2Zookeeper 1

AVAILABILITY DOMAIN:AD1 AVAILABILITY DOMAIN:AD2

SUBNET:k1 SUBNET:k2

K8s Worker 1

AVAILABILITY DOMAIN:AD3

SUBNET:k3

K8s Worker 2 K8s Worker 3

Microservice Access to MySQL

1. DIPC agent Producer sends data to Transactional Kafka Topic

2. Kafka identifies changes and replicates to replicas on other Kafka Brokers

3. Zookeeper keeps a record of the Broker, Topics, offsets and consumer status for the local Broker and shares this with the Zookeeper cluster

4. MS Subscriber(Consumer)/Producers read/write data from Transactional Kafka Topic respectively

5. MS Subscriber(Consumer) Account Details and inserts/updates into MySQL Master

6. MySQL Replica connection to Source requests change log details and applies changes to the Replica DB

SUBNET: mysql

SUBNET: kafka

Broker 1

MySQL Source

Broker 2 Broker 3

MySQL Replica

Subscribe Account Details

Produce Account Details

MySQL Client MySQL Replication Kafka Broker Connection

4

5

Subscribe Debt Register

Internal Kafka Replication

SUBNET

DIPC agent

1

4

6

2 2

3 33

Internal Zookeeper

Cluster Traffic

4

Kafka Data Flow

Page 20: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

20CNCF Webinar © Capgemini 2020. All rights reserved | 20CNCF Webinar © Capgemini 2020. All rights reserved |

WriteRead

Kafka Solution – Experience and Lessons Learned

• Lessons learned• Different configurations for different requirements• Parallelism has limitations

Kafka/Zookeeper Cluster

Host 1

Zookeeper 1

Kafka Broker 1

Topic A

Topic B

Partition 1 - Lead

Partition 2 - Replica

Partition 3 - Replica

Host 2

Zookeeper 2

Kafka Broker 2

Topic A

Topic B

Partition 2 - Lead

Partition 1 - Replica

Partition 3 - Replica

Host 3

Zookeeper 3

Kafka Broker 3

Topic A

Topic B

Partition 3 - Lead

Partition 1 - Replica

Partition 2 - Replica

Consumer Group Topic A

Partition 1 - Lead

Partition 2 - Replica

Partition 3 - Replica

Partition 2 - Lead

Partition 1 - Replica

Partition 3 - Replica

Partition 3 - Lead

Partition 1 - Replica

Partition 2 - Replica

Consumer Group Topic B

Producer Topic A

Producer Topic B

C1

C2

C3

C1

C2

C3

Page 21: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

21CNCF Webinar © Capgemini 2020. All rights reserved | 21CNCF Webinar © Capgemini 2020. All rights reserved |

CI/CD Architecture on OCI

Page 22: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

22CNCF Webinar © Capgemini 2020. All rights reserved | 22CNCF Webinar © Capgemini 2020. All rights reserved |

CI/CD for Infrastructure

• Deployed Jenkins on Oracle Cloud Infrastructure (OCI) with Container

Engine for Kubernetes (OKE) in Master/Worker Architecture

• Configured Jenkins with SSL Using Nginx Reverse Proxy

• Integrated Jenkins with Bitbucket Webhook

• Installed and Configured Terraform for provisioning infrastructure on

Oracle Cloud Infrastructure (OCI). Used local-exec and remote-exec

provisioners with terraform to configure VMs and software

• Used OCI Object Storage as backend to store the tfstate files

Page 23: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

23CNCF Webinar © Capgemini 2020. All rights reserved | 23CNCF Webinar © Capgemini 2020. All rights reserved |

Agenda

Results

Page 24: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

24CNCF Webinar © Capgemini 2020. All rights reserved | 24CNCF Webinar © Capgemini 2020. All rights reserved |

The Business Case

Meet regulatory

requirements

99.99% Uptime

Improve response times 10X

Increase scalability

Reduce SOA dependence

Improve time to market by at least 40%

Avoid vendor lock-in

Break organisational

silos

Deliver Open Banking via Open APIs

All regulatory milestones

met

Transition to new

Operating Model

50% reduction in

time to market

Ability to scale up/down

in minutes

10X overachievement of response time

NFR

Cloud-native portable solution

Zero SOA footprint

99.99% Uptime

exceeded

Open Banking Portal and Services delivered

Page 25: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

25CNCF Webinar © Capgemini 2020. All rights reserved | 25CNCF Webinar © Capgemini 2020. All rights reserved |

Customer Open Banking Platform - Delivered

‘I cannot stress enough the opportunity that lies in what this team has delivered. If we look past the undeniable and impressively better response times, we have provided Customer with flexibility to better organize and align its business around its APIs.’

‘This is more than compliance, it is the ability to deliver automation, new business opportunities, new business models even, better and faster.’

Customer’s Head of Digital Proposition & Design

Page 26: Serving Millions of Customers with Cloud Native and DevSecOps · 2020. 8. 31. · Account Details and inserts/updates into MySQL Master 6. MySQL Replica connection to Source requests

26CNCF Webinar © Capgemini 2020. All rights reserved | 26CNCF Webinar © Capgemini 2020. All rights reserved |

Resources

Agile Innovation Platformhttps://cutt.ly/9ooB4CO

Free Tieroracle.com/cloud/free

Learn more oracle.com/cloud-native