Top Banner
OpenStack upgrades OpenStack Summit 2013 Hong Kong
24

Openstack hk-summit-upgrades-talk

Apr 09, 2017

Download

Engineering

buvanesheee
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Openstack hk-summit-upgrades-talk

OpenStack upgrades

OpenStack Summit 2013Hong Kong

Page 2: Openstack hk-summit-upgrades-talk

Whoarewe• Sébastien Han• Frédéric Lepied• Mehdi Abaakouk

Working for eNovanceCompany blog: http://techs.enovance.com/

Worldwide offices coverageWe design, build and run clouds – anytime -

anywhere

Page 3: Openstack hk-summit-upgrades-talk

ProblemsState of arts

Page 4: Openstack hk-summit-upgrades-talk
Page 5: Openstack hk-summit-upgrades-talk

Key principles• do not log in to the servers• do not manually install packages• do not manually edit configuration files• do not manually restart daemons

Puppet, in combination with GIT is the only one managing the configuration.

Page 6: Openstack hk-summit-upgrades-talk

It’s all about architecture designWe need redundancy to perform upgrades without downtime:

• Active / active setup – Loadbalancer• Active / passive setup• Databases must be replicated : Galera / MongoDB

Page 7: Openstack hk-summit-upgrades-talk

RollbackEven with a good QA system, problems might rise in production thus we need a rollback mechanism.

Page 8: Openstack hk-summit-upgrades-talk

SolutionWell, ours

Page 9: Openstack hk-summit-upgrades-talk

Breaking pointPuppet doesn’t install packages anymore.

It only manages configurations. So operating systems are shipped with all the packages installed.

Page 10: Openstack hk-summit-upgrades-talk

eDeploy solution• Change the abstraction level• Manage updates using sub-trees• 2 kinds of sub-trees : data and programs• Data is not updated only programs

Example :• Data: /var/lib/mysql, /var/log...• Program : /usr, /lib...

Page 11: Openstack hk-summit-upgrades-talk

Consequences• Prepare trees before installation or upgrade• Debootstrap/yum + chroot magic

• Install in 3 phases :• Hardware detection• Hardware configuration• Tree copy

• Update :• Rsync Prog sub-trees.• Script to adapt Data and restore config

Page 12: Openstack hk-summit-upgrades-talk

eDeploy - Overview• Manage system provisioning by software role and

hardware profile• Reproduce provisioning easily• Manage upgrades and rollbacks• Efficient in term of expressiveness and performance

Page 13: Openstack hk-summit-upgrades-talk

QATesting systems

Page 14: Openstack hk-summit-upgrades-talk

PrinciplesEverything is versioned:

• Jenkins jobs• Puppet modules/manifests• eDeploy system images• Ansible recipes

Page 15: Openstack hk-summit-upgrades-talk

This is what we getThe upgrade process becomes:

• Reproducible• Automated• Testable

Page 16: Openstack hk-summit-upgrades-talk

MethodologyUpgrades with (almost) no downtime

Page 17: Openstack hk-summit-upgrades-talk

Things that you must consider• Architecture design• MySQL schemas• Do backups!

Page 18: Openstack hk-summit-upgrades-talk

Configuration management and OrchestrationPuppet is responsible for the configuration of a node:

• Upgrade the configuration files only (no packages upgrades!)• Restart services

Ansible orchestrates the process upgrade.

Page 19: Openstack hk-summit-upgrades-talk

Components dependency

Page 20: Openstack hk-summit-upgrades-talk

Base of the process

Page 21: Openstack hk-summit-upgrades-talk

Database schemaBut what if the database schema needs to be updated?

Just upgrade the database schemas at the end of the orchestration! … Not yet (Icehouse?)

Page 22: Openstack hk-summit-upgrades-talk

But with DB schema upgrade

Page 23: Openstack hk-summit-upgrades-talk

Summary• Follow best practices• Architecture matters• Automation is mandatory• Tests, tests, tests