How
SparkFun Electronics built their open hardware business
Posted 18 Sep 2012 by
Christopher Clark
Bài được đưa lên
Internet ngày: 18/09/2012
Lời
người dịch: Thế giới nguồn mở tạo ra những mô hình
phát triển và mô hình sản xuất hoàn toàn mới mà trước
đó chưa từng có. Sparkle là một ví dụ. Hệ thống quản
lý của nó toàn là các PMTDNM. “Sparkle, và các hệ thống
quản lý nó, tận dụng nhiều phần mềm tự do nguồn mở
(PMTDNM). PHP
là ngôn ngữ cốt lõi. Nginx là máy chủ web gốc với
Varnish cho việc nhớ tạm caching. Mọi thứ chạy trong
Debian
Linux và dữ liệu sống trong MariaDB
(người anh em nguồn mở hơn với MySQL) và MongoDB
cho những thứ phi quan hệ. Và caching diễn ra với
Memcached
và Redis.
Ở phía máy trạm, các thư viện như jQuery,
D3,
và Bootstrap
là ở khắp mọi nơi. Bên trong nội bộ, các công cụ hệ
thống như Munin,
Nagios,
Samba,
Puppet,
và Capistrano
(chỉ nêu một số ít) giữ cho mọi thứ hoạt động
được”. Hơn thế, “Bây giờ, tất cả điều này chơi
tốt với phần còn lại của doanh nghiệp. SparkFun
đã và đang thúc đẩy phần cứng nguồn mở vài năm nay.
Các sản phẩm được các kỹ sư của SparkFun thiết kế
được tung ra với phần dẻo
và các lược đồ theo một giấy phép Creative Commons”.
Tại SparkFun
Electronics chúng tôi không bán phần mềm, dù chúng tôi có
một đội phát triển phần mềm mạnh mẽ. Các lập trình
viên đó bỏ một số thời gian trong SparkFun.com,
một nền tảng thương mại điện tử với các nội dung
mở rộng và các yếu tố cộng đồng được tích hợp.
Tuy nhiên, đa số lớn thời gian, được bỏ ra vào
Sparkle.
Một người có lẽ
gọi Sparkle là một hệ thống ERP (Lên kế hoạch Nguồn
lực Doanh nghiệp) dựa vào web. Đây là một quan điểm
khác nằm trên đỉnh của cùng các cơ sở dữ liệu nằm
bên dưới SparkFun.com nhưng với việc trải dài ra các hệ
thống phụ bên trong nôi bộ làm bất kỳ thứ gì bao gồm
dịch vụ khách hàng cơ bản, quản lý kho xuất hàng, và
quản lý sản xuất.
Sparkle,
và các hệ thống quản lý nó, tận dụng nhiều phần mềm
tự do nguồn mở (PMTDNM). PHP
là ngôn ngữ cốt lõi. Nginx là máy chủ web gốc với
Varnish cho việc nhớ tạm caching. Mọi thứ chạy trong
Debian
Linux và dữ liệu sống trong MariaDB
(người anh em nguồn mở hơn với MySQL) và MongoDB
cho những thứ phi quan hệ. Và caching diễn ra với
Memcached
và Redis.
Ở phía máy trạm, các thư viện như jQuery,
D3,
và Bootstrap
là ở khắp mọi nơi. Bên trong nội bộ, các công cụ hệ
thống như Munin,
Nagios,
Samba,
Puppet,
và Capistrano
(chỉ nêu một số ít) giữ cho mọi thứ hoạt động
được.
Gọi nó là một kho
nguồn mở là để nói cho ngắn gọn. Đây là một kiến
trúc nguồn mở và nó là rộng khắp doanh nghiệp. Thậm
chí các điện thoại của chúng tôi chạy trên Asterisk,
một khung công việc điện thoại nguồn mở.
Bây
giờ, tất cả điều này chơi tốt với phần còn lại
của doanh nghiệp. SparkFun đã và đang thúc đẩy phần
cứng nguồn mở vài năm nay. Các sản phẩm được các kỹ
sư của SparkFun thiết kế được tung ra với phần dẻo
và các lược đồ theo một giấy phép Creative Commons. Đối
với tất cả các đồ điện tử mới mà SparkFun đã sản
xuất qua các năm thì hãng không nắm giữ một bằng sáng
chế nào.
Tất cả những thứ
mù mờ ấm áp ở trên là cho các nhân viên đầu óc nguồn
mở của chúng tôi. Như một tổ chức, chúng tôi đang
đóng góp cho cộng đồng nguồn mở... đúng không? Vâng,
cộng đồng phần cứng nguồn mở chảy máu chắc chắn
thích thú với sự giàu có của tư liệu mới từ
SparkFun. Tuy nhiên, việc tìm kiếm các phần cứng nguồn
mở từ đội phát triển của SparkFun hóa ra là khá ít.
At
SparkFun Electronics we do not sell software, yet we have a robust
software development team. These developers spend some of their time
on SparkFun.com,
an eCommerce platform with extra content and integrated community
elements. The vast majority of their time, however, is spent on
Sparkle.
One
might call Sparkle a web-based ERP system. It's the other view
atop the same databases underlying SparkFun.com but with
sprawling internal subsystems that do everything including basic
customer service, running the shipping warehouse, and running the
manufacturing floor.
Sparkle,
and the systems running it, take great advantage of free open source
software. PHP
is the core language. Nginx
is the core webserver with Varnish
for caching. Everything runs on Debian
Linux and the data lives in MariaDB
(MySQL's more open cousin) and MongoDB
for the non-relational stuff. And caching happens with Memcached
and Redis. On the
client side, libraries like jQuery,
D3, and Bootstrap
are ubiquitous. Internally, systems side tools like Munin,
Nagios, Samba,
Puppet, and
Capistrano
(to name just a few) keep the lights on.
To
call it an open source stack is to sell it short. It's an open source
architecture and it's enterprise-wide. Even our phones run on
Asterisk, an open source telephone framework.
Now,
this all jives well with the rest of the business. SparkFun's been
pushing
open source hardware for a few years. Products designed by
SparkFun engineers are released with schematics and firmware under
a Creative
Commons license. For all the new electronics SparkFun
has produced over the years the company doesn't hold a single patent.
All
of the above yields warm fuzzies for our open-source-minded staff. As
an organization, we're contributing to the open source
community...right? Well, the bleeding-edge open source hardware
community certainly enjoys a wealth of new material from SparkFun.
However, searching for open source software from the SparkFun
development team turns up comparatively less.
Để ảo hóa bất kỳ
dạng hoạt động nào trên một website chúng tôi có Blode,
daemon phát hành sự kiện giống như hệ thống lưu ký.
Cũng có StormFS,
một lớp ảo hóa FUSE cho lưu trữ đám mây. Rồi tất
nhiên có SparkLib,
một bộ sưu tập khiêm tốn nhất các thư viện PHP được
đặt tên cho phần còn lại của Sparkle. Những thư viện
đó, dù chúng ít, lại là đủ cho mục tiêu chung mà ai đó
cùng với chúng tôi có thể thực sự muốn sử dụng
chúng.
Đó là còn xa so với,
nói, Twitter đưa ra bộ khởi động (Bootstrap) và tới lượt
nó biến đổi cách mà sự phát triển nhanh của giao diện
mặt tiền (front-end) diễn ra đối với một đoạn đáng
kể của Internet. Còn tranh cãi các phần mềm nguồn mở
của chúng tôi còn chưa có được ảnh hưởng đo đếm
được nào. Vì thế những gì Twitter đã làm là đúng
chứ? Họ đã không thỏa mãn với các khung CSS hiện đang
tồn tại nên họ đã đầu tư vào các tài nguyên của
lập trình viên để xây dựng cho riêng họ. Điều đó là
đáng sợ, và họ còn chưa kinh doanh bán các khung CSS, nên
nọ mở nguồn nó và đã có nhiều sự tham gia vào.
Tại SparkFun chúng tôi
đã nhìn vào và không hài lòng gia tăng với các hệ thống
ERP dựa trên web. Vì thế, chúng tôi đã quyết định xây
dựng của riêng chúng tôi, gọi là Sparkle. Các phần của
nó là dạng đáng sợ, và chúng tôi không kinh doanh bán
các hệ thống ERP. Chúng tôi sẽ mở nguồn nó chứ?
Tôi được hỏi câu
hỏi này nhiều lần. Và thực sự, đó là một mục tiêu
dài hạn. Nó thậm chí thông báo cho các quyết định kỹ
thuật theo hàng ngày. Tuy nhiên, không giống như Bootstrap,
Sparkle vẫn còn đang phát triển từ gốc thủ tục của
nó để trở thành một hệ thống dựa vào MVC, theo
module, sạch sẽ đi với ít hơn sự nghiêm ngặt đối với
sơ đồ và usecase đặc thù của nó. Mở nguồn nó hôm
nay có thể là quá là bí hiểm và không bình thường đối
với ai đó muốn kho LAMP dùng được ngay mà một hệ
thống ERP cho doanh nghiệp đâm chồi nảy lộc của họ.
Nhưng việc xây dựng lại các mẩu của nó để trở
thành có mục đích chung hơn cũng làm cho sạch hơn, dễ
hơn để duy trì mã nguồn và vì thế là một sự theo
đuổi đáng giá. Đặt ra cách khác, việc làm sạch kho mã
nguồn của chúng tôi và làm cho kho mã nguồn của chúng
tôi thành mã nguồn mở có khả năng thực tiễn là thứ
y hệt, nên chúng tôi sẽ làm cả 2 và mọi người cùng
thắng.
Trong khi chờ đợi,
sự say mê của chúng tôi đóng góp trở ngược lại cho
cộng đồng nguồn mở hào phóng được cải thiện bằng
phần cứng nguồn mở chảy từ các phần khác của công
ty - một quá trình liên tục được làm hiệu quả hơn
bằng việc phát triển trong Sparkle. Cách đóng góp không
trực tiếp này là, cho tới nay, cách tốt nhất để
chuyển các tài nguyên của các lập trình viên thành các
tư liệu nguồn mở có giá trị trong khi vẫn giữ được
doanh nghiệp chạy được.
Cuối cùng, Sparkle sẽ
xem ánh sáng vượt ra ngoài các bức tường của SparkFun.
Tôi mong chờ cái ngày một công ty non trẻ sử dụng một
module Sparkle để quản lý sản xuất hoặc tiên đoán các
xu thế sử dụng trong kho hàng. Tuy nhiên, kịch bản đó
chỉ có thể có được nếu những gì chúng tôi đưa ra
là thực tế có thể chuyển dời được. Vì thế, nó
phải chờ đợi. Việc đưa ra chất lượng ngày mai đánh
vào việc đưa ra sự ầm ĩ hôm nay.
For
visualizing any type of activity on a website we have Blode,
our syslog-like event broadcast daemon. There's also StormFS,
a FUSE abstraction layer for cloud storage. Then of course
there's SparkLib,
a modest collection of PHP libraries namespaced out of the rest of
Sparkle. These libraries, few though they are, are
general-purpose enough that somebody besides us might actually want
to use them.
That
is a far cry from, say, Twitter releasing Bootstrap and in turn
transforming how rapid front-end development happens for a
significant chunk of the Internet. Arguably our open source software
hasn't had a measurable impact yet. So what has Twitter done
right? They were dissatisfied with existing CSS frameworks so
they invested developer resources to build their own. It was
awesome, and they're not in the business of selling CSS frameworks,
so they open sourced it and there was much rejoicing.
At
SparkFun we looked at and grew dissatisfied with web-based ERP
systems. So, we decided to build our own, called Sparkle. Parts
of it are kind of awesome, and we're not in the business of
selling ERP systems. Will we opensource it?
I've
been asked this question many times. And actually, that is a long
term goal. It even informs technical decisions on a day to day
basis. Unlike Bootstrap, however, Sparkle is still developing
from its procedural roots to be a clean, modular, MVC-based
system coupled less tightly to its schema and specific usecase.
Open sourced today it would be far too cryptic and unusable
to someone who wants an out-of-the-box LAMP stack ERP system for
their burgeoning business. But rebuilding pieces of it to be more
general-purpose also generates cleaner, easier to maintain code and
is thus a worthwhile pursuit. Put another way, cleaning up our
code base and making our code base open source able are practically
the same thing, so we'll do both and everybody wins.
In
the meantime, our eagerness to give back to the generous open source
community is ameliorated by the open source hardware flowing from
other parts of the company—a process continually made
more efficient by developing on Sparkle. This indirect way of
contributing is, to date, the best way to convert developer resources
into valuable open source material while keeping the business
running.
Sparkle
will see light beyond SparkFun's walls, eventually. I do look forward
to the day a fledgling company uses a Sparkle module to run
its manufacturing floor or predict usage trends on inventory.
That scenario can only play out if what we release is in fact
transferable, however. Thus, it waits. Releasing quality tomorrow
beats releasing noise today.
Dịch: Lê Trung Nghĩa