01
About me
02
Andrey Adamovich
Bio: Developer, coach, speaker, author
Company: Aestas/IT (http://aestasit.com)
•
•
03
Contact details
E­mail: andrey@aestasit.com
Linkedin: http://www.linkedin.com/in/andreyadamovich
Lanyrd: http://lanyrd.com...
Let's start
05
Let's start
People have different background, skills, interests and preferences
Most of the problems have many (sub)optima...
All polyglot
"Polyglot" software development is a reality
Major ecosystems build loyal communities around them
Communities...
But...
Software needs infrastructure to be DEVELOPED on
Software needs infrastructure to be DEPLOYED on
We need to be able...
No surprise!
09
Ops hate
Devs!
10
Destructive
11
The
Unplanned
12
Unplanned vs. failed
13
Unplanned vs. unique
14
Late alignment issues
15
Stability vs.
agility
16
Why
"polyglot"
then?17
You have no choice!
It brings agility
It brings innovation
It may move you forward faster
And beat your competition!
•
•
•...
But...
It needs to be under control!
It needs to bring value!
Not only immediate benefits needs to be considered,
but also...
Changing
architecture
20
Local development
21
Splitting layers
22
Scaling out
23
Fail­over
24
Performance tuning
25
Maintaining system
26
Expanding system
27
What if?
28
Or even?
29
Splitting layers
30
Scaling out
31
Maintaining system
32
And so on...
33
What if you
combine?
34
Polyglot
infrastructure
is inevitable!35
Infrastructure
as code
36
Infrastructure as code
Capture knowledge
Reuse comminuty experience
Automation over documentation
•
•
•
37
Infrastructure as code
Scripts (level 0)
Provisioning tools (level 1)
Images/Containers (level 2)
•
•
•
38
Provisioning tools
Puppet
Chef
Ansible
Salt
•
•
•
•
39
Provisioning tools
Exist for a long time
Big library of modules
Lets express your architecture changes
•
•
•
40
Reuse
41
Virtualization
VirtualBox
AWS
Azure
Google cloud
...
•
•
•
•
•
42
Containerization
Docker
Kubernetes
Mesos
...
•
•
•
•
43
Organizations
are complex
44
Infrastructure
layers
45
Infrastructure layers
Developer machines
Development tooling
Server/environment management
Network management
...
1.
2.
3....
DevOps!
47
Sharing responsibility I
48
Sharing responsibility II
The focus of DevOps is on automating the tasks performed during the
build, QA and deployment sta...
Reduce failed changes
50
Reduce number of unique configs
51
Don't ignore
operations!
52
Avoid
ShadowOps
DevOoops
•
•
53
Broken communication
54
Broken communication
55
Play on the same field
56
Port changes
back to DEV!
57
The feedback loop
Through configuration management and deploy automation, we can
deploy more often and reduce risk
The fee...
Internal
culture!
59
C.A.M.S
Culture : People over processes and tools. Software is made by and
for people.
Automation : Automation is essentia...
Conclusion
Polyglot infrastructure is a reality!
Leverage DevOps principles
Learn how to use provisioning tools!
Virtualiz...
62
Reading
material
63
The Phoenix Project
64
Continuous Delivery
65
Release It
66
Inviting Disaster
67
Questions?
68
Шчыра
дзякую!
69
Cпасибо!
70
Thank you!
71
of 71

Polyglot infrastructure for Bycraft 2015

Javascript or Ruby? Chef or Puppet? Containers or Virtual Machines? The bigger is the infrastructure of organization, the more there are chances that you have to support variety of options at the same time for every level of your software delivery and maintenance tooling. Should you make a choice or make a fight with the other part of your team? When ""it does not do what we need"" starts to get over ""it worked like that for years""? We live in interesting times. By now, human kind have created tremendous fleet of servers, containers, devices. Managing all of them becomes an art. Or does it? Let's see what are options are.
Published on: Mar 4, 2016
Published in: Technology      
Source: www.slideshare.net


Transcripts - Polyglot infrastructure for Bycraft 2015

  • 1. 01
  • 2. About me 02
  • 3. Andrey Adamovich Bio: Developer, coach, speaker, author Company: Aestas/IT (http://aestasit.com) • • 03
  • 4. Contact details E­mail: andrey@aestasit.com Linkedin: http://www.linkedin.com/in/andreyadamovich Lanyrd: http://lanyrd.com/profile/andrey­adamovich GitHub: https://github.com/aadamovich SO: http://stackoverflow.com/users/162792/andrey­adamovich Twitter: @codingandrey, @aestasit • • • • • • 04
  • 5. Let's start 05
  • 6. Let's start People have different background, skills, interests and preferences Most of the problems have many (sub)optimal solutions People solve problems differently All that maps to a variety of solutions that actually work • • • • 06
  • 7. All polyglot "Polyglot" software development is a reality Major ecosystems build loyal communities around them Communities accumulate reusable experience • • • 07
  • 8. But... Software needs infrastructure to be DEVELOPED on Software needs infrastructure to be DEPLOYED on We need to be able to SUPPORT all of that! • • • 08
  • 9. No surprise! 09
  • 10. Ops hate Devs! 10
  • 11. Destructive 11
  • 12. The Unplanned 12
  • 13. Unplanned vs. failed 13
  • 14. Unplanned vs. unique 14
  • 15. Late alignment issues 15
  • 16. Stability vs. agility 16
  • 17. Why "polyglot" then?17
  • 18. You have no choice! It brings agility It brings innovation It may move you forward faster And beat your competition! • • • • 18
  • 19. But... It needs to be under control! It needs to bring value! Not only immediate benefits needs to be considered, but also operational complexity! • • • • 19
  • 20. Changing architecture 20
  • 21. Local development 21
  • 22. Splitting layers 22
  • 23. Scaling out 23
  • 24. Fail­over 24
  • 25. Performance tuning 25
  • 26. Maintaining system 26
  • 27. Expanding system 27
  • 28. What if? 28
  • 29. Or even? 29
  • 30. Splitting layers 30
  • 31. Scaling out 31
  • 32. Maintaining system 32
  • 33. And so on... 33
  • 34. What if you combine? 34
  • 35. Polyglot infrastructure is inevitable!35
  • 36. Infrastructure as code 36
  • 37. Infrastructure as code Capture knowledge Reuse comminuty experience Automation over documentation • • • 37
  • 38. Infrastructure as code Scripts (level 0) Provisioning tools (level 1) Images/Containers (level 2) • • • 38
  • 39. Provisioning tools Puppet Chef Ansible Salt • • • • 39
  • 40. Provisioning tools Exist for a long time Big library of modules Lets express your architecture changes • • • 40
  • 41. Reuse 41
  • 42. Virtualization VirtualBox AWS Azure Google cloud ... • • • • • 42
  • 43. Containerization Docker Kubernetes Mesos ... • • • • 43
  • 44. Organizations are complex 44
  • 45. Infrastructure layers 45
  • 46. Infrastructure layers Developer machines Development tooling Server/environment management Network management ... 1. 2. 3. 4. 5. 46
  • 47. DevOps! 47
  • 48. Sharing responsibility I 48
  • 49. Sharing responsibility II The focus of DevOps is on automating the tasks performed during the build, QA and deployment stage The risk of deployment errors is reduced drastically by having a strong automated testing suite, automated deployment workflow, well defined/automated rollback process • • 49
  • 50. Reduce failed changes 50
  • 51. Reduce number of unique configs 51
  • 52. Don't ignore operations! 52
  • 53. Avoid ShadowOps DevOoops • • 53
  • 54. Broken communication 54
  • 55. Broken communication 55
  • 56. Play on the same field 56
  • 57. Port changes back to DEV! 57
  • 58. The feedback loop Through configuration management and deploy automation, we can deploy more often and reduce risk The feedback loop gets shorter Functionalities are rolled out with higher frequency Systems are always in a known state Changes to the system can be simulated and impacts calculated • • • • • 58
  • 59. Internal culture! 59
  • 60. C.A.M.S Culture : People over processes and tools. Software is made by and for people. Automation : Automation is essential for DevOps to gain quick feedback. Measurement : DevOps finds a specific path to measurement. Quality and shared (or at least aligned) incentives are critical. Sharing : Creates a culture where people share ideas, processes, and tools. • • • • 60
  • 61. Conclusion Polyglot infrastructure is a reality! Leverage DevOps principles Learn how to use provisioning tools! Virtualization/containerization • • • • 61
  • 62. 62
  • 63. Reading material 63
  • 64. The Phoenix Project 64
  • 65. Continuous Delivery 65
  • 66. Release It 66
  • 67. Inviting Disaster 67
  • 68. Questions? 68
  • 69. Шчыра дзякую! 69
  • 70. Cпасибо! 70
  • 71. Thank you! 71

Related Documents