Presentation on Keystone Deepdive and Folsom

http://adam.younglogic.com/presentations/KeystoneFolsom/

There is not a lot of text: I tend to keep my presentations as a visual mnemonic for the topics being discussed.

Let me know if you want to steal any of the images I created. I have them all as SVG, and the UML diagrams came out of ArgoUML.

Most of the Creative Commons images were found on DeviantArt.com, attributions at the end.

Latency

(To the tune of Yesterday, With apologies to all four Beatles and most sys admins)

Latency
It’s the signature of HPC
that is why it’s running endlessly
your process gates on Latency

This one, well
is embarrassingly parallel
that is why its running fast as hell
the render farm works just as well

Why’s it running slow
don’t you know the bottleneck
demands for some commands
will dictate your architect ect ecture

Here’s the scoop
This one’s nothing more than data soup
that you’re running through an endless loop
You probably should try Hadoop

(This might be the only one I tag as both Lyrics and Networking)

Installing RPM Build Dependencies

If you ever want to build and RPM, you need to make sure that the things it requires are installed. These are listed in the SPEC file on lines that begin with BuildRequires.  Installing these by hand is time consuming enough that it should be automated.  Here’s a first hack in Python.

 

#!/usr/bin/python
import sys
import re

build_re = re.compile('BuildRequires:.*')
compare_re = re.compile('.*=.*')


def main():
    if (len(sys.argv) > 1):
        spec = open(sys.argv[1])
        for line in spec:
            if build_re.match(line):
                for token in line.rsplit(" "):
                    if build_re.match(token):
                        continue
                    if compare_re.match(token):
                        break
                    token = token.rstrip(" ,\n\r")
                    if len(token) > 0:
                        print token


if __name__ == "__main__":
    main()

To use it, save in a file called buildreqs.py and run:

sudo yum install `./buidreqs.py ~/rpmbuild/SPECS/krb5.spec`

Speeding up SQLite based unit tests

 

If you write database driven applications, you probably have used SQLite at some point. Since it is a simple embedded database, it is a logical choice to use for unit tests that go to the database. However, SQLite performance on Ext4 (default Fedora File system) is lack-luster.
A cheap way to speed things up is to use a ramdisk as the backing store for the database.
Continue reading

Signed Authentication and Authorization

Openstack Keystone currently operates on-line validation for Tokens.  Once a token is issued out,  each of the systems presented with the token has to check the validity of the token with the Keystone server.  This makes Keystone the highest traffic service in an Openstack deployment.  Using Cryptographic Message Syntax (CMS) we can generated a token that can be verified using public key cryptography instead of making a network call.  Here’s a proof-of-concept example using the command line tools.

Continue reading