Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Joomla! Scalable Enterprise Deployments with AWS

1,326 views

Published on

Joomla Day Chicago 2017

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Joomla! Scalable Enterprise Deployments with AWS

  1. 1. Joomla! Scalable Enterprise Deployments with AWS Jim Dolinski 9/23/2017
  2. 2. $whoami • Team Lead and Application Architect • AWS Enthusiast and Security Addict • Open Source Aficionado • Official Joomla Contributor! github.com/jdolinski @jimdolinski linkedin.com/jimdolinski
  3. 3. Company background… IT support for City of Omaha and Douglas County, NE Hosting & Supporting 100+ Joomla Websites 2016 & 2017 AWS City on Cloud Finalist
  4. 4. Agenda • “X”aaS • Intro to Amazon Web Services • Infrastructure & Configuration Management • Monitoring & Performance • Governance & Compliance • Resource Optimization
  5. 5. “X”aaS
  6. 6. “as a Service” We are in a marketing acronym hell • IaaS • PaaS • SaaS • DBaaS • DaaS • SECaaS • FaaS • Plus many more Cost & Complexity Maintainability IaaS On Premise Data Center PaaS SaaS
  7. 7. Our Family Tradition Pizza Chicago Style
  8. 8. Made at Home
  9. 9. Take and Bake
  10. 10. Pizza Delivered
  11. 11. Dining Out
  12. 12. Cloud Architecture “as a Service” 12 Factors I. Codebase One codebase tracked in revision control, many deploys II. Dependencies Explicitly declare and isolate dependencies III. Config Store config in the environment IV. Backing services Treat backing services as attached resources V. Build, release, run Strictly separate build and run stages VI. Processes Execute the app as one or more stateless processes VII. Port binding Export services via port binding VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity Keep development, staging, and production as similar as possible XI. Logs Treat logs as event streams XII. Admin processes Run admin/management tasks as one-off processes https://12factor.net/
  13. 13. Amazon Web Services
  14. 14. Let’s Get Started?
  15. 15. AWSim City • Amazon = Planet • AWS Account = State • Availability Zone = County • VPC = City • Routes = Roads • VPC Peering = Freeways between Cities • VPG = Your Corporate Data Center on Earth • Route 53 DNS = Phone Numbers • Regions = Countries • Internet = Interstate • Internet Gateway = Interstate off ramp • NAT Gateway = Highway on Ramp • Subnets = Postal Codes • Private Subnet = No Highway Access • Public Subnet = Highway Access • Network ACLs = Gated Communities • ELB = Overpass signs to route traffic • Address = IPs • Servers/Services = Buildings • Security Groups = Police • Traffic = Cars • AMI = Photographer’s Image • Cloud Formation = Civil Engineer/Constructor
  16. 16. AWSim City Represents a single Availability Zone
  17. 17. Architectural Design Patterns 1. Lift & Shift (AMI) 2. AMI Builder (Clustered AMI) 3. NAS (Network Attached Storage) 4. Multi Region and AZ Deployments It depends on your requirements…
  18. 18. Lift & Shift Pattern Pros • Quick & Easy Cons • Single Point of Failure • Tight Coupling • Not Cohesive
  19. 19. AMI/EBS Builder Pattern Pros • Good Performance • Can be clustered in multiple AZs and Regions Cons • Create AMI for every Joomla or extension upgrade • AMI Maintenance increases with more websites sharing same server • Storage is not elastic
  20. 20. EFS Pattern Pros • Joomla & Extension upgrades simple • Storage is elastic • AZ’s share same storage Cons • Slower than attached block storage • EFS can not be mounted across regions
  21. 21. Multi AZ Pattern Pros • Redundancy within same region • Joomla updates simple on EFS Cons • Joomla updates on EBS Multi AZ is recommended at a minimum
  22. 22. Multi AZ & Region Pattern Pros • Scalable and highly available architecture • active/passive or active/ active failover • Latency based routing • Privacy laws governing data Cons • Technically Complex • More Costs • Requires mid/advanced knowledge of more services
  23. 23. Design for failure and automate everything It’s not “if” but “when”, and it will occur while you are on vacation! }Maximize Flexibility Minimize Maintenance & Costs Prefer “Managed Services” over “Service Installs”
  24. 24. Global Infrastructure
  25. 25. https://aws.amazon.com/products/management/ +
  26. 26. Resource Provisioning • Infrastructure as Code • AWS CloudFormation https://aws.amazon.com/marketplace/pp/B06XSVFFK9 https://cloud.intuz.com/applications/joomlacf/aws/joomla • Terraform
  27. 27. DevOps Configuration Management • Infrastructure as Code • OS Hardening • Software installs • Practice Immutability • AWS OpsWorks • Chef https://martinfowler.com/bliki/ImmutableServer.html “By frequently destroying and rebuilding servers from the base image, 100% of the server's elements are reset to a known state, without spending a ridiculous amount of time specifying and maintaining detailed configuration specifications.” - Martin Fowler
  28. 28. Enterprise Joomla! Architecture Service Installs
  29. 29. Enterprise Joomla! Architecture Managed Services
  30. 30. DevOps Configuration Management Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. https://www.thoughtworks.com/continuous-integration
  31. 31. Monitoring & Performance • AWS CloudWatch • PagerDuty • StatusCast • Failover • Active/Active • Active/Passive
  32. 32. Monitoring & Performance • Benchmark First • Google PageSpeed, YSlow, Pingdom, JMeter, etc • Don’t forget geo testing • Apply 1 Change • AWS CloudFront, AWS Elasticache • Minification, Browser Caching, Image Optimization, etc • Repeat
  33. 33. Key Plugins
  34. 34. Regular Labs Cache Cleaner + https://www.regularlabs.com/extensions/cachecleaner
  35. 35. JCH Optimize Pro + https://www.jch-optimize.net/ Major Features • Combine and gzip CSS and javascript files respectively • Minify combined files and HTML • Combine select background images into a sprite • CDN Support Pro version only • Lazy-load images Pro version only • Optimize CSS Delivery Pro version only • Optimize Images Pro version only
  36. 36. Are we down? Know before your customers! “Communication will build trust and confidence” + https://www.pagerduty.com/docs/guides/aws-cloudwatch-integration-guide/
  37. 37. Governance & Compliance • Security • AWS ElasticSearch • AWS CloudTrail • Defense in Depth
  38. 38. Practice Defense in Depth • Firewalls are core • https everything • Google Webmaster Tools • Implement Intrusion Detection • Routinely Audit & Patch your Joomla Sites • Logs and retention are crucial
  39. 39. Defense in Depth
  40. 40. Key Tools
  41. 41. RSFirewall https://www.rsjoomla.com/video-tutorials/rsfirewall.html
  42. 42. MyJoomla Audit
  43. 43. Gain Control of your Logs!
  44. 44. Who updated this site? +
  45. 45. Can we reduce patch time? AWS Systems Manager +
  46. 46. Resource Optimization • Performance Optimizations • CDN, Cache, Geo Load Balancing, and more • Cost Optimizations • Autoscaling • AWS Tagging • AWS Trusted Advisor • AWS Organizations + Multiple Accounts What percentage of your servers today are idle?
  47. 47. Can we reduce costs? +
  48. 48. https://aws.amazon.com/products/management/ +
  49. 49. Remember “ability” Factors • Repeatability, Availability, Scalability, Auditability, Flexibility, Usability • Monitor, Monitor, & Monitor • ADA and user’s with disabilities • Use a Version Control System • Dashboards work great, but you have to look at them! • Try to Automate Everything • Scale traffic to demands • Automate Patching • Blue/Green Deployments Can Reduce your Risk
  50. 50. What are we working on? • Joomla GIT Plugin to push to a remote repo • Docker & Joomla
  51. 51. How Can I Get Started? • AWS CloudFormation • AWS Beanstalk • Sign Up and Get a Free Account • Tons of resources on AWS • Cost Calculator • https://calculator.s3.amazonaws.com/index.html
  52. 52. Thanks

×