This entire post about how Kubernetes could become the distributed operating system of choice is worth reading. But one statement really struck me:
Well, as they say, the future is already here, but it’s only available as an AWS managed service.
The “they” in this is apparently not William Gibson, as I thought. More details here.
For the past couple of years the cloud providers have matured and moved from offering infrastructure as a service (disk, compute) to platform as a service offerings (sqs, which is a managed message queue like activemq, or kinesis, a managed data ingestion system like kafka, etc). Whenever you think about installing a proprietary or open source package, you should include the cloud provider offerings in your evaluation matrix. Of course, the features you need may not be there, or the cost may be prohibitive, but including them in an evaluation makes sense because of the speed of deployment and the scaling available.
If you think a system architecture can benefit from a message queuing system, do you want to spend time setting up and maintaining such a system, or do you want to spin up an SQS queue in a few minutes?
And the cost may not be prohibitive, depending on the skillset of your internal team and your team’s desire to run such plumbing services. It can be really hard to estimate running costs of infrastructure services, though you can estimate it by looking at internal teams and seeing similar services they run and how much money it takes. The nice thing about cloud services is that the costs are very transparent. The kinesis data streams pricing example walks through a scenario and concludes:
For $1.68 per day, we have a fully-managed streaming data infrastructure that enables us to continuously ingest 4MB of data per second, or 337GB of data per day in a reliable and elastic manner.
Another AWS instructor made the point that AWS and other cloud services invert the running costs of IT infrastructure. In a typical enterprise, the running costs of your data center and infrastructure are like an iceberg–10% is explicit (server costs, electricity, etc) and 90% is implicit (payroll, time spent upgrading and integrating systems). In the cloud world those numbers are reversed and far more of your infrastructure cost is explicitly laid out for you and your organization.
Truly the future.