Full Study Flashcards
What is Cloud Computing?
Definitions all revolve around accessing computing and storage resources through the internet. It is done over the Internet (“the cloud”) to offer faster innovation, flexible resources, and economies of scale.
What does Cloud Computing Deliver?
Computing Services, Storage, Databases, Networking, Software, Analytics, Intelligence
What is Cloud Computing in the eyes of AWS?
Cloud computing is the on-demand delivery of IT resources over the Internet with pay-as-you-go pricing.
Instead of buying, owning, and maintaining physical data centers and servers, you can access technology services, such as computing power, storage, and databases, on an as-needed basis from a cloud provider like Amazon Web Services.
What is Cloud Computing in the eyes of Oracle?
Cloud computing and associated solutions provide access through the web to computing resources and products, including development tools, business applications, compute services, data storage, and networking solutions.
These cloud services are hosted at a software vendor’s data centre and managed by the cloud services provider or onsite at a customer’s data centre.
What are the benefits of Cloud Computing?
Agility, Elasticity and Cost Savings
What are the drawbacks of Cloud Computing?
Availability and Reliability, Portability, Security and Privacy, Computing Performance, Service Quality and Interoperability
What are the types of Cloud Computing delivery models?
Software as a Service (SaaS) - The software is hosted, packaged, and delivered by a third party through the Internet. By delivering the software application over the Internet, enterprises can offload the costs of management and maintenance to the vendor.
Infrastructure as a Service (IaaS) - IaaS gives users access to storage, networking, servers, and other computing resources via the cloud. While the user is still responsible for managing their applications, data, middleware, etc., IaaS provides automated and scalable environments that provide a high degree of control and flexibility for the user.
Platform as a Service (PaaS) - This service layer is primarily geared towards developers and operations professionals. Service providers rent out cloud-based platforms for users to develop and deliver applications. In other words, PaaS provides a framework that makes it easier and more efficient to build, customize, and deploy applications.
What are the Cloud Application architecture fundamentals?
- The cloud is changing how applications are designed and secured.
- Instead of monoliths, applications are decomposed into
smaller, decentralized services. - These services communicate through APIs or by using
asynchronous messaging or eventing. - Applications scale horizontally, adding new instances as
demand requires.
What are the fundamental differences between on-premises and the cloud?
On-premises
Monolithic, Designed for predictable scalability, Relational database, Synchronized processing, Design to avoid failures (MTBF), Occasional large updates, Manual management, Snowflake servers
The Cloud
Decomposed, Designed for Elastic Scale, Polyglot Persistence – Mixture of Storage Technology’s, Automated Self-Management, Immutable Infrastructure, Frequent Small Updates, Asynchronous Processing Designed for Failure (MTTR)
What are the choices that you need to make before choosing a technology?
Compute - refers to the hosting model for the computing resources that your applications run on.
Data Stores - include databases but also storage for message queues, caches, logs, and anything else that an application might persist to storage.
Messaging technologies - enable asynchronous messages between components of the system.
What are some design architecture tools?
Design Principles - Design principles apply to any architectural style. Throughout the design process, keep design principles in mind.
Design Patterns - Software design patterns are repeatable patterns that are proven to solve specific problems. A catalogue (Based on different cloud providers) of Cloud design patterns addresses specific challenges in distributed systems. They address aspects such as availability, high availability, operational excellence, resiliency, performance, and security.
Quality Pillars - A successful cloud application will focus on five pillars of software quality
What are the quality pillars?
Reliability
Security
Cost Optimization
Operational Excellence
Performance Efficiency
What does the architectural styles that are commonly found in cloud applications include?
A description and logical diagram of the style.
Recommendations for when to choose this style.
Benefits, challenges, and best practices.
A recommended deployment using relevant Azure services.
What are the Architectural Styles?
N-Tier - N-tier is a traditional architecture for enterprise applications. Dependencies are managed by dividing the application into layers that perform logical functions, such as presentation, business logic, and data access. A layer can only call into layers that sit below it. N-tier is most often seen in infrastructure as a service (IaaS) solution, or applications that use a mix of IaaS and managed services.
Web-Queue Worker - Web-Queue-Worker is Suitable for relatively simple domains with some resource-intensive tasks. Like N-tier, the architecture is easy to understand. The use of managed services simplifies deployment and operations. For purely PaaS solution, consider a Web-Queue-Worker architecture. In this style, the application has a web front end that handles HTTP requests and a back-end worker that performs CPU intensive tasks or long-running operations. The front end communicates to the worker through an asynchronous message queue.
Microservices - A microservices application is composed of many small, independent services. Each service implements a single business capability. Services are loosely coupled, communicating through API contracts. Each service can be built by a small, focused development team. Individual services can be deployed without a lot of coordination between teams, which encourages frequent updates.
Event Driven Architecture - Event-Driven Architectures use a publish-subscribe (pub-sub) model, where producers publish events, and consumers subscribe to them. The producers are independent from the consumers, and consumers are independent from each other. Consider an event-driven architecture for applications that ingest and process a large volume of data with very low latency, such as IoT solutions.
What is Big Data, Big Compute?
Big Data and Big Compute are specialized architecture styles for workloads that fit certain specific profiles. Big data divides a very large dataset into chunks, performing parallel processing across the entire set, for analysis and reporting.
Big compute, also called high-performance computing (HPC), makes parallel computations across a large number (thousands) of cores.