Yottaa is an add-on for web and mobile optimization, CDN, DNS and Firewall with integrated monitoring.
Accelerate server-side performance and eliminate latency with powerful content optimization. Yottaa enables everything from push-button acceleration to robust server-side content optimizations, without the complexity and people-hours required by individual or DIY solutions
Accelerate content delivery with cutting-edge CDN federation technology, leveraging a hybrid architecture of physical and cloud datacenters to ensure the most efficient and resilient network architecture possible.
Reduce payload, minimize round trip requests, and apply network optimizations to deliver the right content to the right device – right on time
Minimize client-side processing and optimize above-the-fold rendering to provide the best end user experience across all devices: desktops, tablets and phones
Guarantee resource elasticity to scale for traffic spikes so your success does not result in unexpected downtime or damage to your brand. Block unwanted and throttle low-priority traffic to ensure your target visitors have the end user experience they demand.
Yottaa is accessible via an API and has supported client libraries for Java | Ruby.
Yottaa can be attached to a Heroku application via the CLI:
A list of all plans available can be found here.
To provision a new Yottaa account for your site, you can run the heroku addons:add
command and then update your email and site URL settings through add-on dashboard (coming soon).
Or you can run the heroku addons:add
command with following optional parameters
first_name
: Account owner's first name
last_name
: Account owner's last name
email
: Account owner's email
phone
: Account owner's phone number
site
: URL of the target site
$ heroku addons:add yottaa --first_name=John --last_name=Smith --email=john.smith@yottaa.com --phone=123456789 --site=http://www.yoursite.com
Dear John Smith, your Yottaa account is now provisioned!
Use `heroku addons:docs yottaa:free` to view documentation.
Although all parameters are optional, it is highly recommended to provide all of them.
If you already have a Yottaa account and added your site through Yottaa apps console, you can provision your Yottaa add-on using user_id
, api_key
and site_id
parameters.
$ heroku addons:add yottaa --user_id=51fcf311ea2e0c17d70003cs --api_key=8868d820de630130be5e12313d08f870 --site_id=51fcf311ea2e0c17d70003cf
Dear Customer, your Yottaa account is now provisioned!
Use `heroku addons:docs yottaa:free` to view documentation.
You will need to login Yottaa Apps Console to find out the above three parameters.
Once Yottaa has been added three custom settings, YOTTAA_API_KEY
, YOTTAA_SITE_ID
and YOTTAA_USER_ID
, will be available in the app configuration.
This can be confirmed using the heroku config:get
command.
$ heroku config
=== yottaa-heroku-app Config Vars
YOTTAA_API_KEY: 8868d820de630130be5e12313d08f870
YOTTAA_SITE_ID: 51fcf311ea2e0c17d70003cf
YOTTAA_USER_ID: 51fcf311ea2e0c17d70003cs
After installing Yottaa you will need to configure your DNS records to fully integrate your application with the add-on.
In general, you will need to setup Yottaa as the reverse proxy server for your site.
Since your app on Heroku is accessible via its herokuapp.com
app subdomain. E.g., for an app named yottaa-heroku-app
it’s available at yottaa-heroku-app.herokuapp.com
.
To serve traffic on your own domain, e.g., heroku.bestwebsitemonitoring.info
, you will first need to configure your application with a custom domain using heroku domains:add
command.
For more information on setting up Heroku custom domains, please refer to this Heroku document.
Once you configure your custom domain for your Heroku app, next step will be activating your Yottaa account that you have signed up or registered through the Heroku command line.
- First, locate your site's Yottaa CNAME by logging in Yottaa Apps Console and browsing to your site dashboard.
- Then modify the
CNAME
record you just created for your Heroku App with the Yotaa CNAME.
Record. | Name | Target |
---|---|---|
CNAME |
heroku.bestwebsitemonitoring.info |
72620360de5d013012371231381401ec.yottaa.net |
After provisioning the add-on it’s necessary to locally replicate the config vars so your development environment can operate against the service.
Use Foreman to configure, run and manage process types specified in your app’s Procfile. Foreman reads configuration variables from an .env file. Use the following command to add the Yottaa config values retrieved from heroku config to .env
.
$ heroku config -s | grep YOTTAA >> .env
$ more .env
warning Credentials and other sensitive configuration values should not be committed to source-control. In Git exclude the .env file with:
echo .env >> .gitignore
.
Yottaa provides REST-style services for your ROR app to retrieve site optimizer information, change optimizer status etc.
The following is a Ruby example that returns your site optimizer configuration.
require 'bundler'
require 'net/http'
require 'net/https'
require 'uri'
require 'json'
Bundler.require
STDOUT.sync = true
# utility class for yottaa custom header
class CaseSensitiveString < String
def downcase
self
end
def capitalize
self
end
end
STDOUT.puts "Retrieve details of the site you have registerd with Yottaa."
uri = URI.parse("https://api.yottaa.com/sites/" + ENV['YOTTAA_SITE_ID'])
https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
custom_header_key = CaseSensitiveString.new("YOTTAA-API-KEY")
req = Net::HTTP::Get.new(uri, {custom_header_key =>ENV['YOTTAA_API_KEY']})
req.set_form_data({"user_id" => ENV['YOTTAA_USER_ID']})
https.set_debug_output($stdout)
res = https.request(req)
result = JSON.parse(res.body)
if !result.has_key? 'error'
STDOUT.puts result.to_json
else
STDOUT.puts result.to_json
end
Yottaa provides Java client library for making it easy to access Yottaa REST services.
Here is a Java code snippet that retrieves metrics of the last monitoring sample from your Yottaa account.
....
YottaaHttpClientPublic yottaaHttpClientPublic = new YottaaHttpClientPublic(System.getenv('YOTTAA_API_KEY'));
JSONObject lastSampleMetrics = yottaaHttpClient.getLastSample();
JSONObject httpMetrics = (JSONObject) lastSampleMetrics.get("http_metrics");
JSONObject httpMetricsConnect = (JSONObject) httpMetrics.get("connect");
System.out.println("Average ==> " + Double.parseDouble(httpMetricsConnect.get("average").toString()));
System.out.println("Sum ==> " + Integer.parseInt(httpMetricsConnect.get("sum").toString()));
...
For more information on the features available within the Yottaa dashboard please see the docs at Yottaa Website.
The Yottaa dashboard allows you to
If the current status of your site optimizer is live, you can switch it to either bypass mode or transparent proxy mode.
Otherwise, you can resume it to live status.
Remove all cached items of your site from Yottaa CDN servers.
Remove all cached items of your site that match the provide list of regular expressions from Yottaa CDN servers.
Coming soon...
The dashboard can be accessed via the CLI:
$ heroku addons:open yottaa
Opening yottaa for yottaa-heroku-app…
or by visiting the Heroku apps web interface and selecting the application in question. Select Yottaa from the Add-ons menu.
note Application owners should carefully manage the migration timing to ensure proper application function during the migration process.
Use the heroku addons:upgrade
command to migrate to a new plan.
$ heroku addons:upgrade yottaa:enterprise
-----> Upgrading yottaa:enterprise to yottaa-heroku-app... done, v5 ($4999/mo)
Your plan has been updated to: yottaa:enterprise
Yottaa can be removed via the CLI.
warning This will destroy all associated data and cannot be undone!
$ heroku addons:remove yottaa
Removing yottaa:free on yottaa-heroku-app... done, v5 (free)
## Support
All Yottaa support and runtime issues should be submitted via on of the [Heroku Support channels](support-channels). Any non-support related issues or product feedback is welcome at [[your channels]].