Cloud Native Smart City Architecture Using AWS
Cloud Computing Architecture Project
Objective
The primary objective of this project was to understand and delve deeper into the fundamental concepts of cloud computing and its associated components. This technical document is written from the perspective of a cloud architect, encompassing comprehensive aspects in the design of end-to-end cloud applications and services.
Sections
1. Business Requirements and Technical Requirements
- Defining Business Requirements: Identify and list the business needs.
- Linking to Technical Requirements: Connect each business requirement to its corresponding technical requirement.
- Justification: Justify the necessity of each technical requirement for addressing specific business needs.
2. Trade-offs and Engineering Constraints
- Trade-offs: Discuss the trade-offs between different business requirements.
- Engineering Constraints: Acknowledge the constraints faced in engineering, adhering to the “No Free Lunch” principle in engineering.
3. Cloud Service Providers Comparison
- Comparison: Compare different major cloud service providers.
- Selection: Select AWS based on varied criteria tailored for a video streaming service.
4. Foundational Building Blocks of Design
- Building Blocks: Detail the foundational building blocks of the design.
- AWS Services: Explain the corresponding AWS services.
- Provider Comparison: Include a comparison of the cloud providers.
5. AWS Well-Architected Framework
- Reference: Reference the AWS Well-Architected Framework.
- Architectural Diagram: Present an architectural diagram discussing the six pillars outlined in AWS documentation.
- Design Principles and Best Practices: Incorporate design principles and best practices.
6. Experiment: Kubernetes Load Balancing and Autoscaling
- Experiment Setup: Conduct an experiment using Kubernetes.
- Load Generation: Employ Locust to generate load.
- Observation: Observe the autoscaling of Kubernetes pods in response to load fluctuations.
Conclusion
This project provides a comprehensive exploration into the design and implementation of cloud-based applications, emphasizing the importance of aligning business requirements with technical solutions, making informed decisions regarding cloud service providers, and adhering to best practices and design principles in cloud architecture.