Skip to content

Commit 9c5c364

Browse files
author
Christi Miller
committed
Added more concrete steps to the Getting Started Guide
1 parent a795598 commit 9c5c364

File tree

2 files changed

+57
-22
lines changed

2 files changed

+57
-22
lines changed

GETTING_STARTED.md

+56-21
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,71 @@
1-
# TODO -- Write a more cohesive overview.
2-
Deploying Flightdeck involves a series of steps, starting from setting up your AWS environment to deploying specific modules. Here's a high-level tutorial:
1+
## Overview
2+
The Flightdeck platform is a containerized runtime environment built on top of popular cloud services including security, CI/CD, and scalability features. Deploying the Flightdeck platform involves a series of steps as prerequisites, as well as steps to deploy the platform itself. This guide walks through the end-to-end vanilla deployment.
33

4-
## Prerequisites
5-
AWS Account: Ensure you have an AWS account with appropriate permissions.
6-
Install Required Tools: Terraform, AWS CLI, and kubectl should be installed on your local machine.
4+
For new or existing projects, especially ones that have PII data (think health and financial services) Flightdeck provides a powerful, enterprise ready platform to begin building or migrating enterprise-grade applications. Flightdeck has already been used for many in education, health, and financial industries just to name a few.
75

8-
# TODO -- these steps are an example of format.
9-
## Step 1: Network Setup
6+
This guide walks through a linear process of deployment based on the (AWS Platform Guide)[https://thoughtbot.atlassian.net/wiki/spaces/APG/overview]. It is highly recommended to read through each relevant section to understand the nuances of the steps this tutorial outlines.
107

11-
Deploy Network Module: Use the Flightdeck network module to set up your VPC, subnets, and other network-related configurations. This is a foundational step before deploying an EKS cluster.
12-
Module: Flightdeck provides a network module for this purpose.
8+
## Steps
9+
* (Platform Dependencies)[https://thoughtbot.atlassian.net/wiki/spaces/MC/pages/104824833/Platform+Dependencies].
10+
* Create email groups for AWS root users.
11+
* Create source code repositories -- for details on the repos needed, see (Repository Conventions)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/10649919].
12+
* Create password vault.
13+
* Create management AWS account.
14+
* Register or delegate domains.
15+
* (Launch Control Tower)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/11239471].
16+
* (Launch Customizations for Control Tower)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/86999041].
17+
* (Set up accounts)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/11173895].
18+
* (Configure Single Sign On)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/86933512].
19+
* Create email groups for permission sets.
20+
* Configure SAML for SSO.
21+
* Configure SCIM for SSO.
22+
* Configure DNS for domains.
23+
* Continuous Integration and Deployment (CI/CD) for infrastructure
24+
* (Provision Platform Resources)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/11304961/Install]
25+
* Create users for developers.
26+
* Define infrastructure for first application.
27+
* Implement CI/CD for first application.
28+
* Define SLO agreement.
29+
* Define high level policies for security and compliance.
30+
* Discuss backup and disaster recovery plan.
31+
* Implement SRE infrastructure.
32+
* Implement automated policies for security and compliance.
33+
* Implement centralized backup and recovery.
1334

14-
Step 2: EKS Cluster Setup
35+
## Details
1536

16-
Create EKS Cluster: You'll need to manually set up an EKS cluster as Flightdeck does not provide a direct module for this.
17-
Module: Use a Terraform module from the Terraform Registry, such as terraform-aws-modules/eks/aws, for creating the EKS cluster.
37+
### Platform Dependencies
38+
The Landing Zone is the start URL for users to access the organization's AWS accounts.
1839

19-
Step 3: Deploying Flightdeck Modules
40+
Flightdeck uses (Control Tower)[https://aws.amazon.com/controltower/] to build a Landing Zone implementing security best practices and reliable workload isolation. This provides a quick starting point for a multi-account setup while still allowing for significant customization and expansion later.
41+
Rather than managing individual IAM users, it is suggested to use (AWS SSO)[https://aws.amazon.com/single-sign-on/] to manage users centrally and integrate with existing identity stores like a Google or Microsoft user directory.
2042

21-
Platform Setup: Once the network and EKS cluster are in place, use various Flightdeck modules to deploy and configure your Kubernetes environment.
22-
Modules: Flightdeck includes modules for different platform components (like ingress, monitoring, etc.). Deploy these modules as per your requirements.
43+
Flightdeck also uses (Customizations for Control Tower)[https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/] to configure (account baselines)[https://docs.aws.amazon.com/controltower/latest/userguide/terminology.html] and deploy (service control policies)[https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html].
44+
45+
### Accounts and Network
46+
In order to fully deploy the Flightdeck platform, it is recommended to set up the (conventional accounts)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/10649900] in addition to the standard accounts using the (landing zone repository template)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/14680065]. It may take some time for all the required accounts to be provisioned. Once all the accounts are fully enrolled, next step is to create (VPC networks)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/11304982].
47+
In the (infrastructure repository)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/10649919] for the organization create Terraform root modules for managing VPCs and related networking resources. Diagrams of the network and account structure can be provided to security teams for compliance framework purposes.
2348

24-
Step 4: Application Deployment
49+
### Ingress Stack
50+
In the (infrastructure repository)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/13599104 for the organization, you can create Terraform root modules for managing ingress resources, including hosted zones, SSL certificates, load balancers, target groups, and DNS aliases. In order to provision the ingress stack, at least one hosted zone is required. For more information on configuring hosted zones see (DNS administration)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/11173932].
2551

26-
Deploy Applications: With your Kubernetes environment ready, you can now deploy your applications onto the cluster.
52+
Flightdeck includes a (Terraform module)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/14450709] for provisioning an entire ingress stack, including:
53+
* An (application load balancer)[https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html] for handling incoming requests.
54+
* An (ACM certificate)[https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html] for encrypting requests using TLS.
55+
* A (Route 53 alias)[https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-choosing-alias-non-alias.html] to publish a DNS address for the load balancer.
56+
* (Target groups)[https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html] for the clusters in this ingress stack.
2757

28-
Post-Deployment
58+
### Flightdeck Platform
59+
Flightdeck is a platform for deploying and managing applications on Kubernetes. Flightdeck consists of Terraform modules for deploying a curated set of preconfigured open source projects and AWS products.
2960

30-
Monitoring and Management: Set up monitoring and management tools as provided or recommended by Flightdeck modules.
31-
Security: Ensure all aspects of your deployment are secure and compliant with your organization's standards.
61+
In order to deploy Flightdeck, you'll first need Kubernetes clusters. On AWS, Flightdeck is designed to deploy to AWS's EKS platform. Flightdeck contains a (cluster Terraform module)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/14680073] capable of setting up compatible EKS clusters.
62+
Create a root module for each phase of the software development lifecycle to deploy an (EKS cluster)[https://docs.aws.amazon.com/eks/latest/userguide/clusters.html] and (managed node groups)[https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html].
63+
Finally, deploy Flightdeck for the sandbox and production clusters using the (workload platform module)[https://thoughtbot.atlassian.net/wiki/spaces/APG/pages/14680081].
3264

33-
## Further Information
65+
### Monitoring Set Up
66+
(Grafana)[https://grafana.com/] is recommended to monitor infrastructure and applications. AWS's managed services can be leveraged for deploying centralized Prometheus and Grafana instances. Flightdeck can forward time series data from its federated Prometheus instance to an AWS Managed Prometheus instance for long-term storage. This instance can also be used as a data source for AWS Managed Grafana
67+
68+
## Further Platform Information
3469
- [AWS](./aws/README.md)
3570
- [Other](./platform/README.md)
3671

getting-started/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ terraform {
1212

1313
# Add the AWS provider
1414
provider "aws" {
15-
region = "us-east-1"
15+
region = "ADDME"
1616
profile = "ADDME"
1717
}
1818

0 commit comments

Comments
 (0)