Skip to content

    Latest Posts

    Why We Built Ludwig — a DSL for the Cloud of Today and the Future

    Josh Stella

    The approach taken by Fugue is to allow cloud infrastructure to be treated as code. This concept is required if developers are to generate applications that can exploit the cloud's capabilities and deliver on the promise of immutable infrastructure. -Ovum's On The Radar report on Fugue Fugue provides simplification of your life on the cloud through abstractions. Abstractions can be expressed in one of two ways: as black boxes, or as language. Fugue puts as much into language as we can, so that you can do things with it that we didn't predict. Black boxes are easier for a platform builder to make, because they do things in one particular way. They are also less flexible for the user, because they do things in one particular way, which may not be the way the user needs or prefers.

    Read More

    Fugue Computing: Next Generation Infrastructure Automation Is Here

    Josh Stella

    As we migrate applications to the cloud or build there natively, cloud computing itself is changing how we compose and operate our systems. We increasingly compose systems of elastic collections of services running on many compute instances. We now commonly employ application statelessness in order to exploit cloud system elasticity and to achieve the performance required of web scale systems. As we make these changes, we discover that systems management, operations, policy enforcement, and security in the cloud cannot be accomplished easily with tools and methods adapted from traditional data center environments. Our reality is that the elastic compute systems of any given enterprise are now distributed across tens, hundreds, thousands or more nodes running an ever-growing array of...

    Read More

    Architecting a Serverless Web Application in AWS

    Drew Wright

    Here at Fugue, the Web Team is a small but spirited minority—in favor of JavaScript, 60 frames per second, and keeping our DevOps simple. We like experimentation and new approaches to computing that favor substance and elegance over fad and bling. For some time, we’ve been using AWS Lambda with SNS topics and votebots, but we hadn’t tried anything big with it. Until now. The Serverless framework gave us the push we needed. Our goal? To power an application useful to a business function via an API built with Lambda and API Gateway, harming no EC2 instances in the process. Let’s rewind for just a moment to give a brief explanation of AWS Lambda. Like IBM OpenWhisk, Google Cloud Functions, and Azure Functions, it's a service “for executing code in response to specific events such as a...

    Read More

    Regions Beyond Regions: Global Cloud Infrastructure Expansions

    Drew Wright

    Think about the cloud as a massive global computer. That paradigm—with developers and users managing hyperscale cloud services within its framework—means tapping into a kind of pattern recognition. Cloud data centers, substations, and fiber are physical components of a cloud motherboard. Genuine cloud operating systems like Fugue can be built. Cloud processes can be represented with a pid equivalent. And so on. This year, 2016, is a year of expansion. Below, you see an aggregate mapping of a wide swath of Earth’s cloud “hardware”—installed by Amazon Web Services, Microsoft Azure, Google Cloud Platform, and IBM/Softlayer. All of it, arguably, can be and eventually will be manipulated as parts of the same machine. Shown are 78 global regions with cloud data centers for the four...

    Read More

    AWS Lambda and the Evolution of the Cloud

    Josh Stella

    For several years, cloud adoption by developers, tech companies, and enterprises has been gaining momentum. Global cloud spending is accelerating and market forecasts are impressive. The cloud is often thought of as a collection of remote data centers. It’s generally used that way by organizations when they first experiment with it—or even when they move whole applications to it. Not surprisingly, cloud service providers offer familiar topologies of services for folks conversant with the data center: virtual machines and containers, virtual networks, load balancers, etc. But, these really are metaphors rather than the traditional things they resemble on data floors. They are useful abstractions in composing applications with semi-traditional architectures. The metaphors nevertheless...

    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
    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