48
Trends in development Distributed systems Anton Chernousov

Trends in development distributed systems

Embed Size (px)

Citation preview

Trends in development Distributed systems

Anton Chernousov

Global Trends Mobile Applications

1996 Nokia Communicator first Smartphone

1996 Nokia Communicator first Smartphone

2014 Sold 1.2 billion smartphones in the world

Global Trends Remote work

1999 Creating company 37signals

2006 Getting Real

1999 Creating company 37signals

2006 Getting Real

2010 Rework

1999 Creating company 37signals

2006 Getting Real

2010 Rework

2013 Remote

1999 Creating company 37signals

2010

Ideology Cynefin framework

David Snowden

He was the Director of IBM's Institute for Knowledge Management

1999 The Cynefin framework has five domains

Best Practice

Good Practice

Novel Practice

Emergent Practice

ComplexProbe — Sense — RespondEmergent Practice

Experimental input Failures or successes Decide what to do ie. amplify or dampen

ComplexProbe — Sense — RespondEmergent Practice

Experimental input Failures or successes Decide what to do ie. amplify or dampen

AgileScrum Kanban Getting Real XP

Ideology Agile methodology

1986 Takeuchi и Nonaka «New Product Development Game»

1986 Takeuchi и Nonaka «New Product Development Game»

1999 Kent Beck «Extreme Programming Explained»

1986 Takeuchi и Nonaka «New Product Development Game»

1999 Kent Beck «Extreme Programming Explained»

1999 Martin Fowler «Refactoring»

1986 Takeuchi и Nonaka «New Product Development Game»

1999 Kent Beck «Extreme Programming Explained»

1999 Martin Fowler «Refactoring»

2001 Kent Beck, Martin Fowler, … «Manifesto for Agile Software Development»

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Manifesto for Agile Software Development

2007

Ideology CAP theorem

Eric A. Brewer

University of California, Berkeley He is currently on a sabbatical at Google

1999 Eric Brewer CAP theorem

1999 Eric Brewer CAP theorem

2002 Seth Gilbert, Nancy Lynch Published a formal proof CAP theorem

Availability a guarantee that every request receives a response about whether it succeeded or failed

CAP theorem

Consistency all nodes see the same data at the same time

Partition tolerance the system continues to operate despite arbitrary partitioning due to network failures

C

A

P

CAP theoremtwo out of three

CA APCP

MySQL Postgres

MongoDB BigTable

Cassandra Dynamo

Distributed databases Pessimistic locking Make minority partitions unavailable

CAP theorem

Cluster database 2-phase commit cache validating protocol

Web caching Expiration / leases conflict resolution / optimistic

two out of three

CA

CP

AP

ACID

Atomicity Consistency Isolation Durability

BASE

Basically Available Soft-state Eventually consistent

Local Trends Architecture Applications

90’s Monolithic application Multitier, Client–server

90’s Monolithic application Multitier, Client–server

00’s Service application ESB, SOA, XML

90’s Monolithic application Multitier, Client–server

00’s Service application ESB, SOA, XML

10’s Microservices REST, JSON

SOAP, OSGI, XML, GRID, RMI

Dead technology

Design for failure Evolutionary Design Decentralized Data Management Infrastructure Automation

Microservices

2015

Local Trends Product Delivery

Solaris Zone FreeBSD Jail OpenVZ KVM LXC

Resource Utilization

Virtualization

1

Solaris Zone FreeBSD Jail OpenVZ KVM LXC

Resource Utilization

Virtualization

Software Deployment1 2

Docker LXC

VirtualizationSoftware Deployment

Application Server

jBoss GlassFish WebSphere WebLogic

Microservices

Spring boot Play Framework AWS

Local Trends Job & Responsibility

Monolithic application

Job & Responsibility

1

Software analyst Software developer System administrator

Monolithic application

Job & Responsibility

1Service

application

2

Software analyst Software developer System administrator

Software analyst Software developer

QA Engineer DevOps Engineer

Monolithic application

Job & Responsibility

1Service

application

2

Microservices

3

Software analyst Software developer System administrator

Software analyst Software developer

QA Engineer DevOps Engineer

Software analyst Software developer

Thank you for attentionAnton Chernousov

Newman S. Principles of microservices http://bit.ly/1FLOBoH , 20141

2 Lewis J., Fowler M. Microservices http://bit.ly/ljfmmicroservices , 2014

3 Osowski R. E. Microservices in action http://t.co/v59iwH3HLc , 2015

4 Browne J. Brewer's CAP Theorem http://bit.ly/jbcaptheorem , 2009