15-313 foundations of software engineeringckaestne/15313/2017/... · microservices •building...
TRANSCRIPT
![Page 1: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/1.jpg)
Foundations of Software Engineering
Architecture – From Styles to Hypes
Christian Kästner
15-313 Software Engineering 1
![Page 2: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/2.jpg)
Learning Goals
• Recognize architectural styles and their implications
• Reason about system structures and their tradeoffs with architectural views and styles
• Reason about tradeoffs of Microservice architectures
• Understand the key ideas of DevOps
• Understand ideas of architecture evaluation
15-313 Software Engineering 2
![Page 3: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/3.jpg)
Interlude: Teamwork Clinic
15-313 Software Engineering 3
![Page 4: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/4.jpg)
Common Issues
• Dealing with interpersonal issues
• Dealing with different expectations
• Dealing with slipping commitments
15-313 Software Engineering 4
![Page 5: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/5.jpg)
Assumptions about Relationships
• Level -1: Exploitation, No Relationships
• Level 1: Transactional Role, Civility
• Level 2: Working Relationship, Rec. as Unique Person
• Level 3: Strong Emotions, Love and Intimacy
• Expectations differ by country, religion, ethnicity, and local cultures
15-313 Software Engineering 5
[Schein 2016]
![Page 6: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/6.jpg)
Cultural Islands
• Temporarily suspend rules to maintain face
• “Talk to the Camp Fire”
• 1 Check-In Question without interruptions
• 2 Reflection and open conversation
• External facilitator useful
15-313 Software Engineering 6
[Schein 2016]
![Page 7: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/7.jpg)
15-313 Software Engineering 7
![Page 8: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/8.jpg)
15-313 Software Engineering 8
Latane, Bibb, Kipling Williams, and Stephen Harkins. "Many hands make light the work: The causes and consequences of social loafing." Journal of personality and social psychology 37.6 (1979): 822.
![Page 9: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/9.jpg)
Social loafing
• People exerting less effort within a group • Reasons
– Diffusion of responsibility – Motivation – Dispensability of effort / missing recognition – Avoid pulling everybody / "sucker effect" – Submaximal goal setting
• “Evaluation potential, expectations of co-worker performance, task meaningfulness, and culture had especially strong influence”
15-313 Software Engineering 9
Karau, Steven J., and Kipling D. Williams. "Social loafing: A meta-analytic review and theoretical integration." Journal of personality and social psychology 65.4 (1993): 681.
![Page 10: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/10.jpg)
Social Loafing: Mitigation Strategies • Involve all team members, colocation • Assign specific tasks with individual
responsibility – Increase identifiability – Team contracts, measurement
• Provide choices in selecting tasks • Promote involvement, challenge developers • Reviews and feedback • Team cohesion, team forming exercises • Small teams
15-313 Software Engineering 10
![Page 11: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/11.jpg)
Mitigating Social Loafing: Responsibilities & Buy-In
• Involve team members in decision making
• Assign responsibilities (ideally goals not tasks)
• Record decisions and commitments; make record available
15-313 Software Engineering 11
![Page 12: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/12.jpg)
Common Issues
• Dealing with interpersonal issues
• Dealing with different expectations
• Dealing with slipping commitments
15-313 Software Engineering 12
![Page 13: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/13.jpg)
More on Architectural Reasoning
15-313 Software Engineering 13
![Page 14: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/14.jpg)
15-313 Software Engineering 14
Client
Server
Database
Where to validate user input?
Example: Yelp App
![Page 15: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/15.jpg)
FeopleCars Scenario (Final Exam 2015)
15-313 Software Engineering 15
![Page 16: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/16.jpg)
15-313 Software Engineering 16
![Page 17: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/17.jpg)
15-313 Software Engineering 17
What qualities can you reason
and not reason about?
Tradeoffs? For which
quality is Arch 1 better? For which Arch 2?
![Page 18: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/18.jpg)
Real-time Bus Tracking (Midterm 2016)
15-313 Software Engineering 18
![Page 19: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/19.jpg)
Architectural Styles
• Pipes and Filters
• Object-Oriented Organization, Services
• Event-Based, Implicit Invocation
• Layered System
• Repositories
• …
15-313 Software Engineering 19
Give one new example of a system with each architectural style and discuss why it is (or is not) appropriate.
![Page 20: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/20.jpg)
Case Study: ROS
15-313 Software Engineering 20
![Page 21: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/21.jpg)
ROS
• "Robot Operating System", open source
• The philosophical goals of ROS can be summarized as: –Peer-to-peer
– Tools-based
–Multi-lingual
– Thin
– Free and Open-Source
15-313 Software Engineering 21
![Page 22: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/22.jpg)
15-313 Software Engineering 22
Quigley, Morgan, et al. "ROS: an open-source Robot Operating System." ICRA workshop on open source software. Vol. 3. No. 3.2. 2009.
![Page 23: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/23.jpg)
Quality Goals?
15-313 Software Engineering 23
![Page 24: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/24.jpg)
" A Distributed, Modular Design"
• users can use as much or as little of ROS as they desire
• modularity of ROS allows you to pick and choose which parts are useful for you and which parts you'd rather implement yourself
• large community of user-contributed packages (3000 packages)
15-313 Software Engineering 24
![Page 25: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/25.jpg)
Architectural Style?
• Pipes and Filters
• Object-Oriented Organization, Services
• Event-Based, Implicit Invocation
• Layered System
• Repositories
• …
15-313 Software Engineering 25
![Page 26: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/26.jpg)
ROS Communication Infrastructure
• Message Passing –Publish/subscribe for channels
–Messages interfaces through IDL (cross-language)
• Recording and Playback of Messages
• Remote procedure calls
• Share configuration through global key-value store
15-313 Software Engineering 26
![Page 27: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/27.jpg)
15-313 Software Engineering 27
![Page 28: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/28.jpg)
Tradeoff discussion
• Decoupling
• Reuse, Extensibility
• Reliability
• Understandability
• Performance
• Community contributions
15-313 Software Engineering 28
![Page 29: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/29.jpg)
A current architectural hype: Microservices
15-313 Software Engineering 29
![Page 30: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/30.jpg)
Service Oriented Architectures (SOA) • Service: self-contained
functionality
• Remote invocation, language-independent interface
• Dynamic lookup possible
• Often used to wrap legacy systems
15-313 Software Engineering 30
Service Registry
Service Requestor
Service Provider bind/
call
publish find
![Page 31: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/31.jpg)
Microservices
15-313 Software Engineering 31
![Page 32: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/32.jpg)
15-313 Software Engineering 32
source: http://martinfowler.com/articles/microservices.html
![Page 33: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/33.jpg)
15-313 Software Engineering 33
![Page 34: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/34.jpg)
Microservices
• Building applications as suite of small and easy to replace services – fine grained, one functionality per service
(sometimes 3-5 classes) – composable – easy to develop, test, and understand – fast (re)start, fault isolation
• Interplay of different systems and languages, no commitment to technology stack
• Easily deployable and replicable • Embrace automation, embrace faults
15-313 Software Engineering 34
![Page 35: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/35.jpg)
Example Services
• Send text message / email / letter
• Credit card transaction
• Get product/profile image
• User management, settings
• Subscriptions
• Recommendations, ads
15-313 Software Engineering 35
![Page 36: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/36.jpg)
15-313 Software Engineering 36
source: https://abdullin.com/post/how-micro-services-approach-worked-out-in-production/
Arrow: use data from
![Page 37: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/37.jpg)
Technical Considerations
• HTTP/REST/JSON communication
• Independent development and deployment
• Self-contained services (e.g., each with own database)
–multiple instances behind load-balancer
• Streamline deployment
15-313 Software Engineering 37
![Page 38: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/38.jpg)
15-313 Software Engineering 38
source: http://martinfowler.com/articles/microservices.html
![Page 39: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/39.jpg)
Drawbacks (excerpt)
• Complexities of distributed systems – network latency, faults, inconsistencies
– testing challenges
• Resource overhead, RPCs
• Shifting complexities to the network
• Operational complexity
• Adoption frequently by breaking down monolithic application
15-313 Software Engineering 39
![Page 40: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/40.jpg)
DevOps
15-313 Software Engineering 40
![Page 41: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/41.jpg)
15-313 Software Engineering 41
![Page 42: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/42.jpg)
Automating Deployment
• Release several times per day
• Incremental rollout, quick rollback
15-313 Software Engineering 42
![Page 43: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/43.jpg)
Quality Goals
• Rapid releases and feedback (despite large code base)
• Quick onboarding
15-313 Software Engineering 43
![Page 44: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/44.jpg)
Infrastructure/Configuration as Code
• Manage configuration files in version control system
• Consistent infrastructure setup for testing, development, and deployment
• Configuration includes ports, target servers and routing, …
15-313 Software Engineering 44
![Page 45: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/45.jpg)
15-313 Software Engineering 45
• Lightweight virtualization • Sub-second boot time • Sharable virtual images with full setup incl.
configuration settings • Used in development and deployment • Separate docker images for separate services
(web server, business logic, database, …)
![Page 46: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/46.jpg)
Docker example
15-313 Software Engineering 46
FROM ckaestne/typechef-kconfig RUN apt-get -y update && apt-get install -y git-core gcc make ADD https://github.com/.../master.tar.gz linuxa2.tar.gz RUN tar xfz linuxa2.tar.gz; rm linuxa2.tar.gz; mv TypeChef-LinuxAnalysis2-master LinuxAnalysis2; cd LinuxAnalysis2; sbt mkrun ADD config.txt LinuxAnalysis2/config.txt CMD cd LinuxAnalysis2; ./run.sh
https://github.com/ckaestne/TypeChef-docker
![Page 47: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/47.jpg)
Configuration Automation
• Chef, Puppet, Kubernetes, Mesos, Ansible • Managing large-scale deployment (different
containers on different machines) • Matching containers to resources, scaling as
needed based on metrics • Automated restarts and upgrades • Declarative high-level configuration generates
specific configuration files • Automated rollouts and rollbacks • Dependency resolution on and setups
15-313 Software Engineering 47
![Page 48: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/48.jpg)
Case Study: Facebook
• Challenges
–Configuration sprawl across many systems
–Many tuning decisions during runtime
–Configuration errors were common cause of downtime
15-313 Software Engineering 48
Tang, Chunqiang, et al. "Holistic configuration management at Facebook." Proceedings of the 25th Symposium on Operating Systems Principles. ACM, 2015.
![Page 49: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/49.jpg)
Case Study: Facebook
• Goals
–Gating new product features, frequent and early releases (e.g. for 1% of users)
–Conducting experiments
– Traffic control and load balancing
–Monitoring, alters, remediation
15-313 Software Engineering 49
Tang, Chunqiang, et al. "Holistic configuration management at Facebook." Proceedings of the 25th Symposium on Operating Systems Principles. ACM, 2015.
![Page 50: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/50.jpg)
Case Study: Facebook
15-313 Software Engineering 50
Case Study: Facebook
![Page 51: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/51.jpg)
Case Study: Facebook
15-313 Software Engineering 51
![Page 52: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/52.jpg)
Architecture Evaluation
15-313 Software Engineering 52
![Page 53: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/53.jpg)
Architecture evaluation
• Goal: does the architecture satisfy requirements?
• ATAM – Architecture Tradeoff Analysis Method – Present requirements
– Present architecture
– Analyze architecture
– Present results – risks and non-risks
15-313 Software Engineering 53
![Page 54: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/54.jpg)
15-313 Software Engineering 54
Source:sei.cmu.edu
![Page 55: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/55.jpg)
Utility tree
15-313 Software Engineering 55
Source:arnon.me
![Page 56: 15-313 Foundations of Software Engineeringckaestne/15313/2017/... · Microservices •Building applications as suite of small and easy to replace services –fine grained, one functionality](https://reader030.vdocuments.us/reader030/viewer/2022041014/5ec5cb00dfe04557bd2f239e/html5/thumbnails/56.jpg)
Summary
• Address team issues early and explicitly
• Architecture helps with reasoning about qualities
• Architecture styles help with reasoning about tradeoffs and implications
• Microservices, DevOps and their advantages and problems
• Architecture evaluation is a thing
15-313 Software Engineering 56