Scripted deployments in Elastic Beanstalk
António Gomes | 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:
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.
You may also like…
The potential in James One
James One was designed and released to be used by panelists. It has been doing great for the last 8 months having acquired biometric data in thousands of study participations. It measures heart rate – the number of times your heart beats per minute – an important index in the study of emotions. In addition, […]
Performance in data visualization
The MindProber Reporting tool has multiple visualization options regarding the data collected during the study. The most problematic section in terms of performance was the Timeline Analysis, and that’s what we will cover on this post, what were the problems and how we manage to solve them. Performance is crucial in order to create a […]
UX on data science visualization – MindProber vision
The first section and the most complex of MindProber dashboard is ‘Time Analysis’ – where, in a second-by-second basis, the client can observe the performance of the media content and the moments with higher vs. low impact. This section was particularly challenging due to the high volume of information to be displayed – biometric data […]