GCP Cloud Native Reference Architecture T24
GCP Cloud Native Reference Architecture T24
Contents
GCP Cloud Native ................................................................................. 1
Reference Architecture R20 v1.0, April 2020 ........................................ 1
1 About this document ........................................................................ 3
1.1 History ................................................................................................................................ 3
1.2 Legal .................................................................................................................................. 3
2 Introduction ...................................................................................... 5
2.1 GCP architecture diagram .................................................................................................. 6
2.2 Virtual Private Cloud (VPC) ................................................................................................ 7
2.3 Users .................................................................................................................................. 7
3 Peripheral services........................................................................... 8
3.1 Google Cloud DNS ............................................................................................................. 8
3.2 Internet gateway ................................................................................................................. 8
3.3 On premise connectivity ..................................................................................................... 9
3.4 API gateway ....................................................................................................................... 9
3.5 Cloud Key Management Service ...................................................................................... 10
3.6 GCP Firewall .................................................................................................................... 10
3.7 Cloud Armor Web Application Firewall ............................................................................. 10
3.8 Third Party WAFs ............................................................................................................. 11
3.9 Google Cloud load balancer ............................................................................................. 11
3.10 Google Container Registry ............................................................................................... 12
3.11 Message broker ............................................................................................................... 12
2
GCP Cloud Native Reference Architecture R20 v1.0
1.2 Legal
© Copyright 2019 Temenos Headquarters SA. All rights reserved.
While all reasonable attempts have been made to ensure accuracy, currency and
reliability of the content in this guide, all information is provided "as is".
In no event will TEMENOS be liable to you or anyone else for any decision made or
action taken in reliance on the information in this document or for any
consequential, special or similar damages, even if advised of the possibility of such
damages.
TEMENOS does not accept any responsibility for any errors or omissions, or for the
results obtained from the use of this information. Information obtained from this
guide should not be used as a substitute for consultation with TEMENOS.
The content of this guide is protected by copyright and trademark law. Apart from
fair dealing for the purposes of private study, research, criticism or review, as
permitted under copyright law, no part may be reproduced or reused for any
3
GCP Cloud Native Reference Architecture R20 v1.0
4
GCP Cloud Native Reference Architecture R20 v1.0
2 Introduction
Our GCP Cloud Native Reference Architecture, though tried and tested, is a
model architecture. You’re free to change any part of it to meet your particular
requirements.
We designed this architecture for T24 Transact, our next generation core banking
solution. T24 Transact is a classic three tier application – Web, Application and
Database. We’ve included the message broker for scalability and availability
reasons.
Our reference architecture is designed to run in containers in the public GCP cloud.
The containers run on GCE, of course. That’s different from traditional on premise
architectures, which are installed and run on either virtual or physical hardware.
5
GCP Cloud Native Reference Architecture 1.0
6
GCP Cloud Native Reference Architecture 1.0
2.3 Users
Our channels users are internet users. Our branch users are the bank’s employees
and their customers, who are accessing the bank’s system from a branch.
You usually make branch connections through a secure VPN, but our architecture
needs Internet gateways and API gateways – this ensures that our infrastructure is
safe from the internet.
7
GCP Cloud Native Reference Architecture R20 v1.0
3 Peripheral services
3.1 Google Cloud DNS
DNS servers play a very important part in your architecture, if you’re exposing part
of your architecture over the internet. We use DNS servers:
Google Cloud DNS is a scalable, reliable and managed authoritative Domain Name
System (DNS) service running on the same infrastructure as Google. It has low
latency, high availability and is a cost-effective way of making your applications and
services available to your users.
Google Cloud DNS is programmable. You can easily publish and manage millions
of DNS zones and records using its simple user interface, command-line interface
or API.
8
GCP Cloud Native Reference Architecture R20 v1.0
Traffic travelling between the two networks is encrypted by one VPN gateway then
decrypted by the other VPN gateway. This protects your data as it travels over the
Internet.
Metering.
Access Control
Resiliency.
Apigee is the official API management solution in GCP. However, you’ll need a
separate Apigee account to access Apigee.
9
GCP Cloud Native Reference Architecture R20 v1.0
It supports AES256, RSA 2048, RSA 3072, RSA 4096, EC P256, and EC P384
cryptographic keys.
You can only enable Cloud Armor for GCP Global Load Balancer backends, which
effectively means:
K8S Ingress’
10
GCP Cloud Native Reference Architecture R20 v1.0
It makes sense to use Cloud Armor in front of a public service, but it’s not
applicable to internal configurations.
If you would like to use additional security layer for internal traffic - and potentially
protect T24 endpoints from risks such as SQL injection, brute force attacks and
bots, you might consider using a 3rd party WAF, like F5's.
You can find a list of partners Google recommends for 3rd party WAF
solutions at https://cloud.google.com/security/partners/
AlertLogic
Brocade
CloudFlare
F5
Imperval Incapsula
NGINX WAF
Reblaze
11
GCP Cloud Native Reference Architecture R20 v1.0
SSL Proxy
TCP Proxy
Network TCP/UDP
Internal TCP/UDP
In our reference architecture, we run public facing applications on the public cluster,
for example the older T24 Browser. When more than one T24 Browser container is
running then you need a load balancer to distribute the load between them. The
traffic to web containers is HTTP of HTTPS. HTTP load balancer is perfect for this
requirement.
Operating at the individual request level (Layer 7), HTTP load balancer routes traffic
to targets within the GCP Virtual Private Cloud based on the content of the request.
TAFJ, our Platform framework, uses JMS and MDBs which use the JCA resource
adapter to connect to message brokers. Until this changes and we support AMQP
we utilising Apache ActiveMQ installed on Virtual machines. You can deploy
Apache ActiveMQ in either Master – Slave mode or in multi master setup to achieve
high availability, but this depends on customer preference and skill set.
12
GCP Cloud Native Reference Architecture R20 v1.0
Google runs billions of containers a week, and they were running containers for
over a decade before Docker made containers popular. Google’s Borg was the first
ever container cluster management system. Later, the engineers who worked on
the Borg project created Kubernetes (K8S) to address pain points that users had
identified with Borg.
Kubernetes was handed over to CNCF and open sourced in 2014. Since then it’s
become the most popular container cluster management/orchestration system
available. Most cloud providers provide Kubernetes as a managed service to make
it simple for the users.
Kubernetes Engine allows us to get up and running with Kubernetes very quickly,
by completely eliminating the need to install, manage, and operate our own
Kubernetes clusters.
13
GCP Cloud Native Reference Architecture R20 v1.0
Term Definition
Master node The master node is responsible for managing the cluster. The
master coordinates all activities in your cluster, such as scheduling
14
GCP Cloud Native Reference Architecture R20 v1.0
The node should also have tools for handling container operations,
such as Docker or rkt (GKE only supports Docker, though containerd
support is currently in Beta.). A Kubernetes cluster that handles
production traffic should have a minimum of three nodes.
Node pool Although not really a Kubernetes term, node pool is a good term to
know. A node pool is a subset of node instances within a cluster that
all have the same configuration.
15
GCP Cloud Native Reference Architecture R20 v1.0
Kubernetes config A file that defines the configuration for a Kubernetes object. Using
file ‘kubectl’, Kubernetes objects can be created, updated, and deleted.
16
GCP Cloud Native Reference Architecture R20 v1.0
5 Deployment on GKE
In our architecture, we’ve used two Kubernetes clusters – one cluster for public
facing user agents and APIs and the other cluster for Applications like Transact,
Infinity and TPH.
In GKE, it is possible to attach more than one node pool to a cluster. This makes it
possible to have just one cluster and run all our deployments in it by isolating them
to a specific node pool and controlling access using firewall rules.
Another reason for using fewer clusters is that we get better resource utilisation.
Packing in more containers on the nodes and using fewer clusters means fewer
master nodes. Because GKE is a managed service it manages the master node –
provisioning, scaling, patching and so on – for you.
Each cluster runs its own master node and of course its replicas.
We recommend three master nodes for PROD systems.
17
GCP Cloud Native Reference Architecture R20 v1.0
6 Microservices
Transactions in banking systems are stored in OLTP systems and are required to
be really fast when it comes to committing transactions but reading is generally not
that important. Enquiries on the other hand require really fast response time when
reading (selecting) data. For this reason we have decided in Temenos to
architecturally separate these two types of requests.
The transactional requests are processed normally with no change to what we were
doing until now. Specific read requests that are particularly expensive and frequent
are services by exposed microservices.
We need three components:
1) An event streaming product.
We need an event streaming product for Transact to stream business events. Now
we have support available for Kafka which will be run in GKE.
2) Ingester
Ingester is a service, written in Java, which consumes the data made available by
the event streaming product. In GCP the Injester is deployed in GKE.
3) NoSQL Database.
These are needed as data stores for the microservices. For all microservices, we
prefer/support Cloud Datastore which is a highly scalable NoSQL database offered
as a managed service. We are in the process of evaluating MongoDB but it is
unlikely it will be available in R20.
Although Stackdriver is preferred as the GCP native solution, there is also support
for Splunk through the Splunk Add-on for Google Cloud Platform. After the
installation of the add-on, you can analyse the data using prebuilt panels that are
included with the add-on.
18
GCP Cloud Native Reference Architecture R20 v1.0
8 Database
8.1 NuoDB
NuoDB’s distributed SQL database combines the elastic scale and continuous
availability of the cloud with the transactional consistency and durability that
databases of record demand.
Most importantly, NuoDB is Active Active cross cloud. NuoDB is not available as a
managed service in GCP just yet.
19