Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Arquiteturas Executáveis
Search
Everton Ribeiro
November 08, 2014
Programming
130
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Arquiteturas Executáveis
Everton Ribeiro
November 08, 2014
More Decks by Everton Ribeiro
See All by Everton Ribeiro
DSLs JavaScript
nuxlli
5
310
Arquiteturas Executáveis - WeOp Summit
nuxlli
3
120
Other Decks in Programming
See All in Programming
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
190
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
190
A2UI という光を覗いてみる
satohjohn
1
170
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
2
680
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.6k
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
380
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
190
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
320
技術的負債解消で開発者の未来を開く- AIの力でコード刷新
kmd2kmd
0
140
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
280
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.1k
Featured
See All Featured
Believing is Seeing
oripsolob
1
160
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
200
Designing for Timeless Needs
cassininazir
1
270
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
エンジニアに許された特別な時間の終わり
watany
107
250k
The SEO identity crisis: Don't let AI make you average
varn
0
510
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
260
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Transcript
Arquitetura Executável ÉVERTON RIBEIRO
@nuxlli manutenção, operação, desenvolvimento, pesquisa e empreendimento
None
A batalha!
desenvolvimento vs. operação
Entregar para ontem a solução que atenda todos os requisitos
funcionais. Garantir que seja lá o que o dev entregue: rode, seja seguro e escale. (ontem)
Arquitetura da aplicação
Arquitetura do sistema
None
Se a comunicação falhar, a aplicação falhará e todos perdem.
Soluções?!?
Wikis, playbooks, chats, café… Documentação
O principal problema das documentações de arquitetura é que ninguém
atualiza.
Chef, puppet, ansible, vagrant, terraform, monit, god… Ferramentas
Devem ser parte da solução, mas são apenas partes mesmo.
Lembre-se: desenvolvedores estão focados em desenvolver. E deveriam estar mesmo!
Vagrant, terraform, monit, god…
si, pero no mucho Boas práticas
Se boas práticas fossem fáceis de adotar a documentação estaria
em dia ;)
Arquitetura executável
Linguagem de alto nível, que diferente de fluxogramas…
… pode ser interpretada para implantação e automação de sistemas.
systems({ api: { image: "ruby", depends: [ "mysql" ], //...
}, mysql: //..., });
A "documentação" da arquitetura se torna parte da solução, sendo
essencial na sua execução.
É resultado do fluxo de trabalho do desenvolvedor e do
arquiteto de sistemas.
fluxo de trabalho
fluxo de trabalho arquitetura
AZK
Ferramenta open source para orquestração de ambientes de desenvolvimento…
Configuração DNS Instalação Monitoramento Logs Webservices Dependências AZK Receitas
…através de arquivos manifesto de alto nível.
É uma descrição sucinta dos componentes que formam a arquitetura
da aplicação.
Bem como da relação entre esses componentes e de que
forma eles são acessados.
systems({ api: { image: "ruby", depends: [ "mysql" ], //...
}, mysql: //..., }); arquitetura executável
Exemplificando:
small.io - Web (Rails) - Database (Mysql)
$ cd ~/blog $ azk init azk: System ruby/rails detected:
‘blog’ azk: Required system mysql detected in ‘blog' azk: ‘Azkfile.js’ generated ! Tip: Adds the `.azk` in .gitignore echo ‘.azk’ >> .gitignore
// Azkfile.js (JavaScript DSL) systems({ blog: { depends : [
"mysqldb" ], image : "azukiapp/ruby", provision : [ "bundle install vendor/bundler" ], command : "rackup -s thin", mounts : { "/azk/#{manifest.dir}": path(".") }, scalable : { default: 3 }, http: { domains: [ "#{system.name}.#{azk.defaul_domain}" ], }, env : [ RUBY_ENV: "dev" ], }, mysqldb: { image : "azukiapp/mysql", mounts: { "/data/db": persistent("data") }, }, });
$ azk start ! Get images: - azukiapp/mysql - azukiapp/ruby
! Starting: - db - blog (instances: 3) (linked with: db)
E PRONTO! Basta acessar http://blog.dev.azk e sua aplicação já esta
rodando.
Apenas 3 passos simles: - Instalar o azk - $
azk init - $ azk start
Sistemas
Um projeto ou aplicação, mesmo simples, pode ser visto como
um System of Systems (SoS).
Em outras palavras um arquitetura de microsistemas.
small.io - Web - Database
big.com - Front - Databases: - Mysql - Redis -
Workers - API - Proxy payment - Facebook auth - etc…
"Ambientes podem ser complexos só não podem ser desordenados" (@fnando)
Resumindo
A comunicação se dá por meio do manifesto e da
ferramenta.
Uma lingua franca é estabelecida para comunicação do time.
None
Lembre-se: arquiteturas de aplicações e de sistemas devem vivas e
vividas no seu projeto.
Status do azk
Versão 0.6.1 estável disponível online em http://azk.io
Para mac e linux, windows em breve.
Documentação Hoje: apenas o README e exemplos. Temos mais a
caminho.
Github issues, Hipchat e e-mail. Suporte
Éverton Ribeiro // @nuxlli
[email protected]
! Slides: bit.ly/gurusp35_arquitetura_executavel