--- layout: "intro" page_title: "Parallel Builds" prev_url: "/intro/getting-started/provision.html" next_url: "/intro/getting-started/vagrant.html" next_title: "Vagrant Boxes" --- # Parallel Builds So far we've shown how Packer can automatically build an image and provision it. This on its own is already quite powerful. But Packer can do better than that. Packer can create multiple images for multiple platforms _in parallel_, all configured from a single template. This is a very useful and important feature of Packer. As an example, Packer is able to make an AMI and a VMware virtual machine in parallel provisioned with the _same scripts_, resulting in near-identical images. The AMI can be used for production, the VMware machine can be used for development. Or, another example, if you're using Packer to build [software appliances](http://en.wikipedia.org/wiki/Software_appliance), then you can build the appliance for every supported platform all in parallel, all configured from a single template. Once you start taking advantage of this feature, the possibilities begin to unfold in front of you. Continuing on the example in this getting started guide, we'll build a [DigitalOcean](http://www.digitalocean.com) image as well as an AMI. Both will be near-identical: bare bones Ubuntu OS with Redis pre-installed. However, since we're building for both platforms, you have the option of whether you want to use the AMI, or the DigitalOcean snapshot. Or use both. ## Setting Up DigitalOcean [DigitalOcean](https://www.digitalocean.com/) is a relatively new, but very popular VPS provider that has popped up. They have a quality offering of high performance, low cost VPS servers. We'll be building a DigitalOcean snapshot for this example. In order to do this, you'll need an account with DigitalOcean. [Sign up for an account now](https://www.digitalocean.com/). It is free to sign up. Because the "droplets" (servers) are charged hourly, you _will_ be charged $0.01 for every image you create with Packer. If you're not okay with this, just follow along.
{ "type": "digitalocean", "api_key": "INSERT API KEY HERE", "client_id": "INSERT CLIENT ID HERE" }Fill in your `api_key` and `client_id` for DigitalOcean as necessary. The entire template should now [look like this](https://gist.github.com/mitchellh/51a447e38e7e496eb29c). Additional builders are simply added to the `builders` array in the template. This tells Packer to build multiple images. The builder `type` values don't even need to be different! In fact, if you wanted to build multiple AMIs, you can do that as well. Validate the template with `packer validate`. This is always a good practice.