Upload
pivorak-meetup
View
96
Download
3
Embed Size (px)
Citation preview
Alexey Vasiliev• Web and Mobile Developer (Ruby, Java, JavaScript, Objective-C, C/C++,
Golang, Elixir/Erlang), DevOps
• Open-Source libs: PGTune, SQL Joins Visualizer, RWbox, Go-Kinesis, ElixirV8,
WebP-ffi, Zopfli-ffi, MongodbLogger, SMTRails, SHTRails, ...
• Open-Source books: Cooking Infrastructure by Chef, Setting up and scaling
of PostgreSQL (Russian)
• Leading RWpod podcast about Ruby and JavaScript
2
3
4
We have Agile• Stand-ups
• Sprints/Iterations
• Stories and Story Walls
• Retrospectives
• Showcases
• SCRUM
5
6
BUT...
When it's time to deploy
7
Agile is terrible. Scrum is worse.
Agile Is The New Waterfall”8
9
Let's use another buzzword• Culture (TEAM have the same GOAL and AUTONOMOUS)
• Automation (CI, Continuous Deployment, Infrastructure as Code, etc)
• Measurement (performance, process and people metrics)
• Sharing (No SPECIALIST, share data, visibility)
10
11
I love Ruby and Rails
12
BUT "Rails doesn’t scale"
13
Why "Rails doesn’t scale"?• Twitter was moving off of Rails in 2011
• People took the phrase and ran with it:
• sometimes to make a quick explanation about a software choice
• sometimes to sound smart
• sometimes because it fit the context in which it was said
14
15
BUT...
Rails can scale• Scalability is an architectural concern - not confined to language or
framework
• The stateless part of project very simple to scale
• Even traditional relational databases scale
16
How this myth was created?• Rails can help you to build web app very quick (15 minutes blog)
• Let's use Rails for every project!!!
• Something goes wrong :( (for Twitter use case)
• "Rails doesn’t scale"!!! (but scale for github, hulu, airbnb, etc)
17
18
Docker for containers
19
Create own PaaS with Docker
20
21
22
Docker for microservices
23
24
DockerMicroservicesRails
25
26
Future is Bright: JavaScript everywhere
27
28
JavaScript ecosystem
29
The Birth of Universal JavaScript• Server side rendering isn't smooth
• Let's do client side
• Client side rendering is hard
• Let's create a framework
• I lost my CEO!
• Let's create another framework
30
Technology Lifecycle• 10: Create new Framework
• 20: Create Conference around Framework
• 30: GOTO 10
31
32
33
React.js is hot right now
35
...the bottleneck is almost always
the DOM mutation and not JS
execution
React Doc
”
36
React + Performance = ?37
React + Performance = ?38
React + Performance = ?39
Flux approach
40
41
React isn't popular because it's
fast. It's popular because it's fun.”
42
Ergonomics Vs User NeedsErgonomics
• Fun to use
• Quick to build
• Works around bugs
• Gets me paid
•
User Needs
• Loads quickly
• Has smooth interactions
• Doesn't slow down my phone
• Doesn't crash
• Has features I want
43
44
All code has a cost
All code has a costDev costs
• Learning it
• Re-learning it
• Debugging it
•
•
User costs
• Time
• Bandwidth
• CPU/battery usage
• Frame rate
• Memory usage
45
46
47
What's your point?
There is no Silver Bullet!
48
49
Why are wedeveloping
software?
Why are we developing software?• Software isn't the goal
• Upgrades aren't the goal
• We can't always be on the latest and greatest
• Innovation and improvement are good. But what are we improving? How
does it bring value?
50
51
52
How do we makechoices when
adoptingtechnology?
"Wallmart has moved to node.js"
"Twitter has moved to Scala"
Do we have same needs as Google,
Facebook, Wallmart, Twitter?
”
53
54
Benchmarks
55
Social Pressure
56
Context!Like "Best Practices" need context
57
Do we take into account...• Technology stability
• Is it proven technology?
• What's the learning curve
• Market share
58
59
Frameworks: Do we take intoaccount...
• Has the framework been proved in production?
• What is the framework really capable of?
• Is the framework mature?
• Is the framework flexible or opinionated?
• Have you really played with the framework?
• Does the framework have a comprehensive set of documentation?
• Have you reviewed the community around the framework?60
61
Focus on the rightthings!
<Thank You!> Questions?
Contact information
• web: leopard.in.ua
• github: le0pard
• twitter: @leopard_me
62