Flynn is an open source platform for deploying and managing web applications and
Hundreds of new clusters have been launched since the Flynn 1.0 release last
month. We’ve connected with many new and prospective users and fixed a number of
bugs found in the wild. Our team is also hard at work on a number of new
features. Some users have also expressed interest in organizing regular Flynn
meetups in their community. If you’d like to start one or give a talk on Flynn
let us know.
This month’s stable release is primarily composed of fixes for bugs. There was
one major bug fixed, a deadlock that can occur after an unclean restart of
flynn-host, and the rest are fixes for various minor edge cases.
Developers, especially web developers at startups, have shared a huge amount of
knowledge over the years about the best, most reliable, and most scalable ways
to run apps and databases in production. This knowledge lives on High
Scalability, StackOverflow, Hacker News, and on thousands of engineering blogs
Even though these best practices are widely known and easy to learn about, most
users don’t employ them. Unfortunately the best practices are often difficult
and time consuming to set up and manage, especially today when most companies
have an ever-expanding set of microservices and databases.
Best practices are often developed and publicized by the biggest, best funded
companies who can afford to, and in many cases have to spend the time and
expense required to discover and implement new and better ways to use
Many of the most valuable, and tricky to implement best practices relate to
databases. Databases should, wherever possible, be highly available, fault
tolerant, and automatically fail over while maintaining data consistency. We
include database appliances in Flynn designed to do just
In the case of relational databases, database instances should be set up using
synchronous replication. This means that when a write comes in from a client it
isn’t confirmed until the write has been copied to a database replica. That way
data is consistent even if a database instance fails. If you imagine that write
representing a record of a payment or purchase, you get a sense of how dangerous
inconsistent databases are.
While testing our MariaDB/MySQL database appliance recently we discovered
evidence that most users who set up MariaDB on their own aren’t taking advantage
of the built-in tunable replication capabilities to prioritize data consistency.
The bug we found would cripple
a database cluster if the user had tuned the built-in semi-synchronous
replication to be consistent. This bug would have been apparent to any user who
employed best practices for relational databases. Google’s internal version of
MySQL, for example, fixed this bug more than two years ago. The fact that it had
not been fixed in master suggests that very few users of MariaDB are optimizing
their clusters for data consistency.
We think everyone deserves Google-quality infrastructure, but we understand that
it just takes too much time and effort to first learn about and then set up many
complex systems. That’s why we built Flynn.
We try to employ the best known practices in every element of Flynn:
All Flynn components are highly-available.
Application deploys on Flynn are zero downtime.
It’s easy to rollback broken application deploys.
Full cluster backups are available with a single command.
Every component and application process runs inside its own container with
separate resource limits.
Flynn is designed to give everyone the more reliable, resilient infrastructure
in the easiest to use package possible. Flynn will continue to evolve with the
state of the art and industry best practices so your cluster gets more powerful
and reliable with each release. We will continue to work with upstream vendors
and communities to make sure the technologies we rely on, like for example the
databases in our appliances, also live up to those standards.
Flynn is an open source platform for deploying and managing web applications and
databases. Flynn makes developing and running applications and databases faster,
easier, and more efficient.
There are many benefits to adopting a cutting edge platform, but changing tools
can be tricky. Infrastructure has inertia. Developers and operators are used to
specific tools and workflows and not all organizations can turn on a dime.
There are a number of different ways to bring Flynn into an organization:
If you’re starting a new project or company and have a clean slate you can dive
right in and use Flynn for everything from
If your organization prefers incremental change, you can adopt Flynn gradually.
First, try deploying your apps on Flynn. If that works out, try setting up
a development cluster that engineers can use to test their code and get new apps
up and running quickly for evaluation. The next step is a staging cluster where
apps are run before being released in production. After this process your
engineers and operations team will have enough experience and confidence using
Flynn that they can use Flynn with confidence for production as well.
Adopting a new platform doesn’t mean you have to run everything on it. Some
established organizations plan to leave legacy applications running on legacy
systems. Others just want a platform for new applications as they embrace
containers and microservices. Whether you want to run everything or just a few
apps, Flynn is here to help and easy to manage.
Many operators remain happy with traditional management of production
applications and services but are looking for a nimble solution to local,
development, and staging environments. Flynn provides Vagrant images for local
use and has a fast and simple web installer to get a cluster running in the
cloud. Flynn clusters can also be managed and
automated with many of the tools
widely used by ops teams today.
It’s easy to get confused when talking about platforms and infrastructure.
There’s a lot of moving parts and technology beneath the surface, so it can be
helpful to take a moment to consider the basics.
If you sent code via git, Flynn runs a buildpack
against your code and turns it into a container image that can be run on
servers. Flynn deploys that image to one or more servers in the cluster and runs
containers from it.
These deploys are zero downtime, Flynn starts new instances of the app and makes
sure that they are running before stopping the old version.
You can change application configurations easily with a single
command or a few clicks. Changes are
also deployed with zero downtime and automatically rolled back if app processes
crash during the deploy.
Flynn accepts and load balances incoming HTTP and HTTPS traffic to your
applications. You don’t have to make any changes to your application to accept
HTTPS traffic except to specify a certificate.
You can run as many applications and domains as you want on Flynn. Adding
a domain to an app is a single command – you don’t
need to edit config files.
You can scale out an app by adding more servers and telling Flynn to run more
instances of the app. Flynn automatically handles balancing the instances of
your application across servers. If servers go down, your app stays running.
Flynn and all of its components are highly available out of the box. Flynn can
run on a single machine if you want, but with three or more machines it
tolerates failures gracefully and automatically recovers when things go wrong.
Flynn runs databases, too. You can provision
PostgreSQL, MongoDB, and
MySQL databases with a single command. There’s no need
to configure anything. When you add a database, your applications are
automatically configured. Databases are also highly available and will failover
automatically without corrupting data if a host fails.
Flynn is an open source platform for deploying and managing
web applications and databases.
Three years ago we launched a crowdfunding campaign to build an open source
platform as a service called Flynn that could run databases as well as
applications. Today we are announcing a version of Flynn that achieves all our
original goals and is stable for production use.
Flynn lets you deploy and manage lots of applications, whether they’re
microservices or monoliths, written in any combination of languages. Flynn also
runs popular databases like Postgres,
MongoDB, and MySQL as
appliances on the same platform. It’s like having database as a service (DbaaS)
inside your own cluster.
Flynn makes running software faster and easier so developers can ship their code
with less friction and spend more time creating applications and products.
Developers can choose the right language, framework, or database for each
project without creating extra work for operators.
Ops and IT teams who use Flynn can give developers self-serve access to
infrastructure for development, staging, or production environments. Since they
don’t have to build custom stacks for each app, language, or framework, they can
act more like a product team and less like consultants.
Flynn brings resilient, scalable, and efficient infrastructure to everyone.
Users get all the benefits of technology like containers, schedulers, service
discovery, and overlay networking without needing to connect dozens of different
tools and components. Flynn is a single, unified, easy-to-use platform.
Developers and companies around the world are using Flynn to power everything
from their latest side project to their startup’s most important products in
This is just the beginning of Flynn’s development, and we’ll have many more
features to announce in the coming months. For now, Flynn is solid, stable, and
ready to use.
Our team is standing by on GitHub and in IRC
(#flynn on Freenode) and is
ready to help if you have any questions. We also offer commercial
support for users who need the guarantee of reaching our team night
Flynn is fast and easy to install on popular clouds with our graphical
installer or on your local machine with
Vagrant. Try it today and see how far we’ve come.
Thank you to everyone who has supported Flynn over the years from our original
crowdfunding campaign, meetups around the world, and beta users. We think you’re
going to like what we’ve built and we look forward to delivering even more in
the days to come.