GitHub Actions
- A powerful automation tool (A versatile robot assistant)
- GitHub Actions is a powerful automation tool that allows you to create custom workflows to automate your software development processes. You can use it for building, testing, and deploying your code directly from your GitHub repository.
- By integrating GitHub Actions, you can replace the need for using AWS CodeBuild, as it offers a similar set of functionalities, such as building and testing your code in a managed environment. This integration enables seamless collaboration between development and deployment processes.
- With GitHub Actions, you can create a custom workflow file (e.g., gradle.yml) to define the build environment and the steps required to build your application. Additionally, you can securely store your AWS credentials as environment variables, allowing access to necessary resources without exposing sensitive information.
EC2
- EC2 is the building where you live, providing the space and resources you need to work on your projects
- Amazon EC2 provides scalable virtual servers in the cloud, called instances, allowing you to adjust resources according to your needs.
- Instances come in various types optimized for compute, memory, storage, and GPU, and can be customized with storage, network, and security settings.
- EC2 supports auto-scaling, load balancing, and backup and recovery options for high availability and fault tolerance.
S3
- S3 is like the central warehouse that stores everything you need for your projects
- Amazon S3 is a highly durable and available object storage service designed for a wide range of use cases, including backups, archives, content delivery, and big data analytics.
- S3 supports unlimited storage, access control, versioning, and various storage classes with different performance characteristics and costs, allowing for an optimized storage strategy.
CodeBuild
- A factory where products are assembled and tested (It is substuited to Actions)
- AWS CodeBuild is a managed build service that compiles your source code, runs tests, and produces deployable software packages.
- It supports various programming languages, build tools, and frameworks, and integrates with other AWS services for seamless and automated build and deployment workflows.
CodeDeploy
- CodeDeploy is like a delivery person that ensures your products are delivered to the correct destination
- AWS CodeDeploy automates application deployments to EC2 instances, on-premises instances, or serverless Lambda functions.
- CodeDeploy provides monitoring and notifications using CloudWatch Events and Amazon SNS.
Application
- The final product or service you are creating (A complete package that customers will use)
- The Application layer consists of user interfaces, APIs, and business logic, processing user requests and delivering results.
- It communicates with infrastructure components like databases, storage, and compute resources to manage the flow of data between system components.