December 2020

December 16, 2020

New Features

New, Improved Create App

You've spoken and we've listened! Our Create App flow has received a makeover, giving you more insight (and control) on how Release initially creates your App.

The first steps may be familiar to you if you've used Release recently. With your permission, Release will look at the docker-compose.yml in your repo (or your .release.yaml or, if you have static services, your package.json) and make some determinations about your application. This is your opportunity to review the services that Release found in your project and to generate your Application Template.

With your Application Template created, you can now view it live during the App Create process, and you're even given the ability to review and edit the template here. We have error handling and syntax checking to prevent you from making any mistakes that would make your application unable to run, allowing you tinker with this template risk-free. And if you don't wish to modify the template, you can breeze right past this step!

After you're satisfied with your template, the last step is to add any build and runtime configurations, such as Environmental Variables, that your application needs for liftoff. If none are required, you can just start Build & Deploy which will kick off the build of your application, and the deploy step will create your App's very first Environment. From here, you're done. Now create as many Environments as your heart desires!

New Deploys & Diagnostics

List View of New Deploys

We recently rolled out changes to our deploys screens and improved the deploy functionality with a Diagnostics check. We've implemented a stage feature, where each deploy can have many stages to it. In this example we'll look at Deploy 4061 and what each stage represents.

New Deploy Info Screen

When we view the info for the deploy, the top section shows which environment the deploy was for, the status of each of its stages, how long the entire deploy took to run, and how long ago it ran. The first stage is a Patch stage, which shows that Build 58610 was deployed with Commit SHA 243f33e8 and that it took six minutes and twenty seconds. The sections inside of the Patch stage should look familiar as they were present on the previous Deploy Info screen.

New Diagnostics for Environment

The second stage of the deploy is our new Diagnostics check. This is the first step towards Release helping you understand if your environment is ready to respond to different types of requests. In this example, you can see that Release has checked the dns, tcp, and http status for the backend container. All three responded, with the http request indicating that it needs to be authenticated and the other two verifying that they are working. Release then checked the status of the redis , which only did dns and tcp checks because redis doesn't talk over http.

As mentioned, this is just the first step for the Diagnostics feature so be on the lookout for future product updates of this feature.

App Imports (microservices solution)

Release is excited to announce our solution for microservices architecture called App Imports. In Release, each repository is represented by an application. We know that some of our users may have as small as two repositories which work in tandem, think a frontend and a backend, while others may have fully embraced microservices and have tens, dare I say hundreds, of repositories that encompass their company. We are striving to support any use case to see what people are going to build!

The short and sweet version of how App Imports works is that you need to add a few lines of code to your Application Template.

app_imports:
- name: other-app-name

With that in stanza in place, when you create an environment for your first application, Release will also create an environment for the imported application in the same namespace. Since the environments are in the same namespace, they can talk to each other without going out to the internet if need be. When you're done, deleting the first environment will delete all the imported environments too! Release will make sure you aren't leaving any environments lying around.

If you're interested in learning more about App Imports, below are two links in our documentation that go into further detail about how everything works. The first, Microservices Architecture, explains the details you need to know about setting up your Application Template, how Environment Variables are shared, how to map those shared Environment Variables, and more. The second, App Imports - Connecting Two Apps Together, is a step by step example using two of our awesome-release repositories to set up the App Imports feature.

Bug fixes and other improvements

Blog Posts

Awesome-release: Tons of Working Release Examples Running in Hosted Kubernetes

Feature Flags and Ephemeral Environments