Skip to content

    Latest Posts

    Practical Recursion Schemes at PragPub

    Drew Wright

    Jared Tobin is one of our consultants at fugue.co—he's a programmer and researcher based out of Auckland, New Zealand. Jared's article in this month's issue of PragPub, The Pragmatic Bookshelf's magazine affiliation, is a helpful read if you're interested in functional programming and Haskell in particular. Check out "Practical Recursion Schemes" here. Recursion schemes are simple, composable combinators that automate traversing nested data structures. They are a powerful abstraction that can be implemented in any language with first-class functions. Jared explores various schemes and their applications using Haskell, but the lessons here can be applied in Clojure or any true functional language. The article details a number of recursion scheme examples. One of them is a...

    Read More

    Happy Thanksgiving from the Fugue Team

    Drew Wright

    For this Thanksgiving, we asked our team one simple question... What software are you most thankful for? Here are their answers, in alphabetical order so we don't play favorites in the ongoing Emacs vs. Vim battle: Alex "I'm thankful for netcat. It's the Swiss Army knife of networking. It's never something that I think to install or use ahead of time, but when you need it, it's great to have." Andrew "npm makes setting up your node environment a cinch on any machine. It outputs exactly the correct amount of logs to make you feel like you're doing something complex and impressive without looking absurd." Becki "Spotify's Discover Weekly feature is so accurate to my bizarre taste in music that it's uncanny. I'm sure there's actually a team of teeny-tiny DJs inside my computer,...

    Read More

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

    Drew Wright

    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

    Our Article at O'Reilly on Immutable Infrastructure

    Drew Wright

    We're big fans of immutable infrastructure at Luminal (the company behind Fugue), and we're not shy about it! Immutable infrastructure brings a variety of benefits, including: simplifying operations, increasing system reliability, and continuous deployment with fewer failures. To that end, we're excited to collaborate with O'Reilly to publish "An Introduction to Immutable Infrastructure: Why you should stop managing infrastructure and start really programming it." In this article, Josh Stella, Founder and CEO of Luminal, urges us to give up on artisanal infrastructure, which increases operational complexity and causes many system failures. "Historically, we've thought of machine uptime and maintenance as desirable because we associate the health of the overall service or...

    Read More

    Using AWS KMS to manage secrets in your Infrastructure

    Drew Wright

    At Re:Invent 2014, AWS launched their new Key Management Service, or KMS. As its name implies, KMS is an AWS service that helps securely manage encryption keys in the cloud. Traditionally, keys have been managed in haphazard ways, from SCP-ing keys around your instances to baking them into machine images. The safe way to manage high-value keys has been to employ dedicated Hardware Security Modules (HSMs), either on-premise or with the AWS CloudHSM service. In either case, HSMs are expensive and hard to use. The new KMS service provides HSM-style key management that is both inexpensive and easy to use via a web service API. First, we'll look at what KMS is and how you can use it to manage encryption keys. Then, we'll look at credstash, a simple system that uses KMS and DynamoDB to...

    Read More

    Immutable Infrastructure: Networks

    Drew Wright

    If you work with network infrastructure, you know that it has a tendency to grow warts, that is, it drifts from its original configuration. One of our goals in building Fugue as the operating system (OS) for the cloud and a single source of truth and trust for your infrastructure is to prevent this drift from occurring by maintaining your infrastructure's known good status. After all, "a trusted system only does what its author intends." Previously, we've focused on the "warts" grown by compute instances, but this problem is present in other infrastructure components, such as networks. Configuration drift in networks often occurs when manual intervention is involved to deploy and maintain them. I have seen network configurations that take up hundreds of rows in spreadsheets and are...

    Read More

    Handling AWS Spot Instance Termination Notices

    Drew Wright

    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

    What's A Fugue?

    Drew Wright

    Our product, now in beta release, is called Fugue. It's a distinctive word. And, unless you're a musician, it's probably not a part of your standard vocabulary. This video blog is solely about that word—fugue—and its primary meaning in music. Metaphors are some of the most powerful tools we have in language for illustrating what's in our minds: how an innovation might work, what patterns in art and nature might be useful in solving a particular problem, which traditional parameters might we break through to, well, have a breakthrough. We take metaphors seriously as brainstorming points and as a place to start philosophically. At 10,000 feet, the fugue, as a form in music, meshes with a fundamental aspect of the computing architecture we're creating. For more information, check out CEO...

    Read More

    Why We're Porting To Python 3

    Drew Wright

    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

    March, Hypatia, and a Case for Optimism in Tech Culture

    Drew Wright

    March 8 was International Women's Day. Some celebrated. Some scoffed. Some lives are so tough that calendars mean little. In the U.S., a Presidential Proclamation highlights the entire month of March; it's an eloquent document with compelling reminders of sacrifices made, achievements earned, brutalities endured, present and past, by women. The genderless, luminous being attached to my beautifully gendered identity and sexed body laments the necessity of these kinds of declarations. But, I would use any tool, including "March," to spell out history and reality in the public forum, in a persistent attempt to stop vicious patterns from repeating themselves. I remain certain that an honorable alien trying to understand humanity, Googling rape statistics alone (much less employment...

    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