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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
500
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
120
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
140
ソフトウェアラスタライザ
fadis
0
170
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
350
Oxlintはいいぞ(続)
yug1224
1
270
Built Our Own Background Agent at LayerX
layerx
PRO
10
5.9k
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
750
Cloudflare is Agents
chimame
0
170
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
6.6k
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
5
490
プロポーザルを書いてもらう
pvcresin
0
560
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.4k
4 Signs Your Business is Dying
shpigford
187
23k
How STYLIGHT went responsive
nonsquared
100
6.2k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
540
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Claude Code のすすめ
schroneko
67
230k
Are puppies a ranking factor?
jonoalderson
2
3.8k
Producing Creativity
orderedlist
PRO
348
40k
ラッコキーワード サービス紹介資料
rakko
1
4.4M
Everyday Curiosity
cassininazir
0
290
The SEO Collaboration Effect
kristinabergwall1
1
530
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
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