Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Microservices
Insights with
Microservices
Lior Bar-On,
Purim 2016
Who is this Guy? (Lior Bar-On)
SAP: microservices-inspired architecture, to ease code maintenance
Gett: 24 microservices, ...
About
Company
About
R&D
TONS 76
RUBY-ON-RAILS
GOLANG
NATIVE IOS/ANDROID
REACTJS+FLUX+REDUX
200+
OF POSITIVE ENERGY EMPLOYEES
AWS PRODUCT...
In this talk...
Microservices is the new Black
… or the new DEFAULT Architecture Style
We do Microservices too - like everyone else!
● Microservices with Docker
Microservices are Clearly a Hype
● VB.NET for Mi...
We do Microservices too - like everyone else!
● Microservices with Docker
● Testing Microservices
● Microservices with nod...
Pattern: Assume Microservices
Microservices is what everyone do.
If you speak to everyone - connect yourself to
microservi...
Seriously:
Beware of “Microservices Envy”
Microservices are not “one architecture to rule
them all”
Microservices
Design Patterns
Some Commonly used Patterns
● Circuit Breakers, Bulkheads
● Single Sign-On (SSO) (e.g. OKTA, PingFederate)
● Distributed T...
We do Microservices too - like everyone else!
Remember:
No Software Engineer was ever got fired for
implementing ALL Micro...
Seriously:
Don’t implement Patterns eagerly.
Match Pattern per pain-point.
MSA Patterns & Gett
● Circuit Breakers
● Custom*
Implemented within 9 months
● Distributed Tracing
● Centralized Configura...
Not all common problems mapped to Patterns
Network Error rate of TCP 3-way-handshakes: ~ 1:20,000
Charging operations fail...
Seriously:
Understanding what you are doing >> using
the BEST(!!1) patterns.
… are not really “microservices patterns”
● Circuit Breakers, Bulkheads
● Centralized Configuration
● API Gateway (Gateway...
Seriously:
Many of the above are classical Patterns of
Distributed Systems.
Microservices = Distributed Systems.
(‫מסובכת‬...
Why do you
need MSA?
Key Motivation #1
Continuous Deployment, A/B testing
A/B Testing is a core business activity
MSA is about Continuous Deployment
Services = parallel deployment pipeline
Services = independent deployment pipeline?
Key Motivation #2
Development Scalability
MSA is about Dev Org’s Scalability
● Services are small enough for code not to become ugly / lose control
The number of se...
MSA is about Dev Org’s Scalability (2)
Fences make good neighbours
Not-Sharing Memory makes fewer “dependency breaches”
No...
Seriously:
Microservices have downsides too:
● The “Whole Picture” now shattered and you need to re-assemble it
(monitorin...
Seriously:
Consider a “Monolith First” approach (a best-practice!)
Remember microservices are new. Question everything!
Ma...
Summary
Approach to MSA with understanding...
image credits: @alvaro_sanchez
‫כבר‬ ‫שאתם‬ ‫מערכת‬ ‫לכם‬ ‫ויש‬ ‫ייתכן‬
‫לעשות‬ ‫ורו...
… to make a better use of it
‫בעיה‬ ‫של‬ ‫נכונה‬ ‫התאמה‬ ‫עם‬
‫עמוקה‬ ‫הבנה‬ ‫מתוך‬ ‫ועבודה‬ ,‫לפתרון‬
‫מוצלח‬ ‫למימוש‬ ‫ה...
THANK YOU
Upcoming SlideShare
Loading in …5
×

Microservices (msa) insights with comments

1,458 views

Published on

DevConTLV 2016

Published in: Software
  • Be the first to comment

Microservices (msa) insights with comments

  1. 1. Microservices Insights with Microservices Lior Bar-On, Purim 2016
  2. 2. Who is this Guy? (Lior Bar-On) SAP: microservices-inspired architecture, to ease code maintenance Gett: 24 microservices, 18 created in the last year Developer, Architect, Chief-Architect ‫תוכנה‬ ‫ארכיטקטורת‬ ‫בלוג‬ Career Microservices Blogger
  3. 3. About Company
  4. 4. About R&D TONS 76 RUBY-ON-RAILS GOLANG NATIVE IOS/ANDROID REACTJS+FLUX+REDUX 200+ OF POSITIVE ENERGY EMPLOYEES AWS PRODUCTION SERVERS ON PEAK TIME
  5. 5. In this talk... Microservices is the new Black … or the new DEFAULT Architecture Style
  6. 6. We do Microservices too - like everyone else! ● Microservices with Docker Microservices are Clearly a Hype ● VB.NET for Microservices in 21 days ● Testing Microservices ● Microservices with node.js / Meteor / Nginx / Go / Closure / ... ● Event-Driven Microservices ● Security for Microservices ‫הנושאים‬ ‫מהם‬ ‫בדקתי‬ ,‫ההרצאה‬ ‫לצורך‬ ‫של‬ ‫בהקשר‬ ‫באינטרנט‬ ‫ביותר‬ ‫המדוברים‬ ...‫מיקרו-שירותים‬ :‫שלי‬ ‫המסקנה‬ ??MSA ‫בגלל‬ ‫מחדש‬ ‫התוכנה‬ ‫הנדסת‬ ‫מקצוע‬ ‫כל‬ ‫את‬ ‫ללמוד‬ ‫צריך‬ ‫האם‬ ?‫המסקנה‬ ‫מה‬
  7. 7. We do Microservices too - like everyone else! ● Microservices with Docker ● Testing Microservices ● Microservices with node.js / Meteor / Nginx / Go / Closure / ... ● Event-Driven Microservices ● Security for Microservices ● VB.NET for Microservices in 21 days ‫בין‬ ‫רב‬ ‫שוני‬ ‫היה‬ ‫לא‬ .MSA ‫ל‬ ‫אותן‬ ‫קשרו‬ ‫ורק‬ - ‫השונות‬ ‫הטכנולוגיות‬ ‫על‬ ‫לדבר‬ ‫רצו‬ ‫כולם‬ ,‫בעצם‬ ‫הוסיפו‬ ‫רק‬ - ‫זהים‬ ‫הרעיונות‬ .Testing Microservices ‫על‬ ‫לכתבות‬ Testing ‫על‬ ‫כתובת‬ .‫קישור‬ ‫נקודות‬ ‫במאמרים‬ .‫בצחוק‬ ‫זה‬ - ‫האחרונה‬ ‫הדוגמה‬
  8. 8. Pattern: Assume Microservices Microservices is what everyone do. If you speak to everyone - connect yourself to microservices. "with Microservices" ‫תכלול‬ ‫מעכשיו‬ ‫שלכם‬ ‫מצגת‬ ‫שכל‬ ‫ממליץ‬ ‫אני‬ !‫אישית‬ ‫דוגמה‬ ‫נותן‬ ‫ואני‬ -
  9. 9. Seriously: Beware of “Microservices Envy” Microservices are not “one architecture to rule them all”
  10. 10. Microservices Design Patterns
  11. 11. Some Commonly used Patterns ● Circuit Breakers, Bulkheads ● Single Sign-On (SSO) (e.g. OKTA, PingFederate) ● Distributed Tracing (e.g. Dapper, ZipKin) ● Centralized Configuration (e.g. Consul, Zookeeper, Spring Cloud) ● Service Discovery (e.g. Consul, Zookeeper, Euroka) ● Client (service) Side load balancing (e.g. Ribbon) ● Micro-Proxy / API Gateway (e.g. Zuul, ….) ● CQRS / Stream Processing ● Containers (e.g. Docker, Unikernel, then: Mesos, Kubernetes, Swarm,...) Patterns ‫של‬ ‫נכבדת‬ ‫כמות‬ ‫כבר‬ ‫יש‬ .MSA‫ל‬ ‫המקושרים‬
  12. 12. We do Microservices too - like everyone else! Remember: No Software Engineer was ever got fired for implementing ALL Microservices-related Patterns to the system. Though, they may get fired for not delivering Business Value within a reasonable time.
  13. 13. Seriously: Don’t implement Patterns eagerly. Match Pattern per pain-point.
  14. 14. MSA Patterns & Gett ● Circuit Breakers ● Custom* Implemented within 9 months ● Distributed Tracing ● Centralized Configuration Implemented within 15 months ● Single Sign-On (SSO) ● API Gateway - onto the Monolith Implement within 20 months (soon) ● API Gateway ● Containers* - in pilot Desired ● Service Discovery ○ we use simple DNS. ● Client (service) Side load balancing ● Bulkheads ● CQRS / Stream Processing Not on our plans blog post .‫לכך‬ ‫ממשי‬ ‫צורך‬ ‫קיים‬ ‫באמת‬ ‫עכשיו‬ ‫רק‬ - ‫אחרי‬ ‫וחצי‬ ‫שנה‬ .API GW ‫במימוש‬ ‫להתחיל‬ ‫מייד‬ ‫לנו‬ ‫יעצו‬ ,‫בגט‬ ‫כשהתחלנו‬ .‫ומתי‬ - ‫מימשנו‬ ‫אנחנו‬ Patterns ‫אלו‬ ‫הנה‬ .‫פרספקטיבה‬ ‫קצת‬ ‫לתת‬
  15. 15. Not all common problems mapped to Patterns Network Error rate of TCP 3-way-handshakes: ~ 1:20,000 Charging operations failed due to network on Legacy: none Charging operations failed due to network on MSA: ~ 1:240 .Patterns ‫עם‬ ‫נפתרות‬ ‫הבעיות‬ ‫כל‬ ‫לא‬ ‫חשיפה‬ ‫בגלל‬ ‫בה‬ ‫שנתקלנו‬ ‫בעיה‬ ‫הנה‬ ‫שקודם‬ ‫תקשורת‬ .‫הרשת‬ ‫של‬ ‫לרגישות‬ ‫כעת‬ - ‫המונוליט‬ ‫של‬ ‫בזיכרון‬ ‫הייתה‬ ‫לכן‬ ‫עם‬ ‫ומתמודדת‬ ‫הרשת‬ ‫דרך‬ ‫עוברת‬ ...‫שלה‬ ‫הרעשים‬
  16. 16. Seriously: Understanding what you are doing >> using the BEST(!!1) patterns.
  17. 17. … are not really “microservices patterns” ● Circuit Breakers, Bulkheads ● Centralized Configuration ● API Gateway (Gateway / Proxy / Facade) ● CQRS / Steam Processing Much Older than Microservices Somewhat Related to SOA ● Single Sign-On (SSO) ● Distributed Tracing ● Service Discovery Happened to arrive at the same time ● Containers (Docker, Unikernel, etc.) ‫בעצם‬ ‫הם‬ - MSA ‫של‬ Patterns ,‫ובכלל‬ ‫וזמנים‬ ‫ממקומות‬ ‫דפוסים‬ ‫של‬ ‫אסופה‬ ...‫שונים‬ ‫מהפיכה‬ ‫שזו‬ Containers ‫אולי‬ ‫מלבד‬ MSA ‫ו‬ MSA ‫ללא‬ ‫גם‬ ‫מתרחשת‬ ‫שהייתה‬ .‫בלעדיה‬ ‫מתרחשת‬ ‫הייתה‬ .‫סינרגיה‬ ‫נקודות‬ ‫הללו‬ ‫המגמות‬ 2-‫ל‬ ‫יש‬
  18. 18. Seriously: Many of the above are classical Patterns of Distributed Systems. Microservices = Distributed Systems. (‫מסובכת‬ ‫היא‬ ‫)כי‬ ‫מבוזרת‬ ‫ממערכת‬ ‫המנעו‬ - ‫האפשר‬ ‫במידת‬ :‫מבוזרות‬ ‫מערכות‬ ‫של‬ #1 ‫כלל‬
  19. 19. Why do you need MSA?
  20. 20. Key Motivation #1 Continuous Deployment, A/B testing A/B Testing is a core business activity
  21. 21. MSA is about Continuous Deployment
  22. 22. Services = parallel deployment pipeline
  23. 23. Services = independent deployment pipeline?
  24. 24. Key Motivation #2 Development Scalability
  25. 25. MSA is about Dev Org’s Scalability ● Services are small enough for code not to become ugly / lose control The number of services scale with the System’s growth ● Services are small enough to be sometime fully re-written
  26. 26. MSA is about Dev Org’s Scalability (2) Fences make good neighbours Not-Sharing Memory makes fewer “dependency breaches” Now: Cross-Service APIs - are what you need to watch! - ‫למודולים‬ ‫ברורה‬ ‫חלוקה‬ ‫לנו‬ ‫יש‬ ‫במונוליט‬ ‫זמן‬ ‫לאורך‬ ‫ולהתפזר‬ ‫אותה‬ ‫להפר‬ ‫קל‬ ‫אבל‬ ‫יותר‬ ‫יש‬ ‫אזי‬ APIs ‫ו‬ ‫רשת‬ ‫בתקשורת‬ ‫מגובה‬ ‫החלוקה‬ ‫כאשר‬ ,MSA ‫ב‬ ‫פעמיים‬ ‫לחשוב‬ ‫גם‬ ‫לנו‬ ‫שעוזר‬ ‫מה‬ - ‫נוספים‬ ‫תקשורת‬ ‫קווי‬ ‫ליצור‬ ‫עבודה‬ .‫הסדר‬ ‫על‬ ‫ולשמור‬
  27. 27. Seriously: Microservices have downsides too: ● The “Whole Picture” now shattered and you need to re-assemble it (monitoring, logs, business logic needs, etc.) ● Network sensitivity ● Development overheads; Performance overheads.
  28. 28. Seriously: Consider a “Monolith First” approach (a best-practice!) Remember microservices are new. Question everything! Make your own variations! Allow yourself using non-microservices architecture E.g. facebook, etsy, etc.
  29. 29. Summary
  30. 30. Approach to MSA with understanding... image credits: @alvaro_sanchez ‫כבר‬ ‫שאתם‬ ‫מערכת‬ ‫לכם‬ ‫ויש‬ ‫ייתכן‬ ‫לעשות‬ ‫ורוצים‬ ,‫אוהבים‬ ‫כל-כך‬ ‫לא‬ .‫שינוי‬ ‫בה‬ ‫בהכרח‬ ‫לא‬ ‫למיקרו-שירותים‬ ‫חלוקה‬ !‫הבעיה‬ ‫את‬ ‫תפתור‬
  31. 31. … to make a better use of it ‫בעיה‬ ‫של‬ ‫נכונה‬ ‫התאמה‬ ‫עם‬ ‫עמוקה‬ ‫הבנה‬ ‫מתוך‬ ‫ועבודה‬ ,‫לפתרון‬ ‫מוצלח‬ ‫למימוש‬ ‫הסיכויים‬ ‫גדלים‬ - !‫מיקרו-שירותים‬ ‫של‬
  32. 32. THANK YOU

×