Why we don't use the term DevOps2

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
相关话题: #zalando
1. Why we don't use the term DevOps 2019-06-13 HENNING JACOBS @try_except_ MOSTAFA NAGEEB @MostafaNageeb
2. ZALANDO AT A GLANCE ~ 5.4 billion EUR > 250 million revenue 2018 2 > 15.000 > 79% employees in Europe of visits via mobile devices visits per month > 300.000 > 26 product choices million ~ 2.000 17 brands countries active customers
3. THE BIRTH OF DEVOPS - 2009 “10+ Deploys per Day: Dev and Ops Cooperation at Flickr.” DevOps Days Belgium 3 https://devops.com/the-origins-of-devops-whats-in-a-name/
4. slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr
5. slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr
6. slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr
7. THE PHOENIX PROJECT - 2013 "The Three Ways" 1. Systems Thinking 2. Amplify Feedback Loops 3. Culture of Continual Experimentation And Learning 7
8. WHAT HAPPENED NEXT 8
9. CARGO CULTING 9
10. DEVOPS IS … if every person uses the same tool for the same job … codified knowledge - everybody contributing their part to common automation … if all people have the same privileges in their tooling … if human error is equally possible for Dev and Ops … replacing people interfaces by automated decisions and processes … a result 10 bit.ly/5pdops
11. DevOps is normal 11
12. 12
13. WHAT HAPPENED NEXT 13
14. WHAT HAPPENED NEXT 14
15. DEV + OPS ⇒ DEVOPS Devs "DevOps" Team Ops 15
16. DEV + OPS ⇒ ENGINEERING Devs "DevOps" Team Ops 16 Engineering Team
17. PRODUCT DEVELOPMENT TEAMS "Great products emerge from empowered, fully cross-functional teams." - John Cutler, 2019 17 https://amplitude.com/blog/on-being-product-led
18. DEVOPS IS It is a culture, in which people work together to improve the product delivery cycle. 18
19. DEVOPS ANTI-PATTERNS Dev and Ops Silos DevOps Team Silo Dev Don't Need Ops DevOps as Tools Team Rebranded SysAdmin Ops Embedded in Dev Team 19 web.devopstopologies.com
20. 20
21. TEAM INTERACTION MODES • Collaboration: 2 teams working together • X-as-a-Service: 1 provides, 1 consumes • Facilitating: 1 team helps another 21 Product teams need a family too - DevOpsDays Portugal
22. A BRIEF HISTORY OF ZALANDO TECH 22
23. 2010 "Sysop-Test" "QA-Test" 23
24. DEVOPS IS ABOUT SKIN IN THE GAME Absence of skin in the game: People who are isolated from the impacts of their decisions do not learn. They remain captive to their erroneous ideas about how the world works. 24
25. 2013: SELF SERVICE 25
26. 2015: RADICAL AGILITY DOCKER DEPLOY SSH ACCESS AUDIT REPORTS STUPS AWS 26 FULL AWS ACCESS Teams have admin access & full responsibility
27. 2015: ISOLATED AWS ACCOUNTS Internet *.abc.example.org ELB Team ABC EC2 27 *.xyz.example.org ELB Team XYZ EC2
28. 2019 > 200 development teams > 1100 developers 28 Platform
29. YOU BUILD IT, YOU RUN IT The traditional model is that you take your software to the wall that separates development and operations, and throw it over and then forget about it. Not at Amazon. You build it, you run it. This brings developers into contact with the day-to-day operation of their software. It also brings them into day-to-day contact with the customer. - A Conversation with Werner Vogels, ACM Queue, 2006 29
30. ON-CALL: YOU OWN IT, YOU RUN IT When things are broken, we want people with the best context trying to fix things. - Blake Scrivener, Netflix SRE Manager 30
31. "SKIN IN THE GAME" 31
32. DEVELOPER JOURNEY Consistent story that models all aspects of SW dev 32
33. Developer Journey 33
34. Correctness Compliance GDPR Security Cost Efficiency 24x7 On Call Governance Resilience Capacity ... 34 Developer Journey
35. DEVELOPER PRODUCTIVITY Setup Code Build Test Deploy Cloud Native Application Runtime 35 Operate
36. CLOUD NATIVE .. uses an open source software stack to deploy applications as microservices, packaging each part into its own container, and dynamically orchestrating those containers to optimize resource utilization. Cloud native technologies enable software developers to build great products faster. - https://www.cncf.io/ 36
37. CONTAINERS END-TO-END Setup Code Build Test Deploy Cloud Native Application Runtime 37 Operate
38. CONTAINERS 38
39. CONTAINERS 39
40.
41. PLAN & SETUP 41
42. Plan Stories Rules of Play Tech Radar 42
43.
44. Setup Application Bootstrapping 44
45.
46.
47. BUILD & TEST 47
48. CONTINUOUS DELIVERY PLATFORM: BUILD push Git code 48 CDP
49.
50. DEPLOY 50
51. Kubernetes Deploy 51
52. DEPLOYMENT CONFIGURATION ├── deploy/apply │ ├── deployment.yaml │ ├── credentials.yaml # Zalando IAM │ ├── ingress.yaml │ └── service.yaml └── delivery.yaml # Zalando CI/CD 52
53. INGRESS.YAML kind: Ingress metadata: name: "..." spec: rules: # DNS name your application should be exposed on - host: "myapp.foo.example.org" http: paths: - backend: serviceName: "myapp" servicePort: 80 53
54. TEMPLATING: MUSTACHE kind: Ingress metadata: name: "..." spec: rules: # DNS name your application should be exposed on - host: "{{{APPLICATION}}}.example.org" http: paths: - backend: serviceName: "{{{APPLICATION}}}" servicePort: 80 54
55. CONTINUOUS DELIVERY PLATFORM 55
56. CDP: DEPLOY "glorified kubectl apply" 56
57. CDP: OPTIONAL APPROVAL 57
58. STACKSET: TRAFFIC SWITCHING 58 github.com/zalando-incubator/stackset-controller
59. STACKSET CRD kind: StackSet ... spec: ingress: hosts: ["foo.example.org"] backendPort: 8080 stackLifecycle: scaledownTTLSeconds: 1800 limit: 5 stackTemplate: spec: podTemplate: ... 59 github.com/zalando-incubator/stackset-controller
60. TRAFFIC SWITCHING STEPS IN CDP 60 github.com/zalando-incubator/stackset-controller
61. EMERGENCY ACCESS SERVICE Emergency access by referencing Incident zkubectl cluster-access request \ --emergency -i INC REASON Privileged production access via 4-eyes zkubectl cluster-access request REASON zkubectl cluster-access approve USERNAME 61
62. INTEGRATIONS 62
63. CLOUD FORMATION VIA CI/CD "Infrastructure as Code" ├── deploy/apply │ ├── deployment.yaml │ ├── cf-iam-role.yaml │ ├── cf-rds.yaml │ ├── kube-ingress.yaml │ ├── kube-secret.yaml │ └── kube-service.yaml └── delivery.yaml 63 # Kubernetes # AWS IAM Role # AWS RDS Database # CI/CD config
64. ZALANDO IAM/OAUTH VIA CRD kind: PlatformCredentialsSet .. Extensible Kubernetes spec: application: my-app tokens: read-only: privileges: - com.zalando::foobar.read clients: employee: grant: authorization-code realm: users redirectUri: https://example.org/auth/callback 64 API
65. POSTGRES OPERATOR Application to manage PostgreSQL clusters on Kubernetes >700 clusters running on Kubernetes 65 github.com/zalando/postgres-operator
66. Elasticsearch 2.500 vCPUs 1 TB RAM Elasticsearch in Kubernetes github.com/zalando-incubator/es-operator/
67. SUMMARY • Application Bootstrapping • Git as source of truth and UI • 4-eyes principle for master/production • Extensible Kubernetes API as primary interface • OAuth/IAM credentials • PostgreSQL • CloudFormation for proprietary AWS services 67
68. Platform as a Product 68
69. “.. means establishing empathy with internal consumers (read: developers) and collaborating with them on the design. Platform product managers establish roadmaps and ensure the platform delivers value to the business and enhances the developer experience.” - ThoughtWorks Technology Radar
70. PRODUCT MINDSET ... means we are developing all our products for the best customer experience and biggest business impact while all actions are aligned with our strategy. 70
71. KNOW YOUR AUDIENCE 71
72. TALK TO USERS ● Be Prepared. ● Talk to both users and NON users. ● Ask about problems, not solutions. ● Open ended questions. 72
73. IDENTIFY COMMON PROBLEMS "Documentation is hard to find" "Documentation is not comprehensive enough" "Remove unnecessary complexity and obstacles." "Get the documentation up to date and prepare use cases" "More and more clear documentation" "More detailed docs, example repos with more complicated deployments." 73
74. TRANSPARENTLY COMMUNICATE WHAT YOU ARE SOLVING 74
75. LET THEM INFLUENCE YOUR PLANS 75
76. ENGAGE CUSTOMERS EARLY ON We are working on speeding up builds by providing basic overlays for the most used languages/frameworks so you don't have to download the internet every time you are building your app. This is the approach and the documentation (not live yet), please add your comments to guide us in the right direction. 76
77. SUPPORT IS A FEATURE 77
78. DOCUMENTATION • Restructure following www.divio.com/en/blog/documentation/ • Concepts • How Tos • Tutorials • Reference • Global Search • Weekly Health Check: Support → Documentation 78
79.
80. COMMUNICATION Guidelines • Target announcements • Use the right tags • Timing 80
81. NEWSLETTER "You can now.." • You can now upload your Scala code coverage report to SonarQube "This enables you to.." • This enables you to browse your code quality results and track it over time 81
82. “Useful information, good level of details and pleasant to read. It's one of the few newsletters that I took time to read entirely :)” - a reader, July 2018 82
83. EMPOWER YOUR TEAM 83
84. WITH GREATER POWER COMES GREATER RESPONSIBILITY 84
85. DELIVERY PERFORMANCE METRICS • Lead Time • Release Frequency • Time to Restore Service • Change Fail Rate 85 srcco.de/posts/accelerate-software-delivery-performance.html
86. DELIVERY PERFORMANCE METRICS • Lead Time • Commit to Prod • Release Frequency • Deploys/week/dev • MTRS from incidents • Time to Restore Service • Change Fail Rate 86 • N/A
87.
88. DEVELOPER SATISFACTION 88
89. INSIGHTS THAT GUIDE THE PRODUCT “Kubernetes/CDP deploys are too slow - ours takes over 10 minutes, mainly due to having to download SBT dependencies every time.” 89
90. INSIGHTS THAT GUIDE THE PRODUCT “CDP should somehow cache builds or something like that. The current approach forces everyone to re-invent the cache wheel for their own projects - or face a crazy slow build.” 90
91. 91
92. TESTIMONIALS “So, thank you, Team Automata, for listening to our community, taking our upvotes in consideration when developing new solutions and building every day 'the first CI that doesn't suck'.” - a user, October 2018 92
93. TESTIMONIALS “Thank you very much for improving the color scheme of the UI. It really helps me with my color blindness. It used to be hard to distinguish between statuses previously.” - a user, February 2019 93
94. 94
95. Wrap Up 95
96. DEVOPS IS … if every person uses the same tool for the same job … codified knowledge - everybody contributing their part to common automation … if all people have the same privileges in their tooling … if human error is equally possible for Dev and Ops … replacing people interfaces by automated decisions and processes … a result 96 bit.ly/5pdops
97. DEVOPS IS … if every person uses the same tool for the same job … codified knowledge - everybody contributing their part to common automation … if all people have the same privileges in their tooling … if human error is equally possible for Dev and Ops … replacing people interfaces by automated decisions and processes … a result 97 bit.ly/5pdops
98. DEVOPS IS … if every person uses the same tool for the same job … codified knowledge - everybody contributing their part to common automation … if all people have the same privileges in their tooling … if human error is equally possible for Dev and Ops … replacing people interfaces by automated decisions and processes … a result 98 bit.ly/5pdops
99. DEVOPS IS … if every person uses the same tool for the same job … codified knowledge - everybody contributing their part to common automation … if all people have the same privileges in their tooling … if human error is equally possible for Dev and Ops … replacing people interfaces by automated decisions and processes … a result 99 bit.ly/5pdops
100. DEVOPS IS … if every person uses the same tool for the same job … codified knowledge - everybody contributing their part to common automation … if all people have the same privileges in their tooling … if human error is equally possible for Dev and Ops … replacing people interfaces by automated decisions and processes … a result 100 bit.ly/5pdops
101. DEVOPS IS … if every person uses the same tool for the same job … codified knowledge - everybody contributing their part to common automation … if all people have the same privileges in their tooling … if human error is equally possible for Dev and Ops … replacing people interfaces by automated decisions and processes … a result 101 bit.ly/5pdops
102. DevOps is normal 102
103. DevOps is normal 103
104. You build it, you run it is normal 104
105. WAIT A SECOND.. What about my job title? 105
106. "DEVOPS ENGINEER" AS A JOB TITLE 106
107. T-SHAPED ENGINEER "Generalizing specialist" Technical Breadth of Knowledge 107
108. DevOps Engineer 108 Software Engineer / Software Developer (T-Shaped)
109. ON THE DEVOPS JOB TITLE "Everyone’s a devops engineer these days. I’m a devops engineer, my wife’s a devops engineer, even my dog’s a devops engineer" - James Betteley, 2014 109 devopsnet.com/2014/08/13/the-devops-team-myth/
110. 110
111. OPEN SOURCE & MORE Kubernetes on AWS github.com/zalando-incubator/kubernetes-on-aws Skipper HTTP Router & Ingress controller github.com/zalando/skipper External DNS github.com/kubernetes-incubator/external-dns Postgres Operator github.com/zalando-incubator/postgres-operator More Zalando Tech Talks github.com/zalando/public-presentations 111
112. QUESTIONS? HENNING JACOBS @try_except_ MOSTAFA NAGEEB @MostafaNageeb Illustrations by @01k

Home - Wiki
Copyright © 2011-2025 iteam. Current version is 2.142.0. UTC+08:00, 2025-02-22 04:17
浙ICP备14020137号-1 $Map of visitor$