Digital Garage Review

**Digital Garage Review**

This article available in Spanish.

"Digital Garage provides developers the tools that allow them to save time and money."

Digital Garage is a service platform based on Openshift. It offers a cloud based environment in which developers can execute, test and manage their applications. They can do this without having to worry about infrastructure, underlying hardware, operating systems and other resources. The abstraction provided by this platform allows developers to focus on programming applications with a great impact on their productivity level.

Digital Garage brings many advantages to web developers. For example, project creation on this platform allows you to deploy an application in development, testing and production environments. This gives you total control over the application's life cycle. All this can be accomplished regardless of the developers location because all you need is an internet connection.

There is no need to spend money on a physical infrastructure. The cloud environment allows developers to avoid investing on equipment and time for infrastructure configuration and management. For a monthly fee, developers have access to all the tools necessary to deploy their applications in a secure, fast and automated way.

Another remarkable advantage of Digital Garage is that it is built from open-source projects.

This offers developers access, study, updates and reuse of the different tools that are part of the platform making it completely transparent. Digital Garage is based on Docker and Kubernetes which are both great tools for developers. Each of them are maintained on a daily basis by a community of developers around the world. This means that, as these technologies grow, so will the platform. Moreover, users have easy access to all the documentation on the tools that are part of Digital Garage by a straightforward internet search.

Using the platform is easy and it implies a smooth learning curve for those programmers who are already familiarized with technologies like Docker and Git. Application deployments are made from a Git repository that includes the source code of the project oris obtained from a Docker image, allowing the management of applications to be robust and scalable.

Digital Garage options for automated deployment of applications:

Catalogue of languages, frameworks and databases

It consists of a list of options where most of the web development languages, frameworks and databases are present. This catalogue includes, PHP, Python, Ruby, Java, Node.js, Java, Perl, Mysql, Mongodb, Mariadb, Django, Cakephp, and constantly being updated.

How it works

When a specific language is selected, the developer needs to provide the URL of the Git repository where the application (in the selected language) is located. The platform then takes over and creates an executable image from the provided source code. This option is known as “Builder image”.

Frameworks and databases are presented in the catalogue as “Quick Templates”. This templates represent a series of parameterized objects that are processed to generate the application. The user only needs to specify the value for each of the defined parameters on the template in order to deploy.

From a Docker image: The integration of the platform with Docker allows a better experience in development due to the fact that it allows for the possibility for programmers to use their own images to deploy and execute applications. Users can deploy from an image already registered in an intern repository of the platform or from an image published on Docker Hub.

##Making your own Template

Importing YAML or JSON: If none of the previous options meet the expectations and requirements of the developer, it is possible to create applications from customized “Templates”. Said template needs to be defined in YAML or JSON format, and it should describe some components that are needed for the application execution. The components of a template -concepts inherited from Kubernetes- that are most important to be taken into account at this point are:

Pod: It consists of one or more containers deployed together in a pod. It is the smallest computable unit that can be defined, implemented and managed.

Services: It works as an internal load balancer, and acts as a proxy between the set of replicated Pods and the connections it receives.

Deployment config: It defines what is the image that will be deployed and how it will be deployed.

Route: It exposes the entry point (URL) to the Service.

Once users have deployed their application, they have total control over it. It is possible to manage all projects and applications the user has created on the platform through the platform web console. For example, you can configure automated deploys using a Github webhook to trigger a rebuild of an application every time its code changes.

Additionally, users can manage their applications via command line by using the CLI command, which allows the developer to perform several different actions by using OC commands.

In summary, Digital Garage provides developers a series of tools that allows them to save time and money. For a programmer, the usage of the platform does not compare to the need of configuring real servers and all the related activities that can imply. Also, it allows web applications to be accessed by final users/testers as soon as deployment has been completed, and deployment itself has been made easy thanks to the advantages the platform provides. With Digital Garage developers then have an environment in which they can work in a fast, low-cost and restriction-free manner, allowing them to just focus on giving their best to their applications.

*Article by: Edward Suárez at Bixlabs, Uruguay*