← Jobb

DevOps Engineer Needed for AWS & Docker Deployment

Budget: $50.0 FIXED / ⭐ 0.00 (0) Ukraine

terraform, docker, amazon-web-services, kubernetes, cicd, python, devops, javascript, postgresql

Föredragna kvalifikationer

  • Erfarenhet: Medel
# DevOps Engineer for AWS, Terraform, Docker, Kubernetes & Python FastAPI We are looking for a DevOps Engineer to help us configure, deploy, troubleshoot, and automate the infrastructure for an existing web application. The project involves DevOps Engineering, Amazon Web Services, AWS, Terraform, Docker, Kubernetes, CI/CD, Linux, Python, FastAPI, PostgreSQL, Node.js, JavaScript, Git, REST API, SQL, CI/CD Platform, Google Cloud Platform, Software Architecture & Design, Software Development, and Deployment Automation. This is an existing application rather than a greenfield development project. We need a hands-on DevOps Engineer who can work with the existing application, understand the backend architecture, configure the infrastructure, deploy the services, troubleshoot deployment issues, and automate the deployment process. The backend is primarily Python and FastAPI, with PostgreSQL as the main database. The project also contains Node.js and JavaScript components and communicates with external APIs. The initial task is small and has a $50 fixed budget. The work is focused on infrastructure, deployment, configuration, troubleshooting, and automation rather than implementing new application features. There may be additional DevOps, AWS, Terraform, Docker, Kubernetes, Python FastAPI deployment, CI/CD, and Deployment Automation work after the initial task. ## Project Overview The application includes Python backend services, FastAPI REST APIs, PostgreSQL database services, Node.js components, JavaScript components, external API integrations, Docker containers, and cloud infrastructure. We need a DevOps Engineer who understands both infrastructure and application deployment. A good fit would be someone with experience as a DevOps Engineer, AWS DevOps Engineer, Cloud DevOps Engineer, DevOps Developer, Backend Developer, Python Developer, Python FastAPI Developer, FastAPI Developer, or Backend Engineer working closely with infrastructure and deployment. The main objective is to make the existing application deployable, reproducible, and reliable. The environment should allow developers to work with Git, build the application, create Docker images, run tests, and deploy the application through a CI/CD Platform without requiring a large amount of manual infrastructure work. ## Core Technologies * Terraform * Docker * DevOps * DevOps Engineering * Amazon Web Services * AWS * AWS Infrastructure * AWS DevOps * Kubernetes * CI/CD * CI/CD Platform * Deployment Automation * Linux * Python * Python Developer * FastAPI * Python FastAPI * FastAPI Developer * Python FastAPI Developer * Backend Developer * Backend Engineering * PostgreSQL * SQL * Node.js * Node.js Developer * JavaScript * Git * REST API * API * API Integration * Google Cloud Platform * GCP * Software Development * Software Architecture & Design ## AWS Infrastructure The primary cloud environment is Amazon Web Services. The DevOps Engineer will review the existing AWS infrastructure and configure the resources required to run the application. The AWS environment may include: * Amazon EC2 * AWS VPC * AWS Security Groups * AWS IAM * Amazon RDS * Amazon S3 * AWS CloudWatch * Load balancing * DNS * Networking * Storage * Application deployment resources The AWS DevOps work should be practical and focused on the requirements of the existing application. We do not need unnecessary AWS architecture complexity. The engineer should understand how a Python FastAPI backend, PostgreSQL database, Docker containers, Node.js services, and external APIs communicate inside an AWS environment. Experience with AWS DevOps, AWS Infrastructure, Amazon Web Services, AWS EC2, AWS RDS, AWS VPC, AWS IAM, AWS Security Groups, AWS networking, AWS deployment, and AWS troubleshooting is highly relevant. ## Terraform Terraform will be used for Infrastructure as Code where appropriate. The DevOps Engineer should be comfortable creating, reviewing, and modifying Terraform configurations for AWS infrastructure. Terraform may be used to manage: * EC2 * VPC * Security Groups * IAM * RDS * S3 * Load balancers * Networking * DNS * Other AWS infrastructure The objective is to avoid manually configuring the same infrastructure repeatedly. Terraform should provide a reproducible AWS environment and make infrastructure changes easier to review and deploy. Experience with Terraform Developer work, Terraform AWS, Terraform Infrastructure as Code, Terraform modules, AWS Terraform configuration, and cloud infrastructure automation is preferred. We do not need an unnecessarily large Terraform module ecosystem. A straightforward Terraform configuration that works reliably is preferable. ## Docker The application uses Docker for local and production deployment. The DevOps Engineer should have strong practical Docker experience. The project includes: * Dockerfiles * Docker images * Docker containers * Docker Compose * Container networking * Environment variables * Volumes * Health checks * Restart policies * Logs * Image builds * Deployment The Python FastAPI backend needs to run correctly inside Docker. The Node.js and JavaScript components may also run inside Docker containers. The engineer should be able to troubleshoot Docker issues involving: * Ports * Networking * Environment variables * Dependencies * Image builds * Container startup * Container crashes * Database connectivity * Permissions * Application configuration A typical problem may be that the Python Developer can run the FastAPI application locally, but the Python FastAPI application fails after being deployed inside a Docker container on AWS. The DevOps Engineer should be able to determine whether the problem is related to Python, FastAPI, Docker, environment variables, PostgreSQL, networking, AWS, or the deployment configuration. ## Kubernetes The environment may also use Kubernetes for container orchestration. We are looking for practical Kubernetes experience rather than a large enterprise Kubernetes platform implementation. The DevOps Engineer should be comfortable with: * Kubernetes Deployments * Services * Pods * ConfigMaps * Secrets * Ingress * Container images * Health checks * Environment variables * Resource configuration * Kubernetes networking * Logs * Troubleshooting Typical Kubernetes troubleshooting may include: * Pods failing to start * Image pull errors * Incorrect environment variables * Service connectivity issues * Application crashes * Health check failures * Resource limits * Ingress problems * Networking issues The Kubernetes deployment should remain simple and understandable. ## CI/CD The project requires a practical CI/CD workflow. The CI/CD Platform should integrate with Git, Docker, Terraform, AWS, and Kubernetes where appropriate. A typical deployment process may be: Git commit → CI/CD pipeline → Python tests → FastAPI application validation → Node.js build → Docker image build → Docker image publishing → Terraform infrastructure validation → AWS deployment → Kubernetes deployment where applicable → Application health check The goal is reliable CI/CD rather than a complicated pipeline for its own sake. The DevOps Engineer should have experience with: * CI/CD Platform configuration * GitHub Actions * GitLab CI * AWS CI/CD services * Docker-based CI/CD * Automated testing * Automated deployments * Deployment Automation ## Deployment Automation Deployment Automation is one of the main requirements of this project. We want to reduce manual deployment steps and make application releases repeatable. A developer should be able to push code through Git and have the CI/CD Platform build and deploy the application. The Deployment Automation process may: * Build the Python FastAPI application * Install Python dependencies * Build Docker images * Publish Docker images * Configure environment variables * Update infrastructure with Terraform * Deploy containers to AWS * Deploy workloads to Kubernetes * Perform application health checks * Report deployment status The exact deployment architecture depends on the existing environment. The important requirement is that deployments are predictable, repeatable, and easy to troubleshoot. ## Python and FastAPI The main backend application is written in Python and uses FastAPI for REST API services. We are not looking for a Python Developer to build new application features for this initial task. However, the DevOps Engineer should be comfortable working around Python applications and Python FastAPI deployments. A Python FastAPI Developer or Python Backend Developer will typically understand: * How the application starts * Python dependencies * Application ports * Environment variables * Configuration * PostgreSQL connections * Docker deployment * REST API services * Application logging * Health checks The DevOps Engineer should understand typical FastAPI deployment requirements, including: * Python dependencies * FastAPI application startup * ASGI server configuration * Workers * Ports * Environment variables * Logging * Health checks * Database connections The FastAPI REST API should be deployed reliably in the production environment. The Python FastAPI application may run inside a Docker container on AWS or Kubernetes. The engineer may need to troubleshoot cases where the FastAPI API works correctly in local development but fails after deployment. For example, the FastAPI application may start correctly locally but fail in AWS because of: * Missing environment variables * Incorrect Docker configuration * PostgreSQL connectivity * Incorrect Security Group rules * Wrong application port * Python dependency issues * Network configuration This is why Python and FastAPI experience is useful even though the position is primarily DevOps. A DevOps Engineer with Python Developer experience or Python FastAPI Developer experience would be a strong fit. ## PostgreSQL and SQL PostgreSQL is the primary relational database. The DevOps Engineer should understand PostgreSQL from an infrastructure and deployment perspective. The Python FastAPI backend needs reliable connectivity to PostgreSQL. Depending on the architecture, PostgreSQL may run in Docker or use Amazon RDS for PostgreSQL. The engineer should understand: * PostgreSQL connection strings * Database hostnames * Database ports * Environment variables * Docker networking * AWS RDS * Credentials * Connection failures * Database logs * Backups * Basic troubleshooting Basic SQL knowledge is useful for troubleshooting application and database connectivity. The position does not require advanced SQL development or complex query optimization. The main goal is reliable PostgreSQL infrastructure and reliable connectivity between the Python FastAPI application and PostgreSQL. ## Node.js and JavaScript The project also contains Node.js and JavaScript components. These may include: * Frontend services * Backend utilities * Build processes * API integrations * Supporting services The DevOps Engineer should understand basic Node.js deployment requirements including: * Node.js versions * npm * Package installation * Build commands * Environment variables * Docker * Ports * Production startup Deep JavaScript development is not required. However, experience working with Node.js applications, JavaScript applications, Docker, CI/CD, and AWS deployment is useful. The infrastructure needs to support both Python FastAPI services and Node.js services where applicable. ## API and External Integrations The application communicates with external APIs. The DevOps Engineer should be able to troubleshoot API connectivity from Docker containers, Kubernetes workloads, Linux servers, and AWS infrastructure. Potential issues include: * DNS * HTTPS * Outbound network access * Firewall rules * AWS Security Groups * Environment variables * API credentials * HTTP errors * Proxy configuration * Container networking The engineer should be able to distinguish an application-level API issue from an infrastructure-level problem. For example, if an external API works from a developer's machine but fails from the Python FastAPI Docker container running on AWS, the engineer should be able to investigate the network and environment differences. ## Linux The production environment uses Linux. Strong practical Linux experience is expected. The DevOps Engineer should be comfortable with: * SSH * Linux processes * Services * Users * Permissions * Filesystems * Networking * Firewall configuration * Disk usage * Memory usage * CPU usage * Logs * Package management * Docker on Linux * Kubernetes troubleshooting * Command-line tools Typical tools may include: * SSH * Git * Docker CLI * kubectl * AWS CLI * Terraform CLI * Standard Linux utilities * Networking tools * Log inspection tools Linux troubleshooting experience is important because many deployment problems require checking the underlying operating system rather than only the application. ## Git Git is used for source code management and deployment workflows. The DevOps Engineer should understand: * Git repositories * Branches * Pull requests * Tags * Releases * Commit history * Deployment branches * Git hooks where applicable * CI/CD triggers The deployment process should be connected to the Git workflow. Git should be used as the source for application versions and automated deployments. ## Software Development Although the position is DevOps-focused, the engineer should understand normal Software Development workflows. This includes: * Git branches * Pull requests * Code builds * Tests * Dependencies * Application configuration * Release versions * Docker images * Deployment * Rollback * Environment management The engineer will work around Python, FastAPI, Node.js, JavaScript, PostgreSQL, REST API, and other application components. The goal is not to become responsible for application development. The goal is to understand enough Software Development to deploy and troubleshoot the application effectively. ## Software Architecture & Design Understanding Software Architecture & Design is important because infrastructure decisions need to match the application. The DevOps Engineer should understand the relationship between: * Frontend services * Python backend services * FastAPI REST APIs * PostgreSQL * Docker * Kubernetes * AWS * Networking * CI/CD * External APIs We are not looking for an enterprise software architect. The requirement is practical understanding of how application components interact and how infrastructure should support them. For example: * PostgreSQL should not be unnecessarily exposed to the public Internet. * Secrets should not be committed to Git. * Internal services should communicate through appropriate networking. * Docker containers should expose only the required ports. * Kubernetes Services and Ingress should match the application architecture. * AWS Security Groups should allow only the required traffic. ## Monitoring and Troubleshooting The DevOps Engineer will need to troubleshoot across multiple layers. Possible sources of information include: * Docker logs * Kubernetes logs * Linux logs * Nginx logs * AWS CloudWatch * Application logs * PostgreSQL logs * CI/CD logs * Terraform output The objective is basic but useful observability. We need to know: * Whether the Python FastAPI service is running * Whether PostgreSQL is reachable * Whether Docker containers are healthy * Whether Kubernetes Pods are running * Whether AWS resources are available * Why a deployment failed * Why an API is unavailable ## Security Standard infrastructure security practices are expected. This includes: * AWS Security Groups * IAM permissions * SSH access * Database access * Docker ports * HTTPS * Secrets management * API credentials * Linux permissions * Network configuration Database ports should not be unnecessarily public. API credentials should not be stored directly in Git. Terraform configuration should not expose sensitive credentials. The DevOps Engineer should understand basic AWS IAM and least-privilege principles. ## Google Cloud Platform The project may also involve Google Cloud Platform components. Experience with Google Cloud Platform and GCP is a plus. Potential GCP services may include: * Compute Engine * Cloud Run * Cloud Storage * Cloud SQL * VPC * IAM * Cloud Build * Kubernetes * GKE The initial deployment is primarily focused on Amazon Web Services and AWS, but Google Cloud Platform experience is useful for future infrastructure work. Terraform may be used to manage both AWS and GCP infrastructure. ## Practical DevOps Approach We prefer practical solutions. If Docker Compose is sufficient for a particular environment, there is no need to introduce unnecessary Kubernetes complexity. If a small Terraform configuration solves the infrastructure problem, there is no need to build a huge collection of Terraform modules. If GitHub Actions is sufficient as the CI/CD Platform, there is no need to introduce a complicated enterprise deployment system. The DevOps Engineer should understand when to use AWS, Terraform, Docker, Kubernetes, Linux, CI/CD, and Deployment Automation without overengineering the project. ## What We Need We need a hands-on DevOps Engineer with practical experience in AWS, Terraform, Docker, Kubernetes, Linux, CI/CD, Git, and Deployment Automation. Experience with Python, Python Developer work, FastAPI, Python FastAPI, Python FastAPI Developer work, REST API, PostgreSQL, SQL, Node.js, JavaScript, and API integrations is highly relevant. Experience with Google Cloud Platform is a plus. A candidate who has worked as a: * DevOps Engineer * AWS DevOps Engineer * Cloud Engineer * DevOps Developer * Python Developer * Python Backend Developer * FastAPI Developer * Python FastAPI Developer * Backend Engineer * Software Developer working with cloud infrastructure may be a good fit. The most important thing is hands-on infrastructure and deployment experience. ## Initial Task The initial $50 fixed-price task will focus on: * Reviewing the existing environment * Identifying deployment or infrastructure problems * Making the required configuration changes * Configuring AWS infrastructure * Reviewing Terraform * Reviewing Docker configuration * Checking Python FastAPI deployment * Checking PostgreSQL connectivity * Reviewing Kubernetes configuration where applicable * Establishing or improving the CI/CD workflow * Improving Deployment Automation ## Additional Work If the initial deployment work goes well, there may be additional work involving: * AWS Infrastructure * AWS DevOps * Terraform * Docker * Kubernetes * CI/CD * CI/CD Platform * Deployment Automation * Linux administration * Python FastAPI deployment * Python backend deployment * PostgreSQL infrastructure * Node.js deployment * JavaScript deployment * API integrations * Monitoring * Troubleshooting * Cloud migration * Google Cloud Platform * Production deployment ## Budget $50 Fixed Price This is a small initial DevOps task with the possibility of additional infrastructure, deployment, automation, and cloud engineering work.
Öppna på Upwork

AI proposal draft

Generate a short cover letter for this job. Edit before sending.

Sign in to generate an AI proposal draft.

Logga in