DevOps
in a Serverless World
Linda Nichols
@lynnaloo
Norfolk,VA
norfolk.js
Virginia is for Lovers
@lynnaloo
Serverless
^
#SerVAless
@lynnaloo
#SerVAless
Virginia is for Lovers
Serverless
^
But there are servers?
@lynnaloo
#Serverfull
Thank You Nashville!
@lynnaloo
@lynnaloo
@lynnaloo
Let's Talk About Serverless...
and Developers
@lynnaloo
with a little help from...
1988
@lynnaloo
Developers Have Lots of Opinions
@lynnaloo
They Love Process and Best Practices
@lynnaloo
- Their favorite editor
- Their favorite language
- Their favorite frameworks
- A code formatting tool
- Formatting tool for code prettiness
- Real-time static code analysis
Developers Want (need):
@lynnaloo
Vim
VS Code
Emacs
Atom
IntelliJ
Visual Studio
Eclipse
Notepad
Lint
Prettier
editorconfig
pylint
eslint
Mechanical Keyboard
Stack Overflow
Java
.Net
npm
nuget
Ruby
CoffeeScript
Python
Rust
TypeScript
yarn
@lynnaloo
- Pair-programming
- Very-opinionated testing framework
- Unit tests
- Integration tests
- Code coverage up to 90%
Then Test the Code:
@lynnaloo
Wait, should we have written the tests before the code?!?
@lynnaloo
- Very-opinionated revision control system
- Current popular branching strategy
- Squash those insignificant commits
- Very detailed commit messages
- Branch names match the task
Then Commit the Code:
@lynnaloo
Github
Gitlab
Visual Source Safe
Bitbucket
Gitflow
Github Flow
Subversion
CodeCommit
GitOps
@lynnaloo
- Push the code to a dev branch
- Issue a pull request
- Make sure all of the tests are passing
- Request a code review
Merge the Code into Master:
@lynnaloo
Your branch isn't up to date??
Why aren't the tests passing?
Why did you use tabs and not spaces?
Squash those commits!
The linter is failing!
@lynnaloo
Sometimes, reviewers can be tough.
@lynnaloo
OK, LGTM. Merged.
@lynnaloo
Cue the CI/CD Tool:
@lynnaloo
Travis CI
Azure Pipelines
Gitlab CI
Jenkins
Circle CI
Bamboo
CodeDeploy
Flux
Github Actions
LaunchDarkly
CodeBuild
@lynnaloo
Now the code is being deployed to a staging environment for more testing
@lynnaloo
What about Serverless?
@lynnaloo
Serverless is for Developers
@lynnaloo
Serverless is for Developers
- Event-driven architecture
- Support for most programming languages
- Focus is on code, not infrastructure
- Built-in services and libraries means less code
- FaaS naturally map to microservices
@lynnaloo
What's the Development Process?
@lynnaloo
Pre-recorded Demo Time
@lynnaloo
@lynnaloo
@lynnaloo
@lynnaloo
Unfortunately, no service is fully-managed enough to format, test, and debug your messy code.
@lynnaloo
So, why do those who hold process so dear, throw it all away when they build cloud-native apps?
@lynnaloo
Because serverless application development is new and can be a little scary.
@lynnaloo
But all of the development practices that we love, still apply in a serverless world.
and there are many, many new tools and services to support your process.
@lynnaloo
Demo
@lynnaloo
@lynnaloo
My Toolset
Conclusion
- No-ops does not mean no DevOps
- FaaS is not revision control
- Testing in prod isn't testing
- Abstraction is not CI/CD
- Don't abandon what's important
@lynnaloo
Conclusion
@lynnaloo
Thank you
@lynnaloo
Credits
Travis Webb
YOLO Programmer
DevOps in a Serverless World
By Linda Nichols
DevOps in a Serverless World
DevOps in a Serverless World - Serverless Days Nashville
- 1,339