Dafré The new Marketplace starter kit
7 min. read
Categories: Cloud
Sylius Cloud by Upsun – strategic partnership announcement towards cloud via PaaS ☁️

We are thrilled to announce that we just signed a strategic partnership with Upsun, and as a result, we are extending our offer with Sylius Cloud powered by Upsun.

Upsun is a modern Platform-as-a-Service (PaaS) solution that allows businesses to leverage the cloud environment without losing access to the code and data. Companies can deploy projects and create multiple environments to test applications and features before implementing them into the main project. It offers a unified, secure, and flexible platform for building, running, and scaling web applications with ease. 

In partnership with Upsun, we created a solution that suits Sylius’s needs, both from a technical and business perspective. Enabling the creation of our innovative new offering, Sylius Cloud powered by Upsun – a simplified way to manage the complex infrastructure, customize the platform, and scale effortlessly as the business grows.

Upsun currently serves over 7000 customers worldwide, providing 24/7 support, automated infrastructure, and bullet-proof security from one reliable PaaS. 

Why did Sylius team up with Upsun?

The answer is short and straightforward, we needed a PaaS partner that our community could trust. Over the years, Upsun has become a market standard, valued in many open-source projects, including Symfony, which we rely on heavily. As a tech company, we know that building and managing infrastructure is not easy. We believe that with tools like Upsun, the whole process can be simplified and enhance our product experience. 

Sylius Cloud powered by Upsun offers an excellent solution for every Sylius user—a developer working on a pet project, agencies requiring multiple environments during the project development process, or merchants operating on a serious enterprise scale.

With that said, let’s briefly describe how easy the deployment of Sylius Cloud powered by Upsun could be.

Creating a new project and environment in Upsun

Given that Sylius Cloud operates on Upsun, each new environment must be established through the Upsun dashboard or via Upsun CLI tools. Before setting up an environment, it’s necessary to initiate the project exclusively on the Upsun panel. To fully leverage the capabilities of Sylius Cloud when initiating a new project, select the “Create from scratch” option, as shown in the screenshot below:

When starting a project, a new environment is created automatically and connected to the project’s git repository branch.

New environments can then be specified through the platform command by choosing their name, type, parent environment, and other optional parameters. Once the environment is created, the application can be deployed. Reproduce the steps to create additional environments for development, testing, or other purposes.

With Sylius Cloud powered by Upsun, the time required for project setup is heavily reduced. The whole process is simplified, allowing developers to focus on the project as soon as possible without the need to manage the required resources and infrastructure without a deep understanding of all the required dependencies.

Let’s review the straightforward process for configuring Upsun and Sylius: 

Configuration on the app level

Sylius Cloud powered by Upsun offers a streamlined and scalable solution for hosting Sylius projects. Multiple advanced parameters can be chosen during configuration, such as the number of CPUs, memory amount, or disc size. Those could become handy for higher traffic or peaks during events such as Black Friday, Christmas sales, or other occasions requiring more resources to provide a cutting-edge customer experience.

The solution adds the possibility of hosting the Sylius instance on one of the following cloud service providers:

  • Amazon Web Services (AWS)
  • Google Cloud Platform (GCP)
  • Microsoft Azure
  • OVHCloud

Simple configuration file 

The web application can be managed from a central panel using a configuration file and an intuitive Graphical User Interface (GUI). 

name: sylius

type: php:8.3

relationships:
    database: "db:mysql"

disk: 2048

mounts:
    "config/jwt":
        source: local
        source_path: jwt
    "/var/cache":
        source: local
        source_path: cache
    "/var/log":
        source: local
        source_path: log
    "/var/sessions":
        source: local
        source_path: sessions
    "/public/assets":
        source: local
        source_path: assets
    "/public/bundles":
        source: local
        source_path: bundles
    "/public/uploads":
        source: local
        source_path: uploads
    "/public/media":
        source: local
        source_path: media

web:
    locations:
        "/":
            root: "public"
            passthru: "/index.php"
            allow: true
            expires: -1
            scripts: true
        '/assets/shop':
            expires: 2w
            passthru: true
            allow: false
            rules:
                '\.(css|js|jpe?g|png|gif|svgz?|ico|bmp|tiff?|wbmp|ico|jng|bmp|html|pdf|otf|woff2|woff|eot|ttf|jar|swf|ogx|avi|wmv|asf|asx|mng|flv|webm|mov|ogv|mpe|mpe?g|mp4|3gpp|weba|ra|m4a|mp3|mp2|mpe?ga|midi?)$':
                    allow: true
        '/media/image':
            expires: 2w
            passthru: true
            allow: false
            rules:
                '\.(jpe?g|png|gif|svgz?)$':
                    allow: true
        '/media/cache/resolve':
            passthru: "/index.php"
            expires: -1
            allow: true
            scripts: true
        '/media/cache':
            expires: 2w
            passthru: true
            allow: false
            rules:
                '\.(jpe?g|png|gif|svgz?)$':
                    allow: true

variables:
    env:
        APP_ENV: 'prod'
        APP_DEBUG: 0
        N_PREFIX: /app/.global

build:
    flavor: composer

dependencies:
    nodejs:
        n: "*"
        yarn: "*"
    php:
        composer/composer: '^2'

crons:
    sylius-cancel-unpaid-orders:
        spec: "0 2 * * *"
        cmd: "php bin/console --env=prod sylius:cancel-unpaid-orders"
    sylius-remove-expired-carts:
        spec: "0 2 * * *"
        cmd: "php bin/console --env=prod sylius:remove-expired-carts"

hooks:
    build: |
        set -e 
        curl -fs https://get.symfony.com/cloud/configurator | bash
        n auto
        hash -r
        yarn install --frozen-lockfile
        yarn build:prod

    deploy: |
        set -e
        symfony-deploy
        rm -rf var/cache/*
        mkdir -p public/media/image
        bin/console sylius:fixtures:load -n
        bin/console lexik:jwt:generate-keypair --skip-if-exists
        bin/console assets:install --symlink --relative public
        bin/console cache:clear

The Management Console

The management console is designed with responsiveness and intuitiveness in mind. The lists can be refined by looking for particular projects or choosing a different organization from the menu in the top left corner. After selecting a project, there’s an option to adjust its settings. Additionally, one can select specific environments within the project and customize the settings for each one.

Measuring application performance

Upsun offers comprehensive observability tools designed to enhance application performance from development to production. These tools offer monitoring, profiling, and testing capabilities to ensure optimal application performance and user experience. Features include an application performance layer, detailed profiling of application code to understand behavior and efficiency, and infrastructure metrics for real-time resource usage tracking. It also supports log forwarding to external endpoints and offers extended time frames for infrastructure metrics analysis, helping in capacity planning and optimization. This under-one-roof approach removes the burden of managing multiple different monitoring & observability solutions.

Harness the power of Continuous Integration & Continuous Deployment (CI/CD)

Sylius Cloud powered by Upsun is a standardized solution to manage the complexity of web projects, resulting in faster delivery of high-performance applications. Automation is the foundation of the solution. The Continuous Integration (CI) processes available within the platform automatically deploy code changes to production environments, run tests to ensure the new code functions correctly, and prepare it for delivery. CI also ensures that code changes are integrated smoothly, reducing errors and speeding up the development process by automating testing and integration tasks. Continuous Deployment (CD) processes, in turn, can be leveraged to automatically deploy code changes to production environments, ensuring that application updates are deployed quickly, consistently, and stress-free.

Modern DevOps: IaC, Git, and environment cloning 

Moving on, Infrastructure as a Code (IaC) in this platform enables the creation, management, and modification of the infrastructure with a few lines of code. Sylius Cloud powered by Upsun also integrates with Github, Gitlab, and Bitbucket. A Git-based workflow enables developers to reduce complexity and save time by automatically testing applications.

Speaking of testing, Sylius Cloud powered by Upsun allows users to clone environments. Making a pull request creates a new environment based on the existing production environment, meaning all the data is cloned into a new and secure environment.  By doing so, businesses can test their new features in a dedicated, short-term environment until the pull request is open, resulting in quick new feature development. This approach provides the required deployment process stability, delivering as predictable infrastructure as possible.

Worth noting is that the Sylius Cloud powered by Upsun is technology agnostic and multi-stack. It supports a wide range of programming languages, frameworks, and software architectures (monolithic, headless, etc.), allowing developers to work with their preferred tools and technologies without being constrained by platform limitations.

Due to pre-configured databases and data storage solutions, the process of setting up the database is simplified, eliminating the need to set up the business’ own database services. Furthermore, the solution provides automated backups and recovery features to protect the data in case of any unpleasant surprises. Businesses always own the data, and it can be extracted at any time.

Safety first! 🗝️

Security is the last thing companies want to worry about during project development.

To ensure project and data safety, Sylius Cloud powered by Upsun incorporates robust security features and compliance measures. It includes data encryption, WAF (Web Application Firewall), DDOS protection, and more. Apart from securing the data, the code itself is protected as well. Read-only runtime containers ensure that production environments cannot be changed, and SSH (Secure Socket Shell) access is granted only with explicit permission on your end.

Naturally, Sylius Cloud powered by Upsun complies with industry standards and regulations, including PCI-DSS, SOC 2, GDPR, and more.

Sylius Cloud powered by Upsun also provides up-to 99.99% high-availability guarantees for mission-critical sites and an SLA of less than an hour for urgent tickets. 

A greener hosting approach 🌳

Last but not least, Sylius Cloud powered by Upsun employs various measures to minimize the environmental impact of cloud hosting. Upsun is committed to greener hosting by reducing cloud emissions through high-density computing, allowing for up to 12× less resources used, rightsizing, and scaling to avoid overprovisioning. They optimize infrastructure for lower emissions by supporting cloud providers with better Power Usage Effectiveness (PUE) and allowing organizations to select data centers in locations with lower carbon footprints, like the ones using renewable energy in Sweden. 

Pricing & scaling suited to each case

Sylius Cloud powered by Upsun offers flexible pricing options designed to scale with the needs of businesses, making it well-suited for a variety of use cases, from startups to large enterprises. Their pricing tiers include Professional, Enterprise, and Elite plans, each tailored to different stages of development and deployment needs.

In Enterprise and Elite plans, scaling the eCommerce project can happen automatically. Dedicated scaling features can adjust resources to meet high-traffic scenarios and send notifications when certain thresholds are met. To support development teams in managing and developing their application, systems can automatically add resources for production environments, ensuring the infrastructure is always ready for expected and unexpected changes.

Summary 

The partnership between Sylius and Upsun opens the door for many new improvements and exciting changes that would not be possible without the right PaaS solution. Upsun has a rich history of successful cooperation with numerous open-source projects, proving its commitment to adaptability and innovation. Sylius Cloud powered by Upsun is a perfect match for businesses and individuals looking for flexibility and scalability in cloud computing without compromising on the unique needs of their eCommerce stores and control over the data or source code.

Public pricing is available on the Upsun website.

For custom plans, schedule a demo with our consultant!

Share:
Mikołaj Król
More from our blog
Technical 7 min read 04.12.2024
Here’s everything you had to know about the first major release since 2017! Over 7 years after the first major release, on Nov 12, 2024, we have released Sylius 2.0.0. We had a great opportunity to announce it first at SyliusCon in Lyon, but now, as we are back to… Read More
7 min read 22.11.2024
The emotions start to settle after SyliusCon, and it’s time to reflect on this incredible milestone in our journey. Why a milestone? Because SyliusCon exceeded our expectations in every possible way. We broke attendance records and brought together the key figures of our community, numerous partners, freelancers, and simply all… Read More
Cloud 7 min read 17.06.2024
We are thrilled to announce that we just signed a strategic partnership with Upsun, and as a result, we are extending our offer with Sylius Cloud powered by Upsun. Upsun is a modern Platform-as-a-Service (PaaS) solution that allows businesses to leverage the cloud environment without losing access to the code… Read More
Comments