Four-Project Series

Internal Developer Platform on AWS you own this product

prerequisites
basic TypeScript • intermediate Node.js • basic Git • intermediate AWS
skills learned
define infrastructure with TypeScript • provision infrastructure with CDKTF • deployment pipelines with CodeBuild • design APIs

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


Welcome to BuildIT. You’ve recently been hired as the sole DevOps engineer for this fast-growing digital agency that builds websites and applications for its clients. In this series of liveProjects, you’ll help BuildIT avoid bottlenecks in deployment by providing an Internal Developer Platform (IDP) that enables developers to deploy application environments on their own.

You’ll begin the construction of the IDP by automating the setup of BuildIT’s infrastructure and defining it using CDK for Terraform (CDKFT), a popular infrastructure as code (IaC) tool. To further that automation, you’ll build a TypeScript API that runs the CDKTF commands programmatically. You will then abstract the API further using a simple, user-friendly web interface.

Once the skeleton of the IDP is complete, you’ll use Passport.js to implement password- and token-based authentication, helping to manage costs by ensuring developers are only keeping environments they’re actively using. Lastly, you’ll add client-side validation to minimize potential for application failure. By the end of this series, you’ll have practical experience building a robust, scalable IDP using CDK for Terraform on AWS.

These projects are designed for learning purposes and are not complete, production-ready applications or solutions.

Struck a good balance of showing the way but leaving enough for the reader to go after explanations and actually think for themselves.

Gabriel Silva, Senior Cybersecurity Engineer, Blu

Manning author Daniel Li shares what he likes about the Manning liveProject platform.

here's what's included

Project 1 Deploy with CDK for Terraform

Congratulations! You’ve recently been hired as the sole DevOps engineer for BuildIT, a fast-growing digital agency that builds websites and applications for its clients. Your first task is to automate the setup of its infrastructure. You’ll write a set of TypeScript configurations for CDK for Terraform (CDKTF), a popular infrastructure as code (IaC) tool, establishing a deployment pipeline on AWS that detects changes to a specific branch of a sample Git repository and automatically deploys new versions of the application to Amazon Elastic Container Service (ECS). When you’re done, you’ll have upgraded BuildIT’s infrastructure with automated deployment that will scale with its success.

Project 2 Create a Self-Service Platform

As the sole DevOps engineer for BuildIT, a fast-growing digital agency that builds websites and applications for its clients, your task is to create a self-service platform that enables the development team to deploy their own test/developmental environment (instead of asking you to do it for them). You’ll build a TypeScript API that will interface with a simple frontend UI (provided to you), further automating a semi-automated CDKTF (CDK for Terraform) workflow. When you’re done, you’ll have built a simple, user-friendly, interface that empowers developers to create, view, and delete environments on their own—leaving you free to focus on more productive pursuits.

Project 3 User and Cost Management

BuildIT, a fast-growing digital agency that builds websites and applications, has a basic Internal Developer Platform (IDP) consisting of an API and a simple web UI that interfaces with the API. Your job, as BuildIT’s sole DevOps engineer, is to manage AWS costs by eliminating IDPs that are left idle. You’ll use Passport.js to incorporate an authentication system on top of the IDP to keep track of who’s responsible for each environment, ensuring that developers only keep environments they’re actively using and destroy them when they’re finished. You’ll also record environment costs and filter them by developer with Cost Allocation Tags, viewing those costs in reports on AWS Cost Explorer. By the end, the agency will thank you for all the money you’re saving it!

Project 4 Developer-Defined Environments

You’re the sole DevOps engineer at BuildIT, a fast-growing digital agency that builds websites and applications for its clients. The company has an automated infrastructure with a simple user-friendly interface and user authentication system that constitutes an Internal Developer Platform (IDP). But as the IDP stands, one typo or missed configuration option can lead to application failure. Your task is to minimize these potential problems by creating a pipeline that parses BuildIT’s infrastructure CDKTF code and populates a DynamoDB table with the list of found environment types. You’ll use the entries in the database to populate a dropdown in the UI for selecting the environment type and a table of required configurations. When you’re done, you’ll have implemented client-side validation—and taken BuildIT’s IDP from rudimentary to robust.

book resources

When you start each of the projects in this series, you'll get full access to the following book for 90 days.

choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Internal Developer Platform on AWS project for free

A very well thought out project, with a clear learning path.

Richard Vaughan, CTO, Purple Monkey Collective

project author

Daniel Li
Daniel Li is a generalist staff software engineer who has nearly a decade of experience spanning front-end, back-end, system administration, DevOps, and platform engineering. He’s the author of Building Enterprise JavaScript Applications, which explains how various tools in the JavaScript ecosystem work together. Daniel is a regular speaker at meetups and conferences, including PlatformCON.

Prerequisites

These liveProjects are designed for platform engineers, DevOps engineers, and cloud engineers with basic skills in TypeScript and web development, and an intermediate level of knowledge of AWS. To begin these liveProjects you’ll need to be familiar with the following: TOOLS
  • Basic Git & GitHub
  • Basic HTML
  • Basic CSS
  • Basic JavaScript
  • Basic TypeScript
  • Intermediate Node.js
  • Intermediate AWS (experience with IAM, VPC, EC2, Application Load Balancer, CodeBuild, DynamoDB, ECR, and ECS)
  • Basic React.js (Optional)
  • Basic Docker
  • Basic SQLite3
TECHNIQUES
  • Infrastructure as Code
  • Container Orchestration
  • Automation pipeline
  • Web development
  • Authentication with Password.js
  • Authentication with JSON Web Tokens (JWT)
  • Cost management and reporting

you will learn

In this liveProject series, you’ll learn to build an Internal Developer Platform (IDP) using Cloud Development Kit for Terraform (CDKTF).

  • Use CDKTF with TypeScript to define infrastructure on AWS
  • Use AWS CodeBuild to build a GitOps pipeline
  • Manage infrastructure using CDKTF
  • Use docker to build container images and push them to Amazon ECR
  • Design an API
  • Build an API with Express.js and TypeScript
  • Use Node.js' Child Processes API to run background tasks
  • Update the web UI with React.js
  • Use Passport.js to implement authentication
  • Use Cost Allocation Tags to track costs
  • View reports on AWS Cost Explorer
  • Use DynamoDB to keep a list of environments and environment types
  • Use JSON Schema to define the shape of an object

features

Self-paced
You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.