Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php on line 6131

Deprecated: Creation of dynamic property ACF::$fields is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/fields.php on line 138

Deprecated: Creation of dynamic property acf_loop::$loops is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/loop.php on line 28

Deprecated: Creation of dynamic property ACF::$loop is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/loop.php on line 269

Deprecated: Creation of dynamic property ACF::$revisions is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/revisions.php on line 397

Deprecated: Creation of dynamic property acf_validation::$errors is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/validation.php on line 28

Deprecated: Creation of dynamic property ACF::$validation is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/validation.php on line 214

Deprecated: Creation of dynamic property acf_form_customizer::$preview_values is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 28

Deprecated: Creation of dynamic property acf_form_customizer::$preview_fields is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 29

Deprecated: Creation of dynamic property acf_form_customizer::$preview_errors is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 30

Deprecated: Creation of dynamic property ACF::$form_front is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-front.php on line 598

Deprecated: Creation of dynamic property acf_form_widget::$preview_values is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 34

Deprecated: Creation of dynamic property acf_form_widget::$preview_reference is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 35

Deprecated: Creation of dynamic property acf_form_widget::$preview_errors is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 36

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-wp-migration domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php on line 6131

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php:6131) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/wp_plugin/wp_plugin.php on line 23

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 54

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php:6131) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 1539

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 828

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the rocket domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php on line 6131

Deprecated: Creation of dynamic property acf_field_oembed::$width is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-oembed.php on line 31

Deprecated: Creation of dynamic property acf_field_oembed::$height is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-oembed.php on line 32

Deprecated: Creation of dynamic property acf_field_google_map::$default_values is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-google-map.php on line 33

Deprecated: Creation of dynamic property acf_field__group::$have_rows is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-group.php on line 31

Deprecated: Creation of dynamic property acf_field_clone::$cloning is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/pro/fields/class-acf-field-clone.php on line 34

Deprecated: Creation of dynamic property acf_field_clone::$have_rows is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-pro/pro/fields/class-acf-field-clone.php on line 35

Deprecated: Creation of dynamic property jh_acf_field_table::$settings is deprecated in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-content/plugins/advanced-custom-fields-table-field/class-jh-acf-field-table.php on line 23

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php:6131) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php:6131) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php:6131) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php:6131) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php:6131) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php:6131) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php:6131) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/rest-api/class-wp-rest-server.php on line 1902

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/functions.php:6131) in /var/www/vhosts/studiogo.tech/httpdocs/upcloudold/wp-includes/rest-api/class-wp-rest-server.php on line 1902
{"id":24534,"date":"2017-04-26T14:12:31","date_gmt":"2017-04-26T11:12:31","guid":{"rendered":"https:\/\/upcloud.com\/community\/tutorials\/installing-flynn-cluster"},"modified":"2017-04-26T14:12:31","modified_gmt":"2017-04-26T11:12:31","slug":"installing-flynn-cluster","status":"publish","type":"tutorial","link":"https:\/\/studiogo.tech\/upcloudold\/tutorial\/installing-flynn-cluster\/","title":{"rendered":"How to install Flynn cluster in the cloud"},"content":{"rendered":"\n

If getting web apps running in the cloud sometimes feels overly complicated look no further. Flynn is the open-source turnkey solution to the\u00a0cloud, containers, and everything needed for running applications in production. Installing Flynn onto a cluster allows anyone to deploy, run, and manage web applications in the cloud right from their own terminal.<\/p>\n\n\n\n

This guide will help you get started with Flynn by explaining the required steps to installing and configuring Flynn CLI locally as well as the Flynn host services in the cloud. Following these instructions enables you\u00a0to set up your personal Flynn cluster with all the benefits and none of the work or complexities usually associated with a production-ready environment.<\/p>\n\n\n\n

\n
Test hosting on UpCloud!<\/a><\/div>\n<\/div>\n\n\n\n

Installing Flynn CLI locally<\/h2>\n\n\n\n

Running your own Flynn cluster allows you to easily deploy applications to the cloud straight from the codebase. To do this, you will first need to install the Flynn CLI which is used to control the cloud hosts at the backend.<\/p>\n\n\n\n

The Flynn client is available on a number of different operating systems. Below you can find the one-liner commands for installing it on Linux, macOS or Windows.<\/p>\n\n\n\n

Install the Flynn client on your own computer.<\/p>\n\n\n\n

Linux<\/strong> or macOS<\/strong> systems, use the following command in a terminal.<\/p>\n\n\n\n

L=\/usr\/local\/bin\/flynn && curl -sSL -A \"`uname -sp`\" https:\/\/dl.flynn.io\/cli | zcat >$L && chmod +x $L<\/pre>\n\n\n\n

On Windows<\/strong>, run the command underneath in PowerShell.<\/p>\n\n\n\n

(New-Object Net.WebClient).DownloadString('https:\/\/dl.flynn.io\/cli.ps1') | iex<\/pre>\n\n\n\n

Once the installation has finished, you can test that the client was configured successfully by checking the software version number with the next command.<\/p>\n\n\n\n

flynn version<\/pre>\n\n\n\n
v20170401.0<\/pre>\n\n\n\n

You can then continue by deploying new cloud servers to create your Flynn cluster.<\/p>\n\n\n\n

Deploying cloud servers<\/h2>\n\n\n\n

Login to your UpCloud control panel<\/a> and select Deploy Server<\/em> under the servers menu.<\/p>\n\n\n\n

    \n
  1. Enter a domain name and a description, then select the availability zone and configuration you wish to use.<\/li>\n\n\n\n
  2. Flynn recommends running the nodes with a minimum\u00a0of 2 GB RAM and 2 CPU cores.<\/li>\n\n\n\n
  3. Select the Ubuntu 16.04 template for out of the box compatibility.<\/li>\n\n\n\n
  4. Then in the Miscellaneous settings, include an SSH key for easier and more secure access to the node.<\/li>\n\n\n\n
  5. Once you have made the required configurations and selections, click the Deploy<\/em> button at the bottom of the page to start the cloud server.<\/li>\n<\/ol>\n\n\n\n

    <\/tt>
    Repeat the above steps to deploy as many servers as you wish to include in your cluster. The minimum multi-node cluster size is three, but it is possible to operate the Flynn host on a single server as well.<\/p>\n\n\n\n

    Choosing how to install the Flynn host services<\/h2>\n\n\n\n

    There are two available ways for installing Flynn on a host or cluster in the cloud.<\/p>\n\n\n\n

    For the easy option, Flynn provides a straightforward web browser installer<\/a> for setting up the server software on any number of nodes. Simply set up an SSH connection method for the servers, after which Flynn will run through the installation automatically configuring and bootstrapping the cluster ready to use.<\/p>\n\n\n\n

    The other option is to take a hands-on approach by manually installing<\/a> the Flynn host services. Doing the installation yourself allows you to check through the install scripts and configure a custom domain if you have one available.<\/tt><\/p>\n\n\n\n

    Regardless of the install method you choose, you can have a Flynn cluster up and running in a matter of minutes.<\/p>\n\n\n\n

    Option 1. Cloud installation over SSH<\/h2>\n\n\n\n

    Installing Flynn to your cluster using the web installer is very simple. With the Flynn CLI installed on your computer, run the following command in a terminal or PowerShell window.<\/p>\n\n\n\n

    flynn install<\/pre>\n\n\n\n

    This starts the installer and opens the configurations in your default web browser.<\/p>\n\n\n\n

    Select the SSH option at the top right corner of the page, then enter your cluster details to the list of instances. Set the number of instances to match your cluster and include each node\u2019s IP address once on the list. After entering your node connection details, click Launch<\/em> to begin.<\/p>\n\n\n\n

    \"Browser<\/figure>\n\n\n\n

    If you included an SSH key to your cloud servers at deployment, you can use it for authentication during the installation by having it open in your SSH agent. In case the key is not detected automatically, include it by selecting the Private Key<\/em> option, adding an OpenSSH compatible key, and providing the passphrase when asked.<\/p>\n\n\n\n

    If you did not configure SSH keys for the cluster, use the Password<\/em> authentication option and enter the server root password for each node when prompted.<\/p>\n\n\n\n

    \"Authenticating<\/figure>\n\n\n\n

    Once the installer has successfully authenticated to the nodes in your cluster it will begin installing the host software. Click Yes<\/em>\u00a0once for each node in your cluster to confirm and proceed with installing Flynn.<\/p>\n\n\n\n

    \"Install<\/figure>\n\n\n\n

    After the cluster has been configured, you will be asked to install a CA certificate which is required to accept the self-signed certificate the dashboard uses. Follow the instructions show in the web installer.<\/p>\n\n\n\n

    \"Install<\/figure>\n\n\n\n

    With the certificate installed, click the Dashboard<\/em> button to continue to the Flynn control panel. You should get logged in automatically.<\/p>\n\n\n\n

    \"Flynn<\/figure>\n\n\n\n

    If you need to relog to the dashboard, you can retrieve the login token using the following command on your own computer.<\/p>\n\n\n\n

    flynn -a dashboard env get LOGIN_TOKEN<\/pre>\n\n\n\n
    ed4b963692780d778667e2b8c9e6301d<\/pre>\n\n\n\n

    Setting up a Flynn cluster with the web installer configures and bootstraps the cluster ready for applications. You can now continue to deploying a test app<\/a>.<\/p>\n\n\n\n

    Option 2. Installing Flynn manually with a custom domain<\/h2>\n\n\n\n

    Installing Flynn manually allows you to use your own domain name for the applications. If you do not have a domain name easily available, you should use the web installer and let Flynn assign a domain to your host or cluster.<\/p>\n\n\n\n

    Configure your domain name on a DNS as shown below. Include A records pointing to each of the nodes and a CNAME record as a wild card for the cluster domain.<\/p>\n\n\n\n

    flynn.example.com.    A      <node 1 public IP>\nflynn.example.com.    A      <node 2 public IP>\nflynn.example.com.    A      <node 3 public IP>\n*.flynn.example.com.  CNAME  flynn.example.com.<\/pre>\n\n\n\n

    As DNS records might take a moment to propagate, therefore it is good to get these done early to avoid unnecessary waiting later on.<\/p>\n\n\n\n

    Next, log in to your new servers and run the usual updates to get the nodes prepared.<\/p>\n\n\n\n

    sudo apt update && sudo apt upgrade<\/pre>\n\n\n\n

    Then download the Flynn install script and run it with the command below.<\/p>\n\n\n\n

    curl -fsSL -o \/tmp\/install-flynn https:\/\/dl.flynn.io\/install-flynn\nsudo bash \/tmp\/install-flynn<\/pre>\n\n\n\n

    You can verify the installation was successful by checking for the version number.<\/p>\n\n\n\n

    flynn-host --version<\/pre>\n\n\n\n
    v20170417.2<\/pre>\n\n\n\n

    Repeat the steps above to install Flynn on every node that you want to include in the cluster.<\/p>\n\n\n\n

    Configuring the nodes<\/h2>\n\n\n\n

    With the Flynn host services installed on the cluster, it is time to get them connected. Flynn provides a discovery system that allows servers to find each other using a generated discovery token.<\/p>\n\n\n\n

    On one of the nodes<\/strong> in your cluster, generate a new token with the --init-discovery<\/tt> flag.<\/p>\n\n\n\n

    sudo flynn-host init --init-discovery<\/pre>\n\n\n\n
    https:\/\/discovery.flynn.io\/clusters\/53e8402e-030f-4861-95ba-d5b5a91b5902<\/pre>\n\n\n\n

    Then configure the discovery token on the rest of the nodes<\/strong> with the command below. Replace the <discovery token> with the whole URL given by the init command above.<\/p>\n\n\n\n

    sudo flynn-host init --discovery <discovery token><\/pre>\n\n\n\n

    Once all of the nodes have been configured to use the same discovery token, start the host services on every node<\/strong> with the next command.<\/p>\n\n\n\n

    sudo systemctl start flynn-host<\/pre>\n\n\n\n

    With the nodes up and running, you can bootstrap the cluster with a single command on one of the nodes<\/strong>. The node used here will become the default cluster leader and is used to schedule jobs on nodes across the cluster as required.<\/p>\n\n\n\n

    Include your custom domain by replacing the <flynn.example.com> and replace the <discovery token> with the same URL you just generated.<\/p>\n\n\n\n

    sudo CLUSTER_DOMAIN=<flynn.example.com> \nflynn-host bootstrap \n--min-hosts 3 \n--discovery <discovery token><\/pre>\n\n\n\n

    If the bootstrapping was completed successfully, you will see a confirmation along with a command to add your cluster to the Flynn CLI on your own computer. Follow the instructions and run the command in your terminal.<\/p>\n\n\n\n

    Flynn bootstrapping complete. Install the Flynn CLI (see https:\/\/flynn.io\/docs\/cli for instructions) and paste the line below into a terminal window:\n\nflynn cluster add -p XzEz0FnM2ECtxI9geAFzpZyQZ+ue82a4UHQWt5r7c\/E= default flynn.exampe.com c2e7af50603c8cfef89ccd5b1178db9e<\/pre>\n\n\n\n

    You can verify that the cluster was added to the client and set as the default with the following command.<\/p>\n\n\n\n

    flynn cluster default<\/pre>\n\n\n\n
    NAME     URL\ndefault  https:\/\/controller.flynn.example.com (default)<\/pre>\n\n\n\n

    Also at the end of the bootstrapping output, you can find a link to your dashboard and the login token needed to sign in. If you lose your login token, it can always be retrieved with the command below on the Flynn CLI.<\/p>\n\n\n\n

    flynn -a dashboard env get LOGIN_TOKEN<\/pre>\n\n\n\n

    In case the bootstrapping fails, check that the DNS records are available on your nodes and that the host service is running, then try the bootstrap command again.<\/p>\n\n\n\n

    Deploying a test application<\/h2>\n\n\n\n

    Application deployment and general management on Flynn revolve around the ease of use. Developers can deploy applications with a single command straight from git, while the databases, service discovery, scheduling, containers, routeing, and cluster management are all taken care of in the background.<\/p>\n\n\n\n

    Now that you have your Flynn cluster up and running, you should take it for a spin by deploying a small Go example application that runs a minimal HTTP server and talks with a Postgres database.<\/p>\n\n\n\n

    Start by downloading the demo application using Git clone with the command below. If you do not already have Git installed, you will need to get it set up<\/a> before continuing.<\/p>\n\n\n\n

    git clone https:\/\/github.com\/flynn-examples\/go-flynn-example<\/pre>\n\n\n\n

    Change into the downloaded directory.<\/p>\n\n\n\n

    cd go-flynn-example<\/pre>\n\n\n\n

    Then create a new application on Flynn.<\/p>\n\n\n\n

    flynn create example<\/pre>\n\n\n\n

    Doing so adds a new Flynn Git remote which you can verify using the following command.<\/p>\n\n\n\n

    git remote -v<\/pre>\n\n\n\n
    flynn https:\/\/git.flynn.example.com\/example.git (push)\nflynn https:\/\/git.flynn.example.com\/example.git (fetch)\norigin https:\/\/github.com\/flynn\/nodejs-flynn-example.git (fetch)\norigin https:\/\/github.com\/flynn\/nodejs-flynn-example.git (push)<\/pre>\n\n\n\n

    Each application should also have a default route that can be seen with the next command.<\/p>\n\n\n\n

    flynn route<\/pre>\n\n\n\n
    ROUTE                           SERVICE      ID                     STICKY  LEADER  PATH\nhttp:example.flynn.example.com  example-web  http\/46d02fc6-9a21...  false   false   \/<\/pre>\n\n\n\n

    While much of the database operations are performed automatically, you will still need to create one for the applications to use.<\/p>\n\n\n\n

    flynn resource add postgres<\/pre>\n\n\n\n

    The preparations are then complete and you can deploy the application to the cluster using the next command.<\/p>\n\n\n\n

    git push flynn master<\/pre>\n\n\n\n
    =====> Application deployed\nTo https:\/\/git.flynn.example.com\/example.git\n* [new branch] master -> master<\/pre>\n\n\n\n

    At the end of the deployment output, you should see a confirmation of what was deployed and where. You can then open the application URL in a web browser or use curl<\/tt> as shown below to test the application by replacing the <flynn.example.com><\/tt> with the cluster domain.<\/p>\n\n\n\n

    curl http:\/\/example.<flynn.example.com><\/pre>\n\n\n\n
    Hello from Flynn on port 8080 from container 4767bda1-f828-4191-bcb7-864c4096e052\nHits = 1<\/pre>\n\n\n\n

    Great, the example application is working and responding correctly.<\/p>\n\n\n\n

    One of the main advantages of a cluster is redundancy in multiple replicas of the services, but the application is currently running only a single instance. To increase the number of instances, use the following command.<\/p>\n\n\n\n

    flynn scale web=3<\/pre>\n\n\n\n
    scaling web: 1=>3\n07:02:27.944 ==> web 56815ce0-3536-41b0-b385-3beb08712c6d pending\n07:02:27.944 ==> web 881b65b0-caa1-4715-9280-2c22f02756ff pending\n07:02:27.944 ==> web flynn-881b65b0-caa1-4715-9280-2c22f02756ff starting\n07:02:27.944 ==> web flynn-56815ce0-3536-41b0-b385-3beb08712c6d starting\n07:02:28.447 ==> web flynn-56815ce0-3536-41b0-b385-3beb08712c6d up\n07:02:28.447 ==> web flynn-881b65b0-caa1-4715-9280-2c22f02756ff up<\/pre>\n\n\n\n

    <\/tt>If you now refresh your browser window or run the curl<\/tt> command as above a couple of times, you should see replies from 3 different container IDs.<\/p>\n\n\n\n

    Conclusions<\/h2>\n\n\n\n

    Congratulations, you should now have a production-ready Flynn cluster at your disposal. Next, you might want to look into deploying your own applications on Flynn. To find out more about Flynn and its advanced features, check out the Flynn application documentation<\/a> pages.<\/p>\n\n\n\n

    Flynn also gets better every day as they track the infrastructure space and regularly integrate new components and features. New and modern technologies are often quickly available without the users needing to figure out how everything fits together. So keep your systems up to date and you will always have the latest and greatest that Flynn has to offer.<\/p>\n","protected":false},"featured_media":27347,"comment_status":"open","ping_status":"closed","template":"","community-category":[113,116],"class_list":["post-24534","tutorial","type-tutorial","status-publish","has-post-thumbnail","hentry","community-category-integrations","community-category-web-hosting"],"acf":[],"_links":{"self":[{"href":"https:\/\/studiogo.tech\/upcloudold\/wp-json\/wp\/v2\/tutorial\/24534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/studiogo.tech\/upcloudold\/wp-json\/wp\/v2\/tutorial"}],"about":[{"href":"https:\/\/studiogo.tech\/upcloudold\/wp-json\/wp\/v2\/types\/tutorial"}],"replies":[{"embeddable":true,"href":"https:\/\/studiogo.tech\/upcloudold\/wp-json\/wp\/v2\/comments?post=24534"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studiogo.tech\/upcloudold\/wp-json\/wp\/v2\/media\/27347"}],"wp:attachment":[{"href":"https:\/\/studiogo.tech\/upcloudold\/wp-json\/wp\/v2\/media?parent=24534"}],"wp:term":[{"taxonomy":"community-category","embeddable":true,"href":"https:\/\/studiogo.tech\/upcloudold\/wp-json\/wp\/v2\/community-category?post=24534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}