Announcing aaSemble

What is aaSemble?

Rick Clark
The aaSemble Platform
3 min readDec 18, 2015

--

aaSemble is a platform that helps you develop, test, deploy, manage, and update your complex application or service through its entire lifecycle, across its entire stack. We will go into tedious detail in a future blog post; in the meantime, please look at our code on Github.

Why are we doing this?

The best practices for delivering software have changed more over the last several years than over the previous thirty. Today, your software is likely a service. Your service will probably run on one or more clouds (Amazon EC2, Heroku, Google Container Engine, etc.), or on a combination of clouds and your own data center. Travis-CI helps you test your code. New Relic collects performance metrics. Sentry collects exceptions from your application. Opbeat keeps track of your releases, exceptions, and metrics. All of these tools are very useful and they’ve all helped us deliver services to our customers.

These tools are great when your application is built from a single source code repository, your deployment pipeline has just one step, and everything runs on a single node. Unfortunately they don’t go far enough for today’s complex services. That is because we are stuck in the “It builds? Ship it!” mentality of the past, when the reality is that we’re deploying living, breathing services. We’ve spent our careers learning about the care and feeding of our services. Here are some of our ideas for improving our deployment toolset to save time and money.

  • We learned that reality is complex. Most real services consist of many nodes running a variety of micro-services, built from numerous source code repositories, and consuming multiple 3rd party services, all deployed to multiple clouds. The tools we use to manage services should reflect that.
  • We learned that making testing easy, automatic, and repeatable will speed development and improve quality. The tools should seamlessly and effortlessly integrate testing across the stack and thorough the entire product lifecycle.
  • We learned that deployment is not the end of the development process, just one step in the cycle. The tools should not only help your service run, but also gather and analyze data.
  • We learned that smaller updates are better than big ones, but sometimes testing takes takes longer than the time between changes from your code sources. While per-commit deployments are ideal, they aren’t always possible. The tools should understand and handle complex services with frequent commits from multiple sources.

aaSemble is the culmination of all we have learned. It’s the toolset that we always needed but couldn’t find. We think there is a better way. We hope you will too.

Where can I get it?

aaSemble is a very young project. We will eventually be offering our services on a simple pay-per-use model as well as making them available under the Apache 2.0 license. You’re free to run them on your own infrastructure and provide feedback in the form of patches, bug reports, etc.

How can I send you hate mail?

You can find us on Github, Twitter (@aaSemble), on IRC on Freenode (#aasemble) or even on Facebook.

We’re looking forward to working with you.

--

--

Rick Clark
The aaSemble Platform

Co-founder of @aaSemble, founder and former Project Lead of OpenStack. In a previous life I was the Dev manager for Ubuntu Server