Skip to content
33 changes: 16 additions & 17 deletions content/en/gitops.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,28 @@
---
title: GitOps
status: Feedback Appreciated
status: Completed
category: Concept
tags: ["methodology", "", ""]
---

GitOps is a set of best practices based on [shared principles](https://opengitops.dev/),
applied to a workflow that depends on software agents that
enable automation to reconcile a declared system state or configuration in a git repository.
These software agents and practices are used to execute a cohesive workflow that
leverages a source control system like Git as the “single source of truth” and
extends this practice to applications, infrastructure, and operational procedures.
GitOps is a set of practices for managing software applications and infrastructure by continuously evaluating
and reconciling their desired states as defined in a version control system such as Git against their actual state.
Reconciling states includes changing the resources to match the defined state via deployment or updates.

In GitOps, the state or configuration of a system is fully described in files stored in the source of truth, usually the version control system.
It could, however, be another source of truth, such as a Kubernetes Operator or Artifact Storage.
The source of truth is evaluated by the automated processes that align the live system with the defined state.
These processes adjust the live system as needed, ensuring consistency across applications, infrastructure, and operational tasks.

## Problem it addresses

Existing processes for infrastructure configuration management can face challenges
such as configuration drift, failed deployments, relying on a system's previous state for success,
missing documentation, or unknown development history.
Adopting a GitOps workflow can help alleviate these issues, among several others.
Traditional approaches to managing infrastructure and application configurations can result in configuration drift, failed deployments, inconsistent environments, deployment failures, and difficulty tracking historical changes.
These issues can cause instability and increase maintenance overhead.
Configuration drift can be hard to detect and resolve without a source of truth governing it, increasing the time to resolve outages or failures.

## How it helps

GitOps is a paradigm that can be applied to a workflow
to help manage an application and cloud system infrastructure.
It enables organizations several advantages
such as better coordination, transparency, stability, and reliability of a system.
Operating in a close loop ensures the current live state of a system matches
against the desired target state, specified in the git repository.
GitOps helps organizations manage the entire infrastructure, application development, and deployment lifecycle using a single and unified process.

GitOps brings organizations several other advantages, such as transparency and traceability of changes, reliability
and security through declarative states, and rollback, revert, and self-healing attributes.
26 changes: 26 additions & 0 deletions content/vi/devops.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
title: DevOps
status: Completed
category: Concept
tags: ["Methodology", ""]
---

DevOps là một cách làm việc mà ở đó, các nhóm chịu trách nhiệm toàn diện cho mọi thứ — từ việc xây dựng ứng dụng cho đến vận hành hệ thống thực tế. Đó chính là lý do gọi là DevOps.
Phương pháp này không chỉ đơn giản là dùng một số công cụ nhất định, mà còn đòi hỏi phải thay đổi cách mọi người phối hợp và cách tổ chức vận hành.
Trong DevOps, các nhóm kỹ sư nhỏ sẽ tập trung phát triển và quản lý những phần nhỏ của hệ thống (thay vì làm nguyên cả một tính năng lớn), giúp giảm thiểu việc bàn giao qua lại — vốn là nguyên nhân phổ biến gây ra lỗi.

## Vấn đề nó giải quyết

Trước đây, trong các tổ chức lớn với [Tightly Coupled](/tightly-coupled-architecture) [Monolithic Apps](/monolithic-apps) gắn kết chặt chẽ, công việc thường bị chia nhỏ và phân tán cho nhiều nhóm khác nhau.
Điều này dẫn đến vô số lần bàn giao và thời gian triển khai kéo dài. Mỗi khi một thành phần hoặc bản cập nhật hoàn thành, nó lại phải xếp hàng chờ nhóm tiếp theo xử lý.
Vì mỗi người chỉ phụ trách một phần rất nhỏ của dự án, nên cách làm này khiến tinh thần sở hữu công việc bị mất đi. Mục tiêu của họ chỉ đơn giản là chuyển công việc sang nhóm kế tiếp, chứ không phải đảm bảo đúng nhu cầu của khách hàng — dẫn đến việc ưu tiên công việc bị lệch hoàn toàn.

Khi mã cuối cùng được đưa vào môi trường sản xuất, nó đã đi qua tay quá nhiều lập trình viên, chờ đợi ở quá nhiều bước trung gian, khiến việc truy vết nguyên nhân lỗi (nếu có) trở nên vô cùng khó khăn.
DevOps đã đảo ngược hoàn toàn cách tiếp cận truyền thống này.

## Lợi ích của nó

Khi một nhóm chịu trách nhiệm toàn bộ vòng đời của một ứng dụng,
điều này giúp giảm thiểu việc bàn giao giữa các nhóm, giảm rủi ro khi triển khai lên môi trường sản xuất,
nâng cao chất lượng mã nguồn vì nhóm cũng phải chịu trách nhiệm cho hiệu suất vận hành thực tế,
đồng thời tăng mức độ hài lòng của nhân viên nhờ có nhiều quyền tự chủ và tinh thần sở hữu công việc cao hơn.
23 changes: 23 additions & 0 deletions content/vi/devsecops.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: DevSecOps
status: Completed
category: Concept
tags: ["Methodology", "security",""]
---

DevSecOps là khái niệm chỉ sự kết hợp văn hóa giữa các trách nhiệm về phát triển, vận hành và bảo mật.
Nó mở rộng phương pháp [DevOps](/devops/) bằng cách đưa các yếu tố bảo mật vào ngay từ đầu, mà không (hoặc gần như không) làm gián đoạn quy trình làm việc của đội ngũ phát triển và vận hành.
Giống như DevOps, DevSecOps cũng là một sự thay đổi về tư duy và cách làm việc, được thúc đẩy bởi việc áp dụng công nghệ mới và có cách triển khai riêng biệt.

## Vấn đề nó giải quyết

Các thực hành DevOps bao gồm [Continuous integration (CI)](/continuous-integration/), [Continuous Delivery (CD)](/continuous-delivery/), và [Continuous Deployment (CD)](/continuous-deployment/), giúp tăng tốc quá trình phát triển và phát hành ứng dụng.
Tuy nhiên, nếu quy trình tự động phát hành phần mềm không cân nhắc đầy đủ lợi ích của tất cả các bên liên quan trong tổ chức, nó có thể làm trầm trọng thêm những vấn đề vốn đã tồn tại.
Một quy trình chỉ tập trung vào việc phát hành nhanh phần mềm mới mà bỏ qua các yêu cầu về bảo mật có thể làm suy yếu mức độ an toàn tổng thể của tổ chức.

## Lợi ích của nó

DevSecOps tập trung vào việc phá bỏ các "bức tường" ngăn cách giữa các nhóm và thúc đẩy xây dựng quy trình làm việc tự động, an toàn ngay từ đầu.
Khi lựa chọn các công cụ bảo mật, tổ chức cần tận dụng khả năng tự động hóa của quy trình CI/CD và cơ chế áp chính sách bảo mật một cách chủ động, giúp nhà phát triển có thêm sức mạnh, thay vì bị cản trở.
Mục tiêu không phải là làm chậm tiến trình, mà là đảm bảo thực thi các chính sách bảo mật trong khi vẫn cung cấp cho người dùng thông tin chính xác để tiếp tục phát triển dự án.
Khi triển khai đúng cách, DevSecOps sẽ giúp cải thiện khả năng giao tiếp giữa các nhóm và giảm thiểu sự cố bảo mật cũng như chi phí phát sinh liên quan.
22 changes: 22 additions & 0 deletions content/vi/digital-certificate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
title: Digital Certificate
status: Completed
category: Concept
tags: ["Security",""]
---

Một chứng chỉ số (digital certificate) — thường được gọi là chứng chỉ khóa công khai hoặc chứng chỉ SSL — là một tài liệu điện tử được dùng để đảm bảo an toàn cho các giao tiếp qua mạng.
Chứng chỉ cho phép chúng ta xác minh rằng đối tượng mà chúng ta đang giao tiếp thực sự là đúng như họ tuyên bố.
Ngoài ra, nó còn giúp đảm bảo rằng các dữ liệu chúng ta gửi và nhận được mã hóa, giữ cho nội dung trao đổi luôn riêng tư.

## Vấn đề nó giải quyết

Khi các thiết bị giao tiếp với nhau qua mạng, bản thân mạng không có cơ chế đảm bảo rằng thiết bị đó thực sự là đúng như nó tuyên bố.
Bên cạnh đó, chúng ta cũng không thể chắc chắn rằng dữ liệu trao đổi giữa hai thiết bị sẽ không bị bên thứ ba chặn lại.
Do đó, bất kỳ cuộc giao tiếp nào cũng có nguy cơ bị nghe lén, làm lộ những thông tin nhạy cảm như tên đăng nhập và mật khẩu.

## Lợi ích của nó

Các ứng dụng email hiện đại sử dụng chứng chỉ có thể thông báo cho bạn biết liệu danh tính của người gửi có chính xác hay không, tương tự như cách các trình duyệt web hoạt động (bạn sẽ thấy biểu tượng ổ khóa nhỏ ở trước thanh địa chỉ trình duyệt).
Mặt khác, chứng chỉ cũng được dùng để mã hóa các giao tiếp giữa các thực thể trên Internet.
Chúng cung cấp một phương pháp mã hóa khiến cho việc chặn và đọc trộm dữ liệu trong quá trình truyền tải gần như là bất khả thi.