We are thrilled to announce that we just signed a strategic partnership with Platform.sh, and as a result, we are extending our offer with Sylius Cloud powered by Platform.sh.
Platform.sh 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 Platform.sh, 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 Platform.sh – a simplified way to manage the complex infrastructure, customize the platform, and scale effortlessly as the business grows.
Platform.sh currently serves over 7000 customers worldwide, providing 24/7 support, automated infrastructure, and bullet-proof security from one reliable PaaS.
The answer is short and straightforward—we needed a PaaS partner that our community could trust. Over the years, Platform.sh 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 Platform.sh, the whole process can be simplified and enhance our product experience.
Sylius Cloud powered by Platform.sh 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 Platform.sh could be.
Given that Sylius Cloud operates on Platform.sh, each new environment must be established through the Platform.sh dashboard or via Platform.sh CLI tools. Before setting up an environment, it’s necessary to initiate the project exclusively on the Platform.sh 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 Platform.sh, 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 Platform.sh and Sylius:
Sylius Cloud powered by Platform.sh 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:
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 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.
Platform.sh 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.
Sylius Cloud powered by Platform.sh 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.
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 Platform.sh 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 Platform.sh 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 Platform.sh 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.
Security is the last thing companies want to worry about during project development.
To ensure project and data safety, Sylius Cloud powered by Platform.sh 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 Platform.sh complies with industry standards and regulations, including PCI-DSS, SOC 2, GDPR, and more.
Sylius Cloud powered by Platform.sh also provides up-to 99.99% high-availability guarantees for mission-critical sites and an SLA of less than an hour for urgent tickets.
Last but not least, Sylius Cloud powered by Platform.sh employs various measures to minimize the environmental impact of cloud hosting. Platform.sh 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.
Sylius Cloud powered by Platform.sh 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.
The partnership between Sylius and Platform.sh opens the door for many new improvements and exciting changes that would not be possible without the right PaaS solution. Platform.sh has a rich history of successful cooperation with numerous open-source projects, proving its commitment to adaptability and innovation. Sylius Cloud powered by Platform.sh 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.