RSS

Flynn Gamma and Meetup

We’re thrilled to announce the launch of Flynn Gamma.

Flynn is a unified, open source platform for running apps, websites, databases, and services at scale.

It’s our first step towards a world where computers run the way they’re supposed to. A world where infrastructure is fully open and transparent, super-accessible, incredibly secure and infinitely scalable. A world with rock-solid reliability where everything is also incredibly easy to use.

§ Getting Started

We try hard to make Flynn as easy to use as possible. Whether you want to run it on your local machine, the cloud, or your own server, we’ve got you covered.

It’s easy to get your first app up and running using buildpacks, or by deploying straight from GitHub using our web dashboard.

§ What’s Changed

During over 100 releases since the beta in August we added overlay networking, secure updates, volume management with ZFS, an integration test suite, documentation, and example apps, completely rewriting the Postgres appliance, router, and service discovery along the way.

We’re calling this release Gamma because it’s much further along than our Beta release, but until it meets our standard for everyone to use in production, we won’t call it production stable.

§ What’s Next

Our highest priority is making Flynn the most reliable tool you use. We’ll spend most of our time in the coming weeks working closely with early adopters to work out any remaining bugs and rough spots before blazing forward with more features.

We recently raised over a million dollars from investors who share our vision for Flynn including RRE and IWNA. This capital ensures Flynn will reach 1.0 this year.

We would also like to take this opportunity to thank all the individuals and companies who have been so supportive of Flynn during the development process. We couldn’t have done it without you.

§ Connect

We want to know how you’re using Flynn and how we can make your life better. Find us on GitHub, IRC (#flynn on freenode), or drop us a note.

We invite you to join us at our meetup in San Francisco this Thursday to hear more about Flynn and meet our team. RSVP here

This Week in Flynn

It’s been a busy week at Flynn. Most importantly, Flynn binaries and container images are now distributed securely using faster servers. We also created a script that replaces the manual installation instructions.

§ Changes

§ Enhancements

  • The Update Framework is now used for secure artifact distribution (#974, #980). All binaries and container images are cryptographically signed. Also, container images are now hosted on a much faster CDN. We removed the debian package in favor of an installation script that allows us to have a distro-agnostic install process in the future.
  • The container manager is now capable of registering with service discovery on behalf of a process (#933). In addition to basic registration, it also does HTTP and TCP health checks and can unregister or kill unhealthy processes. The sdutil binary was removed as this functionality supersedes it.
  • The PGHOST environment variable is now added when a postgres database is provisioned (#987). This allows apps to connect to postgres without using the service discovery protocol.
  • The HTTP/TCP router now stores routes in Postgres instead of etcd (#959). This was the only service that stored persistent data in etcd, leaving discoverd as the only etcd client.
  • Minor improvements were added to deployer logging and cleanup (#983)
  • Router and other layer 0 bootstrap jobs allowed to use discoverd DNS (#985)
  • Removed unused port allocator from host daemon (#991)
  • Script usage is printed when too many arguments are provided (#1006)

§ Bugfixes

  • Simplified the installation docs (#996)
  • Bare IPv6 resolver addresses are handled in discoverd (#997)
  • IP address allocations are tracked during host daemon state restoration (#990)
  • Cron is disabled before provisioning VM images (#959)
  • Deploys are only rolled back if jobs fail to start (#1005)

§ Stay in Touch

§ How You Can Help

This Week in Flynn

We made a lot of progress this week. We improved the router by adding support for early disconnect detection and timeouts for slow clients. We also added service metadata to discoverd, improving Flynn’s ability to support database appliances.

We also refactored the controller, router and volume management components for better clarity and error handling.

§ Enhancements

  • Refactored SSE handling into generic helpers (#899)
  • Added service metadata to discoverd (#919)
  • Refactored volume manager into a separate package (#932)
  • Refactored test utilities into a package (#935)
  • Added pagination to blog (#936)
  • Preliminary work for volume persistence (#940)
  • Added taffy integration test (#946)
  • Added flag to blobstore to disable service discovery (#947)
  • Added support to CI for booting clean VMs (#948)
  • Added tuf binary to CI rootfs (#951)
  • Added context passing to router (#955)
  • Refactored router’s upgrade status code handling (#960)
  • Bumped Ubuntu version in base images (#962)
  • Added detection of early termination of downstream TCP connections in router (#964)
  • Removed fake release artifacts for dashboard (#969)

§ Bugfixes

  • Fixed CLI error output (#939)
  • Fixed removing VirtualBox packages (#941)
  • Return hijack errors when doing connection upgrades in router (#950)
  • Return an “unknown” exit code in attach client (#952)
  • Bumped TOML package (#957)
  • Fixed deployments with zero processes (#961)
  • Fixed flynn create --yes (#965)
  • Made ZFS installation instructions consistent (#968)

§ What’s Next

We are focused on improving our test suite, documentation, and stability.

§ Stay in Touch

This Week in Flynn

Last week we shipped a new version of the controller which includes zero-downtime deploys. When rolling out a new version of an application, requests start going to the new release and the old release will be scaled down without downtime.

We dramatically improved the stability and reliability of Flynn CI, including fixing a networking issue that was causing builds to fail and adding more aggressive timeouts.

We landed the first stages of Flynn’s new volume management system backed by ZFS. This feature will be leveraged by Flynn’s database appliances in the future.

We also upgraded several buildpacks, etcd, and the version of the Linux kernel installed in our development and testing VMs.

§ Enhancements

  • Added deployer daemon to perform zero-downtime deploys of apps (#784, #832, #836, #841, #868, #873, #851)
  • Added JSON schemas for the controller to integration test, generate API docs, and validate requests (#471, #846, #903, #904)
  • Now handling HTTP upgrades in router according to RFC 7230 (#826)
  • Releases are no longer required to reference an artifact (#830)
  • CI will only test pull requests and pushes to master (#838)
  • Refactored router proxy logic into a separate package (#842)
  • Added more aggressive timeouts to CI (#844)
  • Exposed panics during shutdown (#850)
  • Removed unused HTTPError type in router client (#852)
  • Refactored controller resource test (#853)
  • Updated to etcd 2.0 (#860)
  • Bumped kernel to 3.16 (#861)
  • Added volume management subsystem with ZFS backend (#750, #866, #865)
  • Added additional logging to CLI log tests (#871)
  • Added test that the router proxies query parameters correctly (#876)
  • Test suites now use single etcd/discoverd pairs for the router and discoverd tests (#879, #920)
  • Now storing host identifier in host API client (#880)
  • Added helper method to merge container configurations (#883)
  • Refactored HTTP context handling (#889)
  • Added delay to etcd reconnect attempts (#891)
  • Added HTTP request logging to host daemon (#894)
  • Redirected CI log URLs to S3 (#897)
  • Refactored CI cluster management API (#901)
  • Added optional pprof handler to router (#909)
  • Now building CI runner binary with race detector on (#911)
  • Added discoverd health check-based registrar (#913)
  • Refactored router listener setup (#915)
  • Added UTF-8 charset to CI logs (#921)
  • Updated buildpacks to the latest versions (#922)
  • Added tool for bumping buildpack versions (#922)
  • Removed pre-installed guest additions from Virtualbox base image (#923)

§ Bugfixes

  • Fixed infinite loop in discoverd (#831)
  • Fixed intermittently failing discoverd health check test (#835)
  • Fixed error code constant type declarations (#839)
  • Fixed consistency issue in resource JSON schema (#843)
  • Don’t assign IP addresses to tap devices on CI (#844)
  • Fixed CI networking instability (#857)
  • Don’t attempt to copy AMI to unsupported region (#858)
  • Read router listener port in tests correctly (#862)
  • Report cluster client connection errors (#863)
  • Fixed marshaling of JSON errors (#874)
  • Fixed router retries of requests with bodies (#875)
  • Fixed shutdown log caller attribution (#878)
  • Don’t attempt to write headers multiple times in streaming responses (#881)
  • Fixed race in discoverd DNS tests (#885)
  • Fixed CI log retrieval when adding hosts (#890)
  • Fixed discoverd leader election (#896)
  • Fixed race in discoverd health tests (#902)
  • Avoided race in controller example generator (#910)
  • Fixed race in flannel subnet file handling (#912)
  • Fixed attach exit status regardless of stdin (#914)
  • Fixed race in router registering with discoverd (#925)

§ What’s Next

We are focused on improving our test suite, documentation, and stability.

§ Stay in Touch

This Week in Flynn

We shipped a number of significant updates to core Flynn services this week, including a complete rewrite of service discovery. The new discoverd includes an HTTP API and exposes services using DNS.

As part of a larger upgrade to the HTTP router, we switched to the standard Go HTTP package. Flynn’s unit tests now run directly in Flynn CI. The Flynn AMIs are now available in all EC2 regions.

§ Enhancements

  • Rewrote discoverd to support HTTP and DNS (#807, #811, #812, #814)
  • Refactored HTTP routing to use net/http and support backend keep-alive and HTTP/1.0 (#781, #794, #798)
  • Refactored controller to use httprouter instead of martini (#762)
  • Refactored controller tests to use controller client (#806)
  • Refactored attach protocol for better HTTP compliance (#761, #793, #800)
  • Gracefully handle discoverd unregistration during daemon shutdown (#819)
  • Running unit tests in Flynn CI instead of Travis (#792, #801)
  • Now providing JSON error responses in HTTP API client (#765)
  • Allowed custom git remote when creating/deleting apps in CLI (#777)
  • Created bridge directly instead of via libvirt (#785, #787)
  • Improved router tests (#782, #788)
  • Added support for falling back to default keypair in router (#769)
  • Deleted unmaintained MongoDB appliance prototype (#768)
  • Refactored postgres helpers (#786)
  • Log errors when dumping CI logs (#813)
  • Copied AMI to all EC2 regions (#818)
  • Removed extraneous dial fields from HTTP API client (#815, #820)

§ Bugfixes

  • Cancelling job restart timers when scaling down (#610)
  • Fixed DCO link in commit validator (#770)
  • Disabled broken postgres follower mode (#772, #776)
  • Removed broken router test mode (#775)
  • Made domain lookup case-insensitive in router (#778)
  • Improved CI rootfs build error handling (#783)
  • Added missing error check in controller database query (#790)
  • Fixed panic when flannel fails to start (#795)
  • Fixed race when starting router (#797)
  • Avoided races in shutdown handler (#803, #817)
  • Bumped timeout in an intermittently failing test (#808)
  • Fixed double channel close in controller (#828)
  • Don’t reuse bridge IPs right away in Flynn CI (#829)

§ What’s Next

We are focused on improving our test suite, documentation, and stability.

§ Stay in Touch

 RSS



Mailing List