Seal Launches Walrus 0.5: Revamps Workflow for an Out-of-the-Box Deployment Experience
Tags: devops, deployment, opensource, platformengineering
Published: 2024-01-29 17:00:00

Application management platform based on IaC [Walrus 0.5](https://github.com/seal-io/walrus/releases/tag/v0.5.0) is officially released!

Walrus 0.5 builds upon the new application model introduced in Walrus 0.4.This new model significantly reduces repetitive configuration work and shields development teams from the complexities of cloud-native and infrastructure management.

With Walrus 0.5, **the workflow has been revamped, and abstraction capabilities have been enhanced to create an out-of-the-box product experience.** This release further optimizes application deployment and delivery through a platform engineering approach.

"Multi-cloud and hybrid cloud have become the mainstream IT infrastructure architecture for enterprises. The complexity of managing heterogeneous infrastructure increases as businesses scale. Nowadays, reducing management costs and enhancing delivery efficiency have become two of the top priorities for enterprises," said George Qin, Co-founder and CEO of Seal. "**Walrus is dedicated to simplifying application management using a platform engineering approach**, alleviating the cognitive load on development and operations to address the current complex IT challenges."

## Refactor Workflow and Enhance Abstraction for Simplified Resource Management

Walrus 0.5 upgrades the UI, optimizing the management interaction for resources and their definitions, providing an intuitive and streamlined management experience.

Services and resources are unified into a single resource view. In this view, various operations for resource details, such as managing resources and underlying components, viewing logs, executing to the terminal for debugging, and getting access URLs for services, are all supported.


![resource-view](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t7jp0oncbwomwcngigtq.png)

By integrating various management functions within a single pane of glass, you no longer need to switch between different windows, enhancing the overall experience and making it easier to handle complex resource management tasks.

Resource Definition is the core of Walrus for building a unified abstraction layer on top of multi-cloud and hybrid infrastructure. Walrus 0.5 further enhances Resource Definitions by:

- Enrich built-in resource definitions while optimize the creation of matching rules for resource definitions.

- Provide a management view for resource definitions associated with resources, facilitate unified management for operations or architecture teams.

- Declare multiple resource definitions of the same type, facilitating flexible rule matching for different teams.

## Polymorphic Support from Docker to Kubernetes

Walrus 0.4 introduced the core feature of "configure once, run polymorphically." In Walrus 0.5, we've extended that magic to support both Docker and Kubernetes polymorphically.

This feature allows users to create and execute applications in a Docker environment on their personal computer. **The same YAML application definition can be used to deploy the application to both staging and production Kubernetes environments without requiring an understanding of the configuration differences between the two.**

Developers can deploy applications locally in Docker using Walrus's built-in resource types, such as `containerservice`, `mysql`, `postgresql`, and `redis`. The same application definition can be deployed to another environment underlying Kubernetes without any modification. Resource definitions can also be used to extend corresponding resource types.

If you're all about Docker, Walrus 0.5 has your back.

During the Walrus 0.5 installation, container applications can be deployed using Docker alone. To install Walrus in a local Docker environment, developers can use the Walrus CLI command `walrus local install` in a Docker extension manner. This means that Walrus can run without depending on an external K8s or the built-in K3s.

During the application deployment phase, the new version includes Docker connectors and Docker application templates. These features assist developers in deploying applications to Docker environments.

## Further Extending Deployment Flexibility
### Add OpenTofu as a Deployer Option

OpenTofu was introduced as an open-source alternative to Terraform due to changes in its license. In Walrus 0.5, formal support for [OpenTofu 1.6.0](https://opentofu.org/blog/opentofu-is-going-ga/) is provided, replacing [the previous manual switch](https://www.seal.io/resource/blog/integrate-opentofu) option for Terraform.

Navigate to `System Settings > Deployment Management > Basic Settings > Deployer Image`, you can switch the default Deployer from `Terraform` to `OpenTofu` (image: `sealio/opentofu-deployer:v1.6.0-seal.1`). This improvement aims to provide more options and avoid vendor lock-in.

### Walrus File: Code-Defined Deployment of Resources

The new version of Walrus introduces the Walrus File feature, which is a YAML file used to deploy Walrus resources.

Similar to a Docker Compose file, this file provides a concise definition of application services and infrastructure resources. However, it can be used to create application services and resources for various multi-cloud and hybrid infrastructures, not limited to Docker or Kubernetes.

The Walrus CLI `walrus apply/delete -f` allows you to apply or delete Walrus resources described in the Walrus File. You can also integrate the Walrus File with existing CI/CD tools and processes using the Walrus CLI, making Walrus more flexible to meet various deployment requirements.

To make learning easier, we recommend using the Walrus File Hub as a reference. You can find relevant YAML examples at https://github.com/seal-io/walrus-file-hub.

## 100% Open Source, Easy to Get Started
We're true to the open-source spirit! Walrus is fully open source based on the Apache 2.0 license, and you can deploy it on a computer with Docker installed with just one command.

```
sudo docker run -d --privileged --restart=always -p 80:80 -p 443:443 -p 30000-30100:30000-30100 --name walrus sealio/walrus:v0.5.0
```

Check us out on [Github](https://github.com/seal-io/walrus) and give us a star if you dig what we're doing!

Cheers to simplified app management with Walrus 0.5!