arrow-left

All pages
gitbookPowered by GitBook
1 of 6

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Learning Outcomes

hashtag
Testing

hashtag
Deployment

  • resources

    • hashtag
      An example of the process of setting up a CDK project

    Setting Up and Authorising AWS CLIarrow-up-right

    week08-project04-test-deploy

    project

    hashtag
    Project

    Your task this week is to deploy and test the e-commerce app you have completed in the previous two weeks.

    hashtag
    Spike

    Before you start you need to create a testing and deployment plan. We would like you plan a testing strategy that will have broad coverage of your project. The tools we would like you to use to achieve this can include Cypress, Postman and the Node built in testing library.

    We would also like you to deploy this project using an EC2 instance for you server and a S3 bucket to serve your static files.

    hashtag
    Questions to consider

    • What parts of the application logic are the most critical to cover with unit tests?

    • How will you mock external dependencies (like databases or APIs) during unit testing?

    • What are the key user journeys and flows within the application that must be covered by end-to-end tests?

    hashtag
    Acceptance Criteria

    hashtag
    Stretch

    Where will the code that represents your infrastructure live and how will it be organised?
  • How will you manage configuration variables for different environments (development, staging, production)?

  • What are the different AWS products you will need to configure to make your deployment successful.

  • Week of October 28th

    This week focuses on testing, deployment, and optimization of the e-commerce web application developed over the past two weeks. The emphasis is on implementing comprehensive testing strategies, deploying the full-stack application to AWS, and setting up continuous integration and deployment pipelines.

    hashtag
    Workshops

    • .NETarrow-up-right

    hashtag
    Execute Program

    • Finish previous courses

    hashtag
    Topics

    • Writing and organizing unit tests, integration tests, and end-to-end tests

    • Mocking external dependencies in tests

    • Understanding and configuring different deployment environments (development, staging, production)

    hashtag
    Project

    • Develop a comprehensive testing strategy for the e-commerce application

    • Implement tests using Cypress, Postman, and Node's testing library

    • Create a deployment plan for AWS infrastructure

    hashtag
    Stretch Goals

    • Set up a GitHub Actions CI/CD pipeline for automatic deployment on push to main

    • Implement staging environments in addition to development and production

    • Optimize application performance for production environment

    hashtag
    Additional Skills

    • Code organization and modularization for testability

    • Advanced TypeScript usage in testing and deployment scripts

    • Understanding of cloud architecture and best practices

    This week brings together all aspects of the software development lifecycle, from testing to deployment, providing a holistic view of bringing a web application to production. It emphasizes the importance of thorough testing, secure and scalable deployment practices, and the use of modern DevOps tools and techniques.

    Infrastructure as Code concepts and implementation with AWS CDK
  • AWS resource provisioning and configuration (EC2, S3, security groups)

  • Environment variable management across different deployment stages

  • Continuous Integration and Continuous Deployment (CI/CD) pipelines

  • Optimizing applications for production deployment

  • AWS permissions and security best practices

  • Deploy the backend to an AWS EC2 instance
  • Host static frontend files on an AWS S3 bucket

  • Set up and configure necessary AWS resources (e.g., security groups, IAM roles)

  • Implement Infrastructure as Code using AWS CDK

  • Configure environment variables for different deployment stages

  • Document the setup, deployment process, and usage instructions

  • Debugging deployment issues in cloud environments
  • Writing clear and comprehensive technical documentation

  • schedule