SlideShare a Scribd company logo
Supportive	Cast	
Marcin	Grzejszczak	
Spring	Cloud	developer	at	Pivotal	
Twitter:	@mgrzejszczak	
Blog:	http://toomuchcoding.com	
Cora	Iberkleid	
Senior	Platform	Architect	at	Pivotal	
Twitter:	@ciberkleid
Continuously	Delivering	Business	Value	
https://www.youtube.com/watch?v=7APZD0me1nU	by	Onsi	Fakhouri
The	Circle	of	Code...	
•  Depicts	an	ideal,	iterative	manner	of	delivering	
business	value	to	production	
•  Enables	the	business	and	developers	to	test	ideas	
against	reality	quickly	
•  Aims	to	improve	software	quality	and	
responsiveness	to	changing	customer	requirements
Spring	Cloud	Pipelines	is	the	answer	:-)		
But	what	is	the	question?
How	can	we	avoid	creating	a	deployment	
pipeline	from	scratch	for	each	new	project?
WHOSE	DEPLOYMENT	PIPELINE		
LOOKS	LIKE	THIS?
15	HOURS	OF	E2E	TESTS	PLACE	
HERE
What	is	Spring	Cloud	Pipelines?	
•  opinionated	template	of	a	deployment	pipeline	
•  based	on	good	practices	from	different	projects	
•  uses	the	“Infrastructure	as	Code”	approach	
•  if	automation	server	goes	down	you	can	recover	everything	quickly	
•  the	automation	server	setup	should	be	automated	too!	
•  you	can	even	write	tests	for	your	pipelines
Spring	Cloud	Pipelines	
•  Supports	the	following	automation	servers	out	of	the	box:	
•  Concourse	
•  Jenkins	using	Jenkins	Job	DSL	plugin	
•  Jenkins	using	Jenkinsfile	with	Blue	Ocean	
•  Logic	of	all	steps	done	via	Bash	scripts	
•  you	can	convert	the	internals	to	suit	your	needs	
•  you	can	use	whatever	automation	server	you	want	
•  supports	Maven	&	Gradle	
•  Includes	150	Bash	tests	to	validate	your	customizations	of	SCP		
•  using	https://github.com/sstephenson/bats
Spring	Cloud	Pipelines	–	some	opinionated	defaults	
•  Four	environments	(Build,	Test,	Stage,	Prod)	
•  Types	of	tests		
•  e.g.	Unit,	API	compatibility,	Smoke,	Integration,	Rollback,	End	to	end	
•  Use	cloud-native	apps	
•  Use	contracts	for	integration	testing	
•  PaaS	deployment	platform
Spring	Cloud	Pipelines
Spring	Cloud	Pipelines
Spring	Cloud	Pipelines	-	Concourse
Spring	Cloud	Pipelines	–	The	big	picture	on	Concourse
Concourse
Spring	Cloud	Pipelines	-	Jenkins	Job	DSL
Spring	Cloud	Pipelines	-	Jenkinsfile	&	Blue	Ocean
Why	do	we	deploy	software?	
•  We’re	paid	for	delivering	business	value	
•  Features	are	done	when	they	are	deployed	to	production	
•  It’s	better	to	deploy	frequently	for	faster	feedback	
•  It’s	better	to	fail	the	deployment	pipeline	as	fast	as	possible	
•  Deployments	should	take	place	in	a	standardized,	automated	fashion	
•  Your	deployment	pipeline	should	test	rollback	
•  That	way	you	can	perform	A/B	or	zero	downtime	deployment	to	production
Why	do	we	deploy	software?	
•  We’re	paid	for	delivering	business	value	
•  Features	are	done	when	they	are	deployed	to	production	
•  It’s	better	to	deploy	frequently	for	faster	feedback	
•  It’s	better	to	fail	the	deployment	pipeline	as	fast	as	possible	
•  Deployments	should	take	place	in	a	standardized,	automated	fashion	
•  Your	deployment	pipeline	should	test	rollback	
•  That	way	you	can	perform	A/B	or	zero	downtime	deployment	to	production
Spring	Cloud	Pipelines
Problem	-	slow	feedback	
•  Nobody	wants	to	wait	until	the	end	of	the	pipeline	to	see	that	
something	is	not	working	fine	
•  We	want	to	fail	fast	-	even	during	build	time	
•  If	integration	is	faulty		
•  If	our	API	is	backward	incompatible	
•  There	should	be	no	need	to	wait	until	end	to	end	tests	are	executed
Solution	-	fail	fast	
•  We’re	running	unit	and	integration	tests	during	build	time	
•  To	test	faulty	integration	we	use	Spring	Cloud	Contract	for	HTTP	/	messaging	
•  Producer	defines	a	contract	
•  From	the	contract	
o  tests	are	generated	to	see	if	the	producer	is	not	lying	
o  stubs	are	generated	for	consumers	to	use	
•  Consumer	can	reuse	it	without	running	the	producer	
•  Fail	at	build	time	if	integration	fails	(fail	fast!)	
•  All	stubs	reside	in	Bintray	/	Nexus	/	Artifactory	(thus	can	be	reused)
Broken	build	 Current	implementation	(V2)	
does	not	support	old	contracts	
(V1)
Why	do	we	deploy	software?	
•  We’re	paid	for	delivering	business	value	
•  Features	are	done	when	they	are	deployed	to	production	
•  It’s	better	to	deploy	frequently	for	faster	feedback	
•  It’s	better	to	fail	the	deployment	pipeline	as	fast	as	possible	
•  Deployments	should	take	place	in	a	standardized,	automated	fashion	
•  Your	deployment	pipeline	should	test	rollback	
•  That	way	you	can	perform	A/B	or	zero	downtime	deployment	to	production
STANDARDIZATION	GIVES	LOWER	SUPPORT	
COSTS	AND	MORE	CHANCES	OF	PEOPLE	
ROTATION
Solution	-	PaaS	&	tooling	
•  Use	a	PaaS	to	standardize	the	way	you	deploy	and	monitor	your	software	
•  Spring	Cloud	Pipelines	uses	Cloud	Foundry	[1]	or	Kubernetes	[2]	as	a	PaaS	
implementation	
•  You	can	also	use	PCF	Dev	[3]	or	Minikube	[4]	
•  PaaS	abstracts	the	application	governance	from	underlying	infrastructure	
•  you	can	deploy,	scale,	manage	applications	in	the	same	way	if	PaaS	was	running	on	your	
laptop,	Amazon,	Google,	Azure	etc.	
•  Database	schema	upgrade	is	done	via	tools	like	Flyway	[5]	or	Liquibase	[6]	
[1]	https://www.cloudfoundry.org, [2] https://kubernetes.io/
[3] https://pivotal.io/pcf-dev, [4] https://github.com/kubernetes/minikube
[5] https://flywaydb.org/, [6] http://www.liquibase.org/
Spring	Cloud	Pipelines
Spring	Cloud	Pipelines	
After	the	application	got	deployed	to	test	environment	
•  The	database	schema	gets	updated	upon	application	startup	
•  We	run	a	handful	of	smoke	tests	to	see	if	crucial	parts	of	our	application	are	
working	fine	
•  We	want	to	test	if	the	app	is	properly	packaged	
•  The	application	is	surrounded	by	stubs	-	no	real	integrations	take	place	
•  Spring	Cloud	Contract	Stub	Runner	Boot	app	is	responsible	for	serving	stubs
Origin	of	term	“Smoke	Test”?
Origin	of	term	“Smoke	Test”?
Problem	-	rollback	DB	
•  Deployment	pipelines	should	test	whether	the	application	can	be	rolled	back	
•  Rolling	back	database	changes	is	extremely	difficult	
•  Especially	if	you	deploy	once	every	6	months	(the	number	of	changes	is	gigantic)	
•  How	can	you	roll	back	a	deletion	of	a	column?
Spring	Cloud	Pipelines
Solution	-	application	rollback	
•  The	easiest	solution	is…	NOT	TO	DB	ROLLBACK	
•  Perform	only	backward	compatible	changes	(always	add	data)	
•  Or	perform	backward	incompatible	changes	in	a	backward	compatible	way	[1]	
•  Roll	back	the	application	only	(the	JAR)	
•  The	application	and	DB	changes	need	to	be	backward	compatible	
•  That	way	you	can	ensure	that	two	applications	(old	/	new	versions)	can	run	
at	the	same	time	
	
[1]	https://spring.io/blog/2016/05/31/zero-downtime-deployment-with-a-database
Backward	incompatible	DB	change	
Old	application	(V1)	can’t	work	
with	new	database	(V2)	
Deploy	(V1)	and	connect	to	the	
new	database	(V2)
Spring	Cloud	Pipelines
Problem	-	end	to	end	tests	
•  End	to	end	tests	are	slow	and	brittle	
•  QA	department	writes	an	E2E	for	every	feature	we	have	
•  E2E	environment	setup	
•  one	environment	shared	between	all	applications?	
•  one	environment	per	application?	
•  Surrounding	apps	should	be	deployed	in	
•  production	versions?	
•  development	versions?
Solution	-	don’t	do	E2E?	
•  Regardless	of	the	time	spent	on	QA	/	UAT	you	can	still	have	bugs	
on	production	
•  Assuming	that	you	...	
•  embrace	failure	
•  introduce	monitoring	of	business	key	performance	indicators	(KPIs)	
•  introduce	alerting	over	the	metrics	
•  ensure	that	you	can	rollback	on	production	
•  …	you	could	stop	doing	any	end	to	end	tests
Spring	Cloud	Pipelines	
•  Deploy	to	stage	and	running	e2e	tests	are	manual	steps	
•  you	have	to	wait	for	your	turn	for	the	env	
•  some	manual	work	has	to	be	done	to	purge	stale	data	etc.
Spring	Cloud	Pipelines
Problem	-	deployment	to	production	
•  We	don’t	want	to	deploy	the	application	to	production	at	night	
•  We	want	to	treat	a	production	deployment	like	any	other	deployment	
•  We’d	like	to	be	able	to	perform	A/B	testing	and	zero	downtime	deployment	
•  We’d	like	to	easily	rollback	when	something	goes	wrong
Solution	-	PaaS	+	SC	Pipelines	
•  Our	application	has	KPI	monitoring	in	place	
•  Alerting	are	set	for	KPIs	
•  It	has	been	tested	that	the	application	can	be	easily	rolled	back	
•  PaaS	(CF	or	K8S)	can	take	care	of	zero	downtime	deployment
Spring	Cloud	Pipelines	
•  prod-deploy	deploys	the	pipeline	version	of	the	app	to	production	
next	to	the	current	production	version	
•  Once	deployed	we	tag	the	repo	with	prod/VERSION_NUMBER
•  prod-complete	stops	the	old	instance,	leaving	only	the	new	one	
running	
•  prod-rollback	deletes	the	new	instance,	removes	the	prod/
VERSION_NUMBER	tag	and	leaves	only	the	old	one	running
A/B	ON	CF		
DEMO
Two	versions	running	at	the	same	time	
Two	versions	registered	
under	same	hostname	
Old	instance	
New	instance
MIGRATING	TO	SPRING	CLOUD	PIPELINES	DEMO	
	
based	upon	the		
Step-by-step	Cloud	Foundry	migration	
tutorial	by	@ciberkleid
Application Refactoring for
Spring Cloud Pipelines
A Story in Three Acts
Premise
Main Characters
52	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon
Supporting Characters
53	
The	SCS	Triplets	
and	their	pet	Rabbit	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon
The Setting
Story Line
55	
Greeting	UI	
Simon
Story Line
56	
Greeting	UI	
Simon	
Hey Greeting!
Story Line
57	
Greeting	UI	
The	SCS	Triplets	
and	their	pet	Rabbit	
Simon	
Hey Greeting!
Story Line
58	
Greeting	UI	
The	SCS	Triplets	
and	their	pet	Rabbit	
???	
Simon	
Hey Greeting!
Story Line
59	
Greeting	UI	
The	SCS	Triplets	
and	their	pet	Rabbit	
!!!	
Fortune	Service	
Simon	
Hey Greeting!
Story Line
60	
Greeting	UI	
The	SCS	Triplets	
and	their	pet	Rabbit	
Fortune	Service	
Simon	
Hey Greeting!
Story Line
61	
Greeting	UI	
The	SCS	Triplets	
and	their	pet	Rabbit	
Fortune	Service	 Fortune	DB	
Simon	
Hey Greeting!
Story Line
62	
Greeting	UI	
The	SCS	Triplets	
and	their	pet	Rabbit	
Fortune	Service	 Fortune	DB	
Simon	
Hey Greeting!
Story Line
63	
Greeting	UI	
The	SCS	Triplets	
and	their	pet	Rabbit	
Fortune	Service	 Fortune	DB	
Simon	
Hey Greeting!
Story Line
64	
Greeting	UI	
“Do What
Works”
Simon
Story Line
65	
Greeting	UI	
Simon	
Great advice!
Who said it?
Story Line
66	
Greeting	UI	 Fortune	Service	
Simon	
Great advice!
Who said it?
Story Line
67	
Greeting	UI	 Fortune	Service	
Simon	
Great advice!
Who said it?
Story Line
68	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
Great advice!
Who said it?
Story Line
69	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
Great advice!
Who said it?
Story Line
70	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
It’s not that
hard a
question...
Story Line
71	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
It’s not that
hard a
question...
The	SCS	Triplets	
and	their	pet	Rabbit
Story Line
72	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
I just want to
know...
The	SCS	Triplets	
and	their	pet	Rabbit
Story Line
73	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
PIPELINE
ALL THE
THINGS!!!
The	SCS	Triplets	
and	their	pet	Rabbit
Act I
The Scaffold
Act I: The Scaffold
75	
●  Objective:
○  Automate the deployment of greeting-ui and fortune-service
a.k.a. Make the pipelines run green
○  Establish environments (PCF spaces) in accordance with SCP
recommendations
●  Approach:
○  Minimum changes to apps (scaffolding, not code)
○  Create a pipeline for each
○  Create PCF spaces
○  Run the pipelines
Greeting and Fortune
●  Spring Boot apps
●  Source code on GitHub
●  Maven
●  No tests
●  Use 5 services
○  MySQL database (for Fortune)
○  Spring Cloud Services: Eureka, Hystrix/Turbine, Config Server
○  Rabbit - for Config Server refresh trigger propagation
●  Add 2 new branches to the app repos
App Scaffold
77
●  Add 2 new branches to the app repos
●  Add a Maven wrapper
○  mvn -N io.takari:maven:wrapper
App Scaffold
78
●  Add 2 new branches to the app repos
●  Add a Maven wrapper
○  mvn -N io.takari:maven:wrapper
●  Add artifact repo info to app pom.xml (and ~/.m2/settings.xml)
○  distributionManagement.repository.id
○  distributionManagement.repository.url
App Scaffold
79
●  Add 2 new branches to the app repos
●  Add a Maven wrapper
○  mvn -N io.takari:maven:wrapper
●  Add artifact repo info to app pom.xml
○  distributionManagement.repository.id
○  distributionManagement.repository.url
●  git push!
App Scaffold
80
Pipeline Configuration - Git and Mvn
81	
●  Create a credentials file for each app (copy sample in SCP)
○  Git url and branch of your app
○  Git url and branch of the SCP code base use v1.0.0.M8 or later for cf)
○  Your git name, email, and private key
○  Your maven repo info and credentials
Build - Success!
82	
●  At this point, the Build jobs should all succeed
●  App builds, jar uploads to maven repo, git tagged as “dev/<version>”
●  The api compatibility job runs “mvn clean verify -P apicompatibility”, but the
profile does not exist yet, so it really isn’t doing much
●  Takes place on Concourse worker
●  Create app manifest.yml
●  Create a new manifest for SCP (e.g. sc-pipelines.yml)
○  Provide info for SCP to provision services on CF (test* & stage)
●  Git push!
App Scaffold
83	
test:	
	services:	
			-	name:	fortune-db	
					type:	broker	
					broker:	cleardb	
					plan:	spark	
			-	name:	config-server	
					type:	broker	
					broker:	p-config-server	
					plan:	standard	
					params:	
							git:	
									uri:	https://github.com/ciberkleid/app-config	
					useExisting:	true	
					...
Pipeline Configuration - CF
84	
●  Add general CF info to the credentials file
○  paas-type: cf
○  pipeline-descriptor (the sc-pipelines manifest)
○  paas-hostname-uuid (to avoid route collision)
●  Add target & login info for Test, Stage and Prod
○  For Test, you specify a prefix. SCP appends the app name
Cloud Foundry Setup: Test, Stage, Prod
85	
●  Create the Test, Stage, and Prod spaces
●  Manually provision services in Prod
○  And maybe Stage
○  But not Test
Test, Stage & Prod - Success!
86	
●  App deployed to PCF through Prod
●  Git tagged as prod/<version>
●  Ability to trigger rollback through Concourse
87
88
Act I: The Scaffold - Recap
89	
●  Objective:
○  Automate the deployment of greeting-ui and fortune-service
a.k.a. Make the pipelines run green
○  Establish environments (PCF spaces) in accordance with SCP
recommendations
●  Approach:
○  Minimum changes to apps (scaffolding, not code)
○  Create a pipeline for each
○  Create PCF spaces
○  Run the pipelines
Is That Enough?
90
Nope!
91	
Same	for	apicompatibility	and	e2e
Act II: The Test
Act II: The Test
93	
●  Objective:
○  Increase effectiveness of and confidence in the pipelines
○  Standardize approach to testing
●  Approach:
○  Use mvn profiles to control test executions
○  Add/organize tests in agreement with SCP framework
○  Enable DB backward compatibility testing
Test Control - Maven Profiles
94	
●  Add profiles to the app pom.xml
○  default
○  apicompatibility
○  smoke
○  e2e
	<profile>	
			<id>default</id>	
			<activation>	
					<activeByDefault>true</activeByDefault>	
			</activation>	
			<build>	
					<plugins>	
							<plugin>	
									<groupId>org.apache.maven.plugins</groupId>	
									<artifactId>maven-surefire-plugin</artifactId>	
									<configuration>	
											<includes>	
													<include>**/*Tests.java</include>	
													<include>**/*Test.java</include>	
											</includes>	
											<excludes>	
													<exclude>**/smoke/**</exclude>	
													<exclude>**/e2e/**</exclude>	
											</excludes>	
									</configuration>	
							</plugin>	
							<plugin>	
									<groupId>org.springframework.boot</groupId>	
									<artifactId>spring-boot-maven-plugin</artifactId>	
							</plugin>	
					</plugins>	
			</build>	
	</profile>
Test Control - Organize Tests
95	
●  Organize tests into packages matching the profiles
●  Add tests for each profile
Test Coverage - Fortune Smoke
96	
fortune-service	
fortune-db
Test Coverage - Fortune E2E
97	
greeting-ui	
fortune-db	
fortune-service	
Assuming	same	domain...
Test Coverage - Greeting Smoke
98	
greeting-ui	
circuit	breaker	fallback
Test Coverage - Greeting E2E
99	
greeting-ui	
fortune-service
Enable Database Rollback Testing
100	
●  Flyway
○  OSS DB migration tool
○  For relational databases
○  Convention over configuration
○  Database versioning
○  Migration on app startup (good for CD!)
DB Schema Creation With Flyway
101	
●  Disable JPA auto-generated schemas; let flyway do it
●  Follow flyway conventions for SQL file name
●  Tada! Schema is now versioned!
DB Schema Population With Flyway
102	
●  Add INSERT statements to V1__init.sql
●  Data is populated upon app startup, but only once per DB version
Act II: The Test - Recap
103	
●  Objective:
○  Increase effectiveness of and confidence in the pipelines
○  Standardize approach to testing
●  Approach:
○  Use mvn profiles to control test executions
○  Add/organize tests in agreement with SCP framework
○  Enable DB backward compatibility testing
Is THAT Enough?
104	
●  Good:
○  You are in a great position to include well-organized, robust testing and
derive a high level of confidence from your pipelines
○  You can ensure safe rollbacks in case of database schema changes
●  Better:
○  Implementing a contract-driven approach will have additional benefits to
your general development practice
○  Inter-team communication will be simpler
○  Contract tests will catch breaking API changes in build rather than stage
○  Troubleshooting will be easier
○  Failure and feedback will be faster
Act III: The Contract
Act III: The Contract
106	
●  Objective:
○  Increase reliability - strive to maximize pipeline benefits
○  Encourage contract-based programming practices
●  Approach:
○  Add contracts, stubs, and a stubrunner
○  Enable API backward compatibility testing
The Greeting/Fortune Contract
107	
import org.springframework.cloud.contract.spec.Contract
Contract.make {
description("""
should return a fortune string
""")
request {
method GET()
url "/"
}
response {
status 200
body "foo fortune"
}
}
Spring Cloud Contract Basics
108	
●  Add the Spring Cloud Contract Maven Plugin to your pom.xml (Fortune)
○  Plugin requires a base class to set up the context and stub out the
service that satisfies the API call (e.g. the DB)
public class BaseClass {
@Before
public void setup() {
FortuneService service = BDDMockito.mock(FortuneService.class);
BDDMockito.given(service.getFortune()).willReturn("foo fortune");
RestAssuredMockMvc.standaloneSetup(new FortuneController(service));
}
}
Spring Cloud Contract Basics
109	
●  Add the Spring Cloud Contract Maven Plugin to your pom.xml (Fortune)
○  Plugin will auto-generate tests and stubs (and a stub.jar)
○  Stub jar is uploaded to the maven repo, along with the app jar
For Back-Compatibility, Use Prod Contracts
110	
<profile>
<id>apicompatibility</id>
<plugin>
<configuration>
<contractsRepositoryUrl>${repo.with.binaries}</contractsRepositoryUrl>
<contractDependency>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<classifier>stubs</classifier>
<version>${latest.production.version}</version>
</contractDependency>
...
In	this	case,	we	want	the	contracts	plugin	to	generate	tests	based	on	contracts	outside	of	the	
project	(the	ones	from	the	latest	prod	jar	on	our	maven	repo).	Pipeline	injects	values	in	red	
dynamically
Greeting: Build with Stubrunner
greeting-ui	
circuit	breaker	fallback	
or	manually	configured	
WireMock	
greeting-ui	
stubs	
without	stubrunner	 with	stubrunner	
●  Greeting starts an in-process stubrunner that automatically configures
WireMock
Greeting: Integration Tests Aligned with Stubs
112	
For	in-process	stubrunner,	the	
server-side	Wiremock	port	
For	in-process	stubrunner,	the	
client-side	endpoint	config
Greeting: Test with Stubrunner (standalone)
greeting-ui	
circuit	breaker	fallback	
greeting-ui	
stubrunner	
without	stubrunner	 with	stubrunner	
Note:	Update	the	
greeting	smoke	tests	
accordingly
Home Stretch: Standalone Stubrunner Config
●  You need a stubrunner app!
○  Clone spring-cloud-samples/cloudfoundry-stub-runner-boot
○  Build it, and upload the jar to your maven repo
●  Your stubrunner app needs a manifest!
○  Put it in your app repo (e.g. greeting-ui repo)
●  You need to tell SCP to deploy the stubrunner app!
○  Do it through the pipeline descriptor (e.g. sc-pipelines.yml)
Home Stretch: Standalone Stubrunner Config
●  Specify the server side (stubrunner) ports
<properties>
<stubrunner.ids>io.pivotal:fortune-service:_latest:stubs:10000</stubrunner.ids>
</properties>
●  Disable Eureka lookup for smoke tests
●  Provide URLs to non-8080 stubrunner ports explicitly
Act III: The Contract - Recap
116	
●  Objective:
○  Increase reliability - strive to maximize pipeline benefits
○  Encourage contract-based programming practices
●  Approach:
○  Add contracts, stubs, and a stubrunner
○  Enable API back compatibility testing
So what have we achieved
117	
●  The Scaffold:
○  Automate the deployment of greeting-ui and fortune-service
a.k.a. Make the pipelines run green
○  Establish environments (PCF spaces) in accordance with SCP
recommendations
●  The Test:
○  Increase effectiveness of and confidence in the pipelines
○  Standardize approach to testing
●  The Contract
○  Increase reliability - strive to maximize pipeline benefits
○  Encourage contract-based programming practices
Finally...
One More Thing...
Just Kidding :-)
You’re Done!
Though Really, You’re Just Beginning...
122	
Because now…
●  You can evolve your app faster
●  With (hopefully) better code
●  Consistent testing practices
●  Fast failure and feedback
●  Contract-based API definitions
●  API and DB rollback assurance
●  And…. instant pipelines from source to production!
What About Poor Simon?
123	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
WHO SAID
Do What
Works!?
What About Poor Simon?
124	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
WHO SAID
Do What
Works!?
Contract.make{“””	
should	return	author	name	
“””)	
...
What About Poor Simon?
125	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
WHO SAID
Do What
Works!?
Fortune	Service	
Stub
What About Poor Simon?
126	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
WHO SAID
Do What
Works!?
V2:	
	
ALTER	TABLE	fortune	
	CHANGE	COLUMN	text	TO	fortune,	
	ADD	author	CHAR	(50);
What About Poor Simon?
127	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
WHO SAID
Do What
Works!?
What About Poor Simon?
128	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Simon	
Pivotal says it
all the time!
Simon Spring Cloud Pipelines
129	
Greeting	UI	 Fortune	Service	 Fortune	DB	
Oh, right!
I knew that.
Sample Code...
130	
●  Github repos showing the
end-state of each “act”
●  Step-by-step instructions will
be published soon and made
accessible through the repo
Readmes
Summary	
•  Continuous	Deployment	allows	you	to	continuously	deliver	business	value	
•  Spring	Cloud	Pipelines	gives	you	OOB	tooling	to	test	your	software	via	
•  unit	and	integration	testing	
•  contract	testing	
•  rollback	testing	
•  You	can	gradually	migrate	your	applications	to	start	using	SC	Pipelines	
•  SC	Pipelines	allows	you	to	easily	adjust	the	deployment	pipeline	to	suit	your	
company’s	needs	
•  Thanks	to	PaaS	you	can	easily	do	A/B	&	zero	downtime	deployment
●  Github	Analytics:	https://github.com/spring-cloud-samples/github-analytics	
●  Github	Webhook:	https://github.com/spring-cloud-samples/github-webhook	
●  Fortune	Service:	https://github.com/ciberkleid/fortune-service	
●  Greeting	UI:	https://github.com/ciberkleid/greeting-ui/	
●  SC-Pipelines	documentation:	https://cloud.spring.io/spring-cloud-pipelines/	
●  Pivotal	Web	Services	trial	:	https://run.pivotal.io/	
●  PCF	Dev	(CF	on	your	laptop)	:	https://docs.pivotal.io/pcf-dev/		
Links
Learn More. Stay Connected.
▪  Read the docs
http://cloud.spring.io/spring-cloud-pipelines/
▪  Talk to us on Gitter
https://gitter.im/spring-cloud/spring-cloud-pipelines
Twitter: twitter.com/springcentral
YouTube: spring.io/video
LinkedIn: spring.io/linkedin
Google Plus: spring.io/gplus
ciberkleid	
	mgrzejszczak	
	
JavaFXpert

More Related Content

What's hot

Use Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationUse Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test Automation
Clever Moe
 
Scaling Without Expanding: a DevOps Story
Scaling Without Expanding: a DevOps StoryScaling Without Expanding: a DevOps Story
Scaling Without Expanding: a DevOps Story
Atlassian
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
Ganesh Samarthyam
 
Serverless Delivery
Serverless DeliveryServerless Delivery
Serverless Delivery
Casey Lee
 
Dan Cuellar
Dan CuellarDan Cuellar
Dan Cuellar
CodeFest
 
Measure and Increase Developer Productivity with Help of Serverless at Server...
Measure and Increase Developer Productivity with Help of Serverless at Server...Measure and Increase Developer Productivity with Help of Serverless at Server...
Measure and Increase Developer Productivity with Help of Serverless at Server...
Vadym Kazulkin
 
Accelerating Add-on Development From Concept to Launch
Accelerating Add-on Development From Concept to LaunchAccelerating Add-on Development From Concept to Launch
Accelerating Add-on Development From Concept to Launch
Atlassian
 
TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​
HTC
 
Udvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load test
Peter Lindberg
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsDevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback Loops
Andreas Grabner
 
Top10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome AppsTop10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome Apps
Casey Lee
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysDevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
Andreas Grabner
 
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelinesdeliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
Esteban Garcia
 
App center an overview
App center  an overviewApp center  an overview
App center an overview
Microsoft Azure Japan
 
Release Management with Visual Studio Team Services and Office Dev PnP
Release Management with Visual Studio Team Services and Office Dev PnPRelease Management with Visual Studio Team Services and Office Dev PnP
Release Management with Visual Studio Team Services and Office Dev PnP
Petter Skodvin-Hvammen
 
DevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
DevOps Patterns Distilled: Implementing The Needed Practices In Practical StepsDevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
DevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
CA Technologies
 
SOASTA CloudTest Lite
SOASTA CloudTest LiteSOASTA CloudTest Lite
SOASTA CloudTest Lite
Fred Beringer
 
Ionic intro + tips
Ionic intro + tipsIonic intro + tips
Ionic intro + tips
Tony May
 
DevOps on Microsoft Platform
DevOps on Microsoft PlatformDevOps on Microsoft Platform
DevOps on Microsoft Platform
Osman Seckin Karabas
 
Atlassian User Group NYC April 27 2017 ScriptRunner Workshop
Atlassian User Group NYC April 27 2017 ScriptRunner WorkshopAtlassian User Group NYC April 27 2017 ScriptRunner Workshop
Atlassian User Group NYC April 27 2017 ScriptRunner Workshop
Marlon Palha
 

What's hot (20)

Use Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationUse Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test Automation
 
Scaling Without Expanding: a DevOps Story
Scaling Without Expanding: a DevOps StoryScaling Without Expanding: a DevOps Story
Scaling Without Expanding: a DevOps Story
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
Serverless Delivery
Serverless DeliveryServerless Delivery
Serverless Delivery
 
Dan Cuellar
Dan CuellarDan Cuellar
Dan Cuellar
 
Measure and Increase Developer Productivity with Help of Serverless at Server...
Measure and Increase Developer Productivity with Help of Serverless at Server...Measure and Increase Developer Productivity with Help of Serverless at Server...
Measure and Increase Developer Productivity with Help of Serverless at Server...
 
Accelerating Add-on Development From Concept to Launch
Accelerating Add-on Development From Concept to LaunchAccelerating Add-on Development From Concept to Launch
Accelerating Add-on Development From Concept to Launch
 
TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​
 
Udvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load test
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsDevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback Loops
 
Top10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome AppsTop10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome Apps
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysDevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
 
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelinesdeliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
 
App center an overview
App center  an overviewApp center  an overview
App center an overview
 
Release Management with Visual Studio Team Services and Office Dev PnP
Release Management with Visual Studio Team Services and Office Dev PnPRelease Management with Visual Studio Team Services and Office Dev PnP
Release Management with Visual Studio Team Services and Office Dev PnP
 
DevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
DevOps Patterns Distilled: Implementing The Needed Practices In Practical StepsDevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
DevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
 
SOASTA CloudTest Lite
SOASTA CloudTest LiteSOASTA CloudTest Lite
SOASTA CloudTest Lite
 
Ionic intro + tips
Ionic intro + tipsIonic intro + tips
Ionic intro + tips
 
DevOps on Microsoft Platform
DevOps on Microsoft PlatformDevOps on Microsoft Platform
DevOps on Microsoft Platform
 
Atlassian User Group NYC April 27 2017 ScriptRunner Workshop
Atlassian User Group NYC April 27 2017 ScriptRunner WorkshopAtlassian User Group NYC April 27 2017 ScriptRunner Workshop
Atlassian User Group NYC April 27 2017 ScriptRunner Workshop
 

Similar to SpringOne Tour Denver - Continuous Delivery of your Application

Continuous Deployment of your Application - SpringOne Tour Dallas
Continuous Deployment of your Application - SpringOne Tour DallasContinuous Deployment of your Application - SpringOne Tour Dallas
Continuous Deployment of your Application - SpringOne Tour Dallas
VMware Tanzu
 
Bodywork - GitOps for Machine Learning
Bodywork - GitOps for Machine LearningBodywork - GitOps for Machine Learning
Bodywork - GitOps for Machine Learning
Alex Ioannides
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
Marcin Grzejszczak
 
Setting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsSetting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce Apps
Daniel Stange
 
Super charged prototyping
Super charged prototypingSuper charged prototyping
Super charged prototyping
Michael Stephenson
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The Cloud
Marcin Grzejszczak
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
Marcin Grzejszczak
 
Architectural Considerations for Startups
Architectural Considerations for StartupsArchitectural Considerations for Startups
Architectural Considerations for Startups
Niall Roche
 
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Vadym Kazulkin
 
Working on a Skyscraper in the Early Years of the XX Century
Working on a Skyscraper in the Early Years of the XX CenturyWorking on a Skyscraper in the Early Years of the XX Century
Working on a Skyscraper in the Early Years of the XX Century
Miguel Ferreira
 
Continuous Deployment to the cloud
Continuous Deployment to the cloudContinuous Deployment to the cloud
Continuous Deployment to the cloud
VMware Tanzu
 
Enabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinarEnabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinar
Aaron Walker
 
SharePoint Saturday Ottawa 2014 - Microsoft Azure : Central component of your...
SharePoint Saturday Ottawa 2014 - Microsoft Azure : Central component of your...SharePoint Saturday Ottawa 2014 - Microsoft Azure : Central component of your...
SharePoint Saturday Ottawa 2014 - Microsoft Azure : Central component of your...
PimpMySharePoint
 
Minimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good EnoughMinimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good Enough
Randy Shoup
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
ciberkleid
 
Measure and increase developer productivity with help of Severless by Kazulki...
Measure and increase developer productivity with help of Severless by Kazulki...Measure and increase developer productivity with help of Severless by Kazulki...
Measure and increase developer productivity with help of Severless by Kazulki...
Vadym Kazulkin
 
Serverless integrations using Azure Logic Apps (intro)
Serverless integrations using Azure Logic Apps (intro)Serverless integrations using Azure Logic Apps (intro)
Serverless integrations using Azure Logic Apps (intro)
Callon Campbell
 
My personal story from azure it pro to azure dev ops
My personal story from azure it pro to azure dev opsMy personal story from azure it pro to azure dev ops
My personal story from azure it pro to azure dev ops
nj-azure
 
AWS ECS Copilot DevOps Presentation
AWS ECS Copilot DevOps PresentationAWS ECS Copilot DevOps Presentation
AWS ECS Copilot DevOps Presentation
Varun Manik
 
SharePoint Fest Chicago - Introduction to AngularJS with the Microsoft Graph
SharePoint Fest Chicago - Introduction to AngularJS with the Microsoft GraphSharePoint Fest Chicago - Introduction to AngularJS with the Microsoft Graph
SharePoint Fest Chicago - Introduction to AngularJS with the Microsoft Graph
Sébastien Levert
 

Similar to SpringOne Tour Denver - Continuous Delivery of your Application (20)

Continuous Deployment of your Application - SpringOne Tour Dallas
Continuous Deployment of your Application - SpringOne Tour DallasContinuous Deployment of your Application - SpringOne Tour Dallas
Continuous Deployment of your Application - SpringOne Tour Dallas
 
Bodywork - GitOps for Machine Learning
Bodywork - GitOps for Machine LearningBodywork - GitOps for Machine Learning
Bodywork - GitOps for Machine Learning
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
 
Setting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsSetting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce Apps
 
Super charged prototyping
Super charged prototypingSuper charged prototyping
Super charged prototyping
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The Cloud
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
 
Architectural Considerations for Startups
Architectural Considerations for StartupsArchitectural Considerations for Startups
Architectural Considerations for Startups
 
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
 
Working on a Skyscraper in the Early Years of the XX Century
Working on a Skyscraper in the Early Years of the XX CenturyWorking on a Skyscraper in the Early Years of the XX Century
Working on a Skyscraper in the Early Years of the XX Century
 
Continuous Deployment to the cloud
Continuous Deployment to the cloudContinuous Deployment to the cloud
Continuous Deployment to the cloud
 
Enabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinarEnabling your DevOps culture with AWS-webinar
Enabling your DevOps culture with AWS-webinar
 
SharePoint Saturday Ottawa 2014 - Microsoft Azure : Central component of your...
SharePoint Saturday Ottawa 2014 - Microsoft Azure : Central component of your...SharePoint Saturday Ottawa 2014 - Microsoft Azure : Central component of your...
SharePoint Saturday Ottawa 2014 - Microsoft Azure : Central component of your...
 
Minimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good EnoughMinimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good Enough
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
 
Measure and increase developer productivity with help of Severless by Kazulki...
Measure and increase developer productivity with help of Severless by Kazulki...Measure and increase developer productivity with help of Severless by Kazulki...
Measure and increase developer productivity with help of Severless by Kazulki...
 
Serverless integrations using Azure Logic Apps (intro)
Serverless integrations using Azure Logic Apps (intro)Serverless integrations using Azure Logic Apps (intro)
Serverless integrations using Azure Logic Apps (intro)
 
My personal story from azure it pro to azure dev ops
My personal story from azure it pro to azure dev opsMy personal story from azure it pro to azure dev ops
My personal story from azure it pro to azure dev ops
 
AWS ECS Copilot DevOps Presentation
AWS ECS Copilot DevOps PresentationAWS ECS Copilot DevOps Presentation
AWS ECS Copilot DevOps Presentation
 
SharePoint Fest Chicago - Introduction to AngularJS with the Microsoft Graph
SharePoint Fest Chicago - Introduction to AngularJS with the Microsoft GraphSharePoint Fest Chicago - Introduction to AngularJS with the Microsoft Graph
SharePoint Fest Chicago - Introduction to AngularJS with the Microsoft Graph
 

More from VMware Tanzu

Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
VMware Tanzu
 
What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
VMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
VMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
VMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
VMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
VMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
VMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
VMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
VMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
VMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
VMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
VMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
VMware Tanzu
 

More from VMware Tanzu (20)

Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
 
What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 

Recently uploaded

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 

Recently uploaded (20)

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Artificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic WarfareArtificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic Warfare
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 

SpringOne Tour Denver - Continuous Delivery of your Application