Monday, September 9, 2019

Start Deploying your PHP Applications to Production with Bitnami LAMP Production-Ready

LAMP is one of the most popular open source web service stacks used for developing dynamic websites and web applications. It is comprised of a set of well-known components that help developers create their applications quickly. LAMP is so prominent in the community because it provides a complete framework for creating high-performance web applications that saves you hours of coding.
Its components include a Linux operating system, an Apache HTTP Server, a MySQL relational database, and PHP as the programming language. When launching the Bitnami LAMP stack, you will get a ready-to-run package that includes all of the components above. 
LAMP is an essential component of every developer’s tool kit.  But what happens when you need to move your applications from development to production environments? This is where Bitnami can help. Bitnami has recently released the LAMP Production-Ready stack, which provides both high-availability and security for mission-critical use cases.  
In this blog post, you will learn about the main features of this production-ready stack and the most common use cases that this stack should be used for. 

Take the Performance and Security of Your PHP-based Applications to the Next Level

The LAMP Production-Ready architecture was designed to address your production needs. It adds an extra layer of security and ensures high-availability for your PHP applications even in the most traffic demanding environments.  The following are the features that you will benefit from when deploying this solution: 
  • High-Availability architecture with two availability zones in the AWS regions to ensure that your cluster can continue working if a node (or a whole AWS zone) goes down.
  • Replication model designed to distribute workloads across multiple application services.  
  • Elastic Load Balancer (ELB) is added to distribute HTTP and HTTPS requests across the application instances, ensuring the maximum performance with a high number of connections.
  • Virtual Private Cloud (VPC)with public and private subnets. In both public and private subnets, an Auto Scaling Group is configured in each node to ensure dynamic, on-demand horizontal scaling. In addition to this, the EC2  instances that host the application servers are isolated in private subnets. Inbound traffic is allowed via Elastic Load Balancer (ELB)  while outbound traffic is managed through a NAT Gateway. This configuration increases the security of the cluster dramatically.
  • Data and code (Aurora MySQL database and application servers) are separated in different instances improving the safety and access control. 
  • Database cache performance is enhanced with an ElastiCache cluster, boosting the performance of the entire deployment. Also, Amazon Aurora provides auto-backup, geographic redundancy, and automatic replication, making it perfect for production environments. 

As you can see in the diagram below, the load balancer manages all user’s requests. It distributes the workload through the different application instances hosted in a private subnet. This configuration makes your application adaptable to the most demanding scenarios, even when a node is down, or if there are concurrent connections at any one time.

LAMP Production-Ready architecture diagram

When should you be using the Bitnami LAMP production-ready stack? 

As a developer, you probably have been in multiple situations where your applications required high-availability and automatic horizontal scaling. These are some examples of websites or applications that the Bitnami LAMP Production-Ready stack addresses perfectly: 

  • PHP-based news or social sites: In this case, your application has high traffic and requires both high-availability, distributed workloads, and scalability. This is the typical scenario of WordPress and Drupal websites or social networks such as Diaspora. 
  • PHP-based e-commerce, shopping, or ticketing web applications: This kind of applications usually require reliability, geographic redundancy, failover, and data backups. That happens, for example, to shops based on Magento, Prestashop, or Woocommerce. 
  • Custom web application and REST/HTTP/SOAP API that needs an extra layer of security, access control, availability, and scalability. 

What’s next?

Try the LAMP Production-Ready Cloud Formation Template (CFT) directly from the AWS Marketplace to see how it can help you face the most critical and high-demanding environments. 
Once you click  “Launch” in the AWS Marketplace listing, you will be redirected to the CloudFormation Management Console. From there, you only need to configure some parameters of the template such as the network,  Linux bastion, and ElastiCache configuration. Then, click “Create” and wait for the template to deploy all the required resources in the AWS servers. In less than an hour, your LAMP Production-Ready stack will be available and ready to use.
Follow this detailed get-started guide to complete the process. Once you have the solution deployed, you will be able to install your custom application and run it directly into a production environment!