preparing for the cloud - topconf software conferences · preparing for the cloud. about me. agenda...

28
Mihkel Nõges 20.11.14 Preparing For The Cloud

Upload: hakhuong

Post on 13-May-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Mihkel Nõges 20.11.14

Preparing For The Cloud

About Me

Agenda

• Intro to TransferWise

• Technical Platform

• TransferWise and the Cloud • Opportunities

• Risks

• Next Steps

Poll

7

B) I will transform existing not-Cloud hosted solution to the Cloud.

A) I will build a new solution, running in the Cloud from the start.

Which best describes your current activities or plans for the Cloud?

Intro to TransferWise

TransferWise

• New way to transfer money abroad

• Transparent pricing

• At lowest possible cost

• Trustworthy & credible

Founders Taavet & Kristo

Short Term Goals

• Growth • Best customer experience

• Global coverage

• More supported countries and currencies

• More alternative payment methods

Best Customer Experience

Global CoverageSupported Countries and Currencies

Euro - Single European Payments Area (EUR)

Switzerland (and Lichtenstein) - Swiss Francs (CHF)

Singapore - Singapore Dollar (SGD)

United Kingdom - Pounds Sterling (GBP)

Sweden - Swedish Krone (SEK)

New Zealand - New Zealand Dollar (NZD)

USA - US Dollar (USD) Denmark - Danish Krone (DKK), Norway - Norwegian Krone (NOK)

Hong Kong - Hong Kong Dollar (HKD)

Australia - Australian Dollar (AUD)

Canada - Canadian Dollars (CAD)

Georgia - Georgian Lari (GEL)

Hungary - Hungarian Forint (HUF)

Japan - Japanese Yen (JPY) Romania - Romanian Leu (RON)

India - Indian Rupee (INR) Czech Republic - Czech Koruna (CZK)

Turkey - Turkish Lira (TRY)

Poland - Polish Złoty (PLN) Bulgaria - Bulgarian Lev (BGN) Malaysia - Malaysian ringgit (MYR)

TransferWise Team

• Developers organised by technical Products/Services/Unified part of user interaction

• Developer count from 10 to 40 in past year

• Infra team: • Has recently doubled from 1 to 2 persons

• QA Team: • Only 1 person as dedicated manual QA

Technical Platform

Platform: One Monolith

Consumer, Admin (Operations, Customer Support) Groovy Server Pages

(Grails app)

Database (MySQL)

Admin Web BrowserConsumer Web Browser

Platform: Modularisation

Consumer, Admin (Operations, Customer Support) Groovy Server Pages

(Grails app)

Database (MySQL)

Admin Web BrowserConsumer Web Browser

Shared Modules

Admin Only Modules

Consumer Only Modules

Platform: New ClientsAndroid iOS 3rd

party

Database (MySQL)

Web Browser via VPNConsumer Web Browser

Consumer Groovy Server Pages and REST API, Admin (Operations, Customer Support)

Groovy Server Pages (Grails app)

Shared Modules

Admin Only Modules

Consumer Only Modules

Platform: Split ProcessesWeb

Frontend (angular.js)

Android iOS 3rd party

Consumer REST API (Grails app)

Admin: Operations, Customer Support

Groovy Server Pages (Grails app)

Shared Modules

Admin Only Modules

Consumer Only Modules

Database (MySQL)

Web Browser via VPN

Platform: MicroservicesWeb

Frontend (angular.js)

Android iOS 3rd party

Consumer REST API (Grails app)

Admin: Operations, Customer Support

Groovy Server Pages (Grails app)

Shared Modules

Admin Only Modules

Consumer Only Modules

Database (MySQL)

Microservices (Java apps)

Service 1 Service 2 Service 3 Service …

Monitoring APIs

Web Browser via VPN

Sample Service: Rates

Rate Service

Database (MySQL)

3rd Party Rate Service 1

3rd Party Rate Service 2

Consumer Admin

Rate Consumer

Module

Rate Admin Module

Services Platform

• Shared by majority of services built internally, but not limiting the choices for the future

• Java Virtual Machine based (Java 7 & 8)

• Spring Boot early adoption

• Shared Database

Service Contracts

• API definition

• Protocols

• Client libraries

• Common packaging and deployment process

• Common monitoring standards

TransferWise and the Cloud

Today’s Situation• Private Infrastructure

• Virtualisation by VMWare

• Primary Data Center in UK, Secondary in Germany • Data replication between Data Centres

• Some development tools are SaaS solutions • Google

• Assembla

• Bugsnag, New Relic, Mixpanel, Datadog

• Slack

Deployment ModelData Center 1 (Active) Data Center 2 (Standby)

Node 1: ConsumerNode 2: Consumer

Node 3: Database

Node 4: Admin

Node 1: ConsumerNode 2: Consumer

Node 3: Database

Node 4: Admin (Used for time-consuming

read-only reporting)

ReplicationVMW

are

VMW

are

Cloud Opportunities• Lower latency

• Run apps closer to customers for lower latency

• Better global coverage with multiple active regions

• Improve availability • Ability to scale and failover one region to other regions

resources seamlessly

• Reduce system maintenance efforts • Take advantage of PaaS services

Cloud Risks

• Lack of competence in the team

• Lack of control over the data and computing resources

• Lack of compliance with financial regulations

• Price

Next Steps for the Cloud

• Continue separation of Micro-Services and following the best practices

• Evaluate alternative Cloud Platforms

• Start moving to the Cloud Service by Service

Cloud Ready ServicesThe Twelve-Factor App http://12factor.net/

I. Codebase One codebase tracked in

revision control, many deploys

II. Dependencies Explicitly declare and isolate

dependencies

III. Config Store config in the environment

IV. Backing Services Treat backing services as

attached resources

V. Build, release, run Strictly separate build and run

stages

VI. Processes Execute the app as one or more stateless processes

VII. Port binding Export services via port binding

VIII. Concurrency Scale out via the process model

IX. Disposability Maximize robustness with fast startup and graceful shutdown

X. Dev/prod parity Keep development, staging, and production as similar as

possible

XI. Logs Treat logs as event streams

XII. Admin processes Run admin/management tasks

as one-off processes

Summary

• TransferWise is growing rapidly

• Transformation to Microservices supports growth

• Private Infrastructure with early cloud elements provides best options for now

• Future steps are evaluated based on direct impact on company main goals

Q&A

Mihkel Nõges [email protected]

Thanks!

4