Innovate faster and cut risk with PHP experts from Zend Services.
See How Zend Helps Leading Hosting Providers Keep Their Managed Sites on Secure PHP
Learn PHP from PHP experts with free, on-demand, and instructor led courses.
Submit support requests and browse self-service resources.
Matthew Weier O’Phinney
Cloud orchestration may be a “down the road” initiative for PHP teams just starting their cloud journey. However, cloud orchestration for PHP applications isn’t the complex initiative it used to be. In fact, it’s one that most teams should bake into their first deployments to the cloud.
In this blog, I walk through some cloud orchestration basics, including core definitions, the benefits of cloud orchestration, commonly used technologies, and how teams can lean on ready-to-go cloud images, orchestration templates, and products from Zend to realize the benefits of cloud orchestration for their PHP apps.
Simply put, orchestration is the process of describing the various resources that make up a computing system.
Generally speaking, orchestration systems:
Well, if the example detailing that orchestration describes complete systems looks familiar to you, even if you don't use every portion of it, then the answer is yes! In fact, the following basic scenario is not uncommon:
Orchestration can help simplify deployment and management of a basic example like that, all the way up to applications with dozens or hundreds of microservices all coordinating with each other. How you handle that orchestration, however, will depend on where you plan to deploy and how.
Cloud orchestration automates the management of workloads on private and public clouds, streamlining connections and operations to be scalable, repeatable, and cost-effective. Cloud orchestration is frequently achieved via the use of cloud orchestration tools, like Puppet, Chef, Ansible, and Terraform.
Over the past fifteen years, we, as PHP developers, have become fairly familiar with enterprise cloud providers, from the venerable Amazon Web Services (AWS), to Microsoft Azure, Google Cloud Platform, and more.
Most of these offer "compute cloud" or "cloud machine" services, which allow launching virtual machine images on their service. Over time, each has provided a marketplace to allow vendors to create ready-to-use machine images that customers can launch and customize to run their own applications.
On AWS, this is the Elastic Compute Cloud (EC2); on Azure, it's their Virtual Machines product; Google has its Compute Engine.
As these evolved, DevOps developed tools like Chef, Puppet, and Ansible to manage their computational clusters. These tools are primarily interested in how to provision an individual machine, but can be coerced into managing clusters.
A newcomer has since become a standard for cloud orchestration in the DevOps ecosystem: Terraform. From its own documentation, "Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently." It is provider agnostic, and has plugins available for provisioning systems like Chef, Puppet, and Ansible; as such, you can continue using what you know, but use Terraform to coordinate between all the resources.
Cloud automation and cloud orchestration, while similar, describe unique concepts within cloud computing. Cloud automation refers to the process of automating tasks and workflows, whereas cloud orchestration refers to a broader concept that includes both automation, but also the coordination of workflows across cloud resources. In other words, cloud orchestration typically includes management of cloud automation tasks.
When virtual machines were first commoditized, they were an answer to both production and development needs, as developers could literally develop in the same environment as production. Over time, however, many of us noted that (a) they consumed a LOT of disk storage, particularly if you were using a bunch of them, and (b) the bigger the image, the slower to start.
Linux containers have been around for a long time, but were an arcane solution that was difficult to understand and utilize. In the past five to ten years, Docker arose to make them easier to understand, and, more importantly, build and consume. Docker images, particularly once cached locally, are lightning fast to start, and, because they often can share layers (snapshots of state), tend to use less storage as well. Since they are idempotent in nature, the goal is one service per image, which means you generally need to orchestrate many containers to create a full application or system.
Docker has many different orchestration systems:
The beauty of Docker is in its orchestration capabilities, and it is a fantastic platform both for development (as it provides the same environment as production) and large production applications. The various orchestration tools provide the tools you need to describe, automate, and version your applications.
As more and more PHP applications get deployed, either partially or fully, to the cloud, PHP teams around the world are looking for ways to increase efficiency of their deployments. While cloud deployment brings a number of benefits to PHP teams, cost can quickly become an obstacle. That’s why many companies look to PHP orchestration to improve the scalability and performance of their PHP applications – and, consequently, lower their cloud costs.
There are other benefits, as we describe below, but ultimately these boil down to the same benefit: improving efficiency to reduce costs.
By automating manual or otherwise repetitive tasks like configuration management, provisioning, and other operations processes, IT teams can instead turn their focus to more important priorities. And, by automating these tasks, teams can make those results faster and reduce the potential for human error.
Deploying to the cloud makes provisioning resources based on need a necessity. With cloud orchestration, teams can scale their resources up or down based on demand for their applications, or even specific services within their applications. This dynamic approach allows teams to enjoy the benefits of cloud deployment, without the exorbitant costs.
Automating deployment and configuration of cloud resources allows for better user experiences. Because services and applications are automatically scaled up and down to fit need, services and applications perform better, are available to users faster, and are more resistant to outages and downtime.
For PHP teams, employing cloud orchestration to its full benefit can be a challenge – especially when you consider you may have to become an expert in a handful of open source technologies along the way.
The good news is that there are PHP-specific templates, containers, cloud images, and even products available that can make cloud orchestration a faster, and less painful experience – and they’re all available from the PHP experts at Zend.
Zend offers several ways to expedite your cloud orchestration journey, including:
Try ZendPHP for FreeEven better? You can try ZendPHP and ZendHQ free for 30 days. See trial details via the link below. Start TRIAL
Even better? You can try ZendPHP and ZendHQ free for 30 days. See trial details via the link below.
Editor's Note: This blog was originally published in 2021 and has been updated to reflect the reality of cloud orchestration in 2023.
Zend Product Manager, Zend by Perforce
Matthew began developing on Zend Framework (ZF) before its first public release, and led the project for Zend from 2009 through 2019. He is a founding member of the PHP Framework Interop Group (PHP-FIG), which creates and promotes standards for the PHP ecosystem — and is serving his second elected term on the PHP-FIG Core Committee.