The Cloud Infrastructure Landscape

I'm taking a Cloud Infrastructure class on EdX and I have found it to be a really nice overview of the cloud space. It's missing anything related to Hadoop and data analytics, but it describes probably all the tools related to running applications in the cloud. Of course, since the class describes so many tools, it can't do so in depth, but you can pick whatever is interesting to you and learn more about it.

Here's a list of all the tools described in it, which list I might use as a future reference for myself. I'd say that knowing a bit about such a big amount of products definitely helps when you're trying to come up with a cloud infrastructure for a project.

So, big list, based on the course contents:

Virtualization

KVM
VirtualBox
Vagrant

I use VirtualBox to run Linux on Mac OS X and highly recommend it. Mac OS X is not good if you're trying to learn Linux, too many differences.

Infrastructure as a Service (IaaS)

Amazon EC2
Azure Virtual Machines
Digital Ocean
Google Compute Engine
OpenStack

I've only tried EC2 out of these, but it's pretty simple and I like the fact that you can do so many things through the UI, it makes it easier to start with it.

Platform as a Sevice (PaaS)

Cloud Foundry
OpenShift
Heroku
Deis
AWS Elastic Beanstalk (my addition)

I've used Elastic Beanstalk and it's a good way to abstract configuration of load balancers, Apache instances and so on.

Containers

LXC (Linux Containers)
Docker

Docker is the leader here. I'm surprised that companies like Google or VMWare haven't come up with their own solution. Maybe soon.

Micro OSes for Containers

Atomic Host
CoreOS
VMWare Photon
RancherOS

Pretty neat concept of building a minimal OS that's targeted towards running containers.

Container Orchestration

Docker Swarm
Kubernetes

Unikernels

Unik

Container as a Service (CaaS)

Docker Datacenter
Project Magnum on OpenStack

Software Defined Storage and Storage Management for Containers

Ceph
Gluster
StorPool (My addition)

Continuous Integration / Continuous Delivery

Jenkins
Drone
Travis CI
Shippable

These are very easy to try out if you have projects on GitHub. Here's one on which I slapped the Drone badge.

Tools for Configuration Management

Ansible
Puppet
SaltStack
Chef

Useful tools for running commands on multiple servers.

Build and Release Tools

Terraform
BOSH

Key-Value Pair Stores

etcd
Consul

Building Images

Packer

Pretty neat. Just describe your instance and build a VM / Amazon image / Docker container. I can see that being pretty useful when you're building AMIs for AWS. Better than building it manually and not being able to reproduce it on another platform.

Debugging, Logging, Monitoring

Sysdig
cAdvisor
Fluentd
Datadog

social