Site Reliability Engineering (SRE) is a discipline that incorporates aspects of software engineering and applies them to infrastructure and operations problems. The main goals are to create scalable and highly reliable software systems.
AWS and Azure are two major cloud service providers that offer various services necessary for SRE.
In AWS:
1. AWS CloudWatch: Monitors your AWS resources and the applications you run on AWS in real time.
2. AWS Lambda: Lets you run your code without provisioning or managing servers.
3. AWS S3: Offers object storage built to store and retrieve any amount of data from anywhere.
4. AWS EC2: Provides secure resizable compute capacity in the cloud.
5. AWS RDS: Makes it easy to set up operate and scale a relational database in the cloud.
6. AWS DynamoDB: A keyvalue and document database that delivers singledigit millisecond performance at any scale.
7. AWS CloudFormation: Provides a common language for you to describe and provision all the infrastructure resources in your cloud environment.
In Azure:
1. Azure Monitor: Maximizes the availability and performance of your applications by delivering a comprehensive solution for collecting analyzing and acting on telemetry from your cloud and onpremises environments.
2. Azure Functions: An eventdriven computeondemand experience that extends the existing Azure application platform with capabilities to implement code triggered by events occurring in Azure or thirdparty services.
3. Azure Blob Storage: A massively scalable object storage for unstructured data.
4. Azure Virtual Machines: Gives you the flexibility of virtualization for a wide range of computing solutions.
5. Azure SQL Database: A fully managed relational database with autoscale integral intelligence and robust security.
6. Azure Cosmos DB: A globally distributed multimodel database service for any scale.
7. Azure Resource Manager: Enables you to work with the resources in your solution as a group.
Both AWS and Azure also offer Platform as a Service (PaaS) which provides a platform allowing customers to develop run and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app.