I recently needed to build this summary, so thought I’d rather share with more people as well. Please feel free to add any points you see fitting.
Rather then putting on versus another assuming mutual exclusivity, many companies are adopting both tools simultaneously.Terraform is usually used for static cloud Infrastructure setup and updates, such as networks/VLANs, Firewalls, Load Balancers, storage buckets, etc. Spinakker is used for setting up more complex deployment pipelines, mainly orchestration of software packages and application code to setup on servers.Though there is intersection (Spinakker can also deploy App environment), Terraform provides an easy and clean way to setup Infrastructure-as-Code.
- Hashicorp product focused on allowing you to cleanly describe and deploy infrastructure in Cloud and on premise environments;
- Allows to describe your infrastructure as code, as well as to deploy it. Although complexer deployments replying on server images is possible, man-power effort starts growing exponentially
- The sintax used to describe resources is own Hashicorp Configuration Language (HCL), which may be a turn off at first sight; however, after seeing how clear human readable it is, you won’t regret it;
- Deployment form varies; from immutable infrastructure style deployments (e.g. new update = complete new resource) to updates, depending on the nature of resources. For example, server instances require immutable approach, where firewall rules do not;
- Failure to deploy resources does not roll back and destroy “zombie” resources; instead they are marked as tainted, and left as it is. On a next execution plan run, tainted resources will be removed, to give place to new intended resources. More detail here;
- Multi-cloud deployments, currently supporting AWS, GCP, Azure, OpenStack, Heroku, Atlas, DNSimple, CloudFlare.
- Doesn’t require server deployment, e.g. can be launched from your own local machine. However, Hashicorp provides Atlas, to provide remote central deployments.
- Is a Netflix open source tool for managing deployment of complex workflows (Continuous Delivery). It is kind of a second generation/evolution of Asgard.
- Orchestrator for deploying full Application environments, from sourrounding infrastructure environment (networks, firewalls and load balancers), along with server images;
- Works hand-in-hand with tools such as Jenkins and packer.
- As an orchestrator, it focuses on Pipelines, a sequence of stages. A stage is an atomic building block; examples of stages:
- Build an image (example AMI in case of AWS) in a specific Region
- Deploy the image
- Run a bash script
- Resize a server group
- Multi-cloud deployments, currently supporting AWS, GCP, Azure, OpenStack, Kubernetes, and CloudFoundry.
- It is by itself a product with several functionality, requiring itself server deployemnt. Images for easy deployment are available both in AWS, Azure, GCP, and Kubernetes;
- Provides Web GUI for full pipeline configuration, as well as an API
- Allows to setup webhooks for notifications via email, SMS and chat clients (HipChat/Slack)
EMC acquired the Storage Startup ScaleIO for $200M-$300M.
ScaleIO is a Palo Alto based Startup that competes with Amazon AWS, more specifically with its Elastic Block Storage (EBS). They use an architecture of grid computing, where each computing node has local disks and ScaleIo Software. The Software creates a Virtual SAN with local disks, thus providing a highly parallel computing storage nodes SAN, while maintaining HA Enterprise requirements.
ScaleIO Software is allegedly a lightweight piece of Software, and runs alongside with other applications, such as DBs and hyper-visors. They work with all leading Linux distributions and hyper-visors, and offer additional features such as encryption at rest and quality of service (QoS) for performance.
Here’s ScaleIO own competitive smack down:
This post is intended to be a very simplistic post on how to get you started with Amazon Cloud (AWS) with a VM. It will allow you to start experimenting AWS, without any costs (if you take the right steps). Naturally Amazon itself provides more detailed steps here.
What you will need:
- email account
- cellphone – for security reasons, to make sure you’re not hosting CPU power for any DDoS and other type of stuff
- credit card – though you actually need to input credit card details, you can indeed run a free VM in a limit amount of time. Amazon will simply not charge you anything for it, as long as you stick to the greenzone.
Overview of the process:
- Sign up for AWS account.
- Launch a “t1.micro instance”
- Beware of the 750 hours free-use limit.
Simple, right? Here are more detailed steps:
- Go to aws.amazon.com and click on “Sign up”.
- Next enter your email address and select “I am a new user.”
- Enter Login credentials
- Enter your contact information
- Enter your payment information
- Next you will have an Identity verification through cellphone, which consists of being contacted by an automated system that prompts you to enter the PIN number they provided you.
- After that, it may take while until your account is actually activated.
- Next go to aws.amazon.com/products and click on the “My account Console”, and “AWS Management Console”. After you successfully login, you’ll land at this page:
- Click on “EC2 Virtual Servers in the Cloud”.
- You will land on the EC2 Dashboard. Right in the middle click on “Launch Instance”.
- On the “Create a New Instance” menu select “Quick Launch Wizard”
- Then Select “Create new”, enter the name of your new Instance (i.e. VM) and select for instance an Ubuntu, to make sure you stay on the free-way. Nowadays you have two versions of Ubuntu Server available: 12.04.2 LTS and 13.04. If you are following specific tutorials with the previous version of ubuntu, then you might prefer to choose that one. Before hitting continue, make sure you click on the “Download” button. You will download a “pem” file (Privacy Enhance Mail), which is the certificate you will need to sucessfully establish a console session to that VM you’re about to launch. After downloading that file, hit “Continue”.
- On the next screen you will be able to confirm that the type of instance you are launching is a “t1.micro”. It is very important you do not change this, if you want to stick with the free experimenting. Hit launch.
- Your VM might take a few minutes until the orchestration on Amazon backend is completed. When the initialization is completed, right-click on your instance and select connect.
- Select “Connect with a standalone SSH Client”. You will have instructions provided by Amazon there. Make sure you copy the command line provided by Amazon, and launch a terminal session. In Windows I suggest you use Putty. If you’re using a Mac, just go to “Applications > Utilities > Terminal”.
- On Mac: Now this part might be a little more tricky if you’re not used to CLI. You need to change the permissions of that “pem” file you downloaded, so change to the directory where you stored the pem file (Usually “Downloads” directory), and change permissions. Enter the following lines, where the text contained in each quotes is a different line: “cd ~/Downloads” , “chmod 400 name-of-the-pem-file-you-downloaded.pem“.
- Still on Mac: Now is the time to paste the line you copied from Amazon. Something like “ssh -i name-of-the-pem-file-you-downloaded.pem email@example.com”
- On windows: follow this tutorial to connect with Putty.
- There! You should have a Welcome page in your terminal console from Ubuntu.
Up and running. It is very important for you to note that you keep your total usage of t1.micro instances under 750 hours per month to avoid charges from Amazon. In order to do that, you have to terminate (yes delete everything!) your instance. You might not be using CPU power, but you will still be using Storage, which is also included in Amazon’s business…
Now its time for experimenting things. Why not start with a LAMP?