August Flynn Release

Flynn is an open source platform for deploying and managing web applications and databases.

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.

§ Recent Blog Posts

§ Release Notes

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.

One feature was added, a variable that changes the default slugbuilder memory limit.

Read the full changelog for v20160814.0.

Stable updates are released on the third Tuesday of each month with changes that have had more time to stabilize.

You can also follow the nightly release channel which includes more bleeding edge changes. Nightly builds have all passed code review and our CI system, but may not be fully tested.

§ Stay in Touch

§ How You Can Help

MariaDB and Best Practices

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 and podcasts.

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

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

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.

Paths to Adopting Flynn

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 day one.

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.

What Flynn Does

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.

Here’s what Flynn does:

You can deploy an application to Flynn from GitHub via our web dashboard, via git push, or by pushing a Docker container image.

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.

Read more about how to use Flynn.

Read more about how Flynn is designed.

Flynn 1.0 is here!

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

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.

We now have a regular release schedule and security disclosure policy. For more information on what we’re working on check out our roadmap. We regularly post news about Flynn development and events on our blog and Twitter.

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 or day.

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.


Mailing List