Commit 1dead98d
Changed files (11)
config
lib
capistrano
script
config/deploy/staging.rb
@@ -1,46 +0,0 @@
-# Simple Role Syntax
-# ==================
-# Supports bulk-adding hosts to roles, the primary server in each group
-# is considered to be the first unless any hosts have the primary
-# property set. Don't declare `role :all`, it's a meta role.
-
-role :app, %w{deployer@staging.cakeside.com}
-role :web, %w{deployer@staging.cakeside.com}
-role :db, %w{deployer@staging.cakeside.com}
-
-
-# Extended Server Syntax
-# ======================
-# This can be used to drop a more detailed server definition into the
-# server list. The second argument is a, or duck-types, Hash and is
-# used to set extended properties on the server.
-
-server 'staging.cakeside.com', user: 'deployer', roles: %w{web app db}, my_property: :my_value
-set :rails_env, 'staging'
-set :domain, 'staging.cakeside.com'
-
-# Custom SSH Options
-# ==================
-# You may pass any option but keep in mind that net/ssh understands a
-# limited set of options, consult[net/ssh documentation](http://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start).
-#
-# Global options
-# --------------
-# set :ssh_options, {
-# keys: %w(/home/rlisowski/.ssh/id_rsa),
-# forward_agent: false,
-# auth_methods: %w(password)
-# }
-#
-# And/or per server (overrides global)
-# ------------------------------------
-# server 'example.com',
-# user: 'user_name',
-# roles: %w{web app},
-# ssh_options: {
-# user: 'user_name', # overrides user setting above
-# keys: %w(/home/user_name/.ssh/id_rsa),
-# forward_agent: false,
-# auth_methods: %w(publickey password)
-# # password: 'please use keys'
-# }
config/environments/staging.rb
@@ -1,102 +0,0 @@
-Rails.application.configure do
- # Settings specified here will take precedence over those in config/application.rb.
-
- # Code is not reloaded between requests.
- config.cache_classes = true
-
- # Eager load code on boot. This eager loads most of Rails and
- # your application in memory, allowing both thread web servers
- # and those relying on copy on write to perform better.
- # Rake tasks automatically ignore this option for performance.
- config.eager_load = true
-
- # Full error reports are disabled and caching is turned on.
- config.consider_all_requests_local = false
- config.action_controller.perform_caching = true
-
- # Enable Rack::Cache to put a simple HTTP cache in front of your application
- # Add `rack-cache` to your Gemfile before enabling this.
- # For large-scale production use, consider using a caching reverse proxy like
- # NGINX, varnish or squid.
- # config.action_dispatch.rack_cache = true
-
- # Disable serving static files from the `/public` folder by default since
- # Apache or NGINX already handles this.
- config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
-
- # Compress JavaScripts and CSS.
- config.assets.js_compressor = :uglifier
- # config.assets.css_compressor = :sass
-
- # Do not fallback to assets pipeline if a precompiled asset is missed.
- config.assets.compile = false
-
- # Asset digests allow you to set far-future HTTP expiration dates on all assets,
- # yet still be able to expire them through the digest params.
- config.assets.digest = true
-
- # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
-
- # Specifies the header that your server uses for sending files.
- # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
- # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
-
- # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
- # config.force_ssl = true
-
- # Specifies the header that your server uses for sending files.
- # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
- # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
-
- # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
- config.force_ssl = true
-
- # Use the lowest log level to ensure availability of diagnostic information
- # when problems arise.
- config.log_level = :info
-
- # Prepend all log lines with the following tags.
- config.log_tags = [ lambda { |x| Time.now.utc }, :host, :remote_ip, :uuid ]
-
- # Use a different logger for distributed setups.
- # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
-
- # Use a different cache store in production.
- config.cache_store = :mem_cache_store, 'localhost:11211'
-
- # Enable serving of images, stylesheets, and JavaScripts from an asset server.
- config.action_controller.asset_host = ENV['ASSET_HOST']
-
- # Ignore bad email addresses and do not raise email delivery errors.
- # Set this to true and configure the email server for immediate delivery to raise delivery errors.
- # config.action_mailer.raise_delivery_errors = false
-
- # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
- # the I18n.default_locale when a translation can not be found).
- config.i18n.fallbacks = true
-
- # Send deprecation notices to registered listeners.
- config.active_support.deprecation = :notify
-
- # Use default logging formatter so that PID and timestamp are not suppressed.
- config.log_formatter = ::Logger::Formatter.new
-
- # Do not dump schema after migrations.
- config.active_record.dump_schema_after_migration = false
-
- # Ignore bad email addresses and do not raise email delivery errors.
- # Set this to true and configure the email server for immediate delivery to raise delivery errors.
- # config.action_mailer.raise_delivery_errors = false
- config.action_mailer.asset_host = ENV['ASSET_HOST']
- config.action_mailer.default_url_options = { :host => 'staging.cakeside.com'}
- config.action_mailer.delivery_method = :smtp
- config.action_mailer.smtp_settings = {
- :address => ENV['SMTP_HOST'],
- :port => ENV['SMTP_PORT'],
- :domain => ENV['SMTP_DOMAIN'],
- :user_name => ENV['SMTP_USERNAME'],
- :password => ENV['SMTP_PASSWORD'],
- :authentication => :plain,
- :enable_starttls_auto => true
- }
-end
config/initializers/session_store.rb
@@ -2,6 +2,6 @@
configuration = {
key: "_cake_eater_#{Rails.env}",
expire_after: 2.weeks,
- secure: Rails.env.production? || Rails.env.staging?,
+ secure: Rails.env.production?
}
Rails.application.config.session_store :cookie_store, configuration
config/newrelic.yml
@@ -1,227 +1,31 @@
-#
-# This file configures the New Relic Agent. New Relic monitors
-# Ruby, Java, .NET, PHP, and Python applications with deep visibility and low overhead.
-# For more information, visit www.newrelic.com.
-#
-# Generated June 09, 2012
-#
-# This configuration file is custom generated for Cakeside Inc.
-
-# Here are the settings that are common to all environments:
common: &default_settings
- # ============================== LICENSE KEY ===============================
-
- # You must specify the license key associated with your New Relic
- # account. This key binds your Agent's data to your account in the
- # New Relic service.
license_key: '<%= ENV['NEWRELIC_KEY'] %>'
-
- # Agent Enabled (Ruby/Rails Only)
- # Use this setting to force the agent to run or not run.
- # Default is 'auto' which means the agent will install and run only
- # if a valid dispatcher such as Mongrel is running. This prevents
- # it from running with Rake or the console. Set to false to
- # completely turn the agent off regardless of the other settings.
- # Valid values are true, false and auto.
- # agent_enabled: auto
-
- # Application Name
- # Set this to be the name of your application as you'd like it show
- # up in New Relic. New Relic will then auto-map instances of your application
- # into a New Relic "application" on your home dashboard page. If you want
- # to map this instance into multiple apps, like "AJAX Requests" and
- # "All UI" then specify a semicolon-separated list of up to three
- # distinct names. If you comment this out, it defaults to the
- # capitalized RAILS_ENV (i.e., Production, Staging, etc)
- #app_name: CakeSide
-
- # When "true", the agent collects performance data about your
- # application and reports this data to the New Relic service at
- # newrelic.com. This global switch is normally overridden for each
- # environment below. (formerly called 'enabled')
monitor_mode: true
-
- # Developer mode should be off in every environment but
- # development as it has very high overhead in memory.
developer_mode: false
-
- # The newrelic agent generates its own log file to keep its logging
- # information separate from that of your application. Specify its
- # log level here.
log_level: debug
-
- # The newrelic agent communicates with the New Relic service via http by
- # default. If you want to communicate via https to increase
- # security, then turn on SSL by setting this value to true. Note,
- # this will result in increased CPU overhead to perform the
- # encryption involved in SSL communication, but this work is done
- # asynchronously to the threads that process your application code,
- # so it should not impact response times.
ssl: true
-
- # EXPERIMENTAL: enable verification of the SSL certificate sent by
- # the server. This setting has no effect unless SSL is enabled
- # above. This may block your application. Only enable it if the data
- # you send us needs end-to-end verified certificates.
- #
- # This means we cannot cache the DNS lookup, so each request to the
- # New Relic service will perform a lookup. It also means that we cannot
- # use a non-blocking lookup, so in a worst case, if you have DNS
- # problems, your app may block indefinitely.
verify_certificate: true
-
- # Set your application's Apdex threshold value with the 'apdex_t'
- # setting, in seconds. The apdex_t value determines the buckets used
- # to compute your overall Apdex score.
- # Requests that take less than apdex_t seconds to process will be
- # classified as Satisfying transactions; more than apdex_t seconds
- # as Tolerating transactions; and more than four times the apdex_t
- # value as Frustrating transactions.
- # For more about the Apdex standard, see
- # http://newrelic.com/docs/general/apdex
apdex_t: 0.5
-
- # Proxy settings for connecting to the New Relic server.
- #
- # If a proxy is used, the host setting is required. Other settings
- # are optional. Default port is 8080.
- #
- # proxy_host: hostname
- # proxy_port: 8080
- # proxy_user:
- # proxy_pass:
-
- # Tells transaction tracer and error collector (when enabled)
- # whether or not to capture HTTP params. When true, frameworks can
- # exclude HTTP parameters from being captured.
- # Rails: the RoR filter_parameter_logging excludes parameters
- # Java: create a config setting called "ignored_params" and set it to
- # a comma separated list of HTTP parameter names.
- # ex: ignored_params: credit_card, ssn, password
capture_params: false
-
- # Transaction tracer captures deep information about slow
- # transactions and sends this to the New Relic service once a
- # minute. Included in the transaction is the exact call sequence of
- # the transactions including any SQL statements issued.
transaction_tracer:
-
- # Transaction tracer is enabled by default. Set this to false to
- # turn it off. This feature is only available at the Professional
- # product level.
enabled: true
-
- # Threshold in seconds for when to collect a transaction
- # trace. When the response time of a controller action exceeds
- # this threshold, a transaction trace will be recorded and sent to
- # New Relic. Valid values are any float value, or (default) "apdex_f",
- # which will use the threshold for an dissatisfying Apdex
- # controller action - four times the Apdex T value.
transaction_threshold: apdex_f
-
- # When transaction tracer is on, SQL statements can optionally be
- # recorded. The recorder has three modes, "off" which sends no
- # SQL, "raw" which sends the SQL statement in its original form,
- # and "obfuscated", which strips out numeric and string literals.
record_sql: obfuscated
-
- # Threshold in seconds for when to collect stack trace for a SQL
- # call. In other words, when SQL statements exceed this threshold,
- # then capture and send to New Relic the current stack trace. This is
- # helpful for pinpointing where long SQL calls originate from.
stack_trace_threshold: 0.500
-
- # Determines whether the agent will capture query plans for slow
- # SQL queries. Only supported in mysql and postgres. Should be
- # set to false when using other adapters.
- # explain_enabled: true
-
- # Threshold for query execution time below which query plans will not
- # not be captured. Relevant only when `explain_enabled` is true.
- # explain_threshold: 0.5
-
- # Error collector captures information about uncaught exceptions and
- # sends them to New Relic for viewing
error_collector:
-
- # Error collector is enabled by default. Set this to false to turn
- # it off. This feature is only available at the Professional
- # product level.
enabled: true
-
- # Rails Only - tells error collector whether or not to capture a
- # source snippet around the place of the error when errors are View
- # related.
capture_source: true
-
- # To stop specific errors from reporting to New Relic, set this property
- # to comma-separated values. Default is to ignore routing errors,
- # which are how 404's get triggered.
ignore_errors: ActionController::RoutingError
- # (Advanced) Uncomment this to ensure the CPU and memory samplers
- # won't run. Useful when you are using the agent to monitor an
- # external resource
- # disable_samplers: true
-
- # If you aren't interested in visibility in these areas, you can
- # disable the instrumentation to reduce overhead.
- #
- # disable_view_instrumentation: true
- # disable_activerecord_instrumentation: true
- # disable_memcache_instrumentation: true
- # disable_dj: true
-
- # Certain types of instrumentation such as GC stats will not work if
- # you are running multi-threaded. Please let us know.
- # multi_threaded = false
-
-# Application Environments
-# ------------------------------------------
-# Environment-specific settings are in this section.
-# For Rails applications, RAILS_ENV is used to determine the environment.
-# For Java applications, pass -Dnewrelic.environment <environment> to set
-# the environment.
-
-# NOTE if your application has other named environments, you should
-# provide newrelic configuration settings for these environments here.
-
development:
<<: *default_settings
- # Turn off communication to New Relic service in development mode (also
- # 'enabled').
- # NOTE: for initial evaluation purposes, you may want to temporarily
- # turn agent communication on in development mode.
monitor_mode: false
-
- # Rails Only - when running in Developer Mode, the New Relic Agent will
- # present performance information on the last 100 transactions you have
- # executed since starting the app server.
- # NOTE: There is substantial overhead when running in developer mode.
- # Do not use for production or load testing.
developer_mode: true
-
- # Enable textmate links
- # textmate: true
test:
<<: *default_settings
- # It almost never makes sense to turn on the agent when running
- # unit, functional or integration tests or the like.
monitor_mode: false
-# Turn on the agent in production for 24x7 monitoring. New Relic
-# testing shows an average performance impact of < 5 ms per
-# transaction, so you can leave this on all the time without
-# incurring any user-visible performance degradation.
production:
<<: *default_settings
monitor_mode: true
-
-# Many applications have a staging environment which behaves
-# identically to production. Support for that environment is provided
-# here. By default, the staging environment has the agent turned on.
-staging:
- <<: *default_settings
- monitor_mode: true
- app_name: CakeSide (Staging)
config/secrets.yml
@@ -16,9 +16,6 @@ development:
test:
secret_key_base: a275a537c6ab6aedf787c652911b1f6d4ba733f12d07df51e5d1bebc134cef1bf750462cd338493d08c305a8764e3889f73e218e9f83d5add377b0282dd959e4
-staging:
- secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
-
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
lib/capistrano/tasks/delayed_job.rake
@@ -8,7 +8,7 @@ namespace :delayed_job do
end
end
- desc "tail the delayed jobs logs on an app server (cap staging delayed_job:logs)"
+ desc "tail the delayed jobs logs on an app server (cap production delayed_job:logs)"
task :logs do
on roles(:app) do
stream "tail -F #{fetch(:shared_path)}/log/delayed_job.log"
lib/capistrano/tasks/unicorn.rake
@@ -8,7 +8,7 @@ namespace :unicorn do
end
end
- desc "tail the logs on an app server (cap staging unicorn:logs)"
+ desc "tail the logs on an app server (cap production unicorn:logs)"
task :logs do
on roles(:app) do
execute "tail -F #{shared_path}/log/unicorn.log"
lib/capistrano/tasks/utility.rake
@@ -1,4 +1,4 @@
-desc "tail the logs on an app server (cap staging logs)"
+desc "tail the logs on an app server (cap production logs)"
task :logs do
on roles(:app) do
execute "tail -F #{shared_path}/log/#{fetch(:rails_env)}.log"
script/perf.sh
@@ -1,4 +1,4 @@
-ENDPOINT="https://staging.cakeside.com/"
+ENDPOINT="https://www.cakeside.com/"
REQUEST_COUNT="100"
THREAD_COUNT="10"
Gemfile
@@ -74,7 +74,7 @@ group :development, :test do
gem 'teaspoon-jasmine'
end
-group :production, :staging do
+group :production do
gem 'newrelic_rpm'
gem 'dalli'
gem 'unicorn'
README.md
@@ -21,5 +21,4 @@ Start server
## Capistrano
- bundle exec cap staging deploy
bundle exec cap production deploy