PageRenderTime 30ms CodeModel.GetById 38ms RepoModel.GetById 0ms app.codeStats 0ms

/oldblog/migration/input/Execution-architecture-design.md

https://gitlab.com/colmsjo/develvm
Markdown | 86 lines | 52 code | 34 blank | 0 comment | 0 complexity | 06aeab9b021fdd773f8db1d72cb6af65 MD5 | raw file
Possible License(s): Apache-2.0, AGPL-1.0, BSD-3-Clause, CC-BY-3.0, MIT
  1. [[wiki]] > [[Technical Architecture]] > [[Execution Architecture]]
  2. h1. Execution Architecture Design
  3. h2. PHP & MySQL Execution Architecture Design
  4. h3. Background
  5. Links:
  6. * MySQL cluster: http://www.google.se/url?sa=t&rct=j&q=mysql%20proxies%20load%20balancinf%2Bpdf&source=web&cd=2&ved=0CDYQFjAB&url=http%3A%2F%2Fdownloads.mysql.com%2Fforge%2Fslides%2FMySQL-Proxy.pdf&ei=JkXjTvOJIqTR4QSjoZWUBQ&usg=AFQjCNEbFSNCWhdhdj70i3ZFbG60cD949A
  7. * http://wiki.scalr.net/Tutorials/Setup_MySQL_proxy?highlight=mysql+proxy
  8. A load balancing cluster with failover functionality will be used. Initial thoughts on desgin:
  9. * one laod balancer (likely ngix),
  10. * two apache server - need HA client in order to mange failover between the two MySQL proxies
  11. * two MySQL server, one master and one slave
  12. * Two load balancing MySQL proxies will be used to manage that writes are written to the master and reads distributed to all servers
  13. Scalr's pre-configured images are used.
  14. Ubuntu 10.04 will be used for both application servers and database servers. The main reason is that ubuntu has a newer PHP version than CentOS 5,5.
  15. The MySQL database server will run on failover cluster using MySQL master-slave synchronization.
  16. The laod balancer will initially run a micro image while the database and application server runs on small images.
  17. Application and database server should have minimum 2 instances in the scaling options. Maximum should also be set to two instances (and scaling disabled).
  18. The server will consist of:
  19. * Load balancer: lb-nginx-centos-ebs ubuntu 10.04l, x32
  20. * Applications servers: app-apache-ubuntu-ebs Ubuntu 10.04, x32
  21. * Database servers: percona-ubuntu1004 Ubuntu 10.04, x32
  22. Platform: Amazon EC2
  23. Location: AWS /EU West 1 (Ireland)
  24. h3. Application server
  25. The OS for the application server is Ubuntu 10.04. PHP version is 5.3.X.
  26. In addition to the standard modules should the following modules should be installed:
  27. * php-pecl-apc - PHP opcache
  28. * Postfix (for sending mail)
  29. * Subversion client
  30. * ec2-api-tools
  31. Consider the folowing for system Admin:
  32. * webmin (not installed yet)
  33. * phpMyAdmin (not installed yet)
  34. h4. SSL
  35. All communication with vTiger and the portal should be encrypted with SSL. It should not be possible to connect using standard http. Port 80 should be closed in the firewall and apache should not listen on port 80.
  36. A SSL certificate from RapidSSL is available here. This is a wildcard certificate that can be used for all subdomains of gizurcloud.com
  37. http://s2.gizur.com:81/attachments/download/64/gizurcloud.com_RapidSSL_Wildcard_Order.pdf
  38. Preparations (needed for the vTifger portal to work):
  39. <pre>
  40. sudo apt-get install php5-curl
  41. service apache2 restart
  42. </pre>
  43. SSL is configured in scalr when setting up the virtual host.
  44. h3. Database server
  45. Standard MySQL 5 is used. The scalr MySQL role which has a master/slave setup is used.
  46. h3. Management Server
  47. The scalr ASP service will be used for the production environment.
  48. Login here: https://my.scalr.net/#/dashboard
  49. h4. Testing of scalr
  50. Scalr is open source and it is possible to install your own scalr server. This requires that you have your own nameservers for the managed domain though.
  51. A separate scalr test environment is usefull when doing performance testing since scalr charges based on the number of servers being managed.
  52. Howto install a scalr server on ubuntu is described here: [[Installation of management server]]. Scalr supports centos but I've not been able to install all dependencies on Rackspace centos 5.6.