Making komplett big by going small

40
Making Komplett BIG By Going Small Making every mistake count

Transcript of Making komplett big by going small

Page 1: Making komplett big by going small

Making Komplett BIGBy Going Small

Making every mistake count

Page 2: Making komplett big by going small

Who Are We?

Pavneet Singh Saund

Web Developer

@pavsaund

Tomas Ekeli

Lead Software Architect

@tomasekeli

Page 3: Making komplett big by going small

Let’s talk about...

How we are scaling our architecture, process and organization to meet ever-changing business needs.

Page 4: Making komplett big by going small

Komplett Group

16 web shops

7.3 Billion NOK revenue 2015

1.8 Million active customers

800 Employees

20 Million uniques

Page 5: Making komplett big by going small
Page 6: Making komplett big by going small

In The Beginning

Page 7: Making komplett big by going small

In The Beginning

Page 8: Making komplett big by going small

In The Beginning

Page 9: Making komplett big by going small
Page 10: Making komplett big by going small

We’re in a bad place...

Page 11: Making komplett big by going small

Business Need: “We need a mobile web presence”

Developers: “Sure, we can do that”

Page 12: Making komplett big by going small

Mistake: “Rewrite Everything!”

Page 13: Making komplett big by going small

Business Need: Mobile First http://m.komplett.no

Project K2

Code Quality

SOLID

Test-Driven

CQRS

Event Sourcing

Domain Driven Design

Scrum

Pair-programming

New admin pages

New infrastructure

New architecture

New deployment pipeline

Page 14: Making komplett big by going small

K2 is a Deadly Mountain

Our project did not survive

Page 15: Making komplett big by going small

Learning: “Don’t Rewrite Everything!”

Page 16: Making komplett big by going small

It was a dark time…

Page 17: Making komplett big by going small

They Still Trust Us!

New business-domains.

Great big heap of code.

Can we do this?

but...

Page 18: Making komplett big by going small

Do We Trust Us?

Page 19: Making komplett big by going small
Page 20: Making komplett big by going small

Mistake: “Just Add Developers”

Page 21: Making komplett big by going small

Before Scaling

Page 22: Making komplett big by going small

Spotify Model

Page 23: Making komplett big by going small

The Minion-project

Page 24: Making komplett big by going small
Page 25: Making komplett big by going small

Growing Pains

Page 26: Making komplett big by going small

Komplett As Services

Our architectural vision

A landscape of small Services

Versioning is naming

Consistent deployment

Splitting out services from the monolith

Page 27: Making komplett big by going small

Creating A New Service

Page 28: Making komplett big by going small

Learning: “Services must be cheap”

Page 29: Making komplett big by going small

OK, How Do We Do That?

How can we get all this done?

How do we push more features through the pipeline?

Page 30: Making komplett big by going small

Komplett Model

Page 31: Making komplett big by going small

'

Page 32: Making komplett big by going small

How we communicate

Page 33: Making komplett big by going small

Learning: “Organisation matters”

Page 34: Making komplett big by going small

Mistake: “Just split it into services”

Page 35: Making komplett big by going small

OK, How Do We Do That?

How do we keep it running?

Caching

Performance tests

Independently scaling services

Health-checks and monitoring

Central logging service

Page 36: Making komplett big by going small

Learning: “Services are differenterer”

Page 37: Making komplett big by going small

Where Do We Go From Here?

Fully mandated squads?

More microservices?

Public APIs

More business-areas!

Page 38: Making komplett big by going small

Summary

Scaling is hard

Culture is Crucial

Embrace and learn from failures

We intend to keep failing and sharing as we go.

Page 39: Making komplett big by going small

HAPPYPEOPLEMAKEGREATSTUFF

Asadand'reddeveloperdoesnotagoodsystemdeliver.Havingagreat'meisthebestindicatorofwhetherornotyou'reheadingforsuccess.

Page 40: Making komplett big by going small

Let’s Talk

@komplettdev, http://kodepanelet.no

@pavsaund, http://codingwithempathy.com

@tomasekeli