Berlioz - cloud deployment and migration services
npm install berlioz





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.
!Service Discovery Service Discovery - Zero-config discovery is available for all services out of the box. Berlioz does much more than just Load Balancer and DNS.
!Multi-Region Support Multi-Region Support - We also support the deployment of services to multiple regions. Numerous options are available to control communication allowance across/within regions and availability zones.
!Native Resources Native Resources - We configure, bind and manage cloud-native resources like storage volumes, message queues, etc. and make them available for stateful services to consume.
!Network Configuration Network Configuration - We automatically configure the network and ensure the availability and security of your application.
!Load Balancing Load Balancing - Single line entry in your service declaration would provision load balancer for your service.
!Isolated Deployments Isolated Deployments - Get your application deployed per your staging (test & prod) and your team member needs.
!Local Deployment Local Deployment - For means of rapid development, the application can be launched on a local workstation as if it is running in a cloud.
```
$ 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:
1. Register an account with Berlioz
2. Link AWS account with Berlioz. Follow this guide
to obtain AWS key and secret.
3. Create new deployment definition for production
4. Build docker images and push the to the cloud
5. Deploy the application to production
6. Check the deployment status
7. See the endpoints
``
$ berlioz signup
$ berlioz provider create --name myaws --kind aws --key
$ 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.