Scripted deployments in Elastic Beanstalk

admin | October 29, 2018

With the advent of cloud computing services, hosting and managing a platform has never been easier. Nowadays, aspects like servers, networking, storage, and virtualization are handled by a provider who rents a piece of their infrastructure (huge data centers, scattered around the world). They also offer several tools to manage them, lifting the burden of having to hire multiple human and non-human resources to accommodate a company web platform.

Here at MindProber, we use AWS as our cloud hosting provider, taking advantage of their PaaS (platform as a service) model to establish the applications that comprise our platform.

When we first started, we chose to follow the Continuous Integration development practice, in which every iteration is integrated with our environments, following a semi-automated workflow (we have manual testing in our staging environment before persisting them into production).

When one of our developers finishes the development of a feature or a bugfix, their changes are merged (through a pull-request) into the staging branch, triggering a number of automated procedures that will result in an updated version of that component in the staging environment. These kind of procedures are very well defined and suited for automation.

This tutorial should work with any application, developed in any language, that is compatible with the following technologies:

Elastic Beanstalk
Docker (to containerize the app)
I’ll use Node.js to script the tasks and I’ll also assume that you already know how to install it using nvm (one of these scripts requires Node.js 7.6 or higher, because of the await/async keywords).

Keep in mind that there are many different ways to accomplish what we have done, with this method. This story serves only to share some knowledge that could be useful for anyone out there, and not to shove a methodology on the community.

If you want to learn with us read the full article at Medium.

share on

About the author

You may also like…