Your current filters are…
by Ken Sipe
How does your team handle release weekend? Is it the whole weekend? Is everyone on call? Is there a way to reverse the decision mid-stream? How long would it take your company or team to push a single line code fix from dev into production? Way too many organizations handle the production release through manual and tedious labor following a lengthy to-do check list. Way too many organizations have no way to reproduce their production environment.
What if you could “test” your production release before production? One of the answers to the last mile of continuous delivery is GLU. GLU is an open source project for deployment automation. It was created by one of the co-founders of LinkedIn (Yan Pujante) for automation of LinkedIn’s deployment automation.
This session is a basic tutorial, walking through the configuration of a deployment out to multiple services. We will work through serial and parallel deployments, ensuring consistency and detecting problems. This session should be a sufficient introduction to walking through: 1) installation, 2) configuration, 3) multi-server deployments 4) manual updates and 5) automated updates.
by Wesley Beary
Cloud computing scared the crap out of me – the quirks and nightmares of provisioning cloud computing, storage, … on AWS, Terremark, Rackspace, … – I mean, where do you even start?
Since I couldn’t find a good answer, I undertook the (probably insane) task of creating one. fog gives you a place to start by creating abstractions that work across many different providers, greatly reducing the barrier to entry (and the cost of switching later). The abstractions are built on top of solid wrappers for each api. So if the high level stuff doesn’t cut it you can dig in and get the job done. On top of that, mocks are available to simulate what clouds will do for development and testing (saving you time and money).
You’ll get a whirlwind tour of basic through advanced as we create the building blocks of a highly distributed (multi-cloud) system with some simple Ruby scripts that work nearly verbatim from provider to provider. Get your feet wet working with cloud resources or just make it easier on yourself as your usage gets more complex, either way fog makes it easy to get what you need from the cloud.
The Go programming language is fast like C and flexible like Python. Skynet takes advantage of Go’s powerful features to create a highly scalable mesh of service processes. Skynet services self-announce and self-configure when they start so that they’re immediately available to the rest of the mesh. Creating a Skynet service couldn’t be simpler: just use the built-in generator, insert your business logic and compile.
This presentation will demonstrate creating a service in Skynet, then deploying it to several servers. We will demonstrate Skynet’s self-healing capabilities and built-in monitoring, and discuss the features of Go that make Skynet possible. With Skynet your company worry less about uptime and spend more time on your customers.
by Cyprien Noel
Imagine developing an application using the equivalent of source control for your data. Some STM (MVCC) enable this model for threads: a thread can take a snapshot of memory, run totally in isolation, and commit atomically.
Distributed STM are a recent development which enables this model for threads in different processes. In the same way a developer can check out a project on his local machine, an app. can replicate an object graph from a cloud, have local threads update it, and commit changes back to the cloud. The cloud can then broadcast changes to other clients’ replicas.
Developers can use this technology for scenarios like real-time collaboration, pub/sub, market quotes broadcasting, MMO game-state synchronization between players, or simply storing data in a cloud. The amount of code required on both client and server is an order of magnitude lower than models like REST, and performance can be much higher.
Many implementations are emerging, like the Fénix framework which is successfully running a large university campus portal, the JCell project, D²STM, Multiverse, or the EU-funded CloudTM initiative.
Our own implementation, xstm.org, started in the financial software industry for high performance price transfer and trading. It is open source (Apache 2), and has been integrated in several commercial projects over the past two years, each time adding new functionalities and tools.
We now have SDKs for Java, Android, GWT and .NET which can interoperate with each other for multi-platform apps, a high-performance store to make replicated objects persistent either locally (with offline sync to the server) or in a NoSQL store. Data can be exchanged over a socket, http (polling) or comet, and WebSocket.
We offer tools to deploy and debug a server in Amazon EC2, create secure connections and handle data versioning. We are also developing a cloud back-end, objectfabric.com, which developers will be able to use as a highly available auto-scaling service.
by Jeff Lindsay
Concurrency is hard! At least, it seems hard. You might feel that unless you take up Erlang, you’ll never be able to express distributed systems in an easy way. I’ll let you in on a secret: the magic of Erlang, and Go, and any other language with good concurrency primitives can also be found in a library called ZeroMQ, which can be used in any language. It’s especially powerful and expressive when combined with an evented programming environment like Node.js, EventMachine, or Twisted.
I’ll let you in on another secret: there is a better way to do evented async programming than having callbacks all over the place, making your program read backwards and making your mind melt. By combining the reactor pattern of async frameworks with green threads, you get something that, so far, only exists in Python as two libraries called Gevent and Eventlet. These give you the advantages of I/O based evented programming, but without the ugly callbacks. Plus, most Python libraries are likely to work, unlike the completely incompatible and reimplemented world of Twisted or EventMachine in Ruby. Your Python code ends up feeling as powerful as Go code.
By combining these two technologies, you have a powerful toolkit for easily throwing together distributed systems in a “normal” language. Although we’ll focus on Gevent and ZeroMQ in Python, the lessons of this talk apply to any language. We’ll dive in and further explain these two technologies and then explore them together in action.
by Jake Luciani
This talk will cover the open source Brisk project: a tight integration of the Hadoop stack with Cassandra.
We will look at the operational and performance benefits of running Hadoop in a peer-to-peer masterless architecture. We will cover design and tradeoffs of the system and look at use cases people are solving with Brisk. Finally we will run some live demos!
by Lance Ball
TorqueBox is a Ruby application server built on top of JBoss AS7 that extends the footprint of Ruby applications to include built-in support for services such as messaging, scheduling, and daemons. Infinispan is an extremely scalable, highly available data grid platform, designed to make the most of modern multi-processor/multi-core architectures while at the same time providing distributed cache capabilities. DataMapper is an Object Relational Mapper for Ruby. TorqueBox brings the two together to provide a fast, scalable, distributed NoSQL data store for your Ruby applications. In this presentation, I will take a brief look at each of these technologies and combine them with Sinatra to create a super awesome beer catalogue.
Now, we know you can do that for scripting languages, but what do we do about Java? With the proper context, it is possible to emulate many of those same capabilities, by applying a simple set of code transformations at runtime. In this session you’ll learn about meta-programming and how it can apply to traditional Java. You’ll learn about the techniques needed to transform classes at runtime, adding new behaviors and addressing cross-cutting concerns. The presentation will discuss a new framework for this specific purpose, but also draw examples from the Apache Tapestry web framework, which itself is rich in meta-programming constructs.
18th–20th September 2011