Survive andgrow

Preview:

Citation preview

გადარჩი და გაიზარდე

თეზევსის გემი, არქიტეკტურა, მიკროსერვისები, დომენები და

სხვა ..

George Mamaladze @gmamaladze Senior Software Architect at SIEMENS Digital Factory

Our Businesses Power and Gas Wind Power and Renewables Power Generation Services

Energy Management

Digital Factory

Healthcare

Building Technologies

Process Industries and Drives

Mobility

Financial Services

My Role • Business

• Vision

• Goals

• Scoping

• Roadmap

Product Management

• Requirement Engineering

• Commonalities & Variabilities

• Domain Design

• Implementation of Core Assets

Domain Engineering

• Product Requirements

• Implement Variations

• Build Product

Application Engineering

Syst

em

Arc

hit

ect

Pla

tfo

rm

Arc

hit

ect

Ap

plic

atio

n

Arc

hit

ect

Sen

ior

Soft

war

e A

rch

itec

t

ეგვიპტური უკვდავების სიმბოლო

U+2625 U+132F9

ადამიანის უკვდავება შესაძლებელია? როდის? როგორ?

მოგონებები ქლაუდში

ხელოვნური ინტელექტი

ადამიანისა და მანქანის ინტერფეისი

100% - download complete

თეზევსის გემი

თეზევსის გემი

ასე იწყებოდა Facebook-ი

ფუნქციების რაოდენობა იზრდება

დრო

დაგროვილი ფუნქციონალობა

cumulative functionality

Facebook

ფუნქციების რაოდენობა იზრდება

დრო

დაგროვილი ფუნქციონალობა

cumulative functionality

Facebook

კონკურენტები

რა გვჭირდება?

ფუნქციების სწრაფად დამატება

რა გვჭირდება?

ფუნქციების სწრაფად დამატება

ფუნქციების სწრაფად ამოღება

(…)

როგორ შეძლო FACEBOOK-მა ფუნქციონალობის სწრაფად დამატება?

კარგი დიზაინი

Fowler‘s Design Stamina Hypothesis

დრო

დაგროვილი ფუნქციონალობა

cumulative functionality

კარგი დიზაინი

ცუდი დიზაინი

როგორ დავიწყო თავიდანვე „კარგი“ დიზაინით? რა ტექნოლოგიები და მიდგომები გამოვიყენო?

www.thoughtworks.com/radar

Fowler‘s Design Stamina Hypothesis

დრო

დაგროვილი ფუნქციონალობა

cumulative functionality

კარგი დიზაინი

ცუდი დიზაინი

Fowler‘s Design Stamina Hypothesis

დრო

დაგროვილი ფუნქციონალობა

cumulative functionality

კარგი დიზაინი

ცუდი დიზაინი

Fowler‘s Design Stamina Hypothesis

დრო

დაგროვილი ფუნქციონალობა

cumulative functionality

კარგი დიზაინი

ცუდი დიზაინი

design pay-off line

down here it may be worth to trade off design quality for time to market …

რა გვჭირდება?

ფუნქციების სწრაფად დამატება

ფუნქციების სწრაფად ამოღება

ბაზარზე სწრაფი გასვლა

ჩემი პირველი

„კომერციული „

აპლიკაციის დიზაინი

Northwind

Northwind აპლიკაციის დიზაინი

გაუმჯობესებული დიზაინი პირველი

ვერსია

მეორე ვერსია

Fowler‘s Design Stamina Hypothesis

დრო

დაგროვილი ფუნქციონალობა

cumulative functionality

კარგი დიზაინი

ცუდი დიზაინი

design pay-off line

down here it may be worth to trade off design quality for time to market …

ინოვაცია

დრო

დაგროვილი ფუნქციონალობა

cumulative functionality

პირველი ვერსია

ინოვაცია

დრო

დაგროვილი ფუნქციონალობა

cumulative functionality

პირველი ვერსია

მეორე ვერსია

ჩანაცვლება

1. დაიბადე - დაიწყე მარტივად!

2. გადარჩი - დროულად შეუდექი დაანაწევრებას!

3. გაიზარდე - მუდმივად ცვალე ნაწილები!

მარტივი, მონოლითური აპლიკაცია ამცირებს time to market-ს

1. დაიბადე - დაიწყე მარტივად!

2. გადარჩი - დროულად შეუდექი დაანაწევრებას!

3. გაიზარდე - მუდმივად ცვალე ნაწილები!

მარტივი, მონოლითური აპლიკაცია ამცირებს time to market-ს

ინოვაცია

დრო

დაგროვილი ფუნქციონალობა

cumulative functionality

პირველი ვერსია

მეორე ვერსია

ჩანაცვლება

1. დაიბადე - დაიწყე მარტივად!

2. გადარჩი - დროულად შეუდექი დაანაწევრებას!

3. გაიზარდე - მუდმივად ცვალე ნაწილები!

წარმატების შესანარჩუნებლად საწროა ცვლილება, ცვლილებას ჭირდება დრო.

ვთქვათ TIME TO MARKET არ გვაღელვებს.

მაინც რატომ დავიწყოთ მარტივად?

მიზეზი 2

“Microservice practitioners, usually have come from an evolutionary design background.”

Martin Fowler

http://www.martinfowler.com/articles/microservices.html

Monolith

დომენები Domains - დომენები (ფუნქციონალობა)

მონოლითი: ყველა დომენი ერთ აპლიკაციაში (სერვისში)

მიკროსერვისები: თითო დომენი ცალკე აპლიკაციაში (სერვისში)

რა არის დომენი დომენები ელექტრონული ფოსტის მაგალითზე კლასიკური

ელ-ფოსტის კლიენტი

ვებმეილი

ძიება

რედაქტორი

Attachment-ები

ტეგები, კატეგორიები

კონტაქტები

სკალირება - მონოლითი vs. მიკროსერვისები

არსებული მონოლითის დეკომპოზიცია

როგორ დაიწყო მონოლითი?

როგორ დაიწყო მონოლითი?

1. დაიბადე - დაიწყე მარტივად!

2. გადარჩი - დროულად შეუდექი დაანაწევრებას!

3. გაიზარდე - მუდმივად ცვალე ნაწილები!

მარტივი, მონოლითური აპლიკაცია საჭიროა გამოსაყოფი დომენების

პირველადი იდენტიფიკაციისათვის.

Monolith First

Monolith First - start with monolith: once you realize microservices are worthwhile you decompose and sacrifice your initial monolith.

როგორ დაიწყო მონოლითი?

Monolith First

Stefan Tilkov argues against this, saying that in practice it's too hard to build a monolith that will split apart easily.

Monolith First

Both approaches, however, agree that you should not attempt microservices unless you know the domain really well.

დომენები Domains - დომენები (ფუნქციონალობა)

მონოლითი: ყველა დომენი ერთ აპლიკაციაში (სერვისში)

მიკროსერვისები: თითო დომენი ცალკე აპლიკაციაში (სერვისში)

წიგნები

მიკროსერვისების „გადაბმა“

? ?

Microservice-ების „გადაბმა“

1. დაიბადე - დაიწყე მარტივად!

2. გადარჩი - დროულად შეუდექი დაანაწევრებას!

3. გაიზარდე - მუდმივად ცვალე ნაწილები!

გმადლობთ ყურადღებისათვის!