microservices or not to microservices - suse · microservices or not to microservices what does the...
TRANSCRIPT
Microservices or not to MicroservicesWhat does the Chameleon say?
Cameron Seader
Technology Strategist
Federica Teodori
Project Manager Containers
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