Deploy with Eezze
Tags: devops, aws, lowcode, webdev
Published: 2024-04-16 12:33:17

In this showcase of Eezze, we'll cover how we save time with our deployment automations:

  - [1. The Deployment Headache](#1-the-deployment-headache)
  - [2. Seamless Deployment](#2-seamless-deployment)
  - [3. Tutorial](#3-tutorial)
  - [4. Frequently Asked Questions](#4-frequently-asked-questions)
  - [5. Beyond the Basics](#5-beyond-the-basics)
  - [6. Conclusion](#6-conclusion)

### 1. The Deployment Headache

In the realm of software development, deploying backend applications often presents a significant challenge. Developers find themselves grappling with the intricate tasks of configuring servers, ensuring dependencies are correctly installed, and maintaining complex deployment scripts. These essential yet time-consuming processes can divert valuable resources away from core development efforts, impeding productivity and slowing down the overall software delivery pipeline.

At Eezze, we understand these challenges intimately. Our platform leverages industry-standard tooling such as Ansible for configuration management, Terraform for infrastructure provisioning, and Docker containers for consistent application environments. By automating and streamlining the deployment process, Eezze eliminates the hassle, allowing teams to concentrate on building exceptional solutions.

### 2. Seamless Deployment

With Eezze, we aim to transform the deployment experience, making it seamless and effortless. In this article, we'll walk you through the process of deploying backend applications using Eezze's platform, demonstrating how our solution automates complex tasks and ensures a smooth, hassle-free workflow.

### 3. Tutorial

**Steps:**

1. **Set up a Connection in Eezze**, currently we support [Ubuntu 22.04](https://releases.ubuntu.com/jammy/) `Server` and [AWS](https://aws.amazon.com/) `Cloud` deployments. 
    
![Eezze Server/Cloud Integrations](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eiy7ofharpfoa8abfaka.png)
    For a Ubuntu 22.04 Server, we define the server `host` configuration in the `Connection Info` tab, and then in the  `Authentication` tab we configure the SSH connectivity (PEM Key) and User/Password for SuperUser access.
![Eezze Connection Details](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fr82w3pld959n26y2hj2.png)

2. **Create your datasources**, which are basically servers internally (linked to a Connection) or externally hosted servers and services;
![Eezze Support Datasources](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mnpfdnqy7w9b2qyxw2k.png)

3. **Configure a REST Server**, for example; the `host` has already been filled in, since this is an internal service (it can be customized) Additionally a health check port is auto-configured to ensure keep-alive in Application Load Balancer scenario's functions properly:
![Eezze Rest Datasource](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zinewk6kpsnm6yaubrik.png)

4. **Entity definitions** for your Database Datasource will be automatically applied as migrations at the docker-compose REST server entrypoint, enabling up-to-date synchronization of your data model with your database(s):
![Eezze ERD Diagram: Edit](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8z45tqyingyeday05a25.png)
    
5. **Environment Variables and Vault (protected) variables** are automatically applied to your containers for run-time use:
![Eezze Vault secured Environment Variables](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qra3xt7zmqzusad253hh.png)
 
6. **Add your Services** in our Service Group > Services editor.
![Eezze Services overview; Service Groups](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/km7y3hysm19zy6u57wb7.png)

7. **Deploy** to your empty Ubuntu 22.04 Server instance or a Connection with AWS Account credentials configured in the Authentication section in `step (1)`.   
![Eezze Deployment to Ubuntu 22.04 or AWS ECS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/soem02r9pavuem9dn3lu.png)
 
   We offer these public, and private cloud/server compatible solutions:
   1. **Ubuntu 22.04:** we use an [Ansible](https://www.ansible.com/) playbook to install a complete environment that is ready to be used for [Docker](https://www.docker.com/) container deployment, then build and deploy the containers from a Github repository.
   2. **AWS ECS:** we've build a custom pipeline that interprets your project configuration, applies that our [Terraform](https://www.terraform.io/) script that can interpret our project configution exactly, and deploy all Docker Containers via [AWS CodePipeline](https://aws.amazon.com/codepipeline/)/[CodeBuild](https://docs.aws.amazon.com/codebuild/) to [ECS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html). These Containers are load balanced with [AWS ALB](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/) (Application Load Balancer) which terminates the SSL and enables custom domains to be easily linked using [AWS Route53](https://aws.amazon.com/route53/) such as; `https://api.yourapp.com`. 

### 4. Frequently Asked Questions

**Q: How does your company use Eezze for client projects?**

A: Eezze is our proprietary in-house tooling that streamlines the development and deployment of backend solutions. While the Eezze platform itself is not directly accessible to clients, we leverage its capabilities to generate the necessary artifacts for your projects, such as Git repositories, Docker files, Ansible playbooks, and source code.

**Q: What kind of artifacts and deliverables can we expect from your use of Eezze?**

A: By utilizing Eezze, we can provide you with a comprehensive set of artifacts tailored to your project requirements. These may include a fully configured Git repository with your application's source code (Typescript), Docker containers for consistent and isolated environments, Ansible playbooks for automated deployments, and any other necessary configuration files or scripts.

**Q: Can you handle deploying our application to our existing infrastructure?**

A: Absolutely. In addition to providing the generated artifacts, we can also leverage our Eezze automations to deploy your application directly to your existing infrastructure or environment. Our team can work closely with you to understand your infrastructure requirements and ensure a seamless deployment process, whether it's on-premises or in the cloud.

**Q: Can we customize or modify the generated artifacts from Eezze?**

A: Absolutely. While the Eezze platform itself is proprietary, the generated artifacts, such as source code and configuration files, are fully accessible and customizable by your team. The only proprietary code is the Eezze plugin, which is used to enhance the capability of our code automations. We encourage collaboration and can work closely with you to make any necessary modifications or enhancements to the deliverables. 

**Q: How do you handle updates and maintenance for the generated artifacts and deployed applications?**

A: As part of our ongoing support and maintenance, we can provide regular updates and enhancements to the generated artifacts and deployed applications. This may include bug fixes, security patches, or new features based on your evolving project requirements. Our team will work closely with you to ensure a seamless update and deployment process.

**Q: Can we integrate the generated artifacts and deployed applications with our existing infrastructure and tooling?**

A: Yes, the artifacts generated by Eezze and the deployed applications are designed to be compatible and easily integrated with a wide range of infrastructure and tooling. Whether you have existing deployment pipelines, monitoring systems, or other tools in place, we can ensure a smooth integration process, minimizing disruptions to your existing workflows.

### 5. Beyond the Basics

Eezze's advanced internal tooling brings significant benefits to customers, particularly in the areas of deployment automation and speed.

**AWS Deployment Excellence**

Eezze's AWS ECS deployment automation integrates a custom pipeline and Terraform scripting for precise interpretation of project configurations. Key features include:

- Custom Pipeline & Terraform: Interprets project configurations accurately for Docker Container deployment on ECS Fargate.
- AWS CodePipeline/CodeBuild: Automates deployment workflows for faster time-to-market.
- AWS ALB Load Balancing: Ensures scalability and reliability with SSL termination and custom domain integration using AWS Route53.

This streamlined deployment approach optimizes efficiency, accelerates deployment cycles, and enhances the security and scalability of your applications on AWS ECS.

**Global Reach with Ubuntu 22.04**

Eezze's automation extends globally to servers running Ubuntu 22.04, delivering rapid deployment benefits to customers. By automating the setup of all required software for a Docker container platform, Eezze accelerates deployment speed and ensures consistency across customer environments, leading to increased efficiency and reduced time-to-deployment for customer projects.

### 6. Conclusion

Eezze's internal tooling directly benefits customers by:

- Accelerating deployment timelines through advanced automation capabilities.
- Ensuring seamless integration with customers' existing infrastructure, minimizing disruptions and maximizing operational efficiency.
- Providing access to cutting-edge deployment solutions, such as AWS integration and global deployment automation, resulting in faster time-to-market and increased competitiveness for customer solutions.

Ready to experience the speed and efficiency benefits of Eezze's internal tooling for your deployments? [Request a personalized demo](https://eezze.io) or quote today and discover how Eezze can transform your deployment experiences and deliver superior results for your projects.