diff --git a/README.md b/README.md index 569cba25..08736457 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,7 @@ General Information - See the [current list](https://aws.amazon.com/about-aws/global-infrastructure/) of regions and edge locations, including upcoming ones. - If your infrastructure needs to be in close physical proximity to another service for latency or throughput reasons (for example, latency to an ad exchange), viability of AWS may depend on the location. - ⛓**Lock-in:** As you use AWS, it’s important to be aware when you are depending on AWS services that do not have equivalents elsewhere. - - Lock-in may be completely fine for your company, or a significant risk. It’s important from a business perspective to make this choice explicitly, and consider the cost, operational, business continuity, and competitive risks of being tied to AWS. AWS is such a dominant and reliable vendor, many companies are comfortable with using AWS to its full extent. Others can tell stories about the [dangers “cloud jail” when costs spiral](http://firstround.com/review/the-three-infrastructure-mistakes-your-company-must-not-make/). + - Lock-in may be completely fine for your company, or a significant risk. It’s important from a business perspective to make this choice explicitly, and consider the cost, operational, business continuity, and competitive risks of being tied to AWS. AWS is such a dominant and reliable vendor, many companies are comfortable with using AWS to its full extent. Others can tell stories about the [dangers of “cloud jail” when costs spiral](http://firstround.com/review/the-three-infrastructure-mistakes-your-company-must-not-make/). - Generally, the more AWS services you use, the more lock-in you have to AWS — that is, the more engineering resources (time and money) it will take to change to other providers in the future. - Basic services like virtual servers and standard databases are usually easy to migrate to other providers or on premises. Others like load balancers and IAM are specific to AWS but have close equivalents from other providers. The key thing to consider is whether engineers are architecting systems around specific AWS services that are not open source or relatively interchangeable. For example, Lambda, API Gateway, Kinesis, Redshift, and DynamoDB do not have have substantially equivalent open source or commercial service equivalents, while EC2, RDS (MySQL or Postgres), EMR, and ElastiCache more or less do. (See more [below](#which-services-to-use), where these are noted with ⛓.) - **Combining AWS and other cloud providers:** Many customers combine AWS with other non-AWS services. For example, legacy systems or secure data might be in a managed hosting provider, while other systems are AWS. Or a company might only use S3 with another provider doing everything else. However small startups or projects starting fresh will typically stick to AWS or Google Cloud only. @@ -258,24 +258,24 @@ Many services within AWS can at least be compared with Google Cloud offerings or | Service | AWS | Google Cloud | Google Internal | Microsoft | Other providers | Open source “build your own” | |-------------------------------|------------------------------------------------------------------------------|------------------------------|-----------------|------------|-----------------------------------|------------------------------------------------------------| -| Virtual server | EC2 | Compute Engine (GCE) | | | DigitalOcean | OpenStack | -| PaaS | Elastic Beanstalk | App Engine | App Engine | | Heroku | Meteor, AppScale | -| Serverless, microservices | Lambda, API Gateway | Functions | | | | | -| Container, cluster manager | ECS | Container Engine, Kubernetes | Borg or Omega | | | Kubernetes, Mesos, Aurora | -| File storage | S3 | Cloud Storage | GFS | | | Swift, HDFS | +| Virtual server | EC2 | Compute Engine (GCE) | | Azure VM | DigitalOcean | OpenStack | +| PaaS | Elastic Beanstalk | App Engine | App Engine | Web Apps | Heroku | Meteor, AppScale | +| Serverless, microservices | Lambda, API Gateway | Functions | | Function Apps | | | +| Container, cluster manager | ECS | Container Engine, Kubernetes | Borg or Omega | Azure Container Service | | Kubernetes, Mesos, Aurora | +| File storage | S3 | Cloud Storage | GFS | Storage Account | | Swift, HDFS | | Block storage | EBS | Persistent Disk | | | | NFS | -| SQL datastore | RDS | Cloud SQL | | | | MySQL, PostgreSQL | +| SQL datastore | RDS | Cloud SQL | | SQL Database | | MySQL, PostgreSQL | | Sharded RDBMS | | Cloud SQL | F1, Spanner | | | Crate.io | | Bigtable | | Cloud Bigtable | Bigtable | | | CockroachDB | | Key-value store, column store | DynamoDB | Cloud Datastore | Megastore | | | Cassandra, CouchDB, RethinkDB, Redis | | Memory cache | ElastiCache | App Engine Memcache | | | | Memcached, Redis | | Search | CloudSearch, Elasticsearch (managed) | | | | Algolia, QBox | Elasticsearch, Solr | -| Data warehouse | Redshift | BigQuery | | | Oracle, IBM, SAP, HP, many others | Greenplum | -| Business intelligence | QuickSight | | | | Tableau | | +| Data warehouse | Redshift | BigQuery | | SQL Data Warehouse | Oracle, IBM, SAP, HP, many others | Greenplum | +| Business intelligence | QuickSight | | | Power BI | Tableau | | | Lock manager | [DynamoDB (weak)](https://gist.github.com/ryandotsmith/c95fd21fab91b0823328) | | Chubby | | | ZooKeeper, Etcd, Consul | | Message broker | SQS, SNS, IoT | Pub/Sub | PubSub2 | | | RabbitMQ, Kafka, 0MQ | | Streaming, distributed log | Kinesis | Dataflow | PubSub2 | Event Hubs | | Kafka Streams, Apex, Flink, Spark Streaming, Storm | -| MapReduce | EMR | Dataproc | MapReduce | | Qubole | Hadoop | +| MapReduce | EMR | Dataproc | MapReduce | HDInsight | Qubole | Hadoop | | Monitoring | CloudWatch | Monitoring | Borgmon | | | Prometheus(?) | | Metric management | | | Borgmon, TSDB | | | Graphite, InfluxDB, OpenTSDB, Grafana, Riemann, Prometheus | | CDN | CloudFront | | | Azure CDN | | Apache Traffic Server |