Berlioz is a service that delivers microservices applications to AWS public cloud. Application components are defined in YAML using high level abstractions. This enables teams to work independently and focus on business problems rather than cloud logistics. Berlioz will also configure AWS native services like DynamoDB, Kinesis, etc.
Another very useful capability of Berlioz is to deploy the application locally on a workstation as if it is running in an AWS cloud. This will also work even if the application is using cloud native resources and services. This significantly improves development team productivity.
Follow steps below to:
- Prepare your workstation following this guide
- Install berlioz command line tool
- Download sample projects
- Deploy HelloWorld web application to local workstation
$ npm install berlioz -g $ git clone https://github.com/berlioz-the/samples.git $ cd samples/01.HelloWorld/v1.basic $ berlioz local push-run
Now lets deploy the same application to AWS. The steps below will:
- Register an account with Berlioz
- Link AWS account with Berlioz. Follow this guide to obtain AWS key and secret.
- Create new deployment definition for production
- Build docker images and push the to the cloud
- Deploy the application to production
- Check the deployment status
- See the endpoints
$ berlioz signup $ berlioz provider create --name myaws --kind aws --key <key> --secret <secret> $ berlioz deployment create --name prod --provider myaws $ berlioz login --region <...> $ berlioz push --region <...> $ berlioz run --deployment prod $ berlioz status --region <...> $ berlioz endpoints --deployment prod
With the single web application up and running we can make some code changes to add the second service and let them communicate. Just like before we will run the application on a local workstation:
$ cd ../v2.second-service $ berlioz local push-run
and then, to the cloud:
$ berlioz login --region <...> $ berlioz push --region <...> $ berlioz run --deployment prod $ berlioz status --region <...> $ berlioz endpoints --deployment prod
This was the most trivial application example we could come up with. For more sample uses and scenarios checkout the complete samples repository here.
Complete documentation reference: