Trials & free licenses
How can I evaluate your software?
Octopus Server edition is available as a 30 day free trial for any scenario, including production, commercial use. After the trial period ends you can keep your working configuration and upgrade to a paid license and continue deploying uninterrupted.
Octopus Cloud is an alternative that is hosted by us, and is also available as a 30 day trial. No credit card is needed to create an Octopus Cloud trial instance. You can convert the Cloud trial to a paid instance at any time during or after the trial period, and keep all of your instance configuration.
Please contact sales to trial the Enterprise edition.
All trials include full access to our customer success and technical support teams. If you get stuck during any part of your evaluation, please reach out to support
If I purchase a license, do I need to reinstall the software?
No. If you're using Octopus Server you'll be able to activate a new license key without reinstalling the software and without losing any data.
If you're using Octopus Cloud, once you convert your cloud instance to a paid plan your license will be updated automatically. You can convert or restore any cloud instance within 90 days of it being deactivated.
Are there any free or low-cost versions of Octopus Deploy?
Yes, we offer the “Starter Edition” for Octopus Deploy. The Starter edition includes 10 projects, 10 tenants, and 10 machines. It provides full RBAC controls along with SSO integration.
What happened to the free Octopus Community edition?
The Octopus Community edition has been discontinued and replaced with the Starter edition. We have increased the entitlements from 5 projects, 5 targets, and 5 users to 10 projects, 10 tenants, and 10 machines with unlimited users. If you require more than the provided entitlements, then you will be required to upgrade to an Octopus Server Professional License with the number of units you need.
Pricing & discounts
What do the products cost?
We price per project, with tenants and machines as add-ons.
- Projects are a resource within Octopus Deploy that stores the deployment configuration for an application.
- Tenants are a resource within Octopus Deploy that represents a customer, a physical location, a customer’s physical location, or something else that runs a unique copy of the application with a slightly different configuration.
- Machines are Windows, Linux, or MacOS application hosts registered with Octopus Deploy.
We will no longer charge for Kubernetes clusters, Azure Web Apps, Azure Service Fabric clusters, or ECS clusters.
Edition | Price |
---|---|
Starter | $360 / year (USD) |
Professional | $96 / project / year (USD) |
Enterprise | $144 / project / year (USD) |
Tenants (Add-on) | $72 / tenant / year (USD) |
Machines (Add-on) | $72 / machine / year (USD) |
What is a project?
A project is a resource Octopus you configure that primarily represents the deployment configuration for an application. An application is a piece of software that is independently deployable.
Some examples of an application are (but not limited to):
- A monolithic application with dozens of components.
- A back-end REST API with a database as the data store.
- A serverless function that monitors a queue.
- A back-end service that runs in a container on a Kubernetes or ECS cluster.
- A scheduling service that uses CRON jobs to schedule tasks for other applications.
A project is primarily a deployment configuration for an application. However, there are other use cases for projects. Some examples of projects that are not deployment configurations for an application are (but not limited to):
- Runbook-only projects that store a shared set of runbooks for common day 2 maintenance tasks.
- Orchestrator/traffic cop projects used to orchestrate the deployments of other Octopus Deploy projects.
Octopus Deploy will count all active projects, regardless of whether they deploy an application, are used for runbook only, or are used to orchestrate the deployments of other Octopus Deploy projects.
What is a tenant?
A tenant is a resource you configure in Octopus Deploy that is meant to represent the following:
- One of your SaaS customers.
- A physical location includes a retail store, branch office, hospital, restaurant, factory, city, state, country, data center, or car wash.
- One of your customers' physical locations (you deploy software to your customers' restaurants).
Each tenant runs a dedicated copy of your application(s) with slightly different configurations. Octopus Deploy will count all tenants, regardless of what they represent (customer, physical location, etc.) and the environments they deploy to.
What is a machine?
A machine is a Windows, Linux, or MacOS application host - or Deployment Target - registered with Octopus Deploy.
Scenario | How is this counted as a machine? |
---|---|
Windows server registered as a deployment target running a Tentacle | 1 machine per tentacle |
Linux server registered as a deployment target running a Tentacle | 1 machine per tentacle |
SSH connection to Linux server / MaxOS registered as a deployment target | 1 machine per SSH connection |
Kubernetes cluster | Not counted as a machine |
ECS cluster | Not counted as a machine |
Azure Service Fabric cluster | Not counted as a machine |
Azure web app | Not counted as a machine |
Azure function | Not counted as a machine |
Offline package drop | Not counted as a machine |
Cloud region | Not counted as a machine |
Does Octopus Deploy offer any discounts?
Please contact our sales team at sales@octopus.com to discuss volume pricing and multi-year discounts.
Are there any discounts for academic institutions or not-for-profit companies?
No, we do not offer any academic or non-profit discounts.
Octopus Cloud
Are there any differences between Cloud and Server?
Octopus Cloud and Octopus Server have all the same functionality. Octopus Cloud is the same software as Octopus Server, except we host it for you.
Some configuration and diagnostic functions in Octopus Cloud differ from the Octopus Server that relate to providing Octopus as a service. These include disabling specific items related to the cloud server's provisioning and management. For more information, please refer to our documentation.
What is the pricing for Octopus Cloud?
Octopus Cloud is an annual license priced per project with tenants and machines as add-ons, similar to Octopus Server. We do not offer month-to-month licenses for Octopus Cloud.
Edition | Price |
---|---|
Starter | $360 / year (USD) |
Professional | $96 / project / year (USD) |
Enterprise | $144 / project / year (USD) |
Tenants (Add-on) | $72 / tenant / year (USD) |
Machines (Add-on) | $72 / machine / year (USD) |
The key difference Octopus Cloud and Octopus Server is all Octopus Cloud instances will pay a flat annual platform fee. The platform fee, displayed in the table below, is based on the task cap, or the number of concurrent deployments/runbook runs your instance can perform. This fee is in addition to your license cost outlined in the table above.
Task cap | Price | Available for Professional? | Available for Enterprise? |
---|---|---|---|
5 | $2,250 / year (USD) | Yes | No |
10 | $4,500 / year (USD) | Yes | No |
20 | $9,000 / year (USD) | Yes | Yes |
40 | $18,000 / year (USD) | No | Yes |
80 | $36,000 / year (USD) | No | Yes |
160 | $72,000 / year (USD) | No | Yes |
The default task caps for our license tiers are:
- Professional: 5
- Enterprise: 20
File storage: 1TB (The amount of packages, artifacts, and task logs you can store for deployments).
Database storage: 100GB (The amount of configuration data you can store for deployments).
How do I choose between Octopus Cloud and Octopus Server?
Octopus Server is software you download and install yourself - a "self-hosted" solution. This allows you to run Octopus in your own data center or within your own Amazon or Azure cloud environment.
With Octopus Server, you manage the underlying virtual or physical server Octopus Deploy runs on. You also need a SQL Server database and disk storage for application packages. You are responsible for patching the operating system, installing Octopus updates, and security and backups.
Octopus Cloud is the easiest way to run Octopus Deploy. We host Octopus Deploy for you. We are responsible for monitoring, upgrades, maintenance, and all the other day-to-day tasks required to run Octopus Deploy.
For these reasons, we recommend Octopus Cloud. You should only self-host Octopus Deploy when you have specific security or privacy requirements. For example, you must integrate with an internal Active Directory domain. Or, you cannot store data on or connect to one of our three Azure regions.
Where is Octopus Cloud hosted?
Octopus Cloud runs within the Microsoft Azure cloud. When you create an Octopus Cloud instance, we provision a Linux container to run the Octopus Server in, along with all the other resources we need to provide Octopus as a service. This is deployed to one of our Kubernetes clusters. A fun fact: we use Octopus Deploy, with our multi-tenancy functionality, to deploy your Octopus Deploy instance.
How is Octopus Cloud billed?
Octopus Cloud begins as an unlimited trial that allows you to start using Octopus Deploy immediately for free. You can upgrade to a paid plan anytime during the 30-day free period. Octopus Cloud is billed annually based on the number of projects, tenants, machines, and task cap.
Do you support annual billing?
Yes. This is the only billing option available with Octopus Cloud.
What payment methods do you accept for Octopus Cloud?
We accept credit cards (VISA, Mastercard, and American Express), wire transfers, and checks. We will issue an invoice with payment instructions included.
Can I migrate from Self-Hosted to Cloud?
Yes. If you have an existing self-hosted Octopus Server instance, and you want to switch to Octopus Cloud, you may want to migrate all of your existing projects, variables, history, and configuration from your self-hosted instance to your new Octopus Cloud instance. Any unused term on your Octopus Server license can be credited to your Octopus Cloud account. Please read our guide for migrating to Octopus Cloud.
What if I decide to cancel?
You can cancel your Octopus Cloud subscription at any time. To do this, log in to your Octopus Account, select your instance, use the finance pane to see your plan. From here you can click "Cancel plan" to cancel any future automatic renewals of your subscription. Once you do this, when the current annual period ends, your instance will automatically deactivate and you won’t be billed any further.
After deactivation, we keep all data for at least 90 days before deleting anything. Within this period, you can reactivate your instance in about 10 minutes with no data loss. After 90 days have passed the data may be deleted and be unrecoverable.
When are cloud instances deactivated?
Paid cloud instances will stay online for the duration of the annual term. If payment has not been received by the time the annual term is completed, we will deactivate your instance after a couple of days.
After deactivation, we keep all data for 90 days before deleting anything. Within this period you can reactivate your instance in about 10 minutes with no data loss. When 90 days have passed the data will be deleted and be unrecoverable.
Are there any storage limits?
Yes. The details are as follows:
- File Storage: 1 TB
- Database Storage: 100 GB
- Maximum Resource Retention: Unlimited
Maximum File Storage
This includes the following data that we store for your instance:
- Artifacts
- Packages
- Task Logs
An external package repository may help keep things under your quota. We recommend JFrog’s Artifactory integrate nicely with Octopus and have a wide range of plans that suit most needs.
Maximum Database Size
This limit applies to configuration data stored in the database, like project and deployment configuration or inline scripts. This includes any reference data we install as part of the product.
Maximum Resource Retention
Octopus Cloud will default to 30 days retention for new lifecycles/spaces but can be configured to any value.
For more information, please refer to the Retention Policy documentation. Please note that this will apply to any custom lifecycle retention policies as well.
When a limit is reached
Your instance will run in a degraded state when any limit above is reached. Examples of a degraded state include (but not limited to):
- New packages will no longer be uploaded to the internal feeds
- Deployments may be unable to be completed
- New configuration data may not be created
We recommend configuring your retention policies appropriately based on your usage to prevent hitting these limits.
Reach out if you have specific requirements
We understand that this may cause issues in some scenarios, so if you have any questions, concerns or special requirements, we encourage you to reach out to us at support@octopus.com.
Octopus Cloud continued
What am I getting for the platform fee?
The Octopus Cloud platform fee provides you with access to the benefits of Octopus Cloud, including:
- We take care of the maintenance and any issues that arise so you don't have to worry about downtime, data loss, or disruptions
- Our 24x7 monitoring and alerting and proactive issue detection means problems get addressed before they impact your operations
- Automatic upgrades to the latest version of Octopus, including improvements, bug fixes, security enhancements, and new features before they’re released on Octopus Server
- We provide appropriate resources and automatic scaling for seamless performance
- Expert support by experienced Octopus Support and Cloud Operations teams who swiftly resolve issues and provide regular maintenance
- Automatic recovery with comprehensive disaster recovery procedures means your data is safe and quickly recoverable in case of a failure
- Peace of mind with internationally recognized security standards, ensuring business compliance and protecting your reputation
- ISO 27001 and SOC II certifications with regular audits, ensuring your deployments and data are safe and secure
- Flexibility of hosting region choices
See the full list of Octopus Cloud benefits here
What are concurrent tasks?
That refers to the task cap configuration found in every Octopus Deploy instance. It is how many concurrent deployments and runbook runs (and other jobs) the instance can perform at a time.
Why does increasing concurrent tasks incur an additional fee?
Deployments and runbook runs are among Octopus Deploy's most computationally expensive tasks. More concurrent deployments and runbooks means more resources the Octopus Instance requires from the Octopus Cloud platform. That increase could come from some or all of these items:
- CPU / RAM on the Octopus Instance
- Database resources
- File storage
- Larger dynamic workers
- More frequent dynamic worker usage
- More bandwidth
- Additional back-end support and maintenance
What if I want to increase the number of concurrent tasks in the middle of my annual subscription?
Reach out to sales@octopus.com. We will generate a prorated invoice for the remainder of the annual subscription term.
What resources will I get with more concurrent tasks?
The Octopus Cloud platform will allocate the appropriate amount of resources to ensure your instance can process the purchased number of concurrent tasks.
If you previously self-hosted Octopus Deploy on Windows it isn’t a straight 1:1 match with Octopus Cloud. The cloud platform runs on Kubernetes, Azure SQL, Azure File Storage, and uses Azure VMs (dynamic workers).
Will I get a Highly Available instance, or multiple nodes, if I purchase Enterprise?
One of the advantages of Octopus Cloud is you don’t need to worry about that anymore. The Octopus Cloud Platform is responsible for determining the number of nodes, DTUs, CPU, and RAM allocated to every instance. It will allocate the appropriate resources to your instance to support the number of purchased concurrent tasks.
If you are concerned with uptime, you can find our latest SLO in our documentation.
What if I need more than 160 concurrent tasks?
Please reach out to sales@octopus.com so we can better understand your use case.
Octopus Server
What is Octopus Server?
Octopus Server is a deployment option for Octopus Deploy that allows you to install Octopus Deploy on servers that you manage. Typically this is used to install Octopus Deploy in your own data center, or when you want more control over the security and privacy of your Octopus Deploy installation.
What is the pricing for Octopus Server?
We price per project, with tenants and machines as add-ons.
- Projects are a resource within Octopus Deploy that stores the deployment configuration for an application.
- Tenants are a resource within Octopus Deploy that represents a customer, a physical location, a customer’s physical location, or something else that runs a unique copy of the application with a slightly different configuration.
- Machines are Windows, Linux, or MacOS application hosts registered with Octopus Deploy.
We will no longer charge for Kubernetes clusters, Azure Web Apps, Azure Service Fabric clusters, or ECS clusters.
Edition | Price |
---|---|
Starter | $360 / year (USD) |
Professional | $96 / project / year (USD) |
Enterprise | $144 / project / year (USD) |
Tenants (Add-on) | $72 / tenant / year (USD) |
Machines (Add-on) | $72 / machine / year (USD) |
To get a quote or place an order, visit our pricing page.
If you have a scenario that involves bursting the number of targets for part of the year (e.g., over the holiday season or tax time), or you deploy to a large number of Azure Websites or other PaaS targets, please contact us for pricing more suited to your usage model.
What if I outgrow my license and need to upgrade?
Adding more projects, tenants, and machines to your license is easy. All units will be added to your license at a pro-rata rate. For example, your professional incense expires in six months, and you want to add 10 projects. You’d be charged $480 (pro-rata of $48 * 10 projects).
Adding projects, tenants, or machines; or moving from Professional to Enterprise will not restart the license term.
Is this a perpetual license or a subscription?
Octopus Server edition is licensed annually and includes technical support, bug fixes, enhancements and new features released during the license term. Octopus Deploy is not available on a perpetual basis. Please see below for what happens if your license expires.
How do I renew my license?
You can renew your Octopus Server license using our Upgrade & Renewal Form:
What will my renewal price be?
At renewal time, your renewal price will be our then-current pricing for the applicable product, as shown on our website. Please note that our prices may change from your last renewal.
We will send your nominated technical and billing contact a notification with at least 90 days notice prior to expiry. It's important to keep your technical and billing contact details current. Without accurate technical and billing contact details you run the risk of your license expiring. For more information on what happens when the license expires, please see below. if you have any questions, or no one has reached out, please reach out to us at sales@octopus.com.
What happens if my license expires?
Octopus will show alerts to your Octopus Administrator users as the end of the license term approaches. Upon expiry of the license term, these alerts will be visible to all other users of your Octopus Deploy installation, in case the expiry alert wasn't seen by your Octopus Administrators.
After the expiry date, you will no longer be able to use Octopus Deploy to deploy releases of your software. You will, however, still be able to log in and use most other features of the software.
We will also send emails to your nominated billing and technical contacts around the renewal date. If for some reason you are unable to renew temporarily, we are happy to work with you and can grant an extension. Please contact us if this is the case.
How many instances of Octopus Server can I run?
The number of instances depends on the license edition you purchase.
Edition | Number of Instances |
---|---|
Professional | 3 |
Enterprise | Unlimited |
Legacy licenses (Server, HA, Data Center, Standard) | 3 |
These instances may be installed on the same virtual server or different servers. This allows you to, for example, set up a production Octopus Server, another isolated Octopus Server for a different part of your organization, plus one for testing.
An instance is the database used by the Octopus Deploy application. When an Octopus instance is created, a unique identifier is inserted into the database.
Your license key specifies the number of units you can have registered across ALL instances. For example, if you are licensed for 50 projects, you may have 25 projects on one instance, with 15 on another, and 10 on another.
Starter edition
What are the differences between the Starter and Community editions?
The Starter edition is replacing the community edition of Octopus Deploy. It is designed to provide you with everything you need to get started. Highlighted differences are:
Community | Starter | |
---|---|---|
Price | $120 / year (USD) | $360 / year (USD) |
Project limit | 5 | 10 |
Tenant limit | No practical limit | 10 |
Machine limit | 5 (targets) | 10 |
User limit | 5 | No practical limit |
RBAC controls | No | Yes |
SSO | No | Yes |
Task cap | 5 | 5 |
HA nodes (Octopus Server) | 1 | 1 |
Insights | Project only | Project only |
ITSM integration | No | No |
Support | Community | Community |
Will you offer a month-to-month Starter edition for Octopus Cloud?
No. We have no plans to offer a month-to-month Starter edition for Octopus Cloud.
Do I have to pay for the Starter edition if I self-host Octopus Deploy?
Yes.
What if I need an instance of Octopus Deploy for educational purposes, such as learning how to use Octopus Deploy for my company?
Please contact sales@octopus.com to discuss options.
What if I need more than 10 projects, 10 tenants, and 10 machines?
You will be required to move to the Professional tier.
Counting units
How will you count projects, tenants, and machines?
We aggregate all active Projects and Machines across all your Octopus instances. Tenants have no concept of active/disabled. As such, we aggregate all tenants across all your Octopus instances.
Will you count disabled projects, tenants, and machines?
We do not count disabled projects and machines. They must be disabled within Octopus Deploy to be excluded from the count. If we notice egregious abuses of that functionality, we reserve the right to address it on a case-by-case basis.
Please note: While projects and machines can be disabled, tenants have no such functionality.
Will you de-duplicate projects across spaces?
No. The name is the only way to identify a project across spaces uniquely. The name is a string and is user-configurable. As such, we cannot reliably de-duplicate projects across spaces. Frankly, if the same project exists in multiple spaces, we consider it an anti-pattern.
Will you de-duplicate tenants across spaces?
No. This is for the same reason as projects. The name is the only way to identify a tenant across spaces uniquely.
Will you de-duplicate machines across spaces?
When using tentacles, yes. We will use the tentacle thumbprint, port, and hostname to de-duplicate the tentacle across spaces.
Will you de-duplicate projects, tenants, or machines across unique instances?
No.
An instance is considered unique based on the database to which the Octopus Deploy application is connected. Each Octopus Deploy instance has a unique thumbprint and installation identifier stored in the database. Those items are created on installation. Restoring a database backup is not considered an installation; those items are reused from the backup.
This scenario occurs when two or more unique installs of Octopus Deploy have similar projects, tenants, and machines.
If we cannot accurately de-duplicate across spaces for projects and tenants, it is impossible to do it across instances.
For tentacles, that would require the Octopus Deploy instance to “phone home” a list of all the tentacles. Our customers have told us that is undesirable. Having multiple unique instances use the same tentacle is an edge case. The tentacles would have to be configured in listening mode, and both instances would have to use the same thumbprint and port.
Ordering & procurement
How can I get a quote?
For new Octopus Server Starter licenses, click Buy Now on our pricing page. In the Payment Method section, choose Quote. This will generate a no-obligation quote for you. The person you enter as the Billing contact will receive a PDF copy of the quote via email.
For new Professional and Enterprise licenses, please reach out to sales@octopus.com, and we will send you a quote.
To renew or upgrade your Octopus Server license, go to our Upgrade & Renewal Form, and enter the serial number from your license key or a previous order number. You will then be able to select your upgrade or renewal choice and have the option to generate a quote.
For Octopus Cloud, contact us for a quote.
How do I place an order?
For new Octopus Server Starter licenses, click Buy Now on our pricing page. You can pay immediately or choose the Purchase Order option to have us generate an invoice with payment instructions.
For new Professional and Enterprise licenses, you will receive a quote from us with the required payment instructions.
To renew or upgrade your Octopus Server license, go to our Upgrade & Renewal Form, and enter the serial number from your license key or a previous order number. You will then be able to select your upgrade or renewal choice and have the option to place an order.
Contact us for a quote for Octopus Cloud on an annual billing cycle. We'll send an invoice with payment instructions if you accept the quote.
Can I include my purchase order number on the invoice?
When you create a quote or order, there is a field to enter a Customer Reference. This value will appear on the quote or invoice PDF that we generate. You can use this field to put your own internal purchase order number.
Will Octopus fill in my vendor/security form or register in our procurement portal?
If you are purchasing an Enterprise License, we will fill out your vendor/security forms and register in your procurement portal. Please reach out to sales@octopus.com for help.
If you are purchasing a Professional license, we will NOT fill in custom vendor forms, security forms, supplier risk questionnaires or assessments, or register or submit invoices via procurement portals such as Coupa. These tasks take considerable time and effort to complete, which takes time away from being able to provide exceptional customer service to all customers equally.
You should be able to gather all the information you need for your form from the following links:
- Our Vendor Profile (PDF) has all the information that most vendor forms ask for
- Our Legal page contains links to various policies, tax residency information, and various ID numbers
- Our Security page has a lot of information on security and trust at Octopus
If you cannot purchase our software without us completing these forms for you, you may be able to purchase through a reseller instead.
Payments & refunds
What are your payment terms?
For Enterprise Licenses, our payment terms are Net 30 day.
For Professional Licenses, our payment terms are strictly Net 0 day. If you have placed your order but find that you are waiting for your organization to make the payment, you can contact us and request a fully-functional temporary license key.
What payment methods do you support?
For Enterprise Licenses, we accept credit cards (VISA, Mastercard, and American Express), and these give you immediate access to your license key. We also accept wire transfer or check. Payments via wire transfer can take a few days, and checks can take weeks to arrive in Australia. When these payments arrive, they need to be processed manually and matched to an order. If we cannot easily match your payment to an order, this can further delay the processing time. Please ensure you include the order ID in your payment to allow faster matching.
For Professional Licenses, we accept credit cards (VISA, Mastercard, and American Express), along with wire transfers.
What is your refund policy?
We don't want your payment unless you are completely happy and offer a cooling-off period of 30 days.
If, within 30 days of your initial order, you contact us and request a refund for any reason (or no reason), we will refund your order in full.
For more details see the Octopus Customer Agreement.
Taxes and withholding
Octopus Deploy is an Australian company and a resident of Australia for tax purposes.
We charge Australian GST on sales to customers in Australia.
European customers can supply a VAT number which we will include on the invoices we issue you. We do not collect VAT on our sales.
Customers in the United States may have sales tax applied at the checkout, based on the specified billing address. You may also need a copy of our W8-BEN-E form (use this in place of a W9), or one of our certificates of tax residency - you can find these on our legal page .
Licensing & legal
Can I see the license agreement?
Yes, your license to use Octopus Server, and your terms of service for Octopus Cloud, are both governed by the Octopus Customer Agreement.
Can our legal department make some changes to your license agreement?
For Enterprise Licenses that meet certain volume and other criteria, we may consider amendment requests, but we reserve the right to reject any proposed changes.
For Professional Licenses, we do not accept changes to our customer agreement on a per-customer basis.
See the Customer Agreement page for more details.
Can licenses be reassigned?
Yes, provided that you assign only to an affiliate or your successor following a merger or divestment, and you are not in unremedied breach at the time of the assignment. You can reassign your license or Octopus Cloud subscription by changing the technical and billing contact details any time. You can do this via your Octopus Account.
Further details are in the Customer Agreement.
Resellers
Can I buy through a reseller?
Yes. If your company prefers to purchase through a distributor or reseller, we are happy to work with them. Resellers can contact us for information on joining our reseller program.
If you need to purchase through a reseller but don't have a relationship with one, contact us for suggestions.
How do resellers place orders?
Resellers, please see our reseller page for instructions on how to place orders.
What if a reseller is exempt from tax?
If a reseller has a valid tax exemption for a jurisdiction in which we collect tax, then we may be able to remove the tax from applicable purchases. We will require a copy of the tax exemption certificate before we are able to make any exemptions.