Microservices or not to Microservices - SUSE · Microservices or not to Microservices What does the...

Preview:

Citation preview

Microservices or not to MicroservicesWhat does the Chameleon say?

Cameron Seader

Technology Strategist

cs@suse.com

Federica Teodori

Project Manager Containers

fteodori@suse.com

2

What is a Microservice?

3

“Functional system decomposition into manageable and independently deployable components”

4

What is a Microservice?

● Is that THE definition?

● Common characteristics: [*]● Componentization via Services● Organized around Business capabilities● Products, not Projects● Smart endpoints, dumb pipes● Decentralized Governance● Decentralized Data management● Infrastucture Automation● Design for failure● Evolutionary design

[*] http://martinfowler.com/articles/microservices.html

5

Monoliths and Microservices

6

Monolith

7

Microservice

8

Services as Components

9

What's a component?

● A unit of software that is indipendently replaceable and upgradable● Why not libraries as components?● Minimize dependencies● Service == process ?

10

“Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure”

11

12

13

“you build it, you run it.”

14

Project VS Products

● Owning the service fully, at all times● Support burden, or blessing?● Develop a relationship with end users

15

Unix, the beginning of (almost) everything

16

“Be of the web, not behind the web”

● Receive a request, apply logic as appropriate, produce a response.● Keep it simple!● Mind the noise

17

GovernanceJust because you can do something,doesn’t mean you should

18

Centralized

● Standardized Technology● Constricting

● Need the right tool

For the right job.

19

Decentralized

● Split your monoliths up● C++, Node.js, Database, etc.● Reports, core processing

● Services give choice

and balance

20

Enter “Open Source”

21

Open Source

● Becoming common

for internal development

● Sharing of common

tools and code

22

Open Source

● Amazon (You Build it / You Run it)

● Netflix – incentive to have quality code● Don’t want to fix things at 3am● Chaos Monkey, Simian Army

● Walmart (OneOps) – Cross compatability● Common point of entry for applications

● Give developers more responsibility● Run the systems they develop

23

What about your data?

24

Monolithic vs Microservices Approach

25

Monolithic Data

● Maybe a single database● Components allow for flexibility

26

Microservices Data

● Application Databases● Decentralized

● Transactions are challenging● Asynchronous vs synchronous

● Long term greater consistency

27

CI/CD is your microservices foundation

28

CI/CD Automation

29

Who has time for all of that?

Efficiency – Deployment OptionsCI/CD Automation

System Inspection “Machinery”

Various Output Format

Report

Your Project

KIWI

Develop.…...........Build.....................Test................Deploy

YaST / AutoYaST

Ahhhhhh...

32

CD: Lets make deployment boring

33

CI/CD Automation

HerrererHerererer

Erereerereererere

HerrererHerererer

Erereerereererere

34

What about service failures

35

Service failures

● Netflix’s Simian Army● Induced failures

● Real Time monitoring● Service status, throughput, views per minute etc.

● Service Management● Start, restart, update, rollback, etc..

36

Where do I start?

37

Design it

● Change control● How to divide up the pieces, or slice up the application● Design from Monolith and then add on using microservices● Modular design through patterns of change● Components into services adds complexity for more granular

releases

38

Is it the future?

39

40

SUSE and Friends

SUSE Manager

SUSE Studio

Kiwi

SUSE Linux Enterprise

SUSE OpenStack Cloud SUSE

Enterprise Storage

Machinery

41

So What Next...

Sessions: http://www.susecon.com/sessions.html

TUT89691 - DevOps From a DevOps Manager's Perspective

TUT89692 - DevOps and the Open Build Service

TUT91264 - Infrastructure-as-Code and CI Infrastructure at OpenStack

TUT91504 - DevOps: SUSE's Innovative tools driving your CI/CD future

BOV91679 - Migrating Deployment Processes and Continuous Integration at SAP SE to a Future-proof Design Using SLES12, Chef, GitHub, OBS and KIWI

TUT90009 - Tuning Your SUSE Linux Enterprise Server Virtualization Stack

http://developer.suse.com

http://packagehub.suse.com

http://build.opensuse.org

Recommended