The goal of LearnEnvoy is to help developers go from "hey, Envoy sounds powerful" to a fully-functional production deployment.
The content is based on real production deployments, successes and failures, and interviews with teams running Envoy at scale. The guides cover everything from the configuration basics to strategies for distributed system resilience.
We open-sourced this site because we know we're not always right, and even if we are, Envoy and its best practices are evolving faster than any single organization can keep up. Feel free to fork it, edit it, share it with others, and contribute back to it.
Want to contribute a change? Great! Here are a few ways you can jump in:
- Be sure to read our Code of Conduct
- Browse our open issues
- Suggest a new section or area for improvement by opening an issue
If you're running Envoy at your company and want your success story told, send an email to email@example.com. We'd love to interview you and post your experience on the site.
Before cloning the repo, you'll need to install git-lfs. Otherwise you won't be able to see any of the images.
brew install ruby gem install bundler
then verify you have reasonably modern versions
> ruby -v ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16] > bundle -v Bundler version 1.14.6
Now, from within this project directory run
To make sure your Gems are packaged up correctly for running jekyll
Building the site
To serve the site for local development, run
Then go to http://localhost:4000
To build the site for distribution run
And gzip or whatever all the stuff in
We use the agency theme for the
site. Styling overrides are in
assets/main.scss and in the
directory. We have copied all of the scss assets from the gem, so we shouldn't
have to worry about order of application from the gem and our thing (non-gem
files should take precedence)
The main page is organized along a series of topics. Topics are defined in four places (gross).
_includes/nav.htmldefines the topmost nav. Each section needs an entry here
_layouts/main.htmlhas an include for each topic
_includes/<topic>.htmlcontrols rendering for the topic
_data/<topic>.yamlprovides a structured "database" of entries in a topic
If an item in
_data/<topic>.yaml contains an
article field, jekyll will look
for a corresponding markdown file in the
_articles subdirectory. Articles are
rendered with the layout in
_data/getting-started.yaml for a very slim example for the 'on your laptop'