Skip to content

    Latest Posts

    The Next-Generation Cloud CMDB: Ludwig Code

    Dominic Zippilli

    In a recent report, Ovum described Fugue as "a CMDB for APIs." A configuration management database (CMDB) is a single source of truth for configuration of complex systems. This is a crucial aspect of Fugue, one where running your operations with Fugue offers a lot of value to you. Fugue's CMDB is an effect of our declarative model for configuration, built around our typesafe, compiled Ludwig language. The Fugue CMDB is not a proprietary store with a form-based interface; it is Ludwig code, managed in a VCS of your choice, like git or svn. That code is a declarative configuration of infrastructure (or other API) state. Once it is run as a process in Fugue, that declaration is made real and immutable with machine precision. In this way, a well-managed body of Ludwig compositions and a...

    Read More

    It's an Emulator, Not a Petting Zoo: Emu and Lambda

    Dominic Zippilli

    PLEASE NOTE: As of February 2018, Emulambda is not actively maintained by Fugue. When Python support was announced for AWS Lambda at re:Invent, we were excited to start using it. As you could see with our emoji-powered Votebot for Slack, we put it to quick use, converting our skirmishes about lunch orders into a peaceful, democratic process. Building Lambda functions is great, but there can be some challenges during development. There are many that we may yet cover, but the one we wanted to start with was just writing and debugging the function. As such, we wanted to build a local harness for lambda functions that could shorten the feedback loop on development, be used for attaching debuggers, drive test data through the function, and profile it as well so we'd have an idea what...

    Read More

    Handling AWS Spot Instance Termination Notices

    Dominic Zippilli

    On the very worth-your-time-to-follow official Amazon Web Services blog, Jeff Barr announced today that EC2 spot instances will now get "two-minute warning" termination notices. The long and short of it is that you can now query instance metadata or the DescribeSpotInstanceRequests API to find out if a spot instance has been marked for termination. At that point, you'll have two minutes to react and shut down cleanly. This gives your application time to wrap up any work in progress. In the post, Jeff describes the mechanism in more detail, but it is basically an instance metadata endpoint that returns a 404 HTTP status code until the instance is marked for termination. AWS recommends polling this endpoint every five seconds. This can be done in a variety of ways, but one of the...

    Read More

    Why We're Porting To Python 3

    Dominic Zippilli

    Here at Luminal , work on a major component of Fugue began in Python 2.7. For this component, we had some early deadlines and a lot of architecture to figure out and prove, so for implementation, we went with what was familiar. We think this was the right decision. However, after we met our deadlines, we took some time to reconsider our platform decision before committing to the existing code base. We knew Python was the right choice, but we had lingering doubts about our decision to continue avoiding Python 3. Upon a closer look, we found that things had changed drastically since the last time we'd seriously considered this question, and the scale was no longer decidedly tipped against Python 3. We ultimately made the decision to port to it. In this post, we'll go over some of the key...

    Read More

    We Should Just Stop Saying “Virtual”

    Dominic Zippilli

    Cloud infrastructure services have allowed our field to gradually abstract computation tasks from long-standing physical restraints. As cloud infrastructure adoption increased, we realized the power and efficiencies of quick deployments and elastic scaling, giving birth to the DevOps movement. We've been steadily directing more of our attention and resources to what matters most: the applications that differentiate our organizations and create value. We can do this because we spend fewer scarce resources managing and maintaining bare metal infrastructure. As we've moved toward a "paper-cup," ephemeral computing model, these "virtual" components are becoming skeuomorphs; that is, they are features of computing instances that resemble facets of the physical computers they've replaced,...

    Read More

    #Pipeday: Celebrating 49 Years of |

    Dominic Zippilli

    This Friday marks the 49th birthday of the ideas behind one of the most powerful characters in the command shell (both *nix and Windows): the pipe. For those who don't know, the pipe is this character: | It's Shift-Backslash on a US keyboard, and it is used to send the output of one process to the input of another. The pipe, and its counterparts stdin and stdout, were essentially described in a memorandum written by Doug McIlroy on October 11, 1964. At the time, McIlroy was just beginning to lead the Computing Techniques Research Department at Bell Labs, where UNIX was born. The key sentence we're celebrating is this one: We should have some ways of coupling programs like garden hose-screw in another segment when it becomes necessary to massage data in another way. McIlroy's memo...

    Read More
    Fugue Developer

    Free Cloud Security for Engineers

    • Visualize your cloud infrastructure
    • Run policy checks and get feedback
    • Detect change and eliminate misconfiguration
    GET STARTED CONTACT SALES