Saturday, April 9, 2022

[Parca]測試 Polar Signals 開源 Parca (基於eBPF 的profiler)

前陣子發現在Github上有個open-source projects: Parca (包含Server & Agent ),扒文了一下,Parca是Solar Signals的一個開源項目。它是持續分析存儲、查詢引擎和一個基於eBPF 的profiler。其目的在通過系統地測量代碼性能將可觀察性空間提升到一個新的水平,使每個人都能夠優化他們的代碼。

Parca 旨在將持續分析技術帶給所有人;其打包了許多開箱即用的功能,包括收集、存儲和提供可用於長期查詢的profiles 的能力— 包括CPU 分析,以確定CPU 執行一段特定代碼所需的時間。相關資源如下:

Tuesday, March 29, 2022

[libbpf] 為何要使用 libbpf? 什麼是libbpfgo?


在開始說清楚講明白什麼是libbpfgo之前,我們可以先看這一投影片介紹初學者使用Go開發eBPF程式指南: Beginner's Guide to eBPF programming with Go,此作者也提供 GitHub: https://github.com/lizrice/libbpfgo-beginners,可體驗一下用libbpfgo開發的小範例程式Basic eBPF examples in Golang using libbpfgo.


看過了簡單的小範例之後,接下來這篇文章主要是解釋什麼是vmlinux.h 以及為什麼在編寫 eBPF 程序時應該開始使用它: What is vmlinux.h and Why is It Important for Your eBPF Programs?

重點如下:

[Janus] 如何快速制定與使用Janus API Gateway


[前言]

當前端(Frontend) Web App 需要使用到多個API Servers時,最快的方式就是使用API Gateway 作為前端的進入點,透過URI Route的設定與對應後端的API & Server。

根據Janus's Github 上官方的描述, 它是一個輕量級的 API Gateway和 管理平台,可控制訪問 API 的人員、訪問時間以及訪問方式。Janus 還將記錄有關使用者如何與你的 API 交互以及何時出現問題的詳細分析。

官方文件: https://hellofresh.gitbooks.io/janus/content/

下面段落將說明如何快速制定與使用Janus API Gateway。

Wednesday, March 23, 2022

[GraphQL] 使用 Apollo Client + React 來建置 GraphQL 前端應用程式

[前言]

GraphQL系列文章

本篇內容將提供快速的指引,使用Golang Gin Framework來建置GraphQL的API  Server。


[Apollo Client Architecture]

Apollo Client 與 UI 框架無關 (可與 Angular.js、Vue.js、React 甚至原生 iOS 和 Android 應用程序一起使用)。

Tuesday, March 22, 2022

[GraphQL] 使用Golang Gin Framework來建置GraphQL的API Server

 [前言]

本篇內容將提供快速的指引,使用Golang Gin Framework來建置GraphQL的API  Server。


[使用Golang Gin Framework來建置GraphQL的API  Server]

GraphQL API Server主體上來說是參考下列文章的方式來建置:

第 1 天 - API 服務器(Go,GraphQL) - 第 1 部分

第 2 天 - API 服務器(Go,GraphQL) - 第 2 部分

Golang Gin Server網路上已經有很多資源,我們假設已經有的前提下,如何來建置GraphQL的API  Server。首先,先安裝所需的模組:

#在個人自己的Gin Server 的 project 內
$ go get github.com/99designs/gqlgen
$ go get github.com/gin-gonic/gin

我們需要準備下列檔案: 

Friday, March 18, 2022

[Golang] Go 1.16 中關於go get和go install的變動

 

[前言]

其實Go 1.16已經 Release 很久了,但最近發現關於 go get 的行為跟以前不一樣並且多了 go install 這個 tool,所以本篇記錄一下需要注意的地方。

[關於go get和go install的變動]

我目前Golang的版本如下:

Wednesday, March 16, 2022

[React] 從無到有建立全新的 React 應用程式

[前言]

本篇內容將提供快速的指引,包含相關需安裝的套件,從無到有建立全新的 React 應用程式( single-page application, SPA)


[安裝]

請先下載 node.js 打包檔於 https://nodejs.org/en/

本次範例是使用 node version v16.17.0 (.tar.gz file) 

安裝步驟如下:

[Tracee] Tracee 研究筆記 (一)

 [前言]

Tracee 是一個用 於 Linux 的執行時安全和取證工具。它使用 Linux eBPF 技術在執行時跟蹤系統和應用程式,並分析收集的事件以檢測可疑的行為模式。本篇對於Tracee這open source project進行了編譯與初步測試,在此做個筆記以防忘記。後續將針對源碼進行分析。

Github 位置為: https://github.com/aquasecurity/tracee


[Tracee相關文件資源]

網路上已經有不少的相關文件資源可以參考,在此不重覆贅述,如下所示:

eBPF 安全專案 Tracee 初探

深入浅出 eBPF 安全项目 Tracee

falco和tracee的实践

  • 裡面有提到 tracee 這種僅使用ebpf系統調用做入侵檢測的技術路線還不夠成熟~