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,577