
I am a software engineer at Tata Consultancy Services (TCS), specializing in innovative web solutions across various domains. With over 4 years of experience, I excel in the .NET framework and Azure DevOps Services, contributing to projects that enhance user experience and efficiency. I hold a bachelor's degree in computer applications and science from DR VIRENDRA SWAROOP INSTITUTE OF PROFESSIONAL STUDIES, KANPUR. My core skills include web design, development, testing, security, analytics, and communication. Passionate about web development, I am eager to learn new skills in AI, machine learning, and data science, aiming to become a web communication specialist.
Developer
TCS
WinSCP

Visual Studio Code

PowerBI

ServiceNow

Cassandra

Visual Studio

ARM Assembly

EEPROM

UEFI
.NET Core

MySQL

AWS Cloud

Microsoft Power BI

SQL

Algorithm

C#
Working on Microsoft Azure, constructing data ingestion pipeline that handled multiple sources such as on-premises SQL, Oracle, SAP, and Salesforce.
Tata Consultancy Services
Software Engineer
Jan 2022 to Present 3 yrs 1 mo
Systems Engineering, Infrastructure as a Service (IaaS)
Graduate Trainee
Feb 2020 - Jan 2022
Systems Engineering, Documentation
Hello. This is Shuman. I'm working in TCS for the last 4 years. I started as a fresher in TCS. I got placed in 2020 in February. It's about 4 years. And in that time, I worked on an in.net project where I used to work and develop software applications based on where I worked as a developer. After that, I got a chance to work on a project in Azure, a cloud-based project, in which I used to manage pipelines, online pipelines, and data management. In that, I worked as an FTP controller, and also pipeline monitor, in which if there was an application or pipeline that failed, I used to check up on those and find out the issue about that. And then I had to rectify the problem by checking the logs on the screens after that. According to that, if the data was not getting pulled correctly, I had to manage that too. So these were the things I used to work on.
Azure service would you utilize for scaling a containerized Python application and why? For scaling a containerized Python application on Azure, we would typically utilize Azure Kubernetes. Kubernetes is easily managed by the Kubernetes service, which makes it easy to deploy, manage, and scale the containerized applications. There are some Kubernetes capabilities, such as scalability. AKS allows you to easily scale your application by adding all the necessary components. There's also container orchestration in Kubernetes, which AKS is built on, providing powerful container orchestration features like automated deployment, scaling, and management of containerized applications. Additionally, there is an integration with Azure services, which integrates well with Azure services like Azure Monitor, Azure Active Directory, and Azure Policy, making it easier to monitor, secure, and manage your applications. AKS also simplifies the process of deployment and managing continuous applications, allowing developers to focus more on writing code and less on managing infrastructure.
I'm experiencing latency issue in my Python application running on Azure. To troubleshoot the issue, I would like to identify potential bottlenecks and perform each performance issue at different layers of the application. Here are the steps I would take: 1. Check the application code. While reviewing the code, I would look for inefficient algorithms, database queries, or resource-intensive operations that could be causing latency. 2. Monitor application metrics using Azure Monitor. I would utilize metrics such as CPU usage, memory usage, request throughput, and response times to look for any spikes or abnormalities that could indicate latency. 3. Review network configurations, including virtual networks, subnets, networks, or security groups, to ensure there are no network bottlenecks or restrictions impacting application performance. 4. Check the database performance if the Python application interacts with a database. I would monitor database performance metrics, check for slow queries, indexing issues, or database connection pool limitations that could cause latency. 5. Check the scaling resources. Considering scaling up or scaling out Azure resources based on the monitoring data could involve increasing the size of virtual machines or adding more instances of the application. 6. Check the cache data and implement a caching mechanism to reduce the need for predictive computations or database queries. Azure services like Azure Cache can help improve application performance by caching frequently accessed data. 7. Implement distributed tracing using tools like Application Insights or OpenTelemetry to identify performance bottlenecks across different components of the application. 8. Perform load testing before going live. I would use tools like Apache JMeter, or Locust.io to simulate real-world traffic and identify performance bottlenecks under heavy load conditions. 9. Review Azure services limits to ensure that I am not hitting any Azure services limits such as CPU limitations, storage limits, or network bandwidth.
Enable logging and monitoring for the Python application deployed on an AKS cluster. Enable logging and monitoring for the Python application deployed on Azure Kubernetes services. The cluster involves utilizing Azure Monitor and integrating with the AKS cluster. We can use Azure Monitor for Containers. In the Azure portal, navigate to your cluster. Under the monitoring section, select insights. Click on enable to enable Azure Monitor for Containers on your AKS cluster. We can also configure logging to log events and metrics using a logging library like the Python built-in logging module or third-party libraries, such as Loguru, Structlog, or Logbook. Ensure that your application logs important events, errors, and performance metrics. Kubernetes collects logs from these teams by default. Install the monitoring agent. Install the monitor agent on your AKS cluster. This agent collects container telemetry data and sends it to Azure Monitor. Configure metrics and alerts. Define custom metrics and alerts based on your requirements for your Python application. Use Azure Monitor to create a metric alert based on thresholds for CPU usage, memory usage, request latency, or other relevant metrics. We can use instrumentation. Your Python application with application insights or OpenTelemetry. We can visualize and analyze data, enabling continuous improvement. In this, continuously monitoring, analyzing performance and behavior of your Python application. By following these steps, we can effectively enable logging and monitoring for your Python application deployed on AKS.
Concept of content implementation and the content of the machine. What mechanism would you suggest to manage Python application configuration settings in the context of CI/CD for a Python application deployed on Kubernetes? Managing configuration settings effectively is crucial. One common mechanism to manage configuration settings in Kubernetes is by using Kubernetes config maps and secrets. We can use ConfigMap to store non-sensitive configurations as key-value pairs. Create a ConfigMap in Kubernetes containing your Python application configuration settings, such as database connections, strings, AI API endpoints, feature flags, etc., and mount the ConfigMap as environment variables or volumes in your Python application container. Update the ConfigMap as needed without rebuilding or redeploying your application. We can use secrets as secrets, similar to ConfigMap, but especially designed to store sensitive information such as passwords, API keys, and TLS certificates. We can also use external configuration providers like Azure Key Vault, HashiCorp Vault, or AWS Systems Manager Parameter Store tools to manage and configure settings. Configuration management tools can use management tools like Helm or define the managed configuration settings as part of your Kubernetes deployment manifest. Helm allows you to templatize your configuration selectors and inject them into your deployment manifest. Automated deployment pipelines are also there. Integrate configuration management into your CI/CD pipelines to automate the deployment of settings along with the Python application. Use a tool like Jenkins as your DevOps or GitLab CI/CD to automate the deployments of Kubernetes manifests containing configuration settings.
To integrate Azure AD authentication in a Python based Kubernetes application, you can use Azure IoT library and Azure SDK for Python. We can start by setting up an Azure AD application in the Azure Active Directory portal. Note down the application ID and directory ID. Configure the redirect URL if your application requires it, and assign application and permissions in permissions to your Azure AD application to access Azure resources. Install Azure SDK Python using the PIP command to install Azure SDK for Python, which includes Azure identity library for authentication. Configure Kubernetes secrets. Update your Kubernetes deployment manifest, changing parameters as your AD tenant ID, client ID, client secret, and any other relevant authentication settings. Update your Python application code to authenticate with Azure AD using the Azure identity library. Use the default Azure credentials class from the Azure identity library to automatically authenticate using environment variables or managed identity for Azure CLI authentication. Azure AD authentication enables you to access Azure resources securely from your Python application, for example, using access as your key word, secrets as your storage blobs, or interact with other Azure services.
How would you design a resiliency strategy for the Python application running on a virtual machine scale set in Azure? Designing a resiliency strategy for a Python application running on a virtual machine scale set in Azure involves implementing practices and technologies that ensure high availability, fault tolerance, and scalability. We can use multiple availability zones to deploy your VMS instances across multiple zones to ensure redundancy and fault tolerance. Availability zones are physically separate data centers within an Azure region, providing higher resiliency against future failures. We can use load balancing, utilizing an Azure load balancer or application gateway, to distribute incoming traffic across VMSS instances. We can also use auto scaling, configuring auto scaling rules for VMSS based on metrics like CPU utilization, memory utilization, or incoming traffic, which allows your application to scale up and down dynamically based on demand and health probes. Configuring health probes monitors the health of your VMS instances, and your load balancer can perform health checks on your application endpoints, directing traffic only to healthy instances. We can use managed disk in VMSS instances to ensure data durability and high availability. Managed disk automatically replicates data across different storage nodes within the Azure region, reducing the risk of data loss due to hardware failure. Implementing application-level redundancy, where the Python application is stateless and horizontally scalable, distributes application components across multiple VMSS instances to minimize the impact of individual instance failure. Monitoring and alerting are set up for VMSS instances using Azure Monitor. We can also set up disaster recovery by backing up data. We can set up a layer of automation, which can store data in multiple instances, making it easy to recover data if it gets lost. Implementing chaos engineering involves conducting regular chaos engineering experiments to proactively identify and mitigate potential points of failure in your application and infrastructure. Regular maintenance is also required to keep your VM instances and underlying infrastructure up to date with the latest security patches and updates.
Outline a strategy using Python in Azure Databricks to process streaming data and deploy it to database. To outline a strategy using Python in Azure to process streaming data and deploy it to SQL database. You can follow these steps. Choose a streaming data source. Identify the streaming data source you want to process. This could be data. This could be, data from IoT devices, Azure Event Hubs, or ingestion data. We can also, follow these steps. Set up Azure function for data processing data processing logic. We can write Python codes in Azure function to process the streaming data according to business. Azure SQL database for storing process data. We can use Azure SQL database to store and process data and streaming data source. We can also set data deployment strategies. We can use Python libraries like PyDoc bio Pyodoc SQLAlchemy to interact with Azure SQL data. We can also authentication security implementation secure authentication. We can also access Azure services from your Python code. Use Azure Active Directory authentication, manual entities. Error handling also with their data testing and validation should be there. After that, deployment and monitoring should be also
Where would you use Python to perform automated network configuration updates in Azure. You have a dynamic cloud environment in Azure with multiple virtual networks and network security groups. As your infrastructure evolves, you frequently need to update network configurations to accommodate new services, applications, or security requirements. Solutions should be like infrastructure as code. Use tools like Azure Resource Manager, templates, or Azure Bicep to define your virtual networks, subnets, and network security. Azure SDK for Python development allows you to utilize the SDK for Python to interact with resources programmatically. You can use Azure MGMT network to manage virtual networks updates, etc. Automated configuration updates involve writing Python scripts to automate the process of updating network configurations in Azure. Monitoring and validation will be there. Schedule updates, changes, and chain management. Other handling and rollbacks mean we can set up anchor points which we can revert to after the update if anything goes wrong. Security and access control should also be there. Securely manage credentials and access keys required to authenticate with Azure.