0.1 Presentation of the course
Structure
- Organization of the course
- Distributed Systems
- Cloud Native
Bibliography
(i.e., material that you must read to study the lesson)
- Slides regarding the organization of the course on the Moodle in the Reading List
- “Cloud Native”, Scholl and others, O’Reilly (chap 1, excluding the sections “The Twelve-Factor App” and “Availability and Service-Level Agreements”)
- Fallacies of distributed computing - Wikipedia Effects of the Eight Fallacies
- AWS: What is Cloud Native? - Cloud Native Architecture Explained - AWS (excluding section “What is cloud-native application development” and all the following sections)
Other useful information and other links
(i.e., material that you may want to read to deepen the comprehension)
- Cloud Native Computing (CNCF) Foundations Glossary: Cloud Native Glossary
- AWS Cloud Concept Hub: Cloud Computing Concepts Hub | AWS
- Interview with Peter Deutsch (formerly Sun Microsystem) SE Radio 470: L. Peter Deutsch on the Fallacies of Distributed Computing – Software Engineering Radio
- Fallacies of distributed computing - Wikipedia
- How the “pets vs cattle” analogy was born: https://joachim8675309.medium.com/devops-concepts-pets-vs-cattle-2380b5aab313
Recap Questions
(recap questions that can help you revise the material you studied and that may be also asked at the oral exam 😊 )
- What is a distributed system?
- Why is it important to consider the network between machines when designing an application on the cloud?
- What is commodity hardware and why is it important to keep low costs for the cloud provider and, also, for the cloud consumer?
- Why are the 8 fallacies important?
- Describe <one of the eight fallacies> and its effects
- What kind of design choices are taken when a designers know that the network is NOT reliable?
- What kind of software architectures and patterns are used when one knows that latency is NOT zero?
- Why is the Internet of Things crucial for the “infinite bandwidth” fallacy?
- What is “Security by design” and why is that a solution to ignoring that the “network is secure”?
- What is the analogy “pet vs cattle”?
- Why “pet vs cattle” analogy is important for the fallacy “Topology does not change”?
- What gives you the principle of “pet vs cattle” give you in terms of scalability, availability, reliability?
- Why there is more than one administrator and how does that impact in every day management
- What are the “hidden costs” of transporting data?
- Why is not the network homogeneous? And what other fallacies does it implies?
- What is the CAP Theorem?
- What is ACID?
- What is Cloud Native computing?
- What are the benefits for businesses?
- What are microservices?
- Why cloud native applications are made of microservices comparing it to monolithical software?
- What are the differences in deployment between a cloud-native, microservices-based, application and a monolithical one?
- Why do you really need automated building, testing and deploying procedures in cloud-native applications?
- What is the characteristics of immutable infrastructure for cloud-native architectures?
- Why is the usage of APIs fundamental for cloud-native, microservices-based applications?
- What is the advantage for the developer of having a service mesh?
- Why can cloud-native applications be deployed on on-premises, hybrid or cloud?
- Why are cloud-native applications inherently multi-vendor (avoiding the vendor “lock-in syndrome”)?