SlideShare a Scribd company logo
www.safespring.com
Anders Bruvik
Infrastructure engineer at Safespring
Creating an open source load balancer for S3
@bruvik
Infrastructure company based in Sweden/Norway
Offers storage, compute and backup as a service
from local data centres
Built with Open Source – Openstack/CEHP
What is SUNET

object storage?
Private cloud developed by Safespring
A solution to data gravity

On premises

Data stay close to its users
Available

Expandable

Distributed
The task
● Create a reusable load balancer built from
open source components
● Support a hybrid cloud service - we want to
deploy in customer datacenter
● Focus on simplicity, reliability, speed
We control
They control
Creating an open source load balancer for S3
The components
● Bird
● Træfik
● Etcd
● Letsencrypt
● Radosgw (Ceph)
● Prometheus
BGP everywhere
Internet as a design pattern for the datacenter
cluster network ensure scalability and predictable
performance.
No surprises now, no surprises in the future.
Technically, this means BGP is used everywhere,
even for the last hop to each server node.
ECMP
● We chose ECMP as routing strategy
● Ensures maximum capacity is used
● Achieve redundancy
● Per flow ECMP
Creating an open source load balancer for S3
Creating an open source load balancer for S3
Fast path design
● Open Source Load balancer/Reverse proxy
written in GO
● Lightweight, fast, easy configurable
● Can dynamically load configuration changes
Træfik
architecture
Creating an open source load balancer for S3
Træfik
configuration
Multiple Træfik instances sharing same
configuration
Static configuration as files
Dynamic configuration stored in etcd cluster
ETCD
● Distributed key value store
● Used for keeping dynamic Træfik
configuration synchronised
Creating an open source load balancer for S3
Letsencrypt
● TLS is terminated at the load balancer
● Allows us to use letsencrypt certificates - free
and easy
● Træfik supports ACME, data stored in KV-
store
Handling failure
Each Træfik instance has multiple backends
Using weighting to default to backend on same
physical host
Monitoring status using systemd service
Remove route - restart services
Monitoring
Prometheus is used for monitoring
Træfik has a built in metric exporter
Creating an open source load balancer for S3
Creating an open source load balancer for S3
Configuration
management
We use Ansible for configuration management
Heavily investing in Ansible roles to make
configuration reusable
Separating configuration data and configuration
Building tooling to convert Ansible roles to
images, docker images or deploy directly
Safespring DevOps
- Workflow
What is needed?
● A mechanism to build 

(Smie - forge).
● A place to store artefacts - could be image,
container or binary 

(Naust - boat house)
● Mechanism for deployment (Seter -
settlement) that could describe different
runtime environments
Safespring
DevOps - Smie
What is Smie?
● Wrapper around Packer (Hashicorp)
● Produces artefacts
● All artefacts can be built separately
● Role: service, endpoint or component
Safespring
DevOps - Naust
What is Naust?
● Both source and destination for Smie (cut
dependencies to Internet repos)
● Full control over everything built for
production
● Protocols:
○ HTTPS/file, S3, Docker Registry
● Protocols depend on target systems
● Everything built get an URI with metadata
(type,version, date)
Safespring
DevOps - Seter
What is Seter?
● Wrapper around Ansible and Terraform
provisioning mechanism
● Describes a system which is a set of artefacts
in order to get a component running
● e.g Ceph Object Storage backend needs a set
of OSD and RadosGW role images
● Also describes target: physical node, virtual
node or container
System
art 2
Physical
art 1
Virtual
Contain
er
art 1
Safespring DevOps
- Advantages
● Update systems faster
○ Lower barrier to changes 

● Reproduce systems as needed
○ Build everything with as few dependencies as possible

● Add or change easily
○ Target the affected nodes easily

● Verify that software works as intended

● Scales better with many operators
Does it work?
Yes!
Future work
Actually deploy this :)
Test failure scenarios - chaos engineering
Metrics – getting useful
Move components to docker images
Test and profile different load balance strategies
www.safespring.com
QA
Follow us
linkedin.com/company/safespring

twitter.com/safespring
twitter.com/bruvik
2018-10-01

More Related Content

PDF
OpenNebula Conf 2014 | Bootstrapping a virtual infrastructure using OpenNebul...
PPTX
Apache Cassandra Lunch #52: Airflow and Cassandra for Cluster Management
PDF
OpenNebula Conf 2014: Expanding OpenNebula´s support for Cloud Bursting - Emm...
PDF
OpenNebula Conf | Lightning talk: Managing a Scientific Computing Facility wi...
PDF
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
PDF
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
PDF
OpenNebulaConf2017EU: Hyper converged infrastructure with OpenNebula and Ceph...
PDF
OpenNebula Conf: 2014 | Lightning talk: Managing Docker Containers with OpenN...
OpenNebula Conf 2014 | Bootstrapping a virtual infrastructure using OpenNebul...
Apache Cassandra Lunch #52: Airflow and Cassandra for Cluster Management
OpenNebula Conf 2014: Expanding OpenNebula´s support for Cloud Bursting - Emm...
OpenNebula Conf | Lightning talk: Managing a Scientific Computing Facility wi...
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
OpenNebulaConf2017EU: Hyper converged infrastructure with OpenNebula and Ceph...
OpenNebula Conf: 2014 | Lightning talk: Managing Docker Containers with OpenN...

What's hot (20)

PDF
Netflix Data Benchmark @ HPTS 2017
PDF
OpenNebula Conf 2014 | Understanding the OpenNebula Model for Cloud Provision...
PDF
OpenNebula Conf 2014 | OpenNebula as alternative to commercial virtualization...
PDF
以 Kubernetes 部屬 Spark 大數據計算環境
PPTX
Data Engineer's Lunch #46: Node.js and API calls
PDF
State of openstack industry: Why we are doing this
PDF
OpenNebula Conf 2014 | OpenNebula and MooseFS for disaster recovery: real clo...
PPTX
Topologies of OpenStack
PDF
OpenStack Networks the Web-Scale Way - Scott Laffer, Cumulus Networks
PPTX
How Docker Accelerates Continuous Development at ironSource: Containers #101 ...
PDF
OpenNebulaConf2017EU: FairShare Scheduling by Valentina Zaccolo, INDIGO
PPTX
OpenStack and nfvo
PDF
OpenNebula Conf 2014 | Building Hybrid Cloud Federated Environments with Open...
PDF
OpenNebula Conf 2014 | ONE BIT to rule them all - Stefan Kooman
PPTX
Samuel Bercovici - lbaaS for Havana
PDF
OpenNebula Conf 2014 | The rOCCI project - a year later - alias OpenNebula in...
PDF
Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015
PDF
OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
PPTX
Cloud Power - The Early OpenStack Architecture
ODP
Ansible + Amazon AWS talk installfest.cz 2016
Netflix Data Benchmark @ HPTS 2017
OpenNebula Conf 2014 | Understanding the OpenNebula Model for Cloud Provision...
OpenNebula Conf 2014 | OpenNebula as alternative to commercial virtualization...
以 Kubernetes 部屬 Spark 大數據計算環境
Data Engineer's Lunch #46: Node.js and API calls
State of openstack industry: Why we are doing this
OpenNebula Conf 2014 | OpenNebula and MooseFS for disaster recovery: real clo...
Topologies of OpenStack
OpenStack Networks the Web-Scale Way - Scott Laffer, Cumulus Networks
How Docker Accelerates Continuous Development at ironSource: Containers #101 ...
OpenNebulaConf2017EU: FairShare Scheduling by Valentina Zaccolo, INDIGO
OpenStack and nfvo
OpenNebula Conf 2014 | Building Hybrid Cloud Federated Environments with Open...
OpenNebula Conf 2014 | ONE BIT to rule them all - Stefan Kooman
Samuel Bercovici - lbaaS for Havana
OpenNebula Conf 2014 | The rOCCI project - a year later - alias OpenNebula in...
Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015
OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
Cloud Power - The Early OpenStack Architecture
Ansible + Amazon AWS talk installfest.cz 2016
Ad

Similar to Creating an open source load balancer for S3 (20)

PDF
Infrastructure as code
PDF
Slide DevSecOps Microservices
PDF
Secure Software Ecosystem Teqnation 2024
PDF
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
PDF
DevSecOps: The Open Source Way
PDF
DevSecOps: The Open Source Way
PDF
AWS live hack: Docker + Snyk Container on AWS
PDF
Calgary OpenStack Meetup January 2015
PPTX
Some Advanced OpenStack Overview Document
PPTX
Symantec SDN Deployment
PPTX
Delivering IaaS with Open Source Software
PDF
AWS live hack: Atlassian + Snyk OSS on AWS
PDF
Here Be Dragons: Security Maps of the Container New World
PDF
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
PPTX
Cloud Platform Symantec Meetup Nov 2014
PPTX
Linuxcon 2011 Crash Course in Open Source Cloud Computing
PPTX
Cloudexpowest opensourcecloudcomputing-1by arun kumar
PPTX
Cloudexpowest opensourcecloudcomputing-1by arun kumar
PDF
Deep dive nella supply chain della nostra infrastruttura cloud
PDF
Security Monitoring for big Infrastructures without a Million Dollar budget
Infrastructure as code
Slide DevSecOps Microservices
Secure Software Ecosystem Teqnation 2024
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
DevSecOps: The Open Source Way
DevSecOps: The Open Source Way
AWS live hack: Docker + Snyk Container on AWS
Calgary OpenStack Meetup January 2015
Some Advanced OpenStack Overview Document
Symantec SDN Deployment
Delivering IaaS with Open Source Software
AWS live hack: Atlassian + Snyk OSS on AWS
Here Be Dragons: Security Maps of the Container New World
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
Cloud Platform Symantec Meetup Nov 2014
Linuxcon 2011 Crash Course in Open Source Cloud Computing
Cloudexpowest opensourcecloudcomputing-1by arun kumar
Cloudexpowest opensourcecloudcomputing-1by arun kumar
Deep dive nella supply chain della nostra infrastruttura cloud
Security Monitoring for big Infrastructures without a Million Dollar budget
Ad

Recently uploaded (20)

PPT
FABRICATION OF MOS FET BJT DEVICES IN NANOMETER
PPTX
INFERTILITY (FEMALE FACTORS).pptxgvcghhfcg
PPTX
ATL_Arduino_Complete_Presentation_AI_Visuals.pptx
PPTX
Sem-8 project ppt fortvfvmat uyyjhuj.pptx
PPTX
Fundamentals of Computer.pptx Computer BSC
PPTX
STEEL- intro-1.pptxhejwjenwnwnenemwmwmwm
PPT
Lines and angles cbse class 9 math chemistry
PPTX
Syllabus Computer Six class curriculum s
PDF
Core Components of IoT, The elements need for IOT
PPTX
Nanokeyer nano keyekr kano ketkker nano keyer
PPTX
making presentation that do no stick.pptx
DOCX
A PROPOSAL ON IoT climate sensor 2.docx
PDF
Dynamic Checkweighers and Automatic Weighing Machine Solutions
PDF
How NGOs Save Costs with Affordable IT Rentals
PDF
Cableado de Controladores Logicos Programables
PPTX
sdn_based_controller_for_mobile_network_traffic_management1.pptx
PPTX
5. MEASURE OF INTERIOR AND EXTERIOR- MATATAG CURRICULUM.pptx
PPTX
Operating System Processes_Scheduler OSS
PPTX
ERP good ERP good ERP good ERP good good ERP good ERP good
PPTX
code of ethics.pptxdvhwbssssSAssscasascc
FABRICATION OF MOS FET BJT DEVICES IN NANOMETER
INFERTILITY (FEMALE FACTORS).pptxgvcghhfcg
ATL_Arduino_Complete_Presentation_AI_Visuals.pptx
Sem-8 project ppt fortvfvmat uyyjhuj.pptx
Fundamentals of Computer.pptx Computer BSC
STEEL- intro-1.pptxhejwjenwnwnenemwmwmwm
Lines and angles cbse class 9 math chemistry
Syllabus Computer Six class curriculum s
Core Components of IoT, The elements need for IOT
Nanokeyer nano keyekr kano ketkker nano keyer
making presentation that do no stick.pptx
A PROPOSAL ON IoT climate sensor 2.docx
Dynamic Checkweighers and Automatic Weighing Machine Solutions
How NGOs Save Costs with Affordable IT Rentals
Cableado de Controladores Logicos Programables
sdn_based_controller_for_mobile_network_traffic_management1.pptx
5. MEASURE OF INTERIOR AND EXTERIOR- MATATAG CURRICULUM.pptx
Operating System Processes_Scheduler OSS
ERP good ERP good ERP good ERP good good ERP good ERP good
code of ethics.pptxdvhwbssssSAssscasascc

Creating an open source load balancer for S3

  • 1. www.safespring.com Anders Bruvik Infrastructure engineer at Safespring Creating an open source load balancer for S3 @bruvik
  • 2. Infrastructure company based in Sweden/Norway Offers storage, compute and backup as a service from local data centres Built with Open Source – Openstack/CEHP
  • 3. What is SUNET
 object storage? Private cloud developed by Safespring A solution to data gravity
 On premises
 Data stay close to its users Available
 Expandable
 Distributed
  • 4. The task ● Create a reusable load balancer built from open source components ● Support a hybrid cloud service - we want to deploy in customer datacenter ● Focus on simplicity, reliability, speed We control They control
  • 6. The components ● Bird ● Træfik ● Etcd ● Letsencrypt ● Radosgw (Ceph) ● Prometheus
  • 7. BGP everywhere Internet as a design pattern for the datacenter cluster network ensure scalability and predictable performance. No surprises now, no surprises in the future. Technically, this means BGP is used everywhere, even for the last hop to each server node.
  • 8. ECMP ● We chose ECMP as routing strategy ● Ensures maximum capacity is used ● Achieve redundancy ● Per flow ECMP
  • 12. ● Open Source Load balancer/Reverse proxy written in GO ● Lightweight, fast, easy configurable ● Can dynamically load configuration changes
  • 15. Træfik configuration Multiple Træfik instances sharing same configuration Static configuration as files Dynamic configuration stored in etcd cluster
  • 16. ETCD ● Distributed key value store ● Used for keeping dynamic Træfik configuration synchronised
  • 18. Letsencrypt ● TLS is terminated at the load balancer ● Allows us to use letsencrypt certificates - free and easy ● Træfik supports ACME, data stored in KV- store
  • 19. Handling failure Each Træfik instance has multiple backends Using weighting to default to backend on same physical host Monitoring status using systemd service Remove route - restart services
  • 20. Monitoring Prometheus is used for monitoring Træfik has a built in metric exporter
  • 23. Configuration management We use Ansible for configuration management Heavily investing in Ansible roles to make configuration reusable Separating configuration data and configuration Building tooling to convert Ansible roles to images, docker images or deploy directly
  • 24. Safespring DevOps - Workflow What is needed? ● A mechanism to build 
 (Smie - forge). ● A place to store artefacts - could be image, container or binary 
 (Naust - boat house) ● Mechanism for deployment (Seter - settlement) that could describe different runtime environments
  • 25. Safespring DevOps - Smie What is Smie? ● Wrapper around Packer (Hashicorp) ● Produces artefacts ● All artefacts can be built separately ● Role: service, endpoint or component
  • 26. Safespring DevOps - Naust What is Naust? ● Both source and destination for Smie (cut dependencies to Internet repos) ● Full control over everything built for production ● Protocols: ○ HTTPS/file, S3, Docker Registry ● Protocols depend on target systems ● Everything built get an URI with metadata (type,version, date)
  • 27. Safespring DevOps - Seter What is Seter? ● Wrapper around Ansible and Terraform provisioning mechanism ● Describes a system which is a set of artefacts in order to get a component running ● e.g Ceph Object Storage backend needs a set of OSD and RadosGW role images ● Also describes target: physical node, virtual node or container System art 2 Physical art 1 Virtual Contain er art 1
  • 28. Safespring DevOps - Advantages ● Update systems faster ○ Lower barrier to changes 
 ● Reproduce systems as needed ○ Build everything with as few dependencies as possible
 ● Add or change easily ○ Target the affected nodes easily
 ● Verify that software works as intended
 ● Scales better with many operators
  • 30. Future work Actually deploy this :) Test failure scenarios - chaos engineering Metrics – getting useful Move components to docker images Test and profile different load balance strategies