Why AWS X-Ray?
Why AWS X-Ray?
2h 4m

This course provides detail on the AWS Developer Tool services relevant to the Developer - Associate exam.

Want more? Try a lab playground or do a Lab Challenge!

Learning Objectives

  • Introduction to AWS CodeCommit and how it can be used to manage your source code
  • Learn where AWS CodeCommit sits in a CI/CD setup
  • Understand when and where to use CodeCommit within your own development solutions
  • Introduce you to AWS CodeBuild and how it can be used to compile, build, and test your source code
  • Learn where AWS CodeBuild sits in a CI/CD setup
  • Familiarize yourself with the AWS CodeBuild service and ensure you know when and where to use it within your own software projects
  • Understand what AWS CodeDeploy is and when it should be used
  • Learn from a demonstration where we use AWS CodeDeploy to deploy our web portal project onto EC2 infrastructure. 
  • Learn the fundamentals of AWS CodePipeline
  • Understand where CodePipeline the service sits in a CI/CD setup
  • learn how you can use AWS CodePipeline to orchestrate, build and deploy a workflow for a web portal project
  • Understand the key aspects of AWS CodeStar, its benefits, and its use cases
  • Provision a full CI/CD workflow using AWS CodeStar
  • Introduce the AWS X-Ray service and the functionality that it provides.
  • Explain the functions of the AWS X-Ray service and how to use AWS X-Ray with other AWS services.
  • Demonstrate how to use the AWS X-Ray Console - highlighting key areas such as the Service Map and Tracing windows
  • Demonstrate how to implement a Docker-based Node.js application using the AWS X-ray SDK.

- [Presenter] To understand why we would consider deploying AWS X-Ray, we will step back and analyze some of the current trends that exist within software patterns and infrastructure architectures, each of which provides a motivation for using a service like AWS X-Ray. Of recent times there has been a strong progression away from monolithic architectures towards microservices. Software applications built to use in microservices have multiplied rapidly in recent years and the trend shows no signs of slowing down. A microservices architecture is a software design pattern in which a large application is decomposed into many smaller services, each with its own simple and discrete objective. The individual microservices are designed to collaborate and communicate over a network, typically using a lightweight mechanism, such as HTTP/REST with JSON. Some of this communication will be done asynchronously, a challenge in its own right. Coupled with the emergence and normality of cloud platforms, such as AWS, we are now seeing applications becoming more and more distributed and dynamic at the infrastructure layer. A single application nowadays could well be composed of hundreds of servers deployed across multiple regions, multiple physical facilities, multiple VPCs, and multiple availability zones. These architectures are highly elastic and dynamic, adjusting to application demand in real time. The following quote provided by Jeff Barr from AWS succinctly articulates the problem space. "The combination of cloud computing, microservices, "and asynchronous, notification-based architectures "has brought forth systems that have hundreds "or thousands of moving parts. "The challenge of identifying and addressing "performance issues in these complex systems "has only grown, as has the difficulty of aggregating "individual, service-level observations "into meaningful top-level results. "There has been no easy way for developers "to follow the thread as execution traverses "EC2 instances, ECS containers, microservices, "AWS database and messaging services."

About the Author
Learning Paths

Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.

He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.

Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).