AWS Services Overview
AWS Services Overview
Amazon Web Services provides a broad set of global cloud-based products.
Compute
AWS offers a wide range of compute services to run applications.
EC2 (Elastic Compute Cloud)
Virtual servers in the cloud with a wide selection of instance types.
Lambda
Serverless compute service to run code without provisioning servers.
ECS (Elastic Container Service)
Container management service that supports Docker containers.
EKS (Elastic Kubernetes Service)
Managed Kubernetes service to automate container operations.
AI and Machine Learning
Tools for artificial intelligence and machine learning projects.
SageMaker
Fully managed service that provides every developer and data scientist with the ability to build, train, and deploy machine learning models.
Rekognition
Service that makes it easy to add image and video analysis to applications.
Comprehend
Natural language processing (NLP) service that discovers insights from text.
Lex
Service for building conversational interfaces using voice and text.
Storage
Secure, durable, and scalable storage services for data backup and archiving.
S3 (Simple Storage Service)
Object storage service offering scalability, data availability, security, and performance.
EBS (Elastic Block Store)
Block level storage volumes for use with EC2 instances.
Glacier
Low-cost cloud archive storage for data archiving and long-term backup.
EFS (Elastic File System)
Managed file storage for use with AWS Cloud services and on-premises resources.
Data Engineering
Services to collect, store, process, and analyze big data.
Redshift
Fast, fully managed, petabyte-scale data warehouse service.
EMR (Elastic MapReduce)
Managed Hadoop framework to process huge amounts of data.
Data Pipeline
Web service to process and move data between different AWS compute and storage services.
Kinesis
Real-time data streaming service to easily collect, process, and analyze video and data streams in real time.
Servers Overview
Servers are powerful computers designed to provide services and manage network resources for other computers, known as clients, over a local network or the internet. They run specialized software to handle tasks like hosting websites, managing emails, storing files, and running enterprise applications.
Types of Servers
There are various types of servers based on their functions, including:
Web servers: Host and serve web pages over the internet.
File servers: Store and manage files in a central location.
Database servers: Provide database services to other computers.
Mail servers: Handle sending, receiving, and storing emails.
Application servers: Run and manage specific business applications.
Physical vs. Virtual Servers
Servers can be physical, standalone machines dedicated to specific tasks, or virtual, where server software is run on a physical server but operates independently due to virtualization technology.
Server Hardware Components
Key hardware components of a server include:
Processor (CPU): Executes instructions and processes data.
Memory (RAM): Stores data temporarily for quick access.
Storage: Persistent storage for data; can be HDDs or SSDs.
Network Interface: Enables communication with other devices.
Power Supply: Provides electrical power, often redundant for reliability.
Server Software
Servers typically run on operating systems (OS) designed for multi-user and multitasking environments such as Linux distributions, Windows Server, or UNIX-based systems. They also run server applications specific to the services they provide.
Definition of Serverless Computing
Serverless computing is a cloud-computing execution model in which the cloud provider automatically manages the allocation and provisioning of servers. Users can run code for applications or backend services without the need to manage the infrastructure themselves. This means developers can focus on writing code while the cloud provider handles the complexity of server management, scaling, and maintenance.
Characteristics of Serverless Compute Services
Event-driven: Typically, serverless functions are executed in response to events like HTTP requests, message queue triggers, database events, file uploads, etc.
Stateless: Each function execution is independent and does not maintain any state between invocations.
Scalable: The serverless platform automatically scales the number of function instances in response to incoming events.
Pay-per-use: Billing is based on the actual amount of resources consumed by the code execution, often measured in milliseconds or actual invocations, rather than pre-purchased compute capacity.
Managed runtime environment: The underlying infrastructure, operating system, runtime environment, and middleware are all managed by the provider.
Popular Serverless Computing Services
AWS Lambda: Part of Amazon Web Services, it runs code in response to events and automatically manages the compute resources.
Azure Functions: Microsoft's serverless compute service that enables running code triggered by events in Azure or third-party services.
Google Cloud Functions: Google's offering, which allows running functions triggered by Google Cloud events or HTTP requests.
IBM Cloud Functions: An IBM serverless platform based on Apache OpenWhisk that executes functions in response to incoming events.
Here's a detailed summary of each service category in Azure Cloud, with highlights of some key services in each category: ### Compute - **Virtual Machines**: Infrastructure as a Service (IaaS) offering for running virtualized servers with a variety of configurations and operating systems. - **App Service**: Platform for hosting web applications, REST APIs, and mobile app backends with support for multiple languages and frameworks. - **Function Apps**: Event-driven, serverless compute leveraging Azure Functions for executing code in response to triggers. - **Azure Kubernetes Service (AKS)**: Managed Kubernetes container orchestration service, simplifying deployment, management, and operations of Kubernetes. ### Networking - **Virtual Network**: Provision private networks, optionally connecting to on-premises data centers. - **Load Balancer**: Offers high availability and network performance to your applications. - **VPN Gateway**: Establishes secure, cross-premises connectivity between Azure and on-premises. - **Azure DNS**: Hosting service for DNS domains, providing name resolution using Microsoft Azure infrastructure. ### Storage - **Blob Storage**: REST-based object storage for unstructured data, perfect for images, documents, and backup. - **File Storage**: Managed file shares for cloud or on-premises deployments. - **Queue Storage**: A messaging store for reliable messaging between application components. - **Disk Storage**: Offers high-performance, durable block storage for Azure Virtual Machines. ### Databases - **Azure SQL Database**: Managed relational database service with auto-scaling, high-availability, and security features. - **Cosmos DB**: Globally distributed, multi-model database service for any scale. - **Azure Database for MySQL/PostgreSQL/MariaDB**: Fully managed and scalable database services with high availability and security. ### Web - **Azure App Service**: Integrated service for developing, deploying, and scaling web apps. - **Azure Notification Hubs**: Scalable mobile push notification engine for quickly sending millions of messages. - **Web Apps feature of Azure App Service**: Rapidly build, deploy, and manage powerful websites and web apps. ### IoT - **IoT Central**: Fully managed global IoT software as a service (SaaS) solution that makes it easy to connect, monitor, and manage IoT assets. - **IoT Hub**: Central message hub for bi-directional communication between IoT application and devices. - **Azure Sphere**: Fully-managed solution for securing IoT devices. ### Big Data and Analytics - **HDInsight**: Fully-managed cloud Hadoop, Spark, R Server, HBase, and Storm clusters. - **Azure Synapse Analytics**: Analytics service bringing together big data and data warehousing. - **Data Lake Analytics**: On-demand analytics job service to simplify big data analytics. ### AI and Machine Learning - **Azure Machine Learning Service**: Cloud service to train, deploy, automate, and manage machine learning models. - **Cognitive Services**: Suite of APIs to enable natural and contextual interaction. - **Bot Service**: Develop intelligent, enterprise-grade bots to interact with users naturally. ### DevOps - **Azure DevOps**: Services for teams to share code, track work, and ship software. - **GitHub Actions for Azure**: Automate your software workflows with CI/CD that works with any language, platform, and cloud. ### Identity - **Azure Active Directory (AD)**: Microsoft’s multi-tenant, cloud-based directory, and identity management service. - **Azure B2C**: Consumer identity and access management in the cloud. ### Security - **Azure Security Center**: Unify security management and enable
Compute Services Compute Engine: Scalable and flexible virtual machine hosting. Kubernetes Engine: Managed Kubernetes service for containerized applications. App Engine: Platform for building scalable web applications and mobile backends. Cloud Functions: Event-driven serverless compute platform. Cloud Run: Managed compute platform for running containerized applications. Storage and Databases Cloud Storage: Object storage for storing and accessing data. Cloud SQL: Managed relational database service for MySQL, PostgreSQL, and SQL Server. Cloud Spanner: Horizontally scalable, strongly consistent database service. Firestore: NoSQL database for mobile, web, and server development. Bigtable: Scalable NoSQL big data database service. Filestore: Managed file storage for VMs. Memorystore: In-memory data store service for Redis and Memcached. Networking Virtual Private Cloud (VPC): Customizable cloud-based network. Cloud Load Balancing: Scalable and flexible load balancing. Cloud CDN: Content delivery network based on Google's globally distributed edge points of presence. Cloud Interconnect: Services to connect your infrastructure to Google Cloud. Cloud DNS: Scalable, reliable, and managed authoritative Domain Name System (DNS) service. Big Data and Machine Learning BigQuery: Fully-managed, serverless data warehouse for large-scale data analytics. Dataflow: Stream and batch data processing. Dataproc: Managed Spark and Hadoop service. AI Platform: Suite of machine learning products including training and prediction services. TensorFlow on GCP: Integration of Google's TensorFlow machine learning framework with GCP services. Identity & Security Cloud Identity & Access Management (IAM): Access control and identity management. Cloud Security Scanner: Automated vulnerability scanning for web applications. Key Management Service: Manage cryptographic keys for your cloud services. Management Tools Stackdriver: Monitoring, logging, and diagnostics for applications on the cloud. Cloud Console: Web interface for managing GCP services. Cloud Shell: Browser-based shell for managing GCP resources. Cloud Deployment Manager: Infrastructure management service for automating deployment. Developer Tools Cloud SDK: Command-line tools for GCP. Container Registry: Private container image registry. Source Repositories: Hosted private Git repositories. IoT Cloud IoT Core: Managed service to connect, manage, and ingest data from IoT devices. API Platform & Ecosystems Apigee API Management: Platform for developing and managing APIs. Endpoints: NGINX-based proxy to deploy and manage APIs. These services provide the tools necessary for cloud computing, including computing power, storage options, databases, machine learning, networking, and much more, catering to various IT needs and business models.
Google Cloud Platform Services
An overview of key services offered by Google Cloud Platform across different domains.
Compute Services
Offering scalable and flexible computing options for various applications.
Compute Engine
Scalable and flexible virtual machine hosting.
Kubernetes Engine
Managed Kubernetes service for containerized apps.
App Engine
Platform for scalable web and mobile back ends.
Cloud Functions
Event-driven serverless compute platform.
Cloud Run
Managed platform for containerized applications.
Storage and Databases
Robust data storage and database solutions for any scale.
Cloud Storage
Object storage service for data storage and access.
Cloud SQL
Managed relational database for MySQL, PostgreSQL, SQL Server.
Cloud Spanner
Strongly consistent, horizontally scalable database service.
Firestore
NoSQL database for mobile, web, and server apps.
Bigtable
Scalable NoSQL big data database service.
Networking
Solutions for networking infrastructure and optimization.
Virtual Private Cloud (VPC)
Customizable cloud-based network.
Cloud Load Balancing
Flexible and scalable load balancing.
Cloud CDN
Content delivery network with global distribution.
Cloud Interconnect
Connect your infrastructure to Google Cloud.
Cloud DNS
Managed authoritative DNS service.
Big Data and Machine Learning
Tools for data analytics and machine learning at scale.
BigQuery
Serverless data warehouse for large-scale data analytics.
Dataflow
Stream and batch data processing.
Dataproc
Managed Spark and Hadoop service.
AI Platform
Machine learning suite with training & prediction services.
TensorFlow on GCP
Integrates TensorFlow ML framework with GCP.
Identity & Security
Protecting applications and managing access in the cloud.
Cloud IAM
Control access and manage identities.
Cloud Security Scanner
Automated vulnerability scanning for apps.
Key Management Service
Manage cryptographic keys for cloud services.
Management Tools
Tools to monitor, manage, and deploy cloud resources.
Stackdriver
Monitoring, logging, and diagnostics for cloud apps.
Cloud Console
Web interface to manage GCP services.
Cloud Shell
Browser-based shell for GCP management.
Cloud Deployment Manager
Automate deployment with infrastructure management.
Developer Tools
Tools to improve development and operational efficiency.
Cloud SDK
Command-line tools for GCP.
Container Registry
Private container image registry.
Source Repositories
Hosted private Git repositories.
IoT
Services tailored for Internet of Things applications.
Cloud IoT Core
Managed service for IoT device connection and data management.
API Platform & Ecosystems
Tools and platforms to develop and manage APIs efficiently.
Apigee API Management
Developing and managing APIs.
Endpoints
NGINX-based proxy for API deployment and management.
Compute Engine Description: Compute Engine offers scalable and flexible virtual machine hosting in Google's data centers. You can run your large-scale computing workloads on virtual machines (VMs) hosted on Google's infrastructure. Key Features: Customizable VMs: Choose the machine type that fits your workload. Preemptible VMs: Cost-effective VMs for batch jobs and fault-tolerant workloads. Global infrastructure: Run applications on the same infrastructure that powers Google. Live migration: Keeps VMs running even during host system maintenance.
Google Cloud Platform (GCP) offers a suite of compute services that cater to various computing needs for developers and enterprises. Here's a brief overview of some of the primary compute services provided by GCP:
Compute Engine: This is an Infrastructure as a Service (IaaS) offering that provides virtual machines (VMs) on demand. Compute Engine allows you to scale and customize computing resources as needed, enabling you to run large-scale computing workloads on Google's infrastructure.
App Engine: A fully managed Platform as a Service (PaaS) that lets developers deploy web applications and mobile backends without having to manage the underlying infrastructure. It automatically scales based on traffic and allows developers to use built-in services to enhance their applications.
Kubernetes Engine (GKE): A managed environment for deploying, managing, and scaling containerized applications using Google's infrastructure. It simplifies the deployment of apps using containers and the orchestration of those containers with Kubernetes.
Cloud Functions: A serverless execution environment for building and connecting cloud services. With Cloud Functions, you can write simple, single-purpose functions that are attached to events emitted from your cloud infrastructure and services.
Cloud Run: A managed platform that enables you to run stateless containers that are invocable via web requests or Pub/Sub events. It is serverless, providing a flexible and scalable model that abstracts away infrastructure management tasks.
These services cater to different needs, from running virtual machines to deploying serverless functions. They provide flexibility, scalability, and the reliability of Google's infrastructure to run various applications.
What is a Managed Kubernetes Service?
Managed Kubernetes services provide an abstraction layer over the complex Kubernetes ecosystem, offering an easier management experience for containerized applications. These services are offered by cloud providers and simplify tasks like setup, scaling, and maintenance. They deploy, manage, and scale the containers automatically based on the configurations set by the user.
Benefits of Managed Kubernetes Services
Simplified Cluster Management: Managed services automate complex tasks like upgrades, patching, and general cluster maintenance.
Reduced Operational Overhead: Teams can focus on app development rather than managing Kubernetes infrastructure.
Scalability: Easily scale applications up or down based on demand without manual intervention.
Security: Provider-managed security updates and compliance with best practices help protect your applications.
Popular Managed Kubernetes Services
Amazon Elastic Kubernetes Service (EKS): AWS's managed Kubernetes service which integrates with other AWS services.
Google Kubernetes Engine (GKE): Google Cloud's managed Kubernetes service known for its advanced features and reliability.
Azure Kubernetes Service (AKS): Microsoft's managed Kubernetes offering that integrates deeply with Azure services.
IBM Kubernetes Service: IBM's managed Kubernetes service that emphasizes security and scale.
DigitalOcean Kubernetes (DOKS): A simpler and lower-cost Kubernetes option targeted at developers and startups.
Considerations When Choosing a Managed Kubernetes Service
Integration with existing Cloud Services: Look for a service that integrates well with your current cloud ecosystem.
Pricing: Understand the pricing model, which can vary based on compute resources, network traffic, and storage requirements.
Service Level Agreements (SLAs): Check the provider's SLA for uptime and support to ensure it aligns with your business needs.
Scalability and Performance: Assess how the service supports workload scaling and review the performance metrics.
Support and Community: Consider the level of support offered and the size and activity of the user community.
By opting for a managed Kubernetes service, you can leverage the power of container orchestration without the need to become an expert in Kubernetes infrastructure management.
Scalable Platform Basics
A platform for scalable web and mobile back ends is designed to support applications by providing services such as database management, user authentication, server-side logic, storage, and hosting. Scalability ensures that as the number of users grows, the platform can handle increased load with minimal disruption to performance.
Examples of Scalable Platforms
Amazon Web Services (AWS): Offers a vast array of services like EC2 for computing, RDS for databases, and Lambda for serverless functions, all of which can scale according to demand.
Google Cloud Platform (GCP): Provides products like Google App Engine, Cloud Functions, and Firestore that automatically scale depending on the application's needs.
Microsoft Azure: Features Azure Functions for a serverless compute service, Azure SQL Database for a scalable relational database, and Azure Cosmos DB for a globally distributed database service.
Firebase: A platform by Google aimed at mobile and web application development, providing real-time databases, authentication, and hosting, all of which scale automatically.
Key Features of Scalable Back Ends
Elasticity: Automatically adds or removes resources based on the actual demand.
Load Balancing: Distributes traffic across multiple servers to ensure no single server becomes overwhelmed.
Microservices Architecture: Structuring the back end as a collection of loosely coupled services, which can be independently scaled.
Database Sharding: Splits databases into smaller, faster, more easily managed parts called "shards" that can be spread across servers.
Caching: Temporarily stores copies of frequently accessed data to speed up response times and reduce load on the back end.
Event-driven Computing
Event-driven computing is a paradigm in which the flow of the program is determined by events such as user actions, sensor outputs, or messages from other programs. This approach is particularly effective for scenarios where systems need to respond promptly to various inputs and maintain high levels of efficiency and scalability.
Serverless Computing
Serverless computing is a cloud computing execution model where the cloud provider dynamically manages the allocation and provisioning of servers. A serverless application runs in stateless compute containers that are event-triggered, ephemeral (may only last for one invocation), and fully managed by the cloud provider.
Event-driven Serverless Compute Platforms
Event-driven serverless compute platforms combine the concepts of event-driven architecture with serverless execution models. Here, the application components are triggered by events, which occur in response to external stimuli such as user actions, changes in data state, or requests from web applications.
The serverless aspect means that developers do not have to worry about server provisioning, capacity planning, or server management. Instead, they can focus solely on writing code to handle events. The infrastructure required to listen for events and execute the corresponding application or function code is handled by the cloud provider.
AWS Lambda, Azure Functions, and Google Cloud Functions are examples of event-driven serverless compute platforms. These services allow developers to deploy small pieces of code, which get executed in response to various types of events. The cloud provider charges for the compute resources consumed during the execution of the function, often billed in milliseconds of execution time, which can be more cost-effective compared to running persistent server instances.
Platform Definition
A platform in the most general sense refers to any base of technologies on which other technologies or processes are built. The term can be applied in various contexts:
Computing Platform: Refers to the underlying hardware or software on which applications are run, e.g. Windows, macOS, Android, iOS, Linux, or gaming consoles like PlayStation and Xbox.
Digital Platform: Online platforms such as social media sites, e-commerce sites, service-oriented websites (like Uber or Airbnb), which act as a base for user interactions and transactions.
Physical Platform: In a non-technical sense, can also refer to a raised surface or stage used for speaking or conducting performances.
Political Platform: A set of principles or an agenda promoted by a political party or candidate.
Offshore Platform: Typically refers to structures used in the extraction of oil and natural gas from beneath oceans—these are complex facilities involving drilling, workforce accommodation, and processing.
Each type of platform supports particular activities, whether it's running software applications, facilitating online interactions and commerce, providing a space for public speaking, promoting political ideals, or extracting resources. The concept conveys a foundational or supporting role in any context.