Kinetech manages enterprise web & mobile applications for clients in the United States, Canada, and the United Kingdom. Our application portfolio covers construction, energy, manufacturing, and financial services. This article outlines the process Kinetech takes for our clients to securely manage cloud deployments. We recommend any business considering migrating applications or workloads to the public cloud (Amazon Web Services (AWS) / cloud foundry) to implement a similar level of process, security, and backups to secure their information technology investments and minimize potential downtime.
Leveraging infrastructure as a service providers like Amazon Web Services or integrated platforms like Mendix can streamline developer operations, but it is no substitute for sound application management.
Michael Guido - CEO | Kinetech Cloud
Before beginning any deployment, it is important to backup the current environment so you can restore the server and database (i.e the cloud node) if the deployment is unsuccessful.
Snapshot of backups in Mendix cloud portal managed by Kinetech
Kinetech recommends taking nightly backups of every environment so you may restore and recover files and data to a previous working version if the database becomes corrupted. Backups should be stored for two to four weeks. Kinetech leverages Amazon Web Services Simple Secure Storage (S3) for enterprise storage and security.
End of Sprint / Unit Testing:
When a development sprint comes to a close, it is time to release the newly developed functionality to the acceptance environment for User Acceptance Testing (UAT). The development team should commit their code to the main development branch, and build a deployment package / executable file. The deployment package will then be transported to the acceptance environment.
Kinetech recommends clients maintain at least two identical environments, one for Acceptance (ACCP) and one for Production (PROD). Some businesses under invest in their acceptance environments (by allocating less RAM or Storage to ACCP than PROD or neglect to maintain an acceptance environment at all). You are not alone, just know this discrepancy will give you an incomplete picture of how the application(s) will perform in production.
Conversely, an identical acceptance environment allows functionality and performance to be tested in a production-like environment which decreases the likelihood of development bugs getting included into a production release. Businesses that have complex applications (i.e. integrating disparate systems may want to consider a third environment (Test).
All stories that the team was able to complete during the sprint should be set to the appropriate status. At Kinetech, we set stories that were developed from “To Do” to “Running” and then expect the UAT users to set the stories to “Done” if / when they accept the functionality. This ensures a proper handoff from the development / business engineering team to the client.
Snapshot of user stories managed by Kinetech
With backups made, stories unit tested, and development committed to the main-line, it is now time to stop the acceptance environment and transport the new deployment package to acceptance.
Acceptance environment managed by Kinetech
Once the acceptance environment has been stopped, it is now time to transport the executable file to the environment, synchronize the database (if changes were made to the database architecture), and start the environment.
Example transporting deployment package to Acceptance Environment
Once the deployment package has been moved to the correct environment and the database synchronized (if applicable), it is now time to start the application.
Acceptance environment being started from cloud portal
The status will change to a green check if the deployment is successful.
Successful deployment complete
The steps outlined in this article describe the process for deploying cloud applications to an acceptance environment. For production deployments, select a small group of administrators who have the rights to securely deploy to production. Kinetech uses dual factor authentication with Google Authenticator to prevent unauthorized deployment to production environments.
If your application supports users in multiple time zones, coordinate deployments for periods when the fewest number of users will be impacted; late in the evening or on weekends. If you must deploy a patch during business hours, notify your users that the application will be down, outline the reason why, then check for logged in users before shutting down the environment and transporting the package.
Leveraging infrastructure as a service providers like Amazon Web Services or integrated platforms like Mendix can dramatically streamline developer operations, but it is no substitute for sound application management. Ensure your team has proper procedures in place to backup the environment, document / commit new functionality, test new changes, and consider security rights to prevent unauthorized deployments.
This article was also published on linkedIn.