Serialization in Go

Albert Strasheim
Serialization in Go
Albert Strasheim
Systems Gopher
About CloudFlare and me
➔ Content Delivery Network
➔ DNS, Railgun built with Go
➔ For some reason, people are trying to
send us all their NTP packets…
➔ Working on log collection, processing and
analytics, mostly in Go
Problem statement
➔ Understand your distributed system
➔ Generate, serialize, compress, send,
decompress, deserialize, process, store
and reprocess events
➔ This talk: inspired by request log events
◆ A few hundred bytes
◆ 10-100 fields, mixed bag of field types
Log Schema
message Log {
optional sfixed64 timestamp = 1;
optional uint32 zoneId = 2;
optional ZonePlan zonePlan = 3;
optional CacheStatus cacheStatus = 7;
optional bytes serverIp = 8;
optional uint64 bytesDlv = 11;
optional string rayId = 12;
}
Overview
➔ encoding/json
◆ Friends: encoding/gob, encoding/xml
➔ goprotobuf
➔ gogoprotobuf
➔ go-capnproto
➔ Benchmarks
Standard library packages
encoding/json and friends
Standard library packages
➔ Go code is your schema
➔ Uses reflection
➔ Struct tags can customize behaviour
➔ You could write your own
➔ Use Go as your schema language for
anything with the help of go/parser
encoding/json: Schema
type Log struct {
Timestamp int64 `json:"timestamp"`
ZoneId uint32 `json:"zoneId"`
ZonePlan ZonePlan `json:"omitempty"`
ServerName string `json:"-"`
}
encoding/json: API
func Marshal(v interface{}) ([]byte, error)
func MarshalIndent(v interface{}, prefix,
indent string) ([]byte, error)
func Unmarshal(data []byte,
v interface{}) error
encoding/json: API
func NewDecoder(r io.Reader) *Decoder
func (dec *Decoder)
Decode(v interface{}) error
func NewEncoder(w io.Writer) *Encoder
func (enc *Encoder)
Encode(v interface{}) error
encoding/json: API
type Marshaler interface {
MarshalJSON() ([]byte, error)
}
type Unmarshaler interface {
UnmarshalJSON([]byte) error
}
encoding/gob
➔ Easy for Go-to-Go communication
➔ Supports more types
➔ Self-describing stream
➔ Could be implemented in other languages
encoding/xml
It exists. Good luck!
goprotobuf
Protocol Buffers
Protocol Buffers
➔ Series of key-value pairs
➔ Key is a field number and wire type
◆ Variable-length integers
◆ Length-delimited fields like strings
◆ Fixed-length 32-bit and 64-bit values
➔ ProtoText
➔ Lots of libraries, lots of languages
Protocol Buffers: Schema
message Log {
optional sfixed64 timestamp = 1;
optional uint32 zoneId = 2;
optional ZonePlan zonePlan = 3;
repeated bytes serverIps = 8;
optional uint64 bytesDlv = 11;
optional string rayId = 12;
}
enum ZonePlan { FREE = 1; PRO = 2; }
goprotobuf: Generated code
type Log struct {
Timestamp *int64
`protobuf:"fixed64,1,opt,name=timestamp"
json:"timestamp,omitempty"`
ZoneId *uint32
`protobuf:"varint,2,opt,name=zoneId" …`
XXX_unrecognized []byte `json:"-"` }
goprotobuf: API
type Message interface {
Reset()
String() string
ProtoMessage()
}
goprotobuf: API
func Marshal(pb Message) ([]byte, error)
func Unmarshal(buf []byte, pb Message) error
type Buffer struct
func (p *Buffer) Marshal(pb Message) error
func (p *Buffer) Unmarshal(pb Message) error
gogoprotobuf
goprotobuf with gadgets
gogoprotobuf: Extensions
➔ nullable
Timestamp *int64 -> int64
➔ embed: embed field in struct
type Log struct { LogPart }
➔ customtype
[]byte/string -> something else
gogoprotobuf: More extensions
type Marshaler interface
type Unmarshaler interface
➔ Generate fast Marshal method
➔ Generate fast Unmarshal method
gogoprotobuf: More extensions
➔ stringer: generate String()
➔ equal: generate Equal()
➔ testgen: generate marshalling tests
➔ benchgen: generate benchmarks
➔ and lots more...
gogoprotobuf: Schema changes
import "code.google.com/p/gogoprotobuf/…
gogoproto/gogo.proto";
option (gogoproto.testgen_all) = true;
message Log {
option (gogoproto.nullable) = false;
optional bytes ip = 8 [(gogoproto.customtype)="IP"];
}
gogoprotobuf: code generation
protoc --gogo_out=...
/path/to/some.proto
code.google.com/p/gogoprotobuf/…
protoc-gen-gogo/main.go
Katydid
➔ Tree automata
➔ Write queries to match messages in a
stream of protocol buffers
➔ http://arborist.katydid.ws/
➔ github.com/awalterschulze/katydid
Serialization in Go
Cap’n Proto
➔ Machine-friendly format
➔ No explicit serialization step
➔ Packing to reduce zeros
➔ RPC with promise pipelining
➔ See also: sandstorm.io
Cap’n Proto: Schema
@0xe6860092ff3f0a59;
using Go = import "go.capnp";
$Go.package("mypkg");
struct Log { … }
Cap’n Proto: Schema
struct Log {
timestamp @0 :Int64;
zoneId @1 :UInt32;
zonePlan @2 :ZonePlan;
http @3 :HTTP;
remoteIp @4 :Data;
rayId @5 :Text; }
Cap’n Proto: Annotations
enum ZonePlan {
free @1 $Go.tag("Free");
pro @2 $Go.tag("Pro");
biz @3 $Go.tag("Business");
ent @4 $Go.tag("Enterprise");
}
go-capnproto: capnpc-go
capnp compile -ogo log.capnp
Parses log.capnp and sends it as a
CodeGeneratorRequest to capnpc-go on
standard input
capnp: more fun
capnp compile -o /bin/cat log.capnp |
capnp decode schema.capnp
CodeGeneratorRequest
go-capnproto: Generated code
import C "github.com/jmckaskill/go-capnproto"
type Log C.Struct
func NewRootLog(s *C.Segment) Log
func NewLog(s *C.Segment) Log
func ReadRootLog(s *C.Segment) Log
func NewLogList(s *C.Segment, sz int) Log_List
go-capnproto: Generated code
func (s Log) Timestamp() int64 {
return int64(C.Struct(s).Get64(0)) }
func (s Log) SetTimestamp(v int64){
C.Struct(s).Set64(0, uint64(v)) }
func (s Log) RayId() string {
return C.Struct(s).GetObject(5).ToText() }
func (s Log) SetRayId(v string) {
C.Struct(s).SetObject(5, s.Segment.NewText(v)) }
go-capnproto: API
b := make([]byte, 0, 16<<10)
segment := capn.NewBuffer(b)
event := capnp.NewRootLog(segment)
event.SetTimestamp(…)
err := segment.WriteTo(writer)
go-capnproto: API
var buf bytes.Buffer
for {
seg, err :=
capn.ReadFromStream(reader, &buf)
event := ReadRootLog(seg)
}
go-capnproto: Next Steps
➔ Fix a few minor bugs
➔ Optimize
➔ API tweaks
➔ Split code generation into a library
➔ Wrap the C++ parser with SWIG
Benchmarks
My attempt to give you real numbers
Benchmarks: Populate struct fields
BenchmarkPopulatePb
1180 ns/op 16 allocs/op
BenchmarkPopulateGogopb
390 ns/op 3 allocs/op
BenchmarkPopulateCapnp
4509 ns/op 2 allocs/op
Benchmarks: Serialization
BenchmarkMarshalJSON 11918 ns/op
BenchmarkMarshalPb 2487 ns/op
BenchmarkMarshalGogopb 581 ns/op
BenchmarkMarshalCapnp 183 ns/op
Benchmarks: Deserialization
BenchmarkUnmarshalJSON 31174 ns/op
BenchmarkUnmarshalPb 3262 ns/op
BenchmarkUnmarshalGogopb 894 ns/op
BenchmarkUnmarshalCapnp 879 ns/op
BenchmarkUnmarshalCapnpZeroCopy 467 ns/op
Profiling tools
go test -benchmem
go test -cpuprofile=cpu.prof
go tool pprof
perf top on Linux
Serialization in Go
Serialization in Go
Conclusion
Build benchmarks with your own data
Questions?
Slides on the CloudFlare blog soon
Code at github.com/cloudflare/goser
1 of 47

Recommended

Outrageous Performance: RageDB's Experience with the Seastar Framework by
Outrageous Performance: RageDB's Experience with the Seastar FrameworkOutrageous Performance: RageDB's Experience with the Seastar Framework
Outrageous Performance: RageDB's Experience with the Seastar FrameworkScyllaDB
345 views34 slides
HBase HUG Presentation: Avoiding Full GCs with MemStore-Local Allocation Buffers by
HBase HUG Presentation: Avoiding Full GCs with MemStore-Local Allocation BuffersHBase HUG Presentation: Avoiding Full GCs with MemStore-Local Allocation Buffers
HBase HUG Presentation: Avoiding Full GCs with MemStore-Local Allocation BuffersCloudera, Inc.
15.6K views39 slides
Bluestore by
BluestoreBluestore
BluestorePatrick McGarry
1.3K views51 slides
HBase Low Latency by
HBase Low LatencyHBase Low Latency
HBase Low LatencyDataWorks Summit
5.1K views38 slides
Introduction to memcached by
Introduction to memcachedIntroduction to memcached
Introduction to memcachedJurriaan Persyn
70.9K views77 slides
storm at twitter by
storm at twitterstorm at twitter
storm at twitterKrishna Gade
22.4K views46 slides

More Related Content

What's hot

Upgrading HDFS to 3.3.0 and deploying RBF in production #LINE_DM by
Upgrading HDFS to 3.3.0 and deploying RBF in production #LINE_DMUpgrading HDFS to 3.3.0 and deploying RBF in production #LINE_DM
Upgrading HDFS to 3.3.0 and deploying RBF in production #LINE_DMYahoo!デベロッパーネットワーク
3.1K views25 slides
600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014) by
600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)
600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)iXsystems
10.2K views32 slides
Json in Postgres - the Roadmap by
 Json in Postgres - the Roadmap Json in Postgres - the Roadmap
Json in Postgres - the RoadmapEDB
207 views121 slides
Under The Hood Of A Shard-Per-Core Database Architecture by
Under The Hood Of A Shard-Per-Core Database ArchitectureUnder The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database ArchitectureScyllaDB
749 views60 slides
[Main Session] 카프카, 데이터 플랫폼의 최강자 by
[Main Session] 카프카, 데이터 플랫폼의 최강자[Main Session] 카프카, 데이터 플랫폼의 최강자
[Main Session] 카프카, 데이터 플랫폼의 최강자Oracle Korea
2.8K views74 slides
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013 by
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013mumrah
61.3K views43 slides

What's hot(20)

600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014) by iXsystems
600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)
600M+ Unsuspecting FreeBSD Users (MeetBSD California 2014)
iXsystems10.2K views
Json in Postgres - the Roadmap by EDB
 Json in Postgres - the Roadmap Json in Postgres - the Roadmap
Json in Postgres - the Roadmap
EDB207 views
Under The Hood Of A Shard-Per-Core Database Architecture by ScyllaDB
Under The Hood Of A Shard-Per-Core Database ArchitectureUnder The Hood Of A Shard-Per-Core Database Architecture
Under The Hood Of A Shard-Per-Core Database Architecture
ScyllaDB749 views
[Main Session] 카프카, 데이터 플랫폼의 최강자 by Oracle Korea
[Main Session] 카프카, 데이터 플랫폼의 최강자[Main Session] 카프카, 데이터 플랫폼의 최강자
[Main Session] 카프카, 데이터 플랫폼의 최강자
Oracle Korea2.8K views
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013 by mumrah
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
mumrah61.3K views
Introduction to Apache ZooKeeper by Saurav Haloi
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
Saurav Haloi128.5K views
mongodb와 mysql의 CRUD 연산의 성능 비교 by Woo Yeong Choi
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
Woo Yeong Choi31.7K views
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay by Altinity Ltd
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBayReal-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
Altinity Ltd732 views
My first 90 days with ClickHouse.pdf by Alkin Tezuysal
My first 90 days with ClickHouse.pdfMy first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdf
Alkin Tezuysal501 views
Compression Options in Hadoop - A Tale of Tradeoffs by DataWorks Summit
Compression Options in Hadoop - A Tale of TradeoffsCompression Options in Hadoop - A Tale of Tradeoffs
Compression Options in Hadoop - A Tale of Tradeoffs
DataWorks Summit18K views
RedisConf17 - Lyft - Geospatial at Scale - Daniel Hochman by Redis Labs
RedisConf17 - Lyft - Geospatial at Scale - Daniel HochmanRedisConf17 - Lyft - Geospatial at Scale - Daniel Hochman
RedisConf17 - Lyft - Geospatial at Scale - Daniel Hochman
Redis Labs2.4K views
Introduction to Redis by Dvir Volk
Introduction to RedisIntroduction to Redis
Introduction to Redis
Dvir Volk121.1K views
Mvcc in postgreSQL 권건우 by PgDay.Seoul
Mvcc in postgreSQL 권건우Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우
PgDay.Seoul3.7K views
HBase Sizing Guide by larsgeorge
HBase Sizing GuideHBase Sizing Guide
HBase Sizing Guide
larsgeorge7.3K views
Apache Spark on K8S and HDFS Security with Ilan Flonenko by Databricks
Apache Spark on K8S and HDFS Security with Ilan FlonenkoApache Spark on K8S and HDFS Security with Ilan Flonenko
Apache Spark on K8S and HDFS Security with Ilan Flonenko
Databricks761 views
Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera by Cloudera, Inc.
Hadoop World 2011: Advanced HBase Schema Design - Lars George, ClouderaHadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Cloudera, Inc.8.8K views
Apache Hadoop YARN: best practices by DataWorks Summit
Apache Hadoop YARN: best practicesApache Hadoop YARN: best practices
Apache Hadoop YARN: best practices
DataWorks Summit16.8K views
Apache Ambari: Past, Present, Future by Hortonworks
Apache Ambari: Past, Present, FutureApache Ambari: Past, Present, Future
Apache Ambari: Past, Present, Future
Hortonworks3.2K views
Under the Hood of a Shard-per-Core Database Architecture by ScyllaDB
Under the Hood of a Shard-per-Core Database ArchitectureUnder the Hood of a Shard-per-Core Database Architecture
Under the Hood of a Shard-per-Core Database Architecture
ScyllaDB1.3K views

Viewers also liked

Язык программирования GO by
Язык программирования GOЯзык программирования GO
Язык программирования GOPython Meetup
3.1K views40 slides
Enabling Googley microservices with HTTP/2 and gRPC. by
Enabling Googley microservices with HTTP/2 and gRPC.Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.Alex Borysov
18.7K views201 slides
JSONSchema with golang by
JSONSchema with golangJSONSchema with golang
JSONSchema with golangSuraj Deshmukh
3.5K views18 slides
7 Common mistakes in Go and when to avoid them by
7 Common mistakes in Go and when to avoid them7 Common mistakes in Go and when to avoid them
7 Common mistakes in Go and when to avoid themSteven Francia
40.1K views72 slides
Comparative Analysis Of GoLang Testing Frameworks by
Comparative Analysis Of GoLang Testing FrameworksComparative Analysis Of GoLang Testing Frameworks
Comparative Analysis Of GoLang Testing FrameworksDushyant Bhalgami
8.9K views11 slides
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t... by
 Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t... Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...AboutYouGmbH
13.4K views51 slides

Viewers also liked(6)

Язык программирования GO by Python Meetup
Язык программирования GOЯзык программирования GO
Язык программирования GO
Python Meetup3.1K views
Enabling Googley microservices with HTTP/2 and gRPC. by Alex Borysov
Enabling Googley microservices with HTTP/2 and gRPC.Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.
Alex Borysov18.7K views
7 Common mistakes in Go and when to avoid them by Steven Francia
7 Common mistakes in Go and when to avoid them7 Common mistakes in Go and when to avoid them
7 Common mistakes in Go and when to avoid them
Steven Francia40.1K views
Comparative Analysis Of GoLang Testing Frameworks by Dushyant Bhalgami
Comparative Analysis Of GoLang Testing FrameworksComparative Analysis Of GoLang Testing Frameworks
Comparative Analysis Of GoLang Testing Frameworks
Dushyant Bhalgami8.9K views
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t... by AboutYouGmbH
 Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t... Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
AboutYouGmbH13.4K views

Similar to Serialization in Go

Application Logging in the 21st century - 2014.key by
Application Logging in the 21st century - 2014.keyApplication Logging in the 21st century - 2014.key
Application Logging in the 21st century - 2014.keyTim Bunce
6.4K views65 slides
syslog-ng: from log collection to processing and information extraction by
syslog-ng: from log collection to processing and information extractionsyslog-ng: from log collection to processing and information extraction
syslog-ng: from log collection to processing and information extractionBalaBit
2.6K views37 slides
LOADays 2015 - syslog-ng - from log collection to processing and infomation e... by
LOADays 2015 - syslog-ng - from log collection to processing and infomation e...LOADays 2015 - syslog-ng - from log collection to processing and infomation e...
LOADays 2015 - syslog-ng - from log collection to processing and infomation e...BalaBit
1.2K views35 slides
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for... by
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...Alexandre Moneger
892 views44 slides
2015. Libre Software Meeting - syslog-ng: from log collection to processing a... by
2015. Libre Software Meeting - syslog-ng: from log collection to processing a...2015. Libre Software Meeting - syslog-ng: from log collection to processing a...
2015. Libre Software Meeting - syslog-ng: from log collection to processing a...BalaBit
1.2K views34 slides
Fedora Developer's Conference 2014 Talk by
Fedora Developer's Conference 2014 TalkFedora Developer's Conference 2014 Talk
Fedora Developer's Conference 2014 TalkRainer Gerhards
3.5K views29 slides

Similar to Serialization in Go(20)

Application Logging in the 21st century - 2014.key by Tim Bunce
Application Logging in the 21st century - 2014.keyApplication Logging in the 21st century - 2014.key
Application Logging in the 21st century - 2014.key
Tim Bunce6.4K views
syslog-ng: from log collection to processing and information extraction by BalaBit
syslog-ng: from log collection to processing and information extractionsyslog-ng: from log collection to processing and information extraction
syslog-ng: from log collection to processing and information extraction
BalaBit2.6K views
LOADays 2015 - syslog-ng - from log collection to processing and infomation e... by BalaBit
LOADays 2015 - syslog-ng - from log collection to processing and infomation e...LOADays 2015 - syslog-ng - from log collection to processing and infomation e...
LOADays 2015 - syslog-ng - from log collection to processing and infomation e...
BalaBit1.2K views
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for... by Alexandre Moneger
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
Alexandre Moneger892 views
2015. Libre Software Meeting - syslog-ng: from log collection to processing a... by BalaBit
2015. Libre Software Meeting - syslog-ng: from log collection to processing a...2015. Libre Software Meeting - syslog-ng: from log collection to processing a...
2015. Libre Software Meeting - syslog-ng: from log collection to processing a...
BalaBit1.2K views
Fedora Developer's Conference 2014 Talk by Rainer Gerhards
Fedora Developer's Conference 2014 TalkFedora Developer's Conference 2014 Talk
Fedora Developer's Conference 2014 Talk
Rainer Gerhards3.5K views
Cap'n Proto (C++ Developer Meetup Iasi) by Ovidiu Farauanu
Cap'n Proto (C++ Developer Meetup Iasi)Cap'n Proto (C++ Developer Meetup Iasi)
Cap'n Proto (C++ Developer Meetup Iasi)
Ovidiu Farauanu1.1K views
Fluentd unified logging layer by Kiyoto Tamura
Fluentd   unified logging layerFluentd   unified logging layer
Fluentd unified logging layer
Kiyoto Tamura2.9K views
NSC #2 - Challenge Solution by NoSuchCon
NSC #2 - Challenge SolutionNSC #2 - Challenge Solution
NSC #2 - Challenge Solution
NoSuchCon1.6K views
Relational Database Access with Python ‘sans’ ORM by Mark Rees
Relational Database Access with Python ‘sans’ ORM  Relational Database Access with Python ‘sans’ ORM
Relational Database Access with Python ‘sans’ ORM
Mark Rees2.6K views
Ngrep commands by Rishu Seth
Ngrep commandsNgrep commands
Ngrep commands
Rishu Seth5.4K views
Gpu workshop cluster universe: scripting cuda by Ferdinand Jamitzky
Gpu workshop cluster universe: scripting cudaGpu workshop cluster universe: scripting cuda
Gpu workshop cluster universe: scripting cuda
Ferdinand Jamitzky1.1K views
Scaling Your Logging Infrastructure With Syslog-NG by All Things Open
Scaling Your Logging Infrastructure With Syslog-NGScaling Your Logging Infrastructure With Syslog-NG
Scaling Your Logging Infrastructure With Syslog-NG
All Things Open2.3K views
Scaling your logging infrastructure using syslog-ng by Peter Czanik
Scaling your logging infrastructure using syslog-ngScaling your logging infrastructure using syslog-ng
Scaling your logging infrastructure using syslog-ng
Peter Czanik1.5K views
Start Wrap Episode 11: A New Rope by Yung-Yu Chen
Start Wrap Episode 11: A New RopeStart Wrap Episode 11: A New Rope
Start Wrap Episode 11: A New Rope
Yung-Yu Chen335 views
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum by Scott Tsai
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicumBsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum
Scott Tsai57 views
Experiences building a distributed shared log on RADOS - Noah Watkins by Ceph Community
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah Watkins
Ceph Community 98 views

Recently uploaded

Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... by
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...ShapeBlue
144 views12 slides
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...ShapeBlue
123 views28 slides
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... by
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...ShapeBlue
101 views17 slides
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueShapeBlue
94 views13 slides
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlueShapeBlue
103 views23 slides
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueShapeBlue
93 views15 slides

Recently uploaded(20)

Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... by ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue144 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue123 views
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... by ShapeBlue
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
ShapeBlue101 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue94 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue103 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue93 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue210 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue181 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue154 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue158 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue112 views
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue197 views
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ by ShapeBlue
Confidence in CloudStack - Aron Wagner, Nathan Gleason - AmericConfidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
ShapeBlue88 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu365 views
The Role of Patterns in the Era of Large Language Models by Yunyao Li
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language Models
Yunyao Li80 views
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue79 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue98 views

Serialization in Go