octopus deploy что это
Complex deployments made easy
Octopus Deploy is a single place for your team to manage releases, automate deployments, and automate the runbooks that keep your software operating.
Free 30 day trial. No credit card required.
Creating happy deployments at more than 25,000 companies, including:
A unified DevOps Automation platform for your team
DevOps is about bringing teams together to collaborate. But when it comes to automation, the tooling is fragmented. Most CI/CD tools do a basic job of deployments and are designed for developers. Operations teams, meanwhile, need to use completely different tooling to automate the runbooks that keep the software running.
There’s no reuse and no single source of truth. The tooling reinforces the silos and discourages sharing and collaboration, and forces a duplication of effort to connect to the infrastructure in multiple tools.
We approach it differently.
Octopus Deploy is the first platform to enable your developers, release managers, and operations folks to bring all automation into a single place.
By reusing configuration variables, environment definition, API keys, connection strings, permissions, service principals, and automation logic, teams work together from a single platform. Silos break down, collaboration begins, and your team can ship – and operate – software with greater confidence.
Release management
Octopus Deploy makes release management easy, auditable, and compliant. Simplified release management makes your life easy with consistent release promotion across environments, manual approvals, and release notes. The dashboard gives your team a heads-up display of what’s deployed where.
Deployment automation
With over 400 included step templates, Octopus simplifies the most complicated deployments wherever you deploy your software. The deployment process in Octopus uses variables, meaning you use the same process in dev, test, and production environments, whether you’re deploying to modern or legacy applications and infrastructure. Octopus supports advanced deployment patterns, including rolling, blue/green, canary, and multi-tenancy if you’re deploying to multiple end customers.
Operations runbooks
Runbook automation gives you control over your infrastructure and applications. Automate operations tasks like routine maintenance and emergency incident recovery. Octopus runbooks include all the necessary permissions for the infrastructure they run on, so anybody on the team can be granted permission to execute the runbook, and because they’re managed in Octopus, there’s a complete audit trail.
Build a tutorial for your stack
Octopus integrates with your existing source control system and build server, and takes care of all of the DevOps automation that happens after a build completes. Use the options below to build a customized tutorial for your CI/CD stack.
Парсер Хабра
Вас тоже достает, когда автор переносит топик в черновик?
понедельник, 13 июля 2015 г.
[Из песочницы] Введение в Octopus Deploy
Введение
А вот и следующий момент, пора отдавать на тестирование заказчику (User Acceptance Test или Staging).
Ну и после зеленого сигнала от заказчика наступает главный по значимости момент, публикация приложение в production. Причем часто заказчик ожидает, что если что-то пойдет не так в production’e, то ваша команда сможет откатить все изменения щелчком пальца, максимум в течении получаса.
Устройство Octopus
Дотягивается Octopus до серверов публикации с помощью щупалец. Tentacle Agent представляет собой легковесную программу, которая запускается в виде Windows Service’a, забирает Nuget пакет с Octopus Server’a и разворачивает приложение. Есть режим общения pull и push, т.е. Tentacle периодически опрашивает сервер на новые пакеты, или Tentacle ждет сигнала от сервера и сервер push’ит. Octopus Server также запускается в виде Windows сервиса, и общается со своими щупальцами через защищенной HTTPS (TLS и X.509 сертификат). Для большей безопасности при установке Octopus необходимо настроить каким Tentacle агентам доверяет сервер и наоборот.
В текущей версии 2.0 для хранения всех данных используется встроенная база данных RavenDB, но по ряду причин в новой версии 3.0 перейдут на MS SQL Server. Кстати новая версия выйдет в ближайшие месяцы, хотя согласно политике компании у вас будет возможность обновиться до новой версии в ближайший год после покупки, после года вас не бросает на полный произвол и дают скачать критические обновления бесплатно, но уже, конечно, без новых фитч.
Среда, роли и приложения
Остановимся немного подробнее на структуре, которая может получится.
У нас три environment’a (Test, Staging и Production). Шесть серверов, на которые установлены Tentacles и куда будет устанавливаться приложение. И две роли: octo-web и octo-app. Создание ролей очень удобно, например можно указать: установить сайт только на машины, у которых есть роль octo-web, а приложение только на машины с ролью octo-app. Заметьте, что для тестирования отведен один сервер, на котором будет находится и сайт, и приложение. А на production целых три сервера, один под приложение, и два под сайт. Это очень реалистичный сценарий с развертыванием двух копий сайта (без базы данных) и последующим запуском балансировщика.
Приложение OctoFX, с ролью octo-app, будет выглядеть следующим образом:
Жизненный цикл приложения будет заключаться в прохождении Test среды, далее Staging, а затем запуска на Production.
Настройки очень широкие и можно выбирать доступные среды для разных приложений.
Шаги и переменные
Переменные
Переменные вынесены в отдельный блок и позволяют модифицировать значение в зависимости от среды, роли или имени сервера.
Рассмотрим пример с Хабром, если нам необходимы разные значения для адреса нашего сайта и мы хотим поменять переменную в web config’e, то достаточно ее добавить в блок
Тогда config файл
может быть автоматически трансформирован в Dev среде в
Удобнее всего хранить в переменных пароли, так как Octopus их шифрует и не позволяет скопировать или увидеть в дальнейшем в панели Variables. Существует возможность создать пользователей и ограничить доступ в средам. Таким образом с помощью блока переменных и ограничения доступа пользователям можно сделать так, что только администратор или Release менеджер может развернуть приложение в Production и соответсвенно увидеть пароли в конечном варианте config файла.
Powerful DevOps automation
Octopus Deploy makes it easy to automate your deployments and operations runbooks from a single place, helping you ship code faster, improve reliability, and break down dev & ops silos.
Complete your CI/CD pipeline
Deployment is not the last step of your CI process; it’s the first step of your application’s lifecycle in production. Octopus integrates with your favorite CI server and adds powerful deployment & ops automation capabilities.
Incredibly easy to get going
1. Define your deployment process once
Your deployment process tells Octopus how your application will be deployed. It’s made of high-level steps that run against groups of deployment targets (virtual machines, Kubernetes namespaces, and more).
Octopus supports advanced deployment patterns, including rolling, blue-green, canary, and multi-tenancy to support your deployment strategy. This makes it possible to gradually roll out releases, test new features with a subset of your user base, and deploy customer-specific versions of your apps.
2. Configure environments & variables
Variables in Octopus let you use the same deployment process across your environments without hardcoding configuration settings into your process. Octopus can store passwords and other secrets so they can be used in your processes but remain secure and uncompromised.
Variable values can be scoped to one or many environments, or even to individual targets, steps in your process, or tenants in a multi-tenant application. Variables support filters so the output is exactly what’s needed.
Variables can be shared between projects, deployment processes, and the operations runbooks that keep your software running, giving your team a single source of truth.
3. Deploy and promote with confidence
- Enable self-service dev & test deployments, but limit access to production deployments Guarantee that a release has been tested in a test environment before it’s promoted to production Prevent a release from being promoted if a bug is discovered Require approvals before or after a deployment Wait for a human to perform a task that needs to be done manually
Octopus brings the deployment logs into a single central view, even as deployment steps run in parallel, so you’ll always know what’s happening.
среда, 20 ноября 2013 г.
Установка Octopus Deploy
Установка сервера Octopus Deploy
DISM.exe /Online /Enable-Feature /FeatureName:IIS-WebServerRole /FeatureName:IIS-WebServer /FeatureName:IIS-CommonHttpFeatures /FeatureName:IIS-StaticContent /FeatureName:IIS-DefaultDocument /FeatureName:IIS-HttpErrors /FeatureName:IIS-ASPNET /FeatureName:IIS-ASPNET45 /FeatureName:IIS-NetFxExtensibility /FeatureName:IIS-NetFxExtensibility45 /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-ManagementConsole /ALL
Выполняем эту команду через Command Promt (win-R, и выполняем cmd).
Deployment Image Servicing and Management tool
Version: 6.2.9200.16384
Image Version: 6.2.9200.16384
Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.
Потом жмем «Check Again» и попадаем в Octopus Administration Tools, здесь задаем наши настройки. Наиболее важны вкладки Server И Web Portal, где нам нужно запустить Octopus Server сервис и Web UI. Если используем порт 80, то необходимо остановить Default Web Site.
Так же важно не забыть открыть порт в Firewall
netsh advfirewall firewall add rule name=Octopus dir=in action=allow protocol=TCP localport=80
Теперь может открыть Octopus UI, где нам предложат создать админский аккаунт. После его создания мы должны увидеть следующее.
В Octopus создаем новые окружением, например Dev и проект, например Web Site.
Подготовка нового окружения.
DISM.exe /Online /Enable-Feature /FeatureName:IIS-WebServerRole /FeatureName:IIS-WebServer /FeatureName:IIS-CommonHttpFeatures /FeatureName:IIS-StaticContent /FeatureName:IIS-DefaultDocument /FeatureName:IIS-HttpErrors /FeatureName:IIS-ASPNET /FeatureName:IIS-ASPNET45 /FeatureName:IIS-NetFxExtensibility /FeatureName:IIS-NetFxExtensibility45 /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-ManagementConsole /ALL
или powershell скриптом
Install-WindowsFeature web-server, Web-Net-Ext45, Web-Asp-Net45
Порт открываем командой
netsh advfirewall firewall add rule name=WebSite dir=in action=allow protocol=TCP localport=80
Getting started
This section provides a conceptual overview of Octopus Deploy along with step-by-step instructions to help you master the fundamentals of Octopus Deploy whether you are using the self-hosted Octopus Server or Octopus Cloud.
Core Concepts
Octopus Deploy is a deployment tool. It takes the packages and artifacts generated by your build server and deploys them to various targets, be it Windows, Linux, Azure, AWS, or Kubernetes, in a safe and consistent process.
Octopus Server
You can install a self-hosted instance of the Octopus Server or use the hosted version Octopus Cloud. You can get started with either Octopus Server or Octopus Cloud for free.
Consistent deployments and releases
As an Octopus user, you define the process for deploying your applications. You specify the environments the applications are deployed to and who on your team can deploy to which environments. For instance, you might want developers to deploy to dev environments but not testing or production, and members of QA to deploy to test environments but not to production. Taking this approach means that even if different team members trigger deployments, the deployment process remains consistent. After releases have been created, they can be deployed as many times as you need.
Infrastructure
Octopus Deploy organizes your deployment targets (the machines and services you deploy software to) into groups called environments. Typical environments are Dev, Test, and Production. With Octopus Deploy, your deployment targets can be Windows servers, Linux servers, Microsoft Azure, AWS, Kubernetes Clusters, Cloud Regions, or even an offline package drop. Organizing your infrastructure into environments lets you define your deployment processes (no matter how many steps, environments, or deployment targets are involved) and have Octopus deploy the right versions of your software, with the right configuration, to the right environments at the right time.
Packaging applications
Before you can deploy software with Octopus Deploy, you need to bundle all the files required for the software to run into a supported package. The package must be versioned and stored in a repository. Octopus Deploy includes a built-in repository. We recommend configuring your existing toolchain to push packages automatically to the built-in repository or an external feed; however, you can push packages manually to the repository if you choose to.
Runbook automation
A deployment is only one phase in the life of an application. There are typically many other tasks that are performed to keep an application operating. A large part of DevOps is running operations separate from deploying applications, and this is where runbooks helps.
Runbooks are used to automate routine maintenance and emergency operations tasks like infrastructure provisioning, database management, and website failover and restoration.
Glossary
As you start using Octopus Deploy, you will learn a lot of new terms. You can view a list of common terms on the glossary page.
Next steps
You can get started with either Octopus Server or Octopus Cloud for free. After setting up your instance, you can use our guides to help you deploy your software, run your first runbook, or integrate Octopus Deploy into your CI/CD pipeline.
Further Reading
This guide covered the basics of Octopus Deploy. There are still many more concepts to learn.
Was this page helpful?
🙂 Yes thanks! 😞 Not really
Is there anything we can do to improve it?
We’re sorry this page did not help you!
We review your answers every month to find ways to improve these docs. How can we improve it?
Thanks so much for taking the time to give us feedback!