Comparing alembic with sqlalchemy migrate

  • Post author:
  • Post category:OpenStack

In the last few days there has been a discussion on the openstack-dev mailing list about converting nova to alembic. Nova currently uses sqlalchemy migrate for its schema migrations. I would consider myself a sceptic of this change, but I want to be a well educated sceptic so I thought I should take a look at an existing alembic user, in this case neutron. There is also at least one session on database changes at the Icehouse summit this coming week, and I wanted to feel prepared for those conversations. I should start off by saying that I'm not particularly opposed to alembic. We definitely have problems with migrate, but I am not sure that these problems are addressed by alembic in the way that we'd hope. I think we need to dig deeper into the issues we face with migrate to understand if alembic is a good choice. sqlalchemy migrate There are two problems with migrate that I see us suffering from at the moment. The first is that migrate is no longer maintained by upstream. I can see why this is bad, although there are other nova dependencies that the OpenStack team maintains internally. For example, the various…

Continue ReadingComparing alembic with sqlalchemy migrate

On Continuous Integration testing for Nova DB

  • Post author:
  • Post category:OpenStack

To quote Homer Simpson: "All my life I've had one dream, to achieve my many goals.". One of my more recent goals is a desire to have real continuous integration testing for database migrations in Nova. You see, at the moment, database migrations can easily make upgrades painful for deployers, normally by taking a very long time to run. This is partially because we test on trivial datasets on our laptops, but it is also because it is hard to predict the scale of the various dimensions in the database -- for example: perhaps one deployment has lots of instances; whilst another might have a smaller number of instances but a very large number of IP addresses. The team I work with at Rackspace Australia has therefore been cooking up a scheme to try and fix this. For example, Josh Hesketh has been working on what we call Turbo Hipster, which he has blogged about. We've started off with a prototype to prove we can get meaningful testing results, which is running now. Since we finished the prototype we've been working on a real implementation, which is known as Turbo Hipster. I know it's an odd name, but we couldn't…

Continue ReadingOn Continuous Integration testing for Nova DB

Starship Troopers

  • Post author:
  • Post category:Book

I saw the movie a few years ago, and so I read this book on a whim. Its very different to the movie. The book is interesting, although it does have a tendency to slide into rants about the moral responsibilities which come with having an electoral franchise. The book is also very pro military in its stance, although that's fair enough (an author without an opinion would be a boring author). Overall, I thought this book was an enjoyable read. Update 2013: I last read this book almost exactly four years ago. Its still a good read, and I didn’t find it as ranty as last time. I do think this is a better story than the movie, as it has more depth. Overall a good read, if not a particularly deep one.

Continue ReadingStarship Troopers

Call for presentations for the linux.conf.au 2014 OpenStack mini-conference

  • Post author:
  • Post category:Conference

I've just emailed this out to the relevant lists, but I figured it can't hurt to post it here as well... linux.conf.au will be hosting the second OpenStack mini-conference to run in Australia. The first one was well attended, and this mini-conference will be the first OpenStack conference to be held on Australia's west coast. The mini-conference is a day long event focusing on OpenStack development and operations, and is available to attendees of linux.conf.au. The mini-conference is therefore calling for proposals for content. Speakers at the mini-conference must be registered for linux.conf.au 2014 as delegates, or discuss their needs with the mini-conference organizers if that isn't possible. Some examples of talks we're interested in are: talks from OpenStack developers about what features they are working on for IceHouse; talks from deployers of OpenStack about their experiences and how others can learn from them; talks covering the functionality of OpenStack and how it can be used in new and interesting ways. Some important details: linux.conf.au runs from 6 to 10 January 2014 in Perth, Australia at the University of Western Australia the mini-conference will be on Tuesday the 7th of January proposals are due to the mini-conference organizer no later…

Continue ReadingCall for presentations for the linux.conf.au 2014 OpenStack mini-conference

Exploring a single database migration

  • Post author:
  • Post category:OpenStack

Yesterday I was having some troubles with a database migration download step, and a Joshua Hesketh suggested I step through the migrations one at a time and see what they were doing to my sqlite test database. That's a great idea, but it wasn't immediately obvious to me how to do it. Now that I've figured out the steps required, I thought I'd document them here. First off we need a test environment. I'm hacking on nova at the moment, and tend to build throw away test environments in the cloud because its cheap and easy. So, I created a new Ubuntu 12.04 server instance in Rackspace's Sydney data center, and then configured it like this: $ sudo apt-get update $ sudo apt-get install -y git python-pip git-review libxml2-dev libxml2-utils libxslt-dev libmysqlclient-dev pep8 postgresql-server-dev-9.1 python2.7-dev python-coverage python-netaddr python-mysqldb python-git virtualenvwrapper python-numpy virtualenvwrapper sqlite3 $ source /etc/bash_completion.d/virtualenvwrapper $ mkvirtualenv migrate_204 $ toggleglobalsitepackages Simple! I should note here that we probably don't need the virtualenv because this machine is disposable, but its still a good habit to be in. Now I need to fetch the code I am testing. In this case its from my personal fork of nova, and the git…

Continue ReadingExploring a single database migration

Nova database continuous integration

  • Post author:
  • Post category:OpenStack

I've had some opportunity recently to spend a little quality time off line, and I spent some of that time working on a side project I've wanted to do for a while -- continuous integration testing of nova database migrations. Now, the code isn't perfect at the moment, but I think its an interesting direction to take and I will keep pursuing it. One of the problems nova developers have is that we don't have a good way of determining whether a database migration will be painful for deployers. We can eyeball code reviews, but whether code looks reasonable or not, its still hard to predict how it will perform on real data. Continuous integration is the obvious solution -- if we could test patch sets on real databases as part of the code review process, then reviewers would have more data about whether to approve a patch set or not. So I did that. At the moment the CI implementation I've built isn't posting to code reviews, but that's because I want to be confident that the information it gathers is accurate before wasting other reviewers' time. You can see results at openstack.stillhq.com/ci. For now, I am keeping an…

Continue ReadingNova database continuous integration

We all know that the LCA2014 CFP is open, right?

I just want to make sure that everyone knows that the LCA2014 call for proposals is open. There are two calls this time around -- a call for proposals and a call for miniconfs. The call for proposals closes on 6 July, so you don't have heaps of time left to submit something. So, if you're interested in speaking at linux.conf.au 2014, in Perth between 6 and 10 January 2014 you should hit up those CFPs now!

Continue ReadingWe all know that the LCA2014 CFP is open, right?

Merged in Havana: fixed ip listing for single hosts

  • Post author:
  • Post category:OpenStack

Nova has supported listing the fixed ips for a single host for a while. Well, except for that time we broke it by removing the database call it used and not noticing. My change to fix that situation has just landed, so this should now work again. To list the fixed ips used on a host, do something like: nova-manage fixed list hostname I will propose a backport to grizzly for this now.

Continue ReadingMerged in Havana: fixed ip listing for single hosts

Michael’s surprisingly unreliable predictions for the Havana Nova release

  • Post author:
  • Post category:OpenStack

I should start out by saying that because OpenStack is an open source project, it is hard to know exactly what will land in Havana -- the developers are volunteers, and sometimes things get in the way of them doing the work they intended. However, these are the notes I wrote up on the high points of the summit for me -- I didn't see all the same sessions as other nova developers, so hopefully others will pitch in with their notes as well. Scheduler The scheduler seems to be a point of planned work for a lot of people in this release, with talk about having more scheduling code in the common library, and of adding new filter types. There is definite interest in being able to schedule by methods we don't currently support -- things like rack or PDU diversity, or trying to collocate a tenants machines together. HP is also interested in being able to sell dedicated machines to tenants -- in other words, they would guarantee that only one tenants instances appeared on a machine in return for a fee. At the moment this requires setting up a host aggregate for the tenant. Feeding additional data…

Continue ReadingMichael’s surprisingly unreliable predictions for the Havana Nova release

Getting started with OpenStack development

  • Post author:
  • Post category:OpenStack

I just gave my presentation at the Havana Conference about how to get started with OpenStack development. A few people asked for my slide deck, so I am posting it here. The talk was taped, and I am sure some more formal release will happen in the future, but I wanted to get this out there for the people who had asked for it.

Continue ReadingGetting started with OpenStack development

End of content

No more pages to load