為 GKE 應用建立 CI/CD 流程:自動化部署與更新
在前兩篇文章中,我們成功建立了一個完整的三層架構應用:MySQL、Redis 和 Golang 後端服務,並將它們部署到 GKE 上。然而,手動部署在實際開發中並不實用,特別是當團隊規模擴大或需要頻繁發布時。這篇文章將介紹如何建立一個完整的 CI/CD 流程,實現程式碼變更後的自動測試、建置、部署和更新。
Continue Reading在前兩篇文章中,我們成功建立了一個完整的三層架構應用:MySQL、Redis 和 Golang 後端服務,並將它們部署到 GKE 上。然而,手動部署在實際開發中並不實用,特別是當團隊規模擴大或需要頻繁發布時。這篇文章將介紹如何建立一個完整的 CI/CD 流程,實現程式碼變更後的自動測試、建置、部署和更新。
Continue Reading在上一篇文章中,我們成功使用 Helm 將 Nginx 部署到 GKE 上。這次,我們將更進一步,建立一個完整的三層架構應用:包含 MySQL 資料庫、Redis 快取服務,以及一個 Golang 後端應用。這個實作將更貼近實際的生產環境部署需求。
Continue Reading最近進到新專案,需要開始熟悉 GCP 相關服務,順手先嘗試將一個 Nginx 應用部署到 Google Kubernetes Engine (GKE) 上。過程中,使用 Helm 來簡化與管理部署流程,將過程記錄下來分享。
Continue ReadingGrafana K6 is a highly efficient load testing tool built with JavaScript (with a Golang core) that maximizes the load capabilities of a single machine. According to the official documentation, a single K6 process can effectively utilize all CPU cores, and under ideal conditions, it can simulate 30,000–40,000 virtual users (VUs). This is typically sufficient to handle 100,000–300,000 requests per second (RPS), translating to 6–12 million requests per minute. It enables more efficient load testing without requiring additional hardware resources.
Continue Readingasdf
is a versatile version manager designed to simplify the management of multiple runtime versions, such as programming languages, tools, and frameworks, within a single development environment. With asdf, users can easily install, manage, and switch between different versions of various software packages, ensuring compatibility and flexibility across projects. Whether you’re a developer, system administrator, or anyone who needs to juggle multiple versions of tools, asdf provides a seamless solution, enhancing productivity and eliminating version-related headaches.
In the realm of web development, obtaining accurate client IP information is a common challenge, especially when leveraging Content Delivery Networks (CDNs) like AWS CloudFront. The quest for the client’s true IP address often involves navigating through headers like X-Forwarded-For, but it’s not as straightforward as it might seem.
Continue ReadingContainerization has revolutionized the way applications are deployed, offering increased portability and scalability. At the forefront of container management, Kubernetes has emerged as a dominant open-source platform.
Derived from the Greek word for helmsman or pilot, Kubernetes aptly serves as a pilot, skillfully managing workloads while you set the course for your applications.
In kubernetes series article, we will explore Kubernetes’ essential features, its role in managing containerized workloads, and its extensibility options, empowering developers to harness its full potential.
An Introduction to Kubernetes (3) Publish Application to Amazon Elastic Kubernetes Service
An Introduction to Kubernetes (4) Troubleshooting & References
In this section, will introduction about environment preparation in linux and Mac.
Continue ReadingKubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It was originally developed by Google and is now maintained by the Cloud Native Computing Foundation (CNCF). Kubernetes provides a robust and scalable infrastructure to manage and deploy containerized applications in a consistent and efficient manner.
In kubernetes series article, we will explore Kubernetes’ essential features, its role in managing containerized workloads, and its extensibility options, empowering developers to harness its full potential.
An Introduction to Kubernetes (3) Publish Application to Amazon Elastic Kubernetes Service
An Introduction to Kubernetes (4) Troubleshooting & References
A Kubernetes cluster is a set of physical or virtual machines (nodes) that are connected together to form a cluster. The cluster is managed by the Kubernetes control plane, which includes several components responsible for maintaining the desired state of the cluster. These components ensure that applications are running as intended and handle tasks such as scaling, load balancing, and monitoring.
Node with following components:
Continue ReadingKubernetes has become the standard for container orchestration, enabling developers and DevOps teams to manage containerized applications efficiently and securely. It has a vibrant ecosystem and a vast community that continues to drive innovation and adoption of cloud-native technologies.
In kubernetes series article, we will explore Kubernetes’ essential features, its role in managing containerized workloads, and its extensibility options, empowering developers to harness its full potential.
An Introduction to Kubernetes (3) Publish Application to Amazon Elastic Kubernetes Service
An Introduction to Kubernetes (4) Troubleshooting & References
Before we introduction the environment preparation and cluster. Here will introduction the key concepts in kubernetes:
Continue ReadingIn kubernetes series article, we will explore Kubernetes’ essential features, its role in managing containerized workloads, and its extensibility options, empowering developers to harness its full potential.
An Introduction to Kubernetes (3) Publish Application to Amazon Elastic Kubernetes Service
An Introduction to Kubernetes (4) Troubleshooting & References
Troubleshooting Amazon EKS When faced with issues in your Amazon Elastic Kubernetes Service (Amazon EKS) workloads, there are various kubectl commands at your disposal
Continue ReadingTraditional approaches to integrating applications involve tightly coupling them together, making changes to one system impact the other.
Event-driven architecture is an excellent way to decouples and aggregate two or more applications because it provides a flexible and scalable way to integrate and communicate between different systems sources, such as user actions, system events, or sensor data. Event-driven architectures are used to build complex and scalable systems that respond to changes in real-time.
Continue ReadingA data lake is a centralized repository for storing and managing large amounts of raw data in various formats. Amazon Web Services (AWS) provides a comprehensive range of services that can be used to set up a data lake system. In this article, we will introduct how establish a data lake on AWS.
Continue ReadingRecently, our payment service is building with serverless Event-Driven Architecture with SNS, SQS, and lambda function, this will support the Event callback with core payment event service (the following will show as core event service), and this core event service are integration muli-purchase 3rd vendor to one interface.
When a user has subscriptions behavior in our platform, each action send to 3rd party vendor, the 3rd party vendor will create an Event to core event service, and the core event service send the callbacks Event to project payment service’s SNS, for the final process, project service need provide a cross VPC account access SNS grants to core Event service:
3rd vendor --(callback event)--> core event service --(callback event)--> project
Continue Reading
When developing an APP in ECS, We need to pass the environment variables to the tasks container.
Because we have sensitive and non-sensitive environment variables, so we need to take care in choosing the policy.
Continue ReadingWe have a service that sometimes got a 504 Gateway Time-Out response from ELB( actually is CLB).
When investigating the root cause, we found out that CLB’s 3 instances are normal in the current two weeks, and the 504 time-outs happened in CLB.
Continue ReadingIn this article, we will introduce the main key features of HTTP 1.0, HTTP 1.1, HTTP 2.0, and HTTP 3.0.
HTTP1.0 was published in 1996 and already obsoleted.
In HTTP1.0, each request needs to make TCP 3-way-handshake connection, which means will high cost for time-consuming and low efficiency.
Continue ReadingIn this article is a tutorial to get started with GitLab Runner, will show you how to install runner in AWS EC2 and registrations to GitLab.
Before you start, you need to make sure local with the following configuration:
AWS SAM CLI is a AWS CLI tool that allows you to develop, test and analysis your application in the local environment.
In MAC environment, install SAM tool by brew:
brew tap aws/tap
brew install aws-sam-cli
sam --version
AWS OpsWorks is an configuration management service that provides an easy way to create and manage AWS stacks and application.
You can preset your AWS resourcce and manage the configuration, deploy those resources and monitor the status of the resources activity.
Here is a AWS Cloudformation IaC process, it need you manual setting:
Code templates (Yaml or Json) -> Upload to S3 bucket -> Create stack (can created by console, api or CLI) -> Stacks and resource provisioned.
Continue ReadingThis is part II to illustrate how to setting secret to kubernetes pod local file.
(Aobut the setting secret to environment variables can reference : How to setting kubernetes secret to environment variables )
In Kubernetes, some sensitive information needs to be managed in Pods, which can be managed by Kubernetes secret.
Here we will demonstrate how to manage secrets and save to pod local file.
Continue Reading