SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
Scalable, modern
                          deployment for Plone
                                Christian Theune
                                ct@gocept.com




Tuesday, October 16, 12
Tuesday, October 16, 12
Tuesday, October 16, 12
Tuesday, October 16, 12
Tuesday, October 16, 12
Infrastructure



Tuesday, October 16, 12
Entropy
Tuesday, October 16, 12
Platform
                                                                               Application
                                                                            Components
                                       Management
                          Automation



                                                    Monitoring

                                                                  Support         OS
                                                                            Virtualization
                                                                               Hardware
                                                                 Data center
Tuesday, October 16, 12
Platform
                                                                               Application
                                                                            Components
                                       Management
                          Automation



                                                    Monitoring

                                                                  Support         OS
                                                                            Virtualization
                                                                               Hardware
                                                                 Data center
Tuesday, October 16, 12
Data center




Tuesday, October 16, 12
Platform
                                                                               Application
                                                                            Components
                                       Management
                          Automation



                                                    Monitoring

                                                                  Support         OS
                                                                            Virtualization
                                                                               Hardware
                                                                 Data center
Tuesday, October 16, 12
Hardware




Tuesday, October 16, 12
Platform
                                                                               Application
                                                                            Components
                                       Management
                          Automation



                                                    Monitoring

                                                                  Support         OS
                                                                            Virtualization
                                                                               Hardware
                                                                 Data center
Tuesday, October 16, 12
Virtualization              OS

                                                   Components



                     •    Virtualization is very
                          affordable

                     •    Platform creates
                          interface between app
                          and infrastructure




Tuesday, October 16, 12
Platform
                                                                               Application
                                                                            Components
                                       Management
                          Automation



                                                    Monitoring

                                                                  Support         OS
                                                                            Virtualization
                                                                               Hardware
                                                                 Data center
Tuesday, October 16, 12
Automation




                     •    convergence

                     •    idempotency

                     •    versioning

                     •    everything as code

                     •    continuous repairs




Tuesday, October 16, 12
Platform
                                                                               Application
                                                                            Components
                                       Management
                          Automation



                                                    Monitoring

                                                                  Support         OS
                                                                            Virtualization
                                                                               Hardware
                                                                 Data center
Tuesday, October 16, 12
Management



                     • Take care of updates and “production-
                          ready” configuration
                     • Backup and other day-to-day operations
                     • OS and regularly used components
                     • Gradual process moving components from
                          user-space installations to platform-wide
                          features


Tuesday, October 16, 12
Platform
                                                                               Application
                                                                            Components
                                       Management
                          Automation



                                                    Monitoring

                                                                  Support         OS
                                                                            Virtualization
                                                                               Hardware
                                                                 Data center
Tuesday, October 16, 12
Monitoring




                     •    Nagios :(

                     •    (Un-)fortunately:
                          #monitoringsucks




Tuesday, October 16, 12
Platform
                                                                               Application
                                                                            Components
                                       Management
                          Automation



                                                    Monitoring

                                                                  Support         OS
                                                                            Virtualization
                                                                               Hardware
                                                                 Data center
Tuesday, October 16, 12
Support




                     •    Request tracker

                     •    custom glue code


                     •    Daily review

                     •    Interrupt shield




Tuesday, October 16, 12
Platform
                                                                               Application
                                                                            Components
                                       Management
                          Automation



                                                    Monitoring

                                                                  Support         OS
                                                                            Virtualization
                                                                               Hardware
                                                                 Data center
Tuesday, October 16, 12
Application deployment
                     and operations


Tuesday, October 16, 12
Deployment

                     • Quick
                     • Repeatable
                     • Platform-independent
                     • single-click

Tuesday, October 16, 12
Batou
                     •    Model-based

                     •    Use everywhere

                     •    No effect on runtime

                     •    Orchestration

                     •    Convergency

                     •    Idempotency

                     •    Reusability

Tuesday, October 16, 12
class Solr(Component):

      def configure(self):
          self.address = Address(self.host.fqdn, 9000)
          self.provide('solr:server', self.address)

                   self += Buildout('solr',   python='2.7')

                   self += Program('solr',
                     command='java',
                     command_absolute=False,
                     args='-jar start.jar',
                     directory=self.expand(
                         '{{component.workdir}}/parts/instance'),
                     restart=True)


Tuesday, October 16, 12
[hosts]
 oshaweb00 = nginx, www, varnish,
     supervisor, haproxy, docs
 oshaweb01 = zope, hwthemes, supervisor
 ...
 oshaweb20 = zope, hwthemes, supervisor
 oshaweb21 = zeo, openldap, supervisor
 oshaweb22 = nginx, media2
 oshaweb23 = nginx, birt, lms, ugm, supervisor
 oshaweb24 = solr, memcached, supervisor
 oshaweb26 = mailout

 [component:haproxy]
 strategy = production_strategy
 bots = 3
 whitelist = 8
 default = 3
 ...
Tuesday, October 16, 12
Components
                            good           bad
                            nginx        apache
                            varnish     mysql, BDB
                           haproxy      OpenLDAP
                          PostgreSQL
                          memcached
                          supervisor
                            postfix

Tuesday, October 16, 12
Minimal "production-
                            ready" checklist
                     • Sane front-end configuration
                     • System startup/shutdown
                     • Log rotation
                     • Database maintenance
                     • Monitoring: processes and ports
                     • Service user
Tuesday, October 16, 12
Secrets
                     • One AES-encrypted config file per
                          environment
                     • Transparent decryption
                     • Safety-belt to avoid accidental checking in
                          unencrypted files
                     • Future: PGP-encryption

Tuesday, October 16, 12
Environments

                     • Production vs. Staging
                     • Structurally identical but smaller
                     • Only one of many (dev, integration, ...)
                     • "Fly what you test, test what you fly."

Tuesday, October 16, 12
Web applications

                     • Shared nothing in your app!
                     • Many small processes
                     • Do not listen early
                     • Never store runtime config in the database

Tuesday, October 16, 12
Web applications II

                     • Log long running requests
                     • Avoid synchronous external requests
                     • Avoid accidental write requests.
                     • Use feature switches.

Tuesday, October 16, 12
Process control
                     •    only one component to
                          integrate

                     •    turn anything into a
                          daemon

                     •    use superlance (httpok,
                          memmon) for active
                          restarts

                     •    use 3.0 release candidate



Tuesday, October 16, 12
Python: virtualenv and
                            buildout

                     • use both, combined
                     • buildout might be a hammer, but not
                          everything is a nail




Tuesday, October 16, 12
more buildout
                     • use extends to keep your configs clean and
                          structured
                     • allow-picked-versions=False
                     • -t 3
                     • buildout >= 1.6
                     • mr.developer
                     • allowed-hosts    = ...

Tuesday, October 16, 12
and even more buildout
                     • multiple small better than one big
                      • different Python versions
                      • different subsets of egg versions
                     • use mirrors - see pypi-mirrors.org
                      • latency to the PyPI server is the biggest
                          factor in buildout performance


Tuesday, October 16, 12
Databases

                     • As much RAM as you can afford - seriously
                     • Low latency network (<0.1ms)
                     • Multi-core if necessary
                     • Disk usage < 40%

Tuesday, October 16, 12
story: more hardware =
                         slower
                     • Application is slow.
                     • Customer buys more hardware.
                          Specifically: RAM.
                     • System is slower now.
                     • System runs many components. Hard to
                          see through.


Tuesday, October 16, 12
story: more hardware =
                         slower
                     • One number stands out: process exit rate
                          is 20/sec. PosgreSQL. What?
                     • Customer creates new connection for
                          each query.

                     • PostgreSQL forks master for new
                          connection.
                     • Fork went from few 10ms to few 100ms
Tuesday, October 16, 12
story: more hardware =
                         slower


                     • Diagnose. Find root cause.



Tuesday, October 16, 12
HTTP/S termination
                     •    HTTP and SSL

                     •    Virtual hosting

                     •    Redirects

                          •   host normalization

                     •    Proxy to load balancer

                     •    Static files



Tuesday, October 16, 12
Load balancing
                     •    LB + HA

                     •    Classify requests

                     •    redispatch + retries

                     •    balance: leastconn

                     •    minconn 1, maxconn 2, threads +2

                     •    Live statistic UI



Tuesday, October 16, 12
Monitoring

                     •    again :(

                     •    processes, ports, logs

                     •    model dependencies

                     •    check_webpage.rb

                     •    Business processes (BPI)




Tuesday, October 16, 12
Reporting
                     •    report + phone call

                     •    incidents

                     •    changes

                     •    availability

                     •    performance

                     •    trends



Tuesday, October 16, 12
SLAs
                     • Availability
                      • more keeps your business safe
                      • less reduces costs
                     • Friends don't let friends think in "nines".
                     • Alignment of technical and organisational
                          measures


Tuesday, October 16, 12
References

                     • "The practice of system and network
                          administration" (Limoncelli, et. al.)
                     • Mark Burgess on config management
                     • "The twelve-factor app" (Heroku)
                     • gocept.net/doc

Tuesday, October 16, 12
Conclusion I

                     • Use infrastructure to build platforms
                     • Platforms should be transparent.
                     • Deploy applications on platforms.


Tuesday, October 16, 12
Conclusion II

                     • Do not cobble together random stuff from
                          the internet.
                     • Careful work pays. Buzzwords don't.
                     • If you hear "enterprise". Run.
                     • Sapere aude.

Tuesday, October 16, 12
Conclusion III

                     • I don't think IaaS and PaaS in the current
                          extremes are a good answer to many
                          projects.
                     • Many people experiment with ideas.
                          Everything is becoming more flexible.
                     • Let's play!

Tuesday, October 16, 12
Questions?
Tuesday, October 16, 12

Mais conteúdo relacionado

Semelhante a Modern, scalable deployment for plone

Dell open stack powered cloud solution introduce & crowbar demo cosug-2012
Dell open stack powered cloud solution introduce & crowbar demo cosug-2012Dell open stack powered cloud solution introduce & crowbar demo cosug-2012
Dell open stack powered cloud solution introduce & crowbar demo cosug-2012OpenCity Community
 
2. FOMS _ FeedHenry_ Mícheál Ó Foghlú
2. FOMS _ FeedHenry_ Mícheál Ó Foghlú2. FOMS _ FeedHenry_ Mícheál Ó Foghlú
2. FOMS _ FeedHenry_ Mícheál Ó FoghlúFOMS011
 
Convergence of Cloud Computing & Project Management
Convergence of Cloud Computing & Project ManagementConvergence of Cloud Computing & Project Management
Convergence of Cloud Computing & Project ManagementVSR *
 
Virtualization Map Tech Ed2009
Virtualization Map Tech Ed2009Virtualization Map Tech Ed2009
Virtualization Map Tech Ed2009rsnarayanan
 
Federal VMUG - March - Reflex VMC Overview
Federal VMUG - March - Reflex VMC OverviewFederal VMUG - March - Reflex VMC Overview
Federal VMUG - March - Reflex VMC Overviewlangonej
 
HP Service Delivery Platform 3.0 Launch
HP Service Delivery Platform 3.0 LaunchHP Service Delivery Platform 3.0 Launch
HP Service Delivery Platform 3.0 Launchgrahamwright
 
02 Ms Online Identity Session 1
02 Ms Online Identity   Session 102 Ms Online Identity   Session 1
02 Ms Online Identity Session 1Sivadon Chaisiri
 
6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services6.Live Framework 和Mesh Services
6.Live Framework 和Mesh ServicesGaryYoung
 
Hisham Dalle - Zero client computing - taking the desktop into the cloud
Hisham Dalle - Zero client computing - taking the desktop into the cloudHisham Dalle - Zero client computing - taking the desktop into the cloud
Hisham Dalle - Zero client computing - taking the desktop into the cloudnooralmousa
 
Tech Ed 09 - Arc302 - Analysis and Architecture
Tech Ed 09 -  Arc302  - Analysis and ArchitectureTech Ed 09 -  Arc302  - Analysis and Architecture
Tech Ed 09 - Arc302 - Analysis and Architecturemhessinger
 
TAUS OPEN SOURCE MACHINE TRANSLATION SHOWCASE, Monaco, Andrejs Vasiljevs, Til...
TAUS OPEN SOURCE MACHINE TRANSLATION SHOWCASE, Monaco, Andrejs Vasiljevs, Til...TAUS OPEN SOURCE MACHINE TRANSLATION SHOWCASE, Monaco, Andrejs Vasiljevs, Til...
TAUS OPEN SOURCE MACHINE TRANSLATION SHOWCASE, Monaco, Andrejs Vasiljevs, Til...TAUS - The Language Data Network
 
Managing the Data Center with JBoss SOA-P
Managing the Data Center with JBoss SOA-PManaging the Data Center with JBoss SOA-P
Managing the Data Center with JBoss SOA-PColloquium
 
Sc World Congress Econference March 2011
Sc World Congress Econference March 2011Sc World Congress Econference March 2011
Sc World Congress Econference March 2011Neira Jones
 
OpenStack Quantum Network Service
OpenStack Quantum Network ServiceOpenStack Quantum Network Service
OpenStack Quantum Network ServiceLew Tucker
 
Systemverwaltung mit Microsoft System Center
Systemverwaltung mit Microsoft System CenterSystemverwaltung mit Microsoft System Center
Systemverwaltung mit Microsoft System CenterMicrosoft Germany
 
remote service automation
remote service automationremote service automation
remote service automationHoneywell
 
Federal Cloud Computing Initiative
Federal Cloud Computing InitiativeFederal Cloud Computing Initiative
Federal Cloud Computing InitiativeGovCloud Network
 

Semelhante a Modern, scalable deployment for plone (20)

Dell open stack powered cloud solution introduce & crowbar demo cosug-2012
Dell open stack powered cloud solution introduce & crowbar demo cosug-2012Dell open stack powered cloud solution introduce & crowbar demo cosug-2012
Dell open stack powered cloud solution introduce & crowbar demo cosug-2012
 
Corporate overview 2.0
Corporate overview 2.0Corporate overview 2.0
Corporate overview 2.0
 
2. FOMS _ FeedHenry_ Mícheál Ó Foghlú
2. FOMS _ FeedHenry_ Mícheál Ó Foghlú2. FOMS _ FeedHenry_ Mícheál Ó Foghlú
2. FOMS _ FeedHenry_ Mícheál Ó Foghlú
 
Convergence of Cloud Computing & Project Management
Convergence of Cloud Computing & Project ManagementConvergence of Cloud Computing & Project Management
Convergence of Cloud Computing & Project Management
 
Virtualization Map Tech Ed2009
Virtualization Map Tech Ed2009Virtualization Map Tech Ed2009
Virtualization Map Tech Ed2009
 
Federal VMUG - March - Reflex VMC Overview
Federal VMUG - March - Reflex VMC OverviewFederal VMUG - March - Reflex VMC Overview
Federal VMUG - March - Reflex VMC Overview
 
HP Service Delivery Platform 3.0 Launch
HP Service Delivery Platform 3.0 LaunchHP Service Delivery Platform 3.0 Launch
HP Service Delivery Platform 3.0 Launch
 
02 Ms Online Identity Session 1
02 Ms Online Identity   Session 102 Ms Online Identity   Session 1
02 Ms Online Identity Session 1
 
6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services
 
Sybase Unwired Platform- Introduction to Mobility
Sybase Unwired Platform- Introduction to MobilitySybase Unwired Platform- Introduction to Mobility
Sybase Unwired Platform- Introduction to Mobility
 
Hisham Dalle - Zero client computing - taking the desktop into the cloud
Hisham Dalle - Zero client computing - taking the desktop into the cloudHisham Dalle - Zero client computing - taking the desktop into the cloud
Hisham Dalle - Zero client computing - taking the desktop into the cloud
 
Tech Ed 09 - Arc302 - Analysis and Architecture
Tech Ed 09 -  Arc302  - Analysis and ArchitectureTech Ed 09 -  Arc302  - Analysis and Architecture
Tech Ed 09 - Arc302 - Analysis and Architecture
 
TAUS OPEN SOURCE MACHINE TRANSLATION SHOWCASE, Monaco, Andrejs Vasiljevs, Til...
TAUS OPEN SOURCE MACHINE TRANSLATION SHOWCASE, Monaco, Andrejs Vasiljevs, Til...TAUS OPEN SOURCE MACHINE TRANSLATION SHOWCASE, Monaco, Andrejs Vasiljevs, Til...
TAUS OPEN SOURCE MACHINE TRANSLATION SHOWCASE, Monaco, Andrejs Vasiljevs, Til...
 
Manufacturing Performance
Manufacturing PerformanceManufacturing Performance
Manufacturing Performance
 
Managing the Data Center with JBoss SOA-P
Managing the Data Center with JBoss SOA-PManaging the Data Center with JBoss SOA-P
Managing the Data Center with JBoss SOA-P
 
Sc World Congress Econference March 2011
Sc World Congress Econference March 2011Sc World Congress Econference March 2011
Sc World Congress Econference March 2011
 
OpenStack Quantum Network Service
OpenStack Quantum Network ServiceOpenStack Quantum Network Service
OpenStack Quantum Network Service
 
Systemverwaltung mit Microsoft System Center
Systemverwaltung mit Microsoft System CenterSystemverwaltung mit Microsoft System Center
Systemverwaltung mit Microsoft System Center
 
remote service automation
remote service automationremote service automation
remote service automation
 
Federal Cloud Computing Initiative
Federal Cloud Computing InitiativeFederal Cloud Computing Initiative
Federal Cloud Computing Initiative
 

Último

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Último (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

Modern, scalable deployment for plone

  • 1. Scalable, modern deployment for Plone Christian Theune ct@gocept.com Tuesday, October 16, 12
  • 8. Platform Application Components Management Automation Monitoring Support OS Virtualization Hardware Data center Tuesday, October 16, 12
  • 9. Platform Application Components Management Automation Monitoring Support OS Virtualization Hardware Data center Tuesday, October 16, 12
  • 11. Platform Application Components Management Automation Monitoring Support OS Virtualization Hardware Data center Tuesday, October 16, 12
  • 13. Platform Application Components Management Automation Monitoring Support OS Virtualization Hardware Data center Tuesday, October 16, 12
  • 14. Virtualization OS Components • Virtualization is very affordable • Platform creates interface between app and infrastructure Tuesday, October 16, 12
  • 15. Platform Application Components Management Automation Monitoring Support OS Virtualization Hardware Data center Tuesday, October 16, 12
  • 16. Automation • convergence • idempotency • versioning • everything as code • continuous repairs Tuesday, October 16, 12
  • 17. Platform Application Components Management Automation Monitoring Support OS Virtualization Hardware Data center Tuesday, October 16, 12
  • 18. Management • Take care of updates and “production- ready” configuration • Backup and other day-to-day operations • OS and regularly used components • Gradual process moving components from user-space installations to platform-wide features Tuesday, October 16, 12
  • 19. Platform Application Components Management Automation Monitoring Support OS Virtualization Hardware Data center Tuesday, October 16, 12
  • 20. Monitoring • Nagios :( • (Un-)fortunately: #monitoringsucks Tuesday, October 16, 12
  • 21. Platform Application Components Management Automation Monitoring Support OS Virtualization Hardware Data center Tuesday, October 16, 12
  • 22. Support • Request tracker • custom glue code • Daily review • Interrupt shield Tuesday, October 16, 12
  • 23. Platform Application Components Management Automation Monitoring Support OS Virtualization Hardware Data center Tuesday, October 16, 12
  • 24. Application deployment and operations Tuesday, October 16, 12
  • 25. Deployment • Quick • Repeatable • Platform-independent • single-click Tuesday, October 16, 12
  • 26. Batou • Model-based • Use everywhere • No effect on runtime • Orchestration • Convergency • Idempotency • Reusability Tuesday, October 16, 12
  • 27. class Solr(Component): def configure(self): self.address = Address(self.host.fqdn, 9000) self.provide('solr:server', self.address) self += Buildout('solr', python='2.7') self += Program('solr', command='java', command_absolute=False, args='-jar start.jar', directory=self.expand( '{{component.workdir}}/parts/instance'), restart=True) Tuesday, October 16, 12
  • 28. [hosts] oshaweb00 = nginx, www, varnish, supervisor, haproxy, docs oshaweb01 = zope, hwthemes, supervisor ... oshaweb20 = zope, hwthemes, supervisor oshaweb21 = zeo, openldap, supervisor oshaweb22 = nginx, media2 oshaweb23 = nginx, birt, lms, ugm, supervisor oshaweb24 = solr, memcached, supervisor oshaweb26 = mailout [component:haproxy] strategy = production_strategy bots = 3 whitelist = 8 default = 3 ... Tuesday, October 16, 12
  • 29. Components good bad nginx apache varnish mysql, BDB haproxy OpenLDAP PostgreSQL memcached supervisor postfix Tuesday, October 16, 12
  • 30. Minimal "production- ready" checklist • Sane front-end configuration • System startup/shutdown • Log rotation • Database maintenance • Monitoring: processes and ports • Service user Tuesday, October 16, 12
  • 31. Secrets • One AES-encrypted config file per environment • Transparent decryption • Safety-belt to avoid accidental checking in unencrypted files • Future: PGP-encryption Tuesday, October 16, 12
  • 32. Environments • Production vs. Staging • Structurally identical but smaller • Only one of many (dev, integration, ...) • "Fly what you test, test what you fly." Tuesday, October 16, 12
  • 33. Web applications • Shared nothing in your app! • Many small processes • Do not listen early • Never store runtime config in the database Tuesday, October 16, 12
  • 34. Web applications II • Log long running requests • Avoid synchronous external requests • Avoid accidental write requests. • Use feature switches. Tuesday, October 16, 12
  • 35. Process control • only one component to integrate • turn anything into a daemon • use superlance (httpok, memmon) for active restarts • use 3.0 release candidate Tuesday, October 16, 12
  • 36. Python: virtualenv and buildout • use both, combined • buildout might be a hammer, but not everything is a nail Tuesday, October 16, 12
  • 37. more buildout • use extends to keep your configs clean and structured • allow-picked-versions=False • -t 3 • buildout >= 1.6 • mr.developer • allowed-hosts = ... Tuesday, October 16, 12
  • 38. and even more buildout • multiple small better than one big • different Python versions • different subsets of egg versions • use mirrors - see pypi-mirrors.org • latency to the PyPI server is the biggest factor in buildout performance Tuesday, October 16, 12
  • 39. Databases • As much RAM as you can afford - seriously • Low latency network (<0.1ms) • Multi-core if necessary • Disk usage < 40% Tuesday, October 16, 12
  • 40. story: more hardware = slower • Application is slow. • Customer buys more hardware. Specifically: RAM. • System is slower now. • System runs many components. Hard to see through. Tuesday, October 16, 12
  • 41. story: more hardware = slower • One number stands out: process exit rate is 20/sec. PosgreSQL. What? • Customer creates new connection for each query. • PostgreSQL forks master for new connection. • Fork went from few 10ms to few 100ms Tuesday, October 16, 12
  • 42. story: more hardware = slower • Diagnose. Find root cause. Tuesday, October 16, 12
  • 43. HTTP/S termination • HTTP and SSL • Virtual hosting • Redirects • host normalization • Proxy to load balancer • Static files Tuesday, October 16, 12
  • 44. Load balancing • LB + HA • Classify requests • redispatch + retries • balance: leastconn • minconn 1, maxconn 2, threads +2 • Live statistic UI Tuesday, October 16, 12
  • 45. Monitoring • again :( • processes, ports, logs • model dependencies • check_webpage.rb • Business processes (BPI) Tuesday, October 16, 12
  • 46. Reporting • report + phone call • incidents • changes • availability • performance • trends Tuesday, October 16, 12
  • 47. SLAs • Availability • more keeps your business safe • less reduces costs • Friends don't let friends think in "nines". • Alignment of technical and organisational measures Tuesday, October 16, 12
  • 48. References • "The practice of system and network administration" (Limoncelli, et. al.) • Mark Burgess on config management • "The twelve-factor app" (Heroku) • gocept.net/doc Tuesday, October 16, 12
  • 49. Conclusion I • Use infrastructure to build platforms • Platforms should be transparent. • Deploy applications on platforms. Tuesday, October 16, 12
  • 50. Conclusion II • Do not cobble together random stuff from the internet. • Careful work pays. Buzzwords don't. • If you hear "enterprise". Run. • Sapere aude. Tuesday, October 16, 12
  • 51. Conclusion III • I don't think IaaS and PaaS in the current extremes are a good answer to many projects. • Many people experiment with ideas. Everything is becoming more flexible. • Let's play! Tuesday, October 16, 12