云原生&微服务&devops&项目管理英文表述详解

发布于:2025-05-27 ⋅ 阅读:(38) ⋅ 点赞:(0)

1.云原生

云原生项目必定涉及到:项目管理、敏捷开发、容器云微服务,devops
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CNCF trail map

在这里插入图片描述

云原生技术栈路线图

https://landscape.cncf.io/

2. 微服务

单体应用与微服务应用架构区别
  • Monolithic applications: Built as a single unified unit, they are easy to operate and manage. However, they require updating the entire application, as any update is required for a part of the service.
  • Microservices architecture: A collection of smaller, independent services that are maintained separately. You won’t need to update the entire application to update an individual service.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

GraphQL

GraphQL allows clients to specify the needed data, reducing over-fetching and under-fetching

GraphQL is specifically designed as a query language for APIs. Unlike REST APIs, it allows clients to request the data they need, where multiple endpoints return predefined data structures. GraphQL enables more precise and efficient data fetching.

One of GraphQL’s key advantages is that it reduces over-fetching (receiving more data than necessary) and under-fetching (not getting enough data, requiring additional requests).

Key differences: GraphQL and REST
Feature REST GraphQL
Data fetching Over-fetching/Under-fetching Precise fetching
Number of endpoints Multiple Single
Response structure Fixed Flexible

3.容器化&编排

docker

Think of Docker as a container for your application. Like a shipping container holds goods and ensures they can be transported easily, Docker containers hold everything your application needs to run: your Java code, dependencies (like JDK and libraries), and configurations. This ensures that your application behaves consistently across development, testing, and production environments, reducing the “it works on my machine” issues.

For example, suppose you build a Java Spring Boot application. In that case, you can package it into a Docker container and run it on any system with Docker installed without worrying about missing dependencies or operating system differences.

Key Docker components

  • Docker Images: A snapshot of your application and its dependencies.
  • Docker Containers: Running instances of images.
  • Dockerfile: A script that defines and describes the process of building a Docker image.
  • Docker Compose: A tool to run multiple containers together (e.g., a database alongside your Java application).
    在这里插入图片描述
    在这里插入图片描述
Kubernetes

Imagine you have many Docker containers running different parts of your application. Managing all these manually would be challenging. This is where Kubernetes comes in.

Kubernetes acts like a container traffic controller, helping manage, scale, and organize multiple Docker containers efficiently. If one container crashes, Kubernetes can restart it automatically. If your app requires more resources due to increased user traffic, Kubernetes can create new containers (scaling up) and remove them when they’re no longer needed (scaling down).

Key Kubernetes concepts

  • Pods: The smallest unit in Kubernetes, usually running one or more containers.
  • Deployments: A way to define how many container instances should be running.
  • Services: Expose your application to users and other system parts.
  • Ingress: Manages external access, acting like a load balancer for HTTP traffic.
Containers and Containerization
  • Containers are lightweight, portable, and self-sufficient units that package software and its dependencies to run consistently across different environments.
  • Docker is a platform that automates the deployment, scaling, and management of containerized applications.
  • Building a container image involves writing a Dockerfile that defines the application and its dependencies, then using docker build to create the image.
  • Running a container image is done using the docker run command, which creates and starts the container instance.
  • Docker objects include images, containers, volumes, networks, and services, which are essential for managing containerized applications.
  • Docker architecture follows a client-server model where the Docker client interacts with the Docker daemon to build, run, and manage containers.
  • Advantages of containers include:
    • Faster deployment
    • Improved scalability
    • Better resource utilization
    • Consistent application performance across environments
Container Basics
Term Definition
Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer issues.
Client-server architecture is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients.
A container powered by the containerization engine, is a standard unit of software that encapsulates the application code, runtime, system tools, system libraries, and settings necessary for programmers to efficiently build, ship and run applications.
Container Registry Used for the storage and distribution of named container images. While many features can be built on top of a registry, its most basic functions are to store images and retrieve them.
CI/CD pipelines A continuous integration and continuous deployment (CI/CD) pipeline is a series of steps that must be performed in order to deliver a new version of software. CI/CD pipelines are a practice focused on improving software delivery throughout the software development life cycle via automation.
Cloud native A cloud-native application is a program that is designed for a cloud computing architecture. These applications are run and hosted in the cloud and are designed to capitalize on the inherent characteristics of a cloud computing software delivery model.
Daemon-less A container runtime that does not run any specific program (daemon) to create objects, such as images, containers, networks, and volumes.
DevOps is a set of practices, tools, and a cultural philosophy that automate and integrate the processes between software development and IT teams.
Docker An open container platform for developing, shipping and running applications in containers.
A Dockerfile is a text document that contains all the commands you would normally execute manually in order to build a Docker image. Docker can build images automatically by reading the instructions from a Dockerfile.
Docker client is the primary way that many Docker users interact with Docker. When you use commands such as docker run, the client sends these commands to dockerd, which carries them out. The docker command uses the Docker API. The Docker client can communicate with more than one daemon.
Docker Command Line Interface (CLI) The Docker client provides a command line interface (CLI) that allows you to issue build, run, and stop application commands to a Docker daemon.
Docker daemon (dockerd) creates and manages Docker objects, such as images, containers, networks, and volumes.
Docker Hub is the world’s easiest way to create, manage, and deliver your team’s container applications.
Docker localhost Docker provides a host network which lets containers share your host’s networking stack. This approach means that a localhost in a container resolves to the physical host, instead of the container itself.
Docker remote host A remote Docker host is a machine, inside or outside our local network which is running a Docker Engine and has ports exposed for querying the Engine API.
Docker networks help isolate container communications.
Docker plugins such as a storage plugin, provides the ability to connect external storage platforms.
Docker storage uses volumes and bind mounts to persist data even after a running container is stopped.
LXC LinuX Containers is a OS-level virtualization technology that allows creation and running of multiple isolated Linux virtual environments (VE) on a single control host.
IBM Cloud Container Registry stores and distributes container images in a fully managed private registry.
Image An immutable file that contains the source code, libraries, and dependencies that are necessary for an application to run. Images are templates or blueprints for a container.
Immutability Images are read-only; if you change an image, you create a new image.
Microservices are a cloud-native architectural approach in which a single application contains many loosely coupled and independently deployable smaller components or services.
Namespace A Linux namespace is a Linux kernel feature that isolates and virtualizes system resources. Processes which are restricted to a namespace can only interact with resources or processes that are part of the same namespace. Namespaces are an important part of Docker’s isolation model. Namespaces exist for each type of resource, including networking, storage, processes, hostname control and others.
Operating System Virtualization OS-level virtualization is an operating system paradigm in which the kernel allows the existence of multiple isolated user space instances, called containers, zones, virtual private servers, partitions, virtual environments, virtual kernels, or jails.
Private Registry Restricts access to images so that only authorized users can view and use them.
REST API A REST API (also known as RESTful API) is an application programming interface (API or web API) that conforms to the constraints of REST architectural style and allows for interaction with RESTful web services.
Registry is a hosted service containing repositories of images which responds to the Registry API.
Repository is a set of Docker images. A repository can be shared by pushing it to a registry server. The different images in the repository can be labelled using tags.
Server Virtualization Server virtualization is the process of dividing a physical server into multiple unique and isolated virtual servers by means of a software application. Each virtual server can run its own operating systems independently.
Serverless is a cloud-native development model that allows developers to build and run applications without having to manage servers.
Tag A tag is a label applied to a Docker image in a repository. Tags are how various images in a repository are distinguished from each other.

4. DevOps & CI/CD

在这里插入图片描述
在这里插入图片描述

Terms and Definitions
Terms Definitions
Agile methodology A set of techniques, values, and principles designed to guide and improve how software development teams work together to deliver new applications and updates
Agile principle The guiding principles that help teams implement and execute with Agility.
Automation The technique, method, or system of operating or controlling a process using highly automatic means, such as electronic devices, with minimal human intervention
Application Programming Interface (API) A set of rules that describe how computers or applications communicate with one another.
Back-end developer Back-end developers are the experts who build and maintain the mechanisms that process data and perform actions on websites.
Container A type of software that packages code so that it can be transferred quickly from one computing environment to another.
Cluster A collection of servers and other resources that work together to provide high availability, load balancing, and parallel processing
Debugging The process of locating and fixing errors or bugs in software source code; It detects and eliminates computer hardware and software errors.
Database A well-organized group of data or information saved electronically in a computer system. It operates using a database management system (DBMS).
Framework A layered structure that shows the type of programs developers can or should build and how they would interrelate; Some computer system frameworks also include programs, define programming interfaces, or provide programming tools for use with the frameworks.
Integration testing It is the phase in which individual software modules are combined and tested as a group.
Kubernetes It is open-source software that deploys, scales, and manages containerized applications anywhere.
Microservices An architectural style that structures a single application as a collection of small services; Each service operates independently. The services communicate with clients, and frequently with one another, via lightweight protocols, most commonly messaging or HTTP.
Open-source software Computer software distributed under a license that allows users to use, study, change, and distribute the software and its source code to anyone and for any purpose.
Parameter Passes a named variable into a function. The function uses parameter variables to import arguments.
Pipeline A set of data processing elements connected in series, where the output of one element is the input of the next one
Plug-in It is a type of software installed to enhance the capabilities of a program.
Pull requests A method for a developer to notify team members that a feature is complete; Once a pull request opens, they can discuss and review the potential changes and add follow-up commits before merging the changes into the base branch.
Repository A centralized digital storage system that developers use to make and manage changes to the source code of an application.
Syntax The rules govern the structure of a programming language’s symbols, punctuation, and words. The meaning or semantics of a language are nearly impossible to understand without syntax.
Server A computer program or device performs a service for another computer program and its user or client; The physical computer that a server program runs is a server in a data center.
Test case Specifies the inputs, testing procedure, execution conditions, and expected results for running a single test to achieve a specific software testing goal.
Version control systems Software tools that help software teams manage changes to source code over time.
YAML file It is a human-readable data serialization language often used for writing configuration files.

5.Agile&scrum

  • Agile development is an iterative approach to software development that emphasizes flexibility, collaboration, and customer feedback.
  • Scrum is a framework within Agile that organizes work into fixed-length iterations called sprints.
  • Agile principles focus on customer collaboration, responding to change, delivering working software frequently, and valuing individuals and interactions over processes and tools.
  • Agile roles include the Product Owner (defines the product vision), Scrum Master (facilitates the process), and Development Team (delivers the product increment).
  • User stories are short, simple descriptions of a feature from the user’s perspective, focusing on the value it provides.
  • Story points are units used to estimate the effort required to complete a user story based on complexity and risk.
  • The product backlog is a prioritized list of features, bug fixes, and tasks that guide development.
  • Sprints are time-boxed iterations where teams work on completing backlog items.
  • Stages of a sprint include:
    • Sprint planning
    • Sprint review
    • Sprint retrospective

在这里插入图片描述
在这里插入图片描述

Glossary: Agile & Scrum
Term Definition
Agile An iterative approach to project management and software development. A set of techniques, values, and principles intended to guide and improve the collaboration of software development teams in delivering new applications and updates.
Agile Manifesto A document that outlines the key values and principles underlying the Agile philosophy to assist development teams in working more efficiently and sustainably.
Autonomy The ability of teams to decide how to do their work, in what order, and by whom.
Fibonacci sequence Each number in this sequence is the sum of the two preceding numbers. The Fibonacci sequence looks like this: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, and so on. The Fibonacci agile estimation estimates the effort of agile development tasks using this sequence as the scoring scale.
Gantt chart A project management tool used to track sprint progress, determine which tasks to remove from a sprint, track change requests from stakeholders, organize work, and track time spent on each task.
GitHub A web-based platform used for version control and collaborative software development offering developers robust platforms for hosting their repositories.
Iterative You repeat a series of steps to improve your production output with each cycle.
Kanban board An agile project management tool that manages work at a personal and organizational level. Its purpose is to improve the flow of the work in progress.
Lean manufacturing A methodology that focuses on reducing waste in manufacturing systems while increasing productivity.
Monolithic A single-tiered software application that combines user and data access codes into a single program.
Metric A method for quantitative analysis in computers used for assessing, comparing, and tracking its performance or production.
Playback meeting An opportunity to bring stakeholders into the loop and reflect as a group; They provide a safe environment for people to share their stories and provide feedback on their work. Holding Playbacks keeps teams and stakeholders aligned and in sync with the ever-changing situation of a project.
Scrum A management framework that provides a method of completing work in chunks over a specific time while conducting continuous experiments to learn and improve things.
Scrum master A professional who guides a team through an Agile project management process; To ensure a successful outcome, a Scrum Master facilitates all communication and collaboration between leadership and team members.
Sprint A one-to-four-week time-boxed event in which the Scrum team focuses solely on a sprint goal.
Sprint backlog A list of work items a team intends to complete during a project sprint. These items are usually taken from the product backlog during the sprint planning meeting.
Sprint Retrospective A dedicated time for the Scrum team to reflect on what went well, what didn’t, and how to improve future sprints.
Syntax The rules that govern the structure of a programming language’s symbols, punctuation, and words. The meaning or semantics of a language are nearly impossible to understand without syntax.
User story The smallest unit of work. It’s a goal, not a feature, expressed from the perspective of a software user. A user story is an informal, general explanation of a software feature written from the end user’s or customer’s point of view.
Waterfall methodology A sequential development process flows like a waterfall through all project phases, such as analysis, design, development, and testing, with each phase completely wrapping up before moving on to the next.
Zen Hub The only project management tool natively integrated into the GitHub user interface. Software teams use it to plan, track, and prioritize their work.

6.PM

HR QA
  • What motivated you to apply for this job?
  • What attracted you to our job listing?
  • Why did you leave your last job?
  • What is your ideal working environment?
  • What do you know about our company’s product or services?
  • What are your expectations about salary and other compensation?
Team leader
  • Tell me about a few of the first things you would do in this role.
  • Give a few examples of best practices in data analysis as you understand them.
  • What’s a data analysis project you would want to work on at our company?
  • Tell me about a time you experienced conflict with a colleague and how you resolved it.
  • Tell me about a time when your project failed. What did you do and what did you learn?
  • Do you prefer to work closely with a team or mostly by yourself?
  • How are you motivated?
  • How do you start learning about a topic you don’t know about yet?
technical QA
  • What coding languages do you know?
  • What are some of your favorite data-related tools?
  • How do you begin working on a problem you’ve been assigned?
  • What do you do when you reach something you don’t understand?
  • How do you stay on schedule and manage your time?
  • How do you prepare for a presentation?
Solving Coding Challenges –4-step framework
  1. Understand and appreciate the problem statement.
  • Did you fully understand the problem?
  • Do you know what inputs are required?
  • Do you know what the desirable output is?
  • Does it give you enough information?
  1. Break down the problem into functions.
  • Define the problem statement into various functions or modules.
  • Does each module solve a specific subset of the problem?
  • Can the functions/modules be reused?
  1. Apply common patterns or language constructs that you already know for the problem.
  • Do you see a common pattern that you can use?
  • Do you see a loop to use or a language function that might make things easy?
  • Pseudocode your proposed solution.
  1. Start coding.
  • This is the best place to start really coding.
  • Ignore difficult parts for now – begin by solving a simpler sub-part.
  • Run the code as you work and let errors show you where you can correct the code.
  • Start with input gathering, then processing logic, and then output.
  • Compare your solution for its accuracy and completeness relative to the problem statement.
  • If time permits, optimize he solution by looking at various alternatives to shorten the code or increase its efficiency.
support a salary negotiation are:
  • Commute and relocation expenses.
  • Having a university degree that may not have been required to apply but provides an academic preparation that will contribute to exceeding job performance expectations.
  • Possessing a skillset or certifications that required extensive or costly training, especially if they were stated as preferred qualifications in the job listing.
Check List
  • Consider your professional options and decide what type of role to pursue
  • Create your resume
  • Gather and publish your portfolio to GitHub
  • Compose and memorize your elevator pitch
  • Draft your basic cover letter
  • Create or update your LinkedIn profile
  • Line up professional references and get their contact information
  • Compose and practice answers for common interview questions
  • Write questions you would like to ask interviewers
  • Research local meetups and professional organizations for networking
  • Ask friends to help you rehearse interviews and critique materials
Elevator pitch(简单自我介绍)

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到