Moving Cloud Services to Service Fabric Claus Nielsen (@clausndk) CTO Sekoia cln@sekoia.dk
327 nights spent with clients SEKOIA FACTS 1.2 M care home tasks each month 327 nights spent with clients 80 care homes in 4 countries ENABLING CARE And throw in a dozen dirty sleeping bags as well
Individual / Organization Coherent workflow for care delivery Resident and goals Applications Basic data Tasks Observations Instructions Plans Medicine Health data Calendar Communication Plans Goals Method Evaluation Individual / Organization Reporting
Cloud Services Web Worker
Cloud Services SLA: 99.95% Web 2 instances Worker 2 instances
Cloud Services HTTPS Requests VIP V1 (Production) V2 (Staging)
Cloud Services HTTPS Requests VIP V1 (Staging) V2 (Production)
… CS1 … CSN Customer1 CustomerN Initial setup Customers could have different client count, and therefor different load.
Cloud Services 100 servers 25 customers 4 new servers per customer 1 core 3,75GB RAM 25 customers 4 new servers per customer Monolith Multiple applications/services This won’t scale
2 birds with one stone New infrastructure needed New application deployment needed Evolution over revolution Solution: Event Driven Service Oriented Architecture
Why Services? A set of business promises Decision autonomy Ease of scaling the organisation Language and framework independance Faster development Lower cohesion
Why Services? A techical set of promises Autonomy Faster development Lower cohesion Smaller set of dependencies Easier to scale
Service template CQRS ES C# and TypeScript Separation of concern One source of truth Audit log included Facts C# and TypeScript When we grow, we grow our reach
Looking towards Service Fabric Orchestration Discovery Application development Reliable services Container support
Distribution in a cluster Build 2015 11/8/2018 11:56 PM Distribution in a cluster App1 App2 © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Proxying HTTP Requests Load Balancer ?
Introducing Træfik (Pronounced Traffic) It’s fast No dependency hell, single binary made with go Tiny official docker image Rest API Hot-reloading of configuration. No need to restart the process Circuit breakers, retry Round Robin, rebalancer load-balancers Metrics (Rest, Prometheus, Datadog, Statd) Clean AngularJS Web UI Websocket, HTTP/2, GRPC ready Access Logs (JSON, CLF) Let’s Encrypt support (Automatic HTTPS with renewal) Proxy Protocol support High Availability with cluster mode (beta)
Introducing Træfik (Pronounced Traffic) Docker / Swarm mode Kubernetes Mesos / Marathon Rancher (API, Metadata) Consul / Etcd / Zookeeper / BoltDB Eureka Amazon ECS Amazon DynamoDB File Rest API
Introducing Træfik (Pronounced Traffic)
Demo
Questions?
Event Sponsors Expo Sponsors Expo Light Sponsors
Claus Nielsen (@clausndk) CTO Sekoia cln@sekoia.dk Thank you! Claus Nielsen (@clausndk) CTO Sekoia cln@sekoia.dk