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
The NotImplementedError Problem in Ruby
koic
1
1.1k
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.2k
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
820
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
170
自作OSでスライド発表する
uyuki234
1
3.6k
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
240
スマートグラスで並列バイブコーディング
hyshu
0
270
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.6k
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
110
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
570
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
820
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How to Talk to Developers About Accessibility
jct
2
280
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
500
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
380
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Utilizing Notion as your number one productivity tool
mfonobong
4
340
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
240
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
400
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
860
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