Announcing aaSemble
What is aaSemble?
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 you are more likely to deploy a service, then press a CD. Your service will probably run on one or more clouds (Amazon EC2, Heroku, Google Container Engine, etc.), or 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 a single step, and everything runs on a single node. But 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 are deploying living, breathing services. We have spent our careers learning about the care and feeding of our services. Here is some of what we have learned.
- We learned reality is complex. Most real services consist of many nodes, running a variety of micro-services, built from numerous source code repositories, consuming multiple 3rd party services, all deployed to multiple clouds. The tools we use to manage them should reflect that.
- We learned making testing easy, automatic, and repeatable, will speed your development, while improving your quality. The tools should seamlessly and effortlessly integrate testing across the stack and thorough the entire lifecycle.
- We learned deployment 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, so 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 is 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, so you're free to run them on your own infrastructure as well as 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.
Gr88 Going... You are always inspirational, and Though provoking....!!
hello Krishnan, Can you please let me know how the session management is done in Openshift enterprise v3. What is the HA solution Openshift v3 enterprise.
That would be cool thing to have... A standardized way to testing and deployment, recreation of envmt for bugs and so on.... Good Luck!
One can also look at Docker... Makes work of Devops, developers easier.
Devops is some thing I'm paying attention to as an InfoSec guy...good to read this...