Coder Social home page Coder Social logo

xgridinc / xc3 Goto Github PK

View Code? Open in Web Editor NEW
50.0 50.0 48.0 3.07 MB

XC3 is a cloud agnostic and risk free package offering powered by Cloud Custodian that provides resource inventory, tagging compliance, unused or invalid resources cleanup, account maintenance, cost control, backups, monitoring and alerting.

License: Apache License 2.0

Jinja 4.39% HTML 0.22% JavaScript 0.30% HCL 27.87% Shell 6.22% Smarty 1.87% Python 59.12%
cloud control cost optimize

xc3's People

Contributors

dependabot[bot] avatar faheem-khau9 avatar kashan-01 avatar muhammad-irfan-xgrid avatar muhdsaad avatar samanxgrid avatar waji46 avatar yaseenzafar123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

xc3's Issues

Deploy XC3 and understand XC3

User stories

#1 As a DevOps Engineer, I have to deploy XC3 and understand the working of XC3. Present the demo of XC3.

Acceptance Criteria

What must be achieved to consider this story complete?

  • Clone with GitHub repo
  • Follow Installation guide to deploy XC3 in development envirement
  • Test deployed XC3 in dev environment
  • understand the XC3 Development environment from infrastructure diagram and code
  • Destroy infra and deploy in production environment
  • Test the XC3 in deployment environment
  • understand the XC3 production from infrastructure diagram and code
  • Discuss queries related to XC3 and prepare demo

Create a document for doing R&D on Unit Testing V2 Plan

User stories
Develop a comprehensive R&D document outlining the Unit Testing V2 Plan, including a detailed analysis of various approaches that can be utilized and effectively implemented.

Acceptance Criteria

  • Documentation

Resolve Grafana Dashboard issue

User stories

As a DevOps Engineer, my task is to resolve the dashboard population issue. The dashboard is not populating the data to other devices.

Acceptance Criteria

  • Populate the data to dashboard
  • Check the timing parameter and update it such that it takes value from AWS
  • Export the dashboard locally
  • Login to the server and copy the contents to home-dashboard.json
  • Check to see if the data is visualizing normally

Resolve PR conflicts from feature branch to main branch

User stories

As a software developer, I want to resolve PR conflicts from a feature branch to the main branch, so that I can merge the feature branch into the main branch.

Acceptance Criteria

  • Identify the conflicting files and lines of code between the feature branch and the main branch.
  • Manually resolve the conflicts by modifying the conflicting files.
  • Ensure that the resolved code is reviewed, approved, and merged into the main branch.
  • Test the merged code to ensure it functions as expected.
  • Close the feature branch after successful merge.

Resolve aws cost explorer and iam permission issues for the XC3 repo contributors

User stories

As a contributor to the XC3 repository, I want to resolve AWS billing and IAM permission issues, so that I can effectively collaborate and contribute to the project without any obstacles related to AWS services.

Acceptance Criteria

  • Check with Xmops to resolve the permission issues
  • Identify and apply related permission set on AWS billing and IAM resources.
  • Apply the permission set on each individual Organization OUs
  • Test to check if Billing information and IAM roles, policies is accessible for the XC3 contributors

Add changelog.md in main and develop branch

User stories

Add changelog.md file in the main and develop branch to document the version of the repository and maintain the version history in a better way

Acceptance Criteria

  • Documentation

Update region information with region name in grafana

User Story:

As a Grafana administrator, I want to update the region information with the region name in Grafana, so that I can accurately represent the geographical data in my dashboards.

Functional Requirements:

  • Use the Grafana administrative interface to access the region information settings.
  • Locate the region field in the Grafana settings.
  • Update the region field with the appropriate region name.
  • Save the changes to ensure the updated region information is persisted.
  • Verify that the updated region name is displayed correctly in the Grafana dashboards.

Implementing Threshold-Based Alerting Workflow in Grafana for XC3 to monitor costs of services/resources

User stories

As a DevOps Engineer, I want to implement the alerting workflow in Grafana Dashboard so the user can be notified whenever AWS Cost Metrics meets a predefined threshold.

Acceptance Criteria

What must be achieved to consider this story complete?
To consider this story complete, the following objectives must be achieved:

  • Implement an end-to-end alerting mechanism: Develop a comprehensive system that covers all stages of the alerting process, from data collection to generating alerts.

  • Define the threshold criteria: Determine the specific conditions or values that need to be met to trigger an alert. This could involve setting thresholds based on certain metrics or variables.

  • Generate alerts: Once the threshold is met, the system should promptly generate alerts. This could involve generating notifications, messages, or any other form of communication that informs relevant parties about the alert.

  • Send alerts through communication channels: Establish the necessary integration with relevant communication channels, such as email, Slack, or any other relevant channel. Ensure that the alert information is effectively transmitted to the appropriate recipients.

  • Test and validate the alerting mechanism: Conduct thorough testing to ensure the system functions as intended. Validate that alerts are generated correctly and delivered to the correct channels, and address any potential issues or bugs that may arise during the testing phase.

  • Document the implementation: Create detailed documentation outlining the steps taken to implement the alerting mechanism. This will serve as a reference for future maintenance, troubleshooting, and enhancements.

  • Which open-source libraries are you using to implement this user story? (Answer cannot be empty or N/A)

    • Update the libraries you will be using
  • Functional requirements

    • Implementing an end-to-end alerting mechanism that covers all stages of the alerting process.
    • Defining the specific threshold criteria or conditions that trigger the alerts.
    • Generating alerts promptly when the threshold is met.
    • Sending the alert information to relevant communication channels, such as email, SMS, or instant messaging services.
    • Ensuring the proper integration and functionality of the communication channels to transmit the alerts effectively.
    • Providing a means to configure and customize the alerting system to accommodate different requirements.
    • Handling and addressing potential errors or exceptions that may occur during the alerting process.
    • Ensuring the scalability and performance of the alerting mechanism to handle large volumes of data and alerts.
  • Inputs

    • Make a parameterized variable for the threshold
  • Outputs

    • Alerts
  • Testing

    • Perform unit testing of the alerting mechanism and underlying infrastructure
  • Documentation

    • A detailed README should be created in the folder of the feature created outlining the steps taken to implement the alerting mechanism. This will serve as a reference for future maintenance, troubleshooting, and enhancements.

Implement Project-Level Cost Breakdown Feature for Resource Expenses

User stories

As a DevOps engineer, I will work on a feature to break down cost on the project level where users can see all resources cost under a single project.

Acceptance Criteria

  • Develop and deploy the cost breakdown feature:
    Implement the necessary functionality to break down the cost of resources within a project. This may involve creating new code, modifying existing code, or integrating with relevant APIs or services.

  • Ensure accurate cost calculations:
    Verify that the cost breakdown accurately reflects the expenses incurred by each resource within the project. Conduct thorough testing and validation to ensure the calculations are correct and reliable.

  • User interface integration:
    Integrate the cost breakdown feature seamlessly into the user interface, making it accessible and intuitive for users. Consider usability, design consistency, and any necessary user feedback or notifications.

  • Test and debug:
    Conduct comprehensive testing to identify and resolve any issues or bugs that may arise during the implementation process. Ensure the feature functions as expected across different environments and scenarios.

  • Documentation and knowledge sharing:
    Create clear and concise documentation that explains the functionality and usage of the cost breakdown feature. This documentation should serve as a resource for both users and fellow team members. Share knowledge about the feature with relevant stakeholders to facilitate its adoption and understanding.

  • Review and acceptance:
    Collaborate with relevant stakeholders, such as product owners, managers, or other team members, to review the implemented feature. Seek their feedback, make any necessary adjustments, and obtain their acceptance before considering the story complete.

  • Which open-source libraries are you using to implement this user story? (Answer cannot be empty or N/A)

  • Functional requirements

    • User Interface:
      Develop a user interface component that allows users to select a project and view the cost breakdown of all resources associated with that project.

    • Cost Calculation:
      Implement the logic to accurately calculate the cost of each resource within the project based on relevant factors such as usage, pricing models, and any applicable discounts.

    • Data Retrieval:
      Integrate with the appropriate data sources (e.g., cloud service provider APIs, billing systems) to retrieve the necessary resource and cost information for the selected project.

    • Filtering and Sorting:
      Provide options to filter and sort the resource cost breakdown based on different criteria such as resource type, cost, or usage.

  • Inputs

    • Project Selection:
      The user should be able to select a specific project for which they want to view the cost breakdown.
  • Outputs

    • Cost Breakdown Visualization:
      The system should present the cost breakdown of resources associated with the selected project in a clear and easily understandable manner, such as through tables, charts, or graphs.

    • Detailed Resource Information:
      Users should be able to access detailed information about each resource, including its name, type, usage, and associated cost.

  • Testing

    • Unit Testing:
      Test individual components and functions responsible for cost calculation, data retrieval, and filtering/sorting to ensure they function as expected.

    • Integration Testing:
      Verify the integration between the cost breakdown feature and other relevant systems or APIs, ensuring data is retrieved accurately and calculations are correct.

    • User Interface Testing:
      Validate the user interface's responsiveness, accessibility, and usability, making sure it provides the desired functionality and delivers a satisfactory user experience.

    • End-to-End Testing:
      Conduct comprehensive testing to ensure all components of the cost breakdown feature work together seamlessly and produce the expected results.

  • Metrics

    • Resource Cost Accuracy:
      Measure the accuracy of the cost breakdown calculations by comparing them against the actual billing information.
  • Documentation

    • Feature Overview: Provide an overview of the cost breakdown feature, explaining its purpose, benefits, and how it aligns with user needs.

    • Installation and Setup: Provide step-by-step instructions for installing and configuring the necessary dependencies or components required to use the feature.

    • User Guide: Create a comprehensive user guide that explains how to access and utilize the cost breakdown feature, including instructions on selecting projects, interpreting the cost breakdown, and leveraging filtering/sorting options.

    • API Documentation (if applicable): If the cost breakdown feature interacts with external APIs, document the API endpoints, parameters

Automating initial Commands for XC3

User stories

As a DevOps engineer, I want to automate the initial commands using scripts.

Acceptance Criteria

All commands should run properly and Infrastructure should be deployed.

  • Which open-source libraries are you using to implement this user story? (Answer cannot be empty or N/A)

  • Functional requirements

  • Infrastructure should be deployed properly

  • Documentation
    Updated the Readme

Resolve the list linked lambda issue where list account of aws organization is unable to retrieve the account details

User stories

As a cloud engineer, I want to resolve the linked lambda issue faced by students, so that I can understand and fix the problem.

Acceptance Criteria

  • Identify the specific issue with the linked lambda function.
  • Research and gather relevant information about the issue.
  • Determine the root cause of the problem.
  • Develop a solution to resolve the linked lambda issue.
  • Test the solution to ensure it resolves the issue effectively.

Use environment flag as condition in terraform code to remove private instance from XC3 project for Development purpose

User stories

As an XCBG Cloud Engineer, I want to add a condition to remove a private instance from the XC3 project in Terraform and use public instance for Development purpose

Acceptance Criteria

  • The condition for removing a private instance should be configurable through variables or input parameters in the Terraform code.
  • Add condition in a way such that for dev environment, Load balancer and private subnet is removed for dev flag
  • The Terraform code should handle the removal of the private instance gracefully, ensuring any dependencies or associated resources are properly managed.
  • Test the code to verify if it working properly or not.
  • The code changes should be properly reviewed and approved by a peer or team lead.

Implement Unit Testing Version 2

User Stories:

As a DevOps Engineer, I want to implement unit testing v2 for our Infrastructure as Code (IaC) to ensure its sanity and reliability.

Acceptance Criteria:

  • Which open-source libraries are you using to implement this user story? (Answer cannot be empty or N/A)

  • Functional requirements

    • Implement unit testing for IaC.
  • Inputs

  • Outputs

  • Testing

  • Metrics

    • Ensure the existing functionality remains intact when new infrastructure is added.
  • Documentation:

Identifying Missing Unit Tests for XC3 Unit Testing.

User stories

#1 As a DevOps Engineer, I have to identify any missing unit tests for XC3 unit testing.

Acceptance Criteria

What must be achieved to consider this story complete?

  • Assessment of existing unit tests completed.
  • Identification of any missing unit tests required.

Deployment of XC3 infra with new code.

User stories

As a DevOps Engineer, I want to deploy XC3 infra with new/updated code.

Acceptance Criteria

  • Which open-source libraries are you using to implement this user story? (Answer cannot be empty or N/A)

  • Functional requirements

  • Inputs
  • Outputs
  • Testing
  • Metrics
  • Documentation

Hotfix/v1.0.3: Updated the Readme, Init.sh, config.sh

User stories

As a devops engineer, I want to address an issue, that we were creating the keypair using the project variable, and we are getting its value using the namespace variable, which can cause conflicts if namespace and project variables have different values. so i update the congfig.sh and init.sh file, and also updated the readme file.

Acceptance Criteria

  • Which open-source libraries are you using to implement this user story? (Answer cannot be empty or N/A)

  • Functional requirements

    • Keypair should be created successfully and Ec2 should be accessible using the keypair
  • Inputs

  • Outputs

  • Testing

    • Keypair should be created successfully and Ec2 should be accessible using the keypair
  • Metrics

  • Documentation

    • Updated the readme file.

s3 bucket backend.tf issue resolution related to terraform

User stories

As a developer, I want to resolve backend issue related to terraform. Since it is not managing the state file of terraform when a deployment is done using pipeline.

Add more as required

Acceptance Criteria

  • Determine the appropriate solution or fix for the identified issue.
  • Implement the necessary changes to resolve the issue in the backend.tf file.
  • Ensure that the S3 bucket backend configuration allows Terraform to store the state file securely and efficiently.
  • Test the updated configuration by initializing Terraform and validating that it connects to the S3 bucket backend without errors.

Implement EC2 Instance Connect Endpoint (EIC Endpoint) in our internal AWS account

User stories

As a cloud engineer, I want to implement EC2 Instance Connect Endpoint (EIC Endpoint) in our internal AWS account so that private instances can be accessed without bastion hosts.

Acceptance Criteria

  • Ensure that you have the necessary IAM permissions
  • Identify the private EC2 instances that you want to implement EIC Endpoiint
  • Do the necessary configurations and test the system
  • What resources need to be removed
  • What resources need to be added
  • New architecture diagram of XC3

Functional requirements

  • Use AWS CLI to configure EC2 Instance Connect Endpoint for the AWS account.
  • Ensure that SSH access to EC2 instances is restricted to IAM users with the necessary permissions.
  • Validate that EC2 instances can be accessed securely using EC2 Instance Connect through CLI
  • Test through pipeline

The init script cannot create an S3 bucket in us-east-1

About Bug or problem

The init script cannot be executed for the region us-east-1.
It cannot create the S3 bucket because the region is invalid for the LocationConstraint.

From AWS CLI Documentation

LocationConstraint -> (string)

Specifies the Region where the bucket will be created. If you are creating a bucket on the US East (N. Virginia) Region (us-east-1), you do not need to specify the location.

Steps to reproduce

  1. Change region in the config.sh script to us-east-1
  2. Run init.sh

GitHub User Story Template

User stories

I want to create a project timeline Excel sheet that outlines the implementation plan for the XGrid Cloud Control solution for each quarter of 2023. This will include defining the workflows to be implemented in each quarter, gathering feedback during the last quarter, and conducting reviews and testing.

Acceptance Criteria

  • The project timeline Excel sheet should be created and include the implementation plan for each quarter of 2023.
  • The implementation plan should outline the workflows to be implemented in each quarter.
  • Feedback gathering should be scheduled for the last quarter.
  • Reviews and testing should be conducted during the last quarter.

Update Architecture Diagram

User stories

Update the architecture diagram showing the flow of SQS and SES through lambda function for better and clear visibility of the flow

Acceptance Criteria

  • Documentation

Student accounts setup

As a devops engineer we need to setup XC3 student accounts to complete the module we'assigned to the students.

Run integration testing through codepipeline

User stories

As a DevOps Engineer, I want to automate integration testing through CodePipeline, so that I can ensure the reliability and compatibility of our application across different stages of the deployment pipeline.

Acceptance Criteria

  • The integration tests should cover critical paths and verify the interactions between different components or services.
  • First run the lambda integration test through codepipeline to check if it is successful.
  • Configure CodePipeline to trigger the integration tests after each deployment to test environment.
  • After successful test, the pipeline should destroy the test environment through pipeline

AWS Budgets and SNS Topics in All Regions

User stories

#1 As a cloud administrator, I want to create AWS Budgets in all regions (if not created), so that I can monitor the costs and usage across the AWS accounts.

#2 As a cloud administrator, I want to create SNS Topics in all regions (if not created), so that I can receive notifications and alerts related to AWS Budgets.

Acceptance Criteria

  • Verify if AWS Budgets have been created in all regions.
  • Create AWS Budgets in any regions where they are missing.
  • Check for existing SNS Topics in all regions.
  • Verify subscriptions associated with the provided email address.
  • Add the provided email addresses (including "Saman" and "Usman Zahid") to the necessary SNS Topics.

Fetch data from Grafana and create dummy data from it

User stories

As a Grafana user, I want to fetch data from Grafana using its API, so that I can generate dummy data for testing purposes.

Acceptance Criteria

  • Use the Grafana API library to fetch data from Grafana.
  • The data should be retrieved from a specific time range and specific Grafana panels or dashboards.
  • The fetched data should be stored in a suitable format like json for further processing.
  • Convert json files data to dummy data

Deploy XC3 infrastructure and note down the issues

User stories

As a devops engineer, I want to deploy the XC3 infrastructure and test it, note down all the issues so that the it can be further improved.

Acceptance Criteria

  • Which open-source libraries are you using to implement this user story? (Answer cannot be empty or N/A)

  • Functional requirements

    • Will deploy the XC3 infrastructure.
    • Will test the XC3 deployment
  • Inputs

  • Outputs

  • Testing

    • Will test the Xc3 deployment using Grafana.
  • Metrics

  • Documentation

    • Will document the issues i am facing and note down the mistakes in readme file.

Creating IAC code pipeline

As a DevOps Engineer, I'm creating codepipeline to automate the deployment process of XC3 infrastructure. There are different stages in codepipeline to build and automate the whole process.

Infra should be tested in Team01 account using an IAM user with restricted Access

User stories

As a DevOps engineer, I want to test the infrastructure in the Team01 AWS account using an IAM user with restricted access, so that I can ensure that the infrastructure is secure and working as intended.

Acceptance Criteria

  • The IAM user with restricted access should be created and configured to only have the necessary permissions to test the infrastructure.
  • The infrastructure should be tested using the IAM user to ensure that it is working as intended.
  • Check if the deployment is done without any problem
  • Test the lambdas and populate the lambdas

Dev compliance requirements

User stories
As a DevOps engineer, I want to implement the following changes that will make my infrastructure compliant against company policies.

Acceptance criterions

  • Configure WAF v2 settings for enhanced security
  • Update SSH settings from '0.0.0.0/0' to 'restricted' access
  • Implement CloudWatch alarms for proactive monitoring
  • Establish CPU utilization monitoring for performance analysis

Configure Pipeline: Link Develop Branch, Add Test Stage, Manual Approval, and Create Terraform Test Variables File

User stories

As a DevOps Engineer, I want to link the develop branch of the new public repo of XC3 to the pipeline source stage and add a test stage before the production stage. I also want to include a manual approval stage before the production stage. Additionally, I need to create a terraform.test.tfvars file in the root directory of the repository, which will be used in the pipeline test stage as a -var-file when deploying Terraform to the test environment.

Acceptance Criteria

  • The develop branch of the new public repo of XC3 should be configured as the source for the pipeline.
  • The test stage should be added to the pipeline configuration before the production stage.
  • A manual approval stage should be included after the test stage and before the production stage.
  • The terraform.test.tfvars file should be created in the root directory of the repository.
  • The terraform.test.tfvars file should be used as a -var-file during Terraform deployment to the test environment.

Unit Testing Version 2

User stories

As a DevOps Engineer, I want to perform unit testing of AWS resources created through using pytest, so that I can ensure the correctness and functionality of the infrastructure code.

Acceptance Criteria

  • Use pytest as the testing framework.
  • Use the AWS SDK for Python (Boto3) to interact with AWS services and retrieve information about the created resources.
  • The unit tests should cover all essential aspects of the AWS resources, such as verifying the existence, attributes, and configurations of the created resources.
  • Capture and log test results and any failures or errors encountered during testing.

Mechanism to push our code in repo (Making sure the flow is easy), take branch from develop

User stories

I want to create a mechanism to push our code in repo (Making sure the flow is easy), take branch from develop

Acceptance Criteria

  • The developer should be able to commit and push their changes to the new branch without encountering any errors.
  • The developer should be notified of any errors or issues that occur during the push process.
  • All changes pushed to the new branch should be reviewed and approved before being merged into the develop branch.
  • Documentation

Implement auto-tagging feature for EC2 and EKS instances by utilizing the email addresses of all stakeholders through SES.

User stories

Currently, there is a need to implement an auto-tagging feature for both EC2 (Elastic Compute Cloud) and EKS (Elastic Kubernetes Service) instances. This feature will utilize the email addresses of all stakeholders through SES (Simple Email Service) for effective and efficient tagging.

Acceptance Criteria

  • Which open-source libraries are you using to implement this user story? (Answer cannot be empty or N/A)

  • Functional requirements

    • Develop a solution to automatically tag EC2 and EKS instances.
    • Utilize the email addresses of all stakeholders for tagging purposes.
    • Integrate with SES to retrieve and manage the required email addresses.
    • Ensure that the auto-tagging feature functions correctly and accurately assigns appropriate tags to instances.
    • Test the implementation thoroughly to validate its effectiveness and reliability.
    • Provide clear documentation on how to configure and utilize the auto-tagging feature.
  • Inputs

  • Outputs

  • Testing

  • Metrics

  • Documentation

Cost optimization strategy regarding "Reserved Instances"

User stories

#1 As a DevOps Engineer, I need to research on cost optimization strategy for 'Reserved Instances'.

Acceptance Criteria

What must be achieved to consider this story complete?

  • Thorough research on AWS Reserved Instances (RIs) and their cost optimization potential.
  • Evaluate the available options and configurations for RIs
  • Document the strategy and its implementation steps for reference.
  • Present the findings and strategy to the XC3 team, addressing any queries or concerns.

Compare XC3 V1 and V2

User stories

#1 As a DevOps Engineer, I have to compare the XC3 V1 and V2. Make documentation on new features/updates we have in XC3 V2.

Acceptance Criteria

What must be achieved to consider this story complete?

  • Watch Youtube video of XC3 Demo Video 1 and Video 2
  • Go through the infrastructure Diagram of XC3
  • Check PR to know about new features of XC3 (in progress/ completed)
  • Document your findings.

Create a proposal documentation “Single AWS Account for XC3 Contributors”

User stories

As a contributor to the XC3 project, bachelor students want to have access to a single AWS account specifically dedicated to XC3 development, so that they can collaborate effectively and utilize AWS services for project-related tasks.

Acceptance Criteria

  • Consists of architecture diagram
  • Should contain previous expense through cost calculator and expected cost
  • Steps of provisioning of accounts through aws control tower
  • Details of budget alerting
  • Permission set, where admin access will be for master account and contributors would have admin access to the AWS resources
  • Distribution of team based upon region and finally SOPs

Implement Cost Breakdown Feature for Expensive Service

User stories

As a DevOps engineer, I will work on a feature to break down the cost of the expensive service where users can see all resources cost under a single expensive service.

Acceptance Criteria

What must be achieved to consider this story complete?

  • Develop a feature that enables the breakdown of costs for the expensive service:
    I will implement functionality that allows users to view a detailed breakdown of the expenses associated with the expensive service. This breakdown should provide information on individual resource costs within the service.

  • Enable users to access the cost breakdown under a single interface:
    I will ensure that users can easily access the cost breakdown information through a unified interface. This interface should provide a clear and intuitive view of the expenses associated with the expensive service.

  • Ensure accuracy and reliability of the cost breakdown:
    I will thoroughly test the feature to ensure accurate and reliable cost calculations. It is essential to validate that the breakdown accurately reflects the costs of individual resources within the expensive service.

  • Address performance considerations:
    I will optimize the feature to handle large datasets efficiently. The cost breakdown should be able to handle a significant number of resources within the expensive service without any performance issues.

  • Document the feature and provide necessary instructions:
    I will create a comprehensive document that outlines the functionality of the cost breakdown feature. This documentation should include clear instructions on how users can access and interpret the cost breakdown information.

  • Which open-source libraries are you using to implement this user story? (Answer cannot be empty or N/A)

  • Functional requirements

    • Cost breakdown feature:
      Develop a feature that breaks down the cost of the expensive service, allowing users to see the individual resource costs within the service.
    • Single interface:
      Provide a unified interface where users can access the cost breakdown information easily.
    • Accuracy and reliability:
      Ensure that the cost breakdown accurately reflects the costs of individual resources within the expensive service.
    • Performance optimization:
      Optimize the feature to handle large datasets efficiently without any performance issues.
    • Documentation:
      Create comprehensive documentation explaining the functionality and instructions for using the cost breakdown feature.
  • Inputs

    • User requests for cost breakdown:
      User input to request the cost breakdown for the expensive service.
  • Outputs

    • Cost breakdown information:
      A detailed breakdown of the costs associated with individual resources within the expensive service.
    • Unified interface:
      A user-friendly interface where users can access and visualize the cost breakdown information.
  • Testing

  • Unit testing:
    Test individual components of the feature to verify their functionality.

    • Integration testing:
      Validate the integration of the cost breakdown feature with the existing system and verify the accuracy of the cost calculations.
    • Performance testing:
      Evaluate the feature's performance by simulating a significant number of resources and verifying that it can handle large datasets efficiently.
  • Metrics

    • Cost breakdown accuracy:
      Measure the accuracy of the cost calculations by comparing the calculated costs against the actual costs of individual resources.
  • Documentation

    • Feature overview:
      Explain the purpose and functionality of the cost breakdown feature.
    • User instructions:
      Provide step-by-step instructions on how to access and utilize the cost breakdown information.
    • Configuration guide:
      Detail any necessary configurations or setup required to enable the cost breakdown feature.
    • Troubleshooting guide:
      Include troubleshooting tips and solutions for common issues that users may encounter.
    • API documentation (if applicable):
      If the cost breakdown feature provides an API for programmatic access, document the API endpoints

Resolve certificate validation issue

User stories

As a DevOps engineer, I want to resolve certificate validation issue by making change in config.sh, else make changes in IAC accordingly.

Acceptance Criteria

  • Obtain a test domain or use the parent domain for testing purposes.
  • Provision SSL certificates for the test domain using a certificate authority or a suitable method.
  • Configure the web server to enable HTTPS and utilize the newly provisioned SSL certificates.
  • Verify that the A record is resolving to the correct IP address.
  • Access the test domain using HTTPS and confirm that the SSL certificates are properly installed and functioning.
  • Perform necessary testing to ensure the functionality of the test domain.

Automating initial Commands for XC3

User stories

As a DevOps engineer, my goal is to streamline the deployment process of the XC3 infrastructure by automating it through a script. This script will gather all the necessary inputs from an input.sh file, allowing the user to easily update and customize the deployment settings. By executing the automation script, the entire deployment process will be handled automatically, relieving the user from manually performing each step.

Acceptance Criteria

All commands should run properly and Infrastructure should be deployed.

  • Functional requirements

  • Infrastructure should be deployed properly

  • Inputs

  • The user will give input in the input.sh file in the xc3/ directory

  • Outputs

  • Dns of the load-balancer

  • Testing

  • Infrastructure should be deployed properly

  • Documentation

  • Update the ReadMe file according to automation script

POC: Implement EC2 Instance Connect Endpoint (EIC Endpoint) locally

User stories

As a cloud engineer, I want to implement EC2 Instance Connect Endpoint (EIC Endpoint) in our internal AWS account so that private instances can be accessed without bastion hosts.

Acceptance Criteria

  • Ensure that you have the necessary IAM permissions
  • Identify the private EC2 instances that you want to implement EIC Endpoiint
  • Do the necessary configurations and test the system
  • Update the steps in documentation form

Functional requirements

  • Use AWS CLI to configure EC2 Instance Connect Endpoint for the AWS account.
  • Ensure that SSH access to EC2 instances is restricted to IAM users with the necessary permissions.
  • Validate that EC2 instances can be accessed securely using EC2 Instance Connect through CLI

Creating architecture diagram of dev environment.

User stories

As a DevOps Engineer, I want to create an xc3 dev architecture diagram which shows how the Grafana Dashboard will be accessed

Acceptance Criteria

  • Identify unwanted AWS resources mentioned in prod architecture and remove it in a separate diagram
  • Create a new architecture diagram for dev environment
  • Add it to the README.md file located inside root directory
  • Review from peers

Integration Testing of AWS resources

User stories

As a DevOps Engineer, I want to perform integration testing of AWS resources created using pytest, so that I can ensure the proper functionality and interaction of the resources in the AWS environment.

Acceptance Criteria

  • Open-source libraries: pytest, Boto3 (Python SDK for AWS)

Functional requirements

  • Where this test will run and how?
  • Ensure that the system under test is seamless and successful.
  • Ensure that the interactions and dependencies between AWS resources are tested thoroughly.
  • Verify that the cleanup and removal of AWS resources are executed correctly after integration tests are completed.

Unit Testing Implementation for serverless application

User stories

As a developer, I want to implement unit testing for my serverless application, so that I can ensure the correctness and reliability of the application's individual components.

Acceptance Criteria

  • Write unit tests for the individual components (functions, handlers, etc.) of the serverless application.
  • Ensure that the unit tests cover the critical functionality and edge cases of the components.
  • Execute the unit tests and verify that they pass successfully.
  • Include negative unit tests to validate error handling and edge cases.

Create a proposal doc comparing Grafana Alert vs AWS billing alerts to notify users when costs exceed a certain threshold

User stories

As a cloud cost optimization analyst, I want to create a proposal document comparing Grafana Alert and AWS billing alerts, so that I can recommend the most suitable solution to notify users when costs exceed a certain threshold.

Acceptance Criteria

  • Identify and compare the features and capabilities of Grafana Alert and AWS billing alerts.
  • Provide a detailed comparison table highlighting the strengths and weaknesses of each solution.
  • Include recommendations based on the comparison and specify the preferred solution.
  • Document the steps required to set up the recommended solution.
  • Review and proofread the document for accuracy and clarity.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.