@ squarespace - qcon new york...building microservices @ squarespace qcon new york 2017 franklin...

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

Upload: others

Post on 20-May-2020

7 views

Category:

Documents


0 download

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