Top Banner
Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo
60

@ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

May 20, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Building Microservices@ SquarespaceQCon New York 2017

Franklin Angulo@feangulo

Page 2: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 3: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 4: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 5: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 6: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

INSERT IMAGE HERE

Page 7: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

AGENDA01 Microservice Framework02 Organizational Changes03 New Opportunities & Challenges

Page 8: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

SERVICE CORE

Microservice Framework

HealthchecksService

DiscoveryContextual Information

Structured Logging

Metrics

API Documentation

Distributed Tracing

Dynamic Configuration

Page 9: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Healthchecks

service: name: taxation version: 1.0

server: port: 8080management: port: 8081

Page 10: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Healthchecks

http://taxation101.eqx.dal.prod.squarespace.net:8081/healthcheck

{"status":"UP","taxation-core":{

"healthy":true"message":"Service is running version TAX-459"

}}

Page 11: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Service Discovery & Registration

Service BService A Service C

Service Discovery

ConsulZookeeper

Page 12: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Service Discovery & Registration

Page 13: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Contextual Information

Clientv3.1 Taxation Service

Billing Service

Context IdClient VersionClient Source

Type

JaOLrH2O

Page 14: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Structured Logging

Taxation Service

GC LogsAccess LogsApplication Logs

Page 15: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Structured Logging

tail -f /data/logs/taxation-access.log

2017-03-22 07:24:45:026 GMT

thread=jetty-846contextId=JaOLrH2OcontextSourceType=billingclientVersion=taxation-client-3.1level=INFOclass=AccessLogip=10.100.101.205method=GETuri=/api/1/taxation/ratesqueryString=httpVersion=HTTP/1.1responseCode=200responseTimeMs=39responseSize=-1

logging.level: DEBUGlogging: level: org.springframework: INFO com.squarespace.metrics.Graphite: "OFF" directory: /data/logs extension: .log maxFileSize: 512MB totalSizeCap: 8GB maxHistory: 5

Page 16: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Metrics

graphite: enabled: true enableConsole: false host: {{ graphite_host }} port: {{ graphite_port }}

Page 17: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Metrics

http://taxation101.eqx.dal.prod.squarespace.net:8081/metrics

{"mem":2210292,"mem.free":831939,"processors":2,"threads":89,"GET.api.1.taxation.tax-overrides.sourceTypes.admin.requests.snapshot.stdDev":0,"GET.api.1.taxation.exemptions.externalId.requests.snapshot.99thPercentile":90,"GET.api.1.taxation.exemptions.requests.oneMinuteRate":2.964393875E-314,"GET.api.1.taxation.exemptions.externalId.requests.meanRate":1.4890452464986816,"PUT.api.1.taxation.tax-overrides.id.decisions.requests.snapshot.98thPercentile":22,"GET.api.1.taxation.vat-countries.list-results.sourceTypes.billing.requests.snapshot.p75":0}

Page 18: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Metrics

Page 19: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Distributed Tracing

Page 20: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Dynamic Configuration

vars: tracing_sample_rate: prod: 0.2 stage: 1.0 qa1: 1.0

Page 21: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Dynamic Configuration

Page 22: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

API Documentation

Page 23: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

SERVICE CLIENT

Microservice Framework

Client-Side Load Balancing

Latency & Fault Tolerance

Client-Side Caching

Asynchronous Request

Execution

HTTP Request Builders

Page 24: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Client-Side Load Balancing

Client Service X

Service X

Service X

Service Discovery

Application Container

Page 25: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Latency & Fault Tolerance

Service B

Service A

Service C

Service A Client

Service B Client

Service C Client

User Request

Application Container

Page 26: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Latency & Fault Tolerance

Service B

Service A

Service C

Service A Client10 Threads

Service B Client5 Threads

Service C Client5 Threads

User Request

Fail fast, fail silent, or fallback

Application Container

Page 27: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Hystrix

Page 28: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Client-Side Caching

Service XService X ClientUser

Request

Application Container

Page 29: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Asynchronous Request Execution

Client

Service A

Service Z

Application Container

Service B

Service C

Service D

Page 30: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

HTTP Request Builders

getCurrentProductOfferingTemplate = group.newTemplateBuilder(“getCurrentProductOffering”).withMethod(HttpMethod.GET.name()).withUriTemplate(RESOURCE_URL + “/offerings/countries/{country}/current”).build();

Page 31: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

ORGANIZATIONALCHANGES

Page 32: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Squarespace Engineering @ 2013

Server Systems Product & Data

Page 33: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 34: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Squarespace Engineering @ 2014

Server TechOpsSRE Core Svcs

Page 35: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Location TaxationBilling

Currency

The First Services

Page 36: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Provisioning

Provisioning

● Cobbler● IP Plan● DNS● LDAP● YUM● NTP

Page 37: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Ansible & Configuration Management

Page 38: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Release Engineering /

Developer Productivity

Release Engineering & Developer Productivity

Drone

Helm

Page 39: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Ansible & Configuration Managementhello-service/deploy/deploy.yml:

Page 40: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Ansible & Configuration Management

hello-service/deploy/config.yml.j2:

Page 41: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Build & Deploy Tooling

Page 42: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Observability & Alerting

Observability & Alerting

Page 43: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Observability & Alerting Tooling

Page 44: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Observability & Alerting Tooling

Page 45: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Observability & Alerting Tooling

Page 46: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Observability & Alerting Tooling

Page 47: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Observability & Alerting Tooling

Page 48: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Service Dashboard

Page 49: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

NEW OPPORTUNITIES AND CHALLENGES

Page 50: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 51: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 52: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 53: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 54: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 55: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 56: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 57: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational
Page 58: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

FUTURE WORKSelf-service provisioning

Code generation

Pull-based metrics

Log collection improvements

Distributed tracing improvements

Alerting improvements

Page 59: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

Microservices Journey

2013: small (< 50 engineers)build product & grow customer basewhatever works

2014: medium (< 100 engineers)we have a lot of customers now!whatever works doesn't work anymore

2016: large (100+ engineers)architect for scalability and reliabilityorganizational structures

?: XL (200+ engineers)

Page 60: @ Squarespace - QCon New York...Building Microservices @ Squarespace QCon New York 2017 Franklin Angulo @feangulo INSERT IMAGE HERE AGENDA 01 Microservice Framework 02 Organizational

QUESTIONSThank you!

squarespace.com/careers

Franklin Angulo@feangulo