Search code examples
amazon-web-servicesdeploymentprocessaws-mobilehub

How to handle development to production process with multiple AWS Services


I'm using AWS mobileHub to create an hybrid app with Ionic 3. I don't get how we can handle the production process, Im using all kind of aws services :

  • AWS MobileHub
  • AWS Cognito (User login/logout)
  • AWS API Gateway (Using Lambdas to execute databases request)
  • AWS Lambdas (Call DynamoDB tables and MYSQL RDS Table, using VPC)
  • AWS DynamoDB (Store some user info and IOT data)
  • AWS RDS (Store relational data in MySQL)

Do we have a way to put everything in production ? Here is the idea :

  • Customer will view the v1.x of the app, and meanwhile the customer is using the v1.x of the app, I want to be able to continue the development of the v1.x+1 without being afraid of breaking the prod services.

I know that API Gateway has a "Stage" system I can use, for example I could create a "developement" and "production" stage, but what about others services ? which are most of the time linked with API Gateway.

Here is my idea so far, but I think this is not optimal :

  • Create another aws account, dedicated to production, and duplicate all of my services on this account.When I want to deploy a new version I could update all the aws services and push the new code. Problem : Its seems not efficient because I will need to manually modify the services one by one and that can lead to a lot of errors (forget something, need to update services in a certain orders..)

Any best practices ? Any ideas ? I really need to find a strong deployment process. Thanks !


Solution

  • Here is what I'm going to implement and to try, I will let you know if this is efficient.

    Gitflow diagram picture

    Thanks