tanzu.vmware.com
Open in
urlscan Pro
2600:1400:d:499::2ef
Public Scan
URL:
https://tanzu.vmware.com/developer/springone-tour/2022/toronto/
Submission: On May 26 via api from CA — Scanned from CA
Submission: On May 26 via api from CA — Scanned from CA
Form analysis
2 forms found in the DOMGET /developer/search
<form id="searchheaderform" action="/developer/search" accept-charset="utf-8" method="get" __bizdiag="111607584" __biza="WJ__"><input name="utf8" type="hidden" value="✓">
<input type="text" name="q" id="searchheaderinput" autocomplete="off" placeholder="Search for guides, videos, code samples, posts, and more...">
<input type="submit" id="searchheadersubmit" data-disable-with="">
</form>
<form class="form-inline" __bizdiag="-1809319457" __biza="WJ__"><input type="hidden" name="amountPaid" value="0">
<input type="hidden" name="city" value="toronto">
<div class="form-row">
<div class="col-sm-6 s1t-form-col"><input type="text" class="form-control" name="firstName" placeholder="First name" maxlength="50" aria-required="First name" required=""></div>
<div class="col-sm-6 s1t-form-col"><input type="text" class="form-control" name="lastName" placeholder="Last name" maxlength="50" aria-required="Last name" required=""></div>
</div>
<div class="form-row">
<div class="col-sm-6 s1t-form-col"><input type="email" class="form-control" name="email" id="email" placeholder="Business email" aria-required="Email address" required=""></div>
<div class="col-sm-6 s1t-form-col"><input type="text" class="form-control" name="jobTitle" required="" aria-required="Job Title" placeholder="Job title"></div>
</div>
<div class="form-row">
<div class="col-sm-6 s1t-form-col"><input type="text" class="form-control" name="company" required="" aria-required="Company" placeholder="Company" maxlength="50"></div>
<div class="col-sm-6 s1t-form-col"><select name="tshirtSize" class="form-control" required="">
<option value="" selected="" disabled="">T-shirt size (Unisex)</option>
<option value="xss">XX Small</option>
<option value="xs">X Small</option>
<option value="s">Small</option>
<option value="m">Medium</option>
<option value="l">Large</option>
<option value="xl">X Large</option>
<option value="xxl">XX Large</option>
<option value="xxxl">XXX Large</option>
</select></div>
</div>
<div class="form-row">
<div class="col-sm-6 s1t-form-col"><select class="form-control country-select" name="country" aria-selected="None" required="">
<option value="None" selected="" disabled="">Country</option>
<option value="United States">United States</option>
<option value="Canada">Canada</option>
<option value="United Kingdom">United Kingdom</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Åland Islands">Åland Islands</option>
<option value="Albania">Albania</option>
<option value="Algeria">Algeria</option>
<option value="American Samoa">American Samoa</option>
<option value="Andorra">Andorra</option>
<option value="Angola">Angola</option>
<option value="Anguilla">Anguilla</option>
<option value="Antarctica">Antarctica</option>
<option value="Antigua and Barbuda">Antigua and Barbuda</option>
<option value="Argentina">Argentina</option>
<option value="Armenia">Armenia</option>
<option value="Aruba">Aruba</option>
<option value="Australia">Australia</option>
<option value="Austria">Austria</option>
<option value="Azerbaijan">Azerbaijan</option>
<option value="Bahrain">Bahrain</option>
<option value="Bahamas">Bahamas</option>
<option value="Bangladesh">Bangladesh</option>
<option value="Barbados">Barbados</option>
<option value="Belgium">Belgium</option>
<option value="Belize">Belize</option>
<option value="Benin">Benin</option>
<option value="Bermuda">Bermuda</option>
<option value="Bhutan">Bhutan</option>
<option value="Bolivia, Plurinational State of">Bolivia, Plurinational State of</option>
<option value="Bonaire, Sint Eustatius and Saba">Bonaire, Sint Eustatius and Saba</option>
<option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option>
<option value="Botswana">Botswana</option>
<option value="Bouvet Island">Bouvet Island</option>
<option value="Brazil">Brazil</option>
<option value="British Indian Ocean Territory">British Indian Ocean Territory</option>
<option value="Brunei Darussalam">Brunei Darussalam</option>
<option value="Bulgaria">Bulgaria</option>
<option value="Burkina Faso">Burkina Faso</option>
<option value="Burundi">Burundi</option>
<option value="Cambodia">Cambodia</option>
<option value="Cameroon">Cameroon</option>
<option value="Cape Verde">Cape Verde</option>
<option value="Cayman Islands">Cayman Islands</option>
<option value="Central African Republic">Central African Republic</option>
<option value="Chad">Chad</option>
<option value="Chile">Chile</option>
<option value="China">China</option>
<option value="Christmas Island">Christmas Island</option>
<option value="Cocos (Keeling) Islands">Cocos (Keeling) Islands</option>
<option value="Colombia">Colombia</option>
<option value="Comoros">Comoros</option>
<option value="Congo">Congo</option>
<option value="Congo, the Democratic Republic of the">Congo, the Democratic Republic of the</option>
<option value="Cook Islands">Cook Islands</option>
<option value="Costa Rica">Costa Rica</option>
<option value="Côte d'Ivoire">Côte d'Ivoire</option>
<option value="Croatia">Croatia</option>
<option value="Cuba">Cuba</option>
<option value="Curaçao">Curaçao</option>
<option value="Cyprus">Cyprus</option>
<option value="Czech Republic">Czech Republic</option>
<option value="Denmark">Denmark</option>
<option value="Djibouti">Djibouti</option>
<option value="Dominica">Dominica</option>
<option value="Dominican Republic">Dominican Republic</option>
<option value="Ecuador">Ecuador</option>
<option value="Egypt">Egypt</option>
<option value="El Salvador">El Salvador</option>
<option value="Equatorial Guinea">Equatorial Guinea</option>
<option value="Eritrea">Eritrea</option>
<option value="Estonia">Estonia</option>
<option value="Ethiopia">Ethiopia</option>
<option value="Falkland Islands (Malvinas)">Falkland Islands (Malvinas)</option>
<option value="Faroe Islands">Faroe Islands</option>
<option value="Fiji">Fiji</option>
<option value="Finland">Finland</option>
<option value="France">France</option>
<option value="French Guiana">French Guiana</option>
<option value="French Polynesia">French Polynesia</option>
<option value="French Southern Territories">French Southern Territories</option>
<option value="Gabon">Gabon</option>
<option value="Gambia">Gambia</option>
<option value="Georgia">Georgia</option>
<option value="Germany">Germany</option>
<option value="Ghana">Ghana</option>
<option value="Gibraltar">Gibraltar</option>
<option value="Greece">Greece</option>
<option value="Greenland">Greenland</option>
<option value="Grenada">Grenada</option>
<option value="Guadeloupe">Guadeloupe</option>
<option value="Guam">Guam</option>
<option value="Guatemala">Guatemala</option>
<option value="Guernsey">Guernsey</option>
<option value="Guinea">Guinea</option>
<option value="Guinea-Bissau">Guinea-Bissau</option>
<option value="Guyana">Guyana</option>
<option value="Haiti">Haiti</option>
<option value="Heard Island and McDonald Islands">Heard Island and McDonald Islands</option>
<option value="Holy See (Vatican City State)">Holy See (Vatican City State)</option>
<option value="Honduras">Honduras</option>
<option value="Hong Kong">Hong Kong</option>
<option value="Hungary">Hungary</option>
<option value="Iceland">Iceland</option>
<option value="India">India</option>
<option value="Indonesia">Indonesia</option>
<option value="Iran, Islamic Republic of">Iran, Islamic Republic of</option>
<option value="Iraq">Iraq</option>
<option value="Ireland">Ireland</option>
<option value="Isle of Man">Isle of Man</option>
<option value="Israel">Israel</option>
<option value="Italy">Italy</option>
<option value="Jamaica">Jamaica</option>
<option value="Japan">Japan</option>
<option value="Jersey">Jersey</option>
<option value="Jordan">Jordan</option>
<option value="Kazakhstan">Kazakhstan</option>
<option value="Kenya">Kenya</option>
<option value="Kiribati">Kiribati</option>
<option value="Korea, Democratic People's Republic of">Korea, Democratic People's Republic of</option>
<option value="Korea, Republic of">Korea, Republic of</option>
<option value="Kuwait">Kuwait</option>
<option value="Kyrgyzstan">Kyrgyzstan</option>
<option value="Lao People's Democratic Republic">Lao People's Democratic Republic</option>
<option value="Latvia">Latvia</option>
<option value="Lebanon">Lebanon</option>
<option value="Lesotho">Lesotho</option>
<option value="Liberia">Liberia</option>
<option value="Libya">Libya</option>
<option value="Liechtenstein">Liechtenstein</option>
<option value="Lithuania">Lithuania</option>
<option value="Luxembourg">Luxembourg</option>
<option value="Macao">Macao</option>
<option value="Macedonia, the Former Yugoslav Republic of">Macedonia, the Former Yugoslav Republic of</option>
<option value="Madagascar">Madagascar</option>
<option value="Malawi">Malawi</option>
<option value="Malaysia">Malaysia</option>
<option value="Maldives">Maldives</option>
<option value="Mali">Mali</option>
<option value="Malta">Malta</option>
<option value="Marshall Islands">Marshall Islands</option>
<option value="Martinique">Martinique</option>
<option value="Mauritania">Mauritania</option>
<option value="Mauritius">Mauritius</option>
<option value="Mayotte">Mayotte</option>
<option value="Mexico">Mexico</option>
<option value="Micronesia, Federated States of">Micronesia, Federated States of</option>
<option value="Moldova, Republic of">Moldova, Republic of</option>
<option value="Monaco">Monaco</option>
<option value="Mongolia">Mongolia</option>
<option value="Montenegro">Montenegro</option>
<option value="Montserrat">Montserrat</option>
<option value="Morocco">Morocco</option>
<option value="Mozambique">Mozambique</option>
<option value="Myanmar">Myanmar</option>
<option value="Namibia">Namibia</option>
<option value="Nauru">Nauru</option>
<option value="Nepal">Nepal</option>
<option value="Netherlands">Netherlands</option>
<option value="New Caledonia">New Caledonia</option>
<option value="New Zealand">New Zealand</option>
<option value="Nicaragua">Nicaragua</option>
<option value="Niger">Niger</option>
<option value="Nigeria">Nigeria</option>
<option value="Niue">Niue</option>
<option value="Norfolk Island">Norfolk Island</option>
<option value="Northern Mariana Islands">Northern Mariana Islands</option>
<option value="Norway">Norway</option>
<option value="Oman">Oman</option>
<option value="Pakistan">Pakistan</option>
<option value="Palau">Palau</option>
<option value="Palestine, State of">Palestine, State of</option>
<option value="Panama">Panama</option>
<option value="Papua New Guinea">Papua New Guinea</option>
<option value="Paraguay">Paraguay</option>
<option value="Peru">Peru</option>
<option value="Philippines">Philippines</option>
<option value="Pitcairn">Pitcairn</option>
<option value="Poland">Poland</option>
<option value="Portugal">Portugal</option>
<option value="Puerto Rico">Puerto Rico</option>
<option value="Qatar">Qatar</option>
<option value="Réunion">Réunion</option>
<option value="Romania">Romania</option>
<option value="Rwanda">Rwanda</option>
<option value="Saint Barthélemy">Saint Barthélemy</option>
<option value="Saint Helena, Ascension and Tristan da Cunha">Saint Helena, Ascension and Tristan da Cunha</option>
<option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
<option value="Saint Lucia">Saint Lucia</option>
<option value="Saint Martin (French part)">Saint Martin (French part)</option>
<option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
<option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option>
<option value="Samoa">Samoa</option>
<option value="San Marino">San Marino</option>
<option value="Sao Tome and Principe">Sao Tome and Principe</option>
<option value="Saudi Arabia">Saudi Arabia</option>
<option value="Senegal">Senegal</option>
<option value="Serbia">Serbia</option>
<option value="Seychelles">Seychelles</option>
<option value="Sierra Leone">Sierra Leone</option>
<option value="Singapore">Singapore</option>
<option value="Sint Maarten">Sint Maarten</option>
<option value="Slovakia">Slovakia</option>
<option value="Slovenia">Slovenia</option>
<option value="Solomon Islands">Solomon Islands</option>
<option value="Somalia">Somalia</option>
<option value="South Africa">South Africa</option>
<option value="South Georgia and the South Sandwich Islands">South Georgia and the South Sandwich Islands</option>
<option value="South Sudan">South Sudan</option>
<option value="Spain">Spain</option>
<option value="Sri Lanka">Sri Lanka</option>
<option value="Sudan">Sudan</option>
<option value="Suriname">Suriname</option>
<option value="Svalbard and Jan Mayen">Svalbard and Jan Mayen</option>
<option value="Swaziland">Swaziland</option>
<option value="Sweden">Sweden</option>
<option value="Switzerland">Switzerland</option>
<option value="Syrian Arab Republic">Syrian Arab Republic</option>
<option value="Taiwan, Province of China">Taiwan, Province of China</option>
<option value="Tajikistan">Tajikistan</option>
<option value="Tanzania, United Republic of">Tanzania, United Republic of</option>
<option value="Thailand">Thailand</option>
<option value="Timor-Leste">Timor-Leste</option>
<option value="Togo">Togo</option>
<option value="Tokelau">Tokelau</option>
<option value="Tonga">Tonga</option>
<option value="Trinidad and Tobago">Trinidad and Tobago</option>
<option value="Tunisia">Tunisia</option>
<option value="Turkey">Turkey</option>
<option value="Turkmenistan">Turkmenistan</option>
<option value="Turks and Caicos Islands">Turks and Caicos Islands</option>
<option value="Tuvalu">Tuvalu</option>
<option value="Uganda">Uganda</option>
<option value="Ukraine">Ukraine</option>
<option value="United Arab Emirates">United Arab Emirates</option>
<option value="United States Minor Outlying Islands">United States Minor Outlying Islands</option>
<option value="Uruguay">Uruguay</option>
<option value="Uzbekistan">Uzbekistan</option>
<option value="Vanuatu">Vanuatu</option>
<option value="Venezuela, Bolivarian Republic of">Venezuela, Bolivarian Republic of</option>
<option value="Vietnam">Vietnam</option>
<option value="Virgin Islands, British">Virgin Islands, British</option>
<option value="Virgin Islands, U.S.">Virgin Islands, U.S.</option>
<option value="Wallis and Futuna">Wallis and Futuna</option>
<option value="Western Sahara">Western Sahara</option>
<option value="Yemen">Yemen</option>
<option value="Zambia">Zambia</option>
<option value="Zimbabwe">Zimbabwe</option>
</select>
<script>
const countries = [{
name: "United States"
}, {
name: "Canada",
gdpr: !0
}, {
name: "United Kingdom",
gdpr: !0
}, {
name: "Afghanistan"
}, {
name: "Åland Islands"
}, {
name: "Albania",
gdpr: !0
}, {
name: "Algeria"
}, {
name: "American Samoa"
}, {
name: "Andorra"
}, {
name: "Angola"
}, {
name: "Anguilla"
}, {
name: "Antarctica"
}, {
name: "Antigua and Barbuda"
}, {
name: "Argentina"
}, {
name: "Armenia"
}, {
name: "Aruba"
}, {
name: "Australia"
}, {
name: "Austria",
gdpr: !0
}, {
name: "Azerbaijan"
}, {
name: "Bahrain"
}, {
name: "Bahamas"
}, {
name: "Bangladesh"
}, {
name: "Barbados"
}, {
name: "Belgium",
gdpr: !0
}, {
name: "Belize"
}, {
name: "Benin"
}, {
name: "Bermuda"
}, {
name: "Bhutan"
}, {
name: "Bolivia, Plurinational State of"
}, {
name: "Bonaire, Sint Eustatius and Saba"
}, {
name: "Bosnia and Herzegovina"
}, {
name: "Botswana"
}, {
name: "Bouvet Island"
}, {
name: "Brazil"
}, {
name: "British Indian Ocean Territory"
}, {
name: "Brunei Darussalam"
}, {
name: "Bulgaria",
gdpr: !0
}, {
name: "Burkina Faso"
}, {
name: "Burundi"
}, {
name: "Cambodia"
}, {
name: "Cameroon"
}, {
name: "Cape Verde"
}, {
name: "Cayman Islands"
}, {
name: "Central African Republic"
}, {
name: "Chad"
}, {
name: "Chile"
}, {
name: "China"
}, {
name: "Christmas Island"
}, {
name: "Cocos (Keeling) Islands"
}, {
name: "Colombia"
}, {
name: "Comoros"
}, {
name: "Congo"
}, {
name: "Congo, the Democratic Republic of the"
}, {
name: "Cook Islands"
}, {
name: "Costa Rica"
}, {
name: "Côte d'Ivoire"
}, {
name: "Croatia",
gdpr: !0
}, {
name: "Cuba"
}, {
name: "Curaçao"
}, {
name: "Cyprus",
gdpr: !0
}, {
name: "Czech Republic"
}, {
name: "Denmark",
gdpr: !0
}, {
name: "Djibouti"
}, {
name: "Dominica"
}, {
name: "Dominican Republic"
}, {
name: "Ecuador"
}, {
name: "Egypt"
}, {
name: "El Salvador"
}, {
name: "Equatorial Guinea"
}, {
name: "Eritrea"
}, {
name: "Estonia",
gdpr: !0
}, {
name: "Ethiopia"
}, {
name: "Falkland Islands (Malvinas)"
}, {
name: "Faroe Islands"
}, {
name: "Fiji"
}, {
name: "Finland",
gdpr: !0
}, {
name: "France",
gdpr: !0
}, {
name: "French Guiana",
gdpr: !0
}, {
name: "French Polynesia"
}, {
name: "French Southern Territories"
}, {
name: "Gabon"
}, {
name: "Gambia"
}, {
name: "Georgia"
}, {
name: "Germany",
gdpr: !0
}, {
name: "Ghana"
}, {
name: "Gibraltar"
}, {
name: "Greece",
gdpr: !0
}, {
name: "Greenland"
}, {
name: "Grenada"
}, {
name: "Guadeloupe",
gdpr: !0
}, {
name: "Guam"
}, {
name: "Guatemala"
}, {
name: "Guernsey"
}, {
name: "Guinea"
}, {
name: "Guinea-Bissau"
}, {
name: "Guyana"
}, {
name: "Haiti"
}, {
name: "Heard Island and McDonald Islands"
}, {
name: "Holy See (Vatican City State)"
}, {
name: "Honduras"
}, {
name: "Hong Kong"
}, {
name: "Hungary",
gdpr: !0
}, {
name: "Iceland",
gdpr: !0
}, {
name: "India"
}, {
name: "Indonesia"
}, {
name: "Iran, Islamic Republic of"
}, {
name: "Iraq"
}, {
name: "Ireland",
gdpr: !0
}, {
name: "Isle of Man"
}, {
name: "Israel"
}, {
name: "Italy",
gdpr: !0
}, {
name: "Jamaica"
}, {
name: "Japan"
}, {
name: "Jersey"
}, {
name: "Jordan"
}, {
name: "Kazakhstan"
}, {
name: "Kenya"
}, {
name: "Kiribati"
}, {
name: "Korea, Democratic People's Republic of"
}, {
name: "Korea, Republic of"
}, {
name: "Kuwait"
}, {
name: "Kyrgyzstan"
}, {
name: "Lao People's Democratic Republic"
}, {
name: "Latvia",
gdpr: !0
}, {
name: "Lebanon"
}, {
name: "Lesotho"
}, {
name: "Liberia"
}, {
name: "Libya"
}, {
name: "Liechtenstein",
gdpr: !0
}, {
name: "Lithuania",
gdpr: !0
}, {
name: "Luxembourg",
gdpr: !0
}, {
name: "Macao"
}, {
name: "Macedonia, the Former Yugoslav Republic of",
gdpr: !0
}, {
name: "Madagascar"
}, {
name: "Malawi"
}, {
name: "Malaysia"
}, {
name: "Maldives"
}, {
name: "Mali"
}, {
name: "Malta",
gdpr: !0
}, {
name: "Marshall Islands"
}, {
name: "Martinique"
}, {
name: "Mauritania"
}, {
name: "Mauritius"
}, {
name: "Mayotte",
gdpr: !0
}, {
name: "Mexico"
}, {
name: "Micronesia, Federated States of"
}, {
name: "Moldova, Republic of"
}, {
name: "Monaco"
}, {
name: "Mongolia"
}, {
name: "Montenegro",
gdpr: !0
}, {
name: "Montserrat"
}, {
name: "Morocco"
}, {
name: "Mozambique"
}, {
name: "Myanmar"
}, {
name: "Namibia"
}, {
name: "Nauru"
}, {
name: "Nepal"
}, {
name: "Netherlands",
gdpr: !0
}, {
name: "New Caledonia"
}, {
name: "New Zealand"
}, {
name: "Nicaragua"
}, {
name: "Niger"
}, {
name: "Nigeria"
}, {
name: "Niue"
}, {
name: "Norfolk Island"
}, {
name: "Northern Mariana Islands"
}, {
name: "Norway",
gdpr: !0
}, {
name: "Oman"
}, {
name: "Pakistan"
}, {
name: "Palau"
}, {
name: "Palestine, State of"
}, {
name: "Panama"
}, {
name: "Papua New Guinea"
}, {
name: "Paraguay"
}, {
name: "Peru"
}, {
name: "Philippines"
}, {
name: "Pitcairn"
}, {
name: "Poland",
gdpr: !0
}, {
name: "Portugal"
}, {
name: "Puerto Rico"
}, {
name: "Qatar"
}, {
name: "Réunion"
}, {
name: "Romania",
gdpr: !0
}, {
name: "Rwanda"
}, {
name: "Saint Barthélemy"
}, {
name: "Saint Helena, Ascension and Tristan da Cunha"
}, {
name: "Saint Kitts and Nevis"
}, {
name: "Saint Lucia"
}, {
name: "Saint Martin (French part)"
}, {
name: "Saint Pierre and Miquelon"
}, {
name: "Saint Vincent and the Grenadines"
}, {
name: "Samoa"
}, {
name: "San Marino"
}, {
name: "Sao Tome and Principe"
}, {
name: "Saudi Arabia"
}, {
name: "Senegal"
}, {
name: "Serbia",
gdpr: !0
}, {
name: "Seychelles"
}, {
name: "Sierra Leone"
}, {
name: "Singapore"
}, {
name: "Sint Maarten"
}, {
name: "Slovakia",
gdpr: !0
}, {
name: "Slovenia",
gdpr: !0
}, {
name: "Solomon Islands"
}, {
name: "Somalia"
}, {
name: "South Africa"
}, {
name: "South Georgia and the South Sandwich Islands"
}, {
name: "South Sudan"
}, {
name: "Spain",
gdpr: !0
}, {
name: "Sri Lanka"
}, {
name: "Sudan"
}, {
name: "Suriname"
}, {
name: "Svalbard and Jan Mayen"
}, {
name: "Swaziland"
}, {
name: "Sweden",
gdpr: !0
}, {
name: "Switzerland"
}, {
name: "Syrian Arab Republic"
}, {
name: "Taiwan, Province of China"
}, {
name: "Tajikistan"
}, {
name: "Tanzania, United Republic of"
}, {
name: "Thailand"
}, {
name: "Timor-Leste"
}, {
name: "Togo"
}, {
name: "Tokelau"
}, {
name: "Tonga"
}, {
name: "Trinidad and Tobago"
}, {
name: "Tunisia"
}, {
name: "Turkey",
gdpr: !0
}, {
name: "Turkmenistan"
}, {
name: "Turks and Caicos Islands"
}, {
name: "Tuvalu"
}, {
name: "Uganda"
}, {
name: "Ukraine"
}, {
name: "United Arab Emirates"
}, {
name: "United States Minor Outlying Islands"
}, {
name: "Uruguay"
}, {
name: "Uzbekistan"
}, {
name: "Vanuatu"
}, {
name: "Venezuela, Bolivarian Republic of"
}, {
name: "Vietnam"
}, {
name: "Virgin Islands, British"
}, {
name: "Virgin Islands, U.S."
}, {
name: "Wallis and Futuna"
}, {
name: "Western Sahara"
}, {
name: "Yemen"
}, {
name: "Zambia"
}, {
name: "Zimbabwe"
}];
countries.forEach(a => {
$('select.country-select').append(`<option value="${a.name}">${a.name}</option>`)
})
</script>
</div>
<div class="col-sm-6 s1t-form-col"><select id="dietaryRestrictions" name="dietaryRestrictions" class="form-control" required="">
<option value="" selected="" disabled="">Dietary restrictions</option>
<option value="None">None</option>
<option value="Vegetarian">Vegetarian</option>
<option value="Vegan">Vegan</option>
<option value="Gluten-Free">Gluten-free</option>
<option value="Kosher">Kosher</option>
<option value="Halal">Halal</option>
<option value="Custom">Other/Allergies</option>
</select></div>
</div>
<div class="form-row conditional-row">
<div class="col-sm-6 s1t-form-col"><select aria-label="state" name="state" id="state" class="us-only display-none" required="">
<option selected="" value="">State</option>
<option value="Alabama">Alabama</option>
<option value="Alaska">Alaska</option>
<option value="Arizona">Arizona</option>
<option value="Arkansas">Arkansas</option>
<option value="California">California</option>
<option value="Colorado">Colorado</option>
<option value="Connecticut">Connecticut</option>
<option value="Delaware">Delaware</option>
<option value="Washington DC">Washington DC</option>
<option value="Florida">Florida</option>
<option value="Georgia">Georgia</option>
<option value="Hawaii">Hawaii</option>
<option value="Idaho">Idaho</option>
<option value="Illinois">Illinois</option>
<option value="Indiana">Indiana</option>
<option value="Iowa">Iowa</option>
<option value="Kansas">Kansas</option>
<option value="Kentucky">Kentucky</option>
<option value="Louisiana">Louisiana</option>
<option value="Maine">Maine</option>
<option value="Maryland">Maryland</option>
<option value="Massachusetts">Massachusetts</option>
<option value="Michigan">Michigan</option>
<option value="Minnesota">Minnesota</option>
<option value="Mississippi">Mississippi</option>
<option value="Missouri">Missouri</option>
<option value="Montana">Montana</option>
<option value="Nebraska">Nebraska</option>
<option value="Nevada">Nevada</option>
<option value="New Hampshire">New Hampshire</option>
<option value="New Jersey">New Jersey</option>
<option value="New Mexico">New Mexico</option>
<option value="New York">New York</option>
<option value="North Carolina">North Carolina</option>
<option value="North Dakota">North Dakota</option>
<option value="Ohio">Ohio</option>
<option value="Oklahoma">Oklahoma</option>
<option value="Oregon">Oregon</option>
<option value="Pennsylvania">Pennsylvania</option>
<option value="Rhode Island">Rhode Island</option>
<option value="South Carolina">South Carolina</option>
<option value="South Dakota">South Dakota</option>
<option value="Tennessee">Tennessee</option>
<option value="Texas">Texas</option>
<option value="Utah">Utah</option>
<option value="Vermont">Vermont</option>
<option value="Virginia">Virginia</option>
<option value="Washington">Washington</option>
<option value="West Virginia">West Virginia</option>
<option value="Wisconsin">Wisconsin</option>
<option value="Wyoming">Wyoming</option>
</select></div>
<div class="col-sm-6 s1t-form-col"><input name="dietaryCustom" class="form-control dietary-custom display-none" type="text" placeholder="Enter custom dietary restrictions."></div>
</div>
<div id="card-errors" class="s1t-form-col" role="alert">
<p></p>
</div>
<div id="card-container" class="form-row">
<div class="col-12 s1t-form-col">
<div id="card-element" class="stripe-card-element"></div>
</div>
</div>
<div class="form-row">
<div class="col-sm-6 col-12 mt-1 s1t-form-col">
<div class="row">
<div class="col-9 p-0"><input type="text" class="form-control" name="discountCode" id="discount-code" placeholder="DISCOUNT CODE"></div>
<div class="col-3 text-right"><button id="discount-btn" type="button" class="btn-apply">Apply</button></div>
</div>
<div class="row">
<p class="discount-notice display-none"></p>
</div>
</div>
<div class="col-sm-6 text-left s1t-form-col">
<div class="row">
<div class="col-6 p-0">
<p class="charge-label">Charge total:</p>
</div>
<div class="col-3 pr-0 text-right">
<p><span class="currency-symbol">$</span><span id="charge-total"></span></p>
</div>
<div class="col-3">
<p class="currency-code"></p>
</div>
</div>
<div class="row discount-details">
<div class="col-6 p-0">
<p class="discount-label">After discount:</p>
</div>
<div class="col-3 pr-0 text-right">
<p><span class="currency-symbol">$</span><span id="discount-total"></span></p>
</div>
<div class="col-3">
<p class="currency-code"></p>
</div>
</div>
</div>
</div>
<div id="nongdpr-consent-container" class="mt-3 display-none consent-field">
<div class="col-12 justify-content-start s1t-form-col">
<p>By completing this form, I agree to receive marketing communications from VMware and/or its affiliates.</p>
</div>
</div>
<div id="gdpr-consent-container" class="mt-3 display-none consent-field">
<div class="col-12 s1t-form-col">
<p>Yes, I would like to receive marketing communications from VMware and/or its affiliates.</p>
</div>
<div class="col-12 s1t-form-col"><input id="emailConsent" name="emailConsent" type="checkbox" value="true">
<label class="list-inline-item mr-30" for="emailConsent">Email</label>
<input id="phoneConsent" name="phoneConsent" type="checkbox" value="true">
<label class="list-inline-item" for="phoneConsent">Phone</label>
</div>
<div class="col-sm-6 s1t-form-col"><input id="phone" name="phone" type="tel" placeholder="Business phone" class="display-none"></div>
</div>
<p id="unsubscribe-caption" class="display-none mb-40 col-12 s1t-form-col consent-field">You can unsubscribe or update your preferences at any time by following the instructions in the communications received. Your personal data will be processed
in accordance with the <a href="https://www.vmware.com/help/privacy.html" target="_blank">VMware Global Privacy Policy</a>.</p>
<div id="s1t-tac-container" class="mt-4">
<div class="col-12 justify-content-start s1t-form-col consent-field">
<div class="form-check"><input type="checkbox" class="form-check-input" id="s1t-tac-consent" name="tacAccepted" value="true" aria-required="true" required="">
<label class="form-check-label ml-3" for="s1t-tac-consent">I agree to SpringOne Tour's <a href="/developer/springone-tour//terms" target="_blank">Terms & Conditions.</a></label>
</div>
</div>
</div>
<div class="covid-attestation-container mt-3">
<div class="col-12 justify-content-start s1t-form-col consent-field">
<div class="form-check"><input type="checkbox" name="COVID19VaccinationAttestation" id="COVID-19-vaccination-attestation" class="form-check-input" value="true" aria-required="true" required="">
<label class="form-check-label ml-3" for="COVID-19-vaccination-attestation">I attest that I am fully vaccinated against COVID-19 as defined
by <a href="https://www.cdc.gov/coronavirus/2019-ncov/vaccines/fully-vaccinated.html#vaccinated" target="_blank">CDC</a>/<a href="https://www.who.int/news-room/feature-stories/detail/vaccine-efficacy-effectiveness-and-protection" target="_blank">WHO</a>.</label>
</div>
</div>
</div><small class="s1t-form-col" style="margin-left:2.25rem">*COVID-19 Vaccination: VMware requires that all attendees affirm that they have been fully vaccinated (as defined by the CDC/WHO) as a precursor to attending this event. Per
<a href="https://www.cdc.gov/coronavirus/2019-ncov/vaccines/fully-vaccinated.html#vaccinated" target="_blank">CDC</a>/<a href="https://www.who.int/news-room/feature-stories/detail/vaccine-efficacy-effectiveness-and-protection" target="_blank">WHO</a>,
people are considered fully vaccinated if they are ≥2 weeks following receipt of the second dose in a 2-dose vaccine series or ≥2 weeks following receipt of a single-dose vaccine.</small>
<div id="response-error-message" class="s1t-form-col" role="alert">
<p></p>
</div>
<div class="form-row">
<div class="col-12 s1t-form-col text-right"><button type="submit" id="submit" class="btn" disabled="" aria-disabled="true">
<div class="spinner-border spinner-border-sm display-none" id="payment-spinner"></div><span id="payment-btn-text">Submit</span>
</button></div>
</div>
</form>
Text Content
* Learn * Tanzu.TV * Community * Search * * * By Category Modern Applications Modern App Basics Modernizing Legacy Applications Agile Transformation and Practices Application Development Building Modern Applications Deploying Modern Applications Managing and Operating Applications Kubernetes Platform Building Kubernetes Runtime Managing and Operating Kubernetes Securing Kubernetes By Type Guides Learning Paths Workshops Samples Videos Blog Tanzu Practices Data By Language .NET Java * All Shows Tanzu Tuesdays Enlightning .NET in the Wild Cloud Native Crew Spring Office Hours .NET Beyond TGIK Between Chair and Keyboard Code Cloud Stream by VMware Tanzu Talk Spring Live * Overview Advocates Team SpringOne Tour * Learn * By Category * Modern Applications * Modern App Basics * Modernizing Legacy Applications * Agile Transformation and Practices * Application Development * Building Modern Applications * Deploying Modern Applications * Managing and Operating Applications * Kubernetes Platform * Building Kubernetes Runtime * Managing and Operating Kubernetes * Securing Kubernetes By Type * Guides * Learning Paths * Workshops * Samples * Videos * Blog * Tanzu Practices * Data By Language * .NET * Java * Tanzu.TV * All Shows * Tanzu Tuesdays * Enlightning * .NET in the Wild * Cloud Native Crew * Spring Office Hours * .NET Beyond * TGIK * Between Chair and Keyboard * Code * Cloud Stream by VMware * Tanzu Talk * Spring Live * Community * Overview * Advocates * Team * SpringOne Tour * Search 1. SpringOne Tour 2. Toronto TORONTO JUNE 7–8, 2022 Vantage Venues 150 King St W Toronto, ON Register Now REGISTER FOR TORONTO × T-shirt size (Unisex)XX SmallX SmallSmallMediumLargeX LargeXX LargeXXX Large CountryUnited StatesCanadaUnited KingdomAfghanistanÅland IslandsAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntarcticaAntigua and BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahrainBahamasBangladeshBarbadosBelgiumBelizeBeninBermudaBhutanBolivia, Plurinational State ofBonaire, Sint Eustatius and SabaBosnia and HerzegovinaBotswanaBouvet IslandBrazilBritish Indian Ocean TerritoryBrunei DarussalamBulgariaBurkina FasoBurundiCambodiaCameroonCape VerdeCayman IslandsCentral African RepublicChadChileChinaChristmas IslandCocos (Keeling) IslandsColombiaComorosCongoCongo, the Democratic Republic of theCook IslandsCosta RicaCôte d'IvoireCroatiaCubaCuraçaoCyprusCzech RepublicDenmarkDjiboutiDominicaDominican RepublicEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFalkland Islands (Malvinas)Faroe IslandsFijiFinlandFranceFrench GuianaFrench PolynesiaFrench Southern TerritoriesGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuernseyGuineaGuinea-BissauGuyanaHaitiHeard Island and McDonald IslandsHoly See (Vatican City State)HondurasHong KongHungaryIcelandIndiaIndonesiaIran, Islamic Republic ofIraqIrelandIsle of ManIsraelItalyJamaicaJapanJerseyJordanKazakhstanKenyaKiribatiKorea, Democratic People's Republic ofKorea, Republic ofKuwaitKyrgyzstanLao People's Democratic RepublicLatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMacaoMacedonia, the Former Yugoslav Republic ofMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMicronesia, Federated States ofMoldova, Republic ofMonacoMongoliaMontenegroMontserratMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorthern Mariana IslandsNorwayOmanPakistanPalauPalestine, State ofPanamaPapua New GuineaParaguayPeruPhilippinesPitcairnPolandPortugalPuerto RicoQatarRéunionRomaniaRwandaSaint BarthélemySaint Helena, Ascension and Tristan da CunhaSaint Kitts and NevisSaint LuciaSaint Martin (French part)Saint Pierre and MiquelonSaint Vincent and the GrenadinesSamoaSan MarinoSao Tome and PrincipeSaudi ArabiaSenegalSerbiaSeychellesSierra LeoneSingaporeSint MaartenSlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSouth Georgia and the South Sandwich IslandsSouth SudanSpainSri LankaSudanSurinameSvalbard and Jan MayenSwazilandSwedenSwitzerlandSyrian Arab RepublicTaiwan, Province of ChinaTajikistanTanzania, United Republic ofThailandTimor-LesteTogoTokelauTongaTrinidad and TobagoTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluUgandaUkraineUnited Arab EmiratesUnited States Minor Outlying IslandsUruguayUzbekistanVanuatuVenezuela, Bolivarian Republic ofVietnamVirgin Islands, BritishVirgin Islands, U.S.Wallis and FutunaWestern SaharaYemenZambiaZimbabwe Dietary restrictionsNoneVegetarianVeganGluten-freeKosherHalalOther/Allergies StateAlabamaAlaskaArizonaArkansasCaliforniaColoradoConnecticutDelawareWashington DCFloridaGeorgiaHawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMarylandMassachusettsMichiganMinnesotaMississippiMissouriMontanaNebraskaNevadaNew HampshireNew JerseyNew MexicoNew YorkNorth CarolinaNorth DakotaOhioOklahomaOregonPennsylvaniaRhode IslandSouth CarolinaSouth DakotaTennesseeTexasUtahVermontVirginiaWashingtonWest VirginiaWisconsinWyoming Apply Charge total: $ After discount: $ By completing this form, I agree to receive marketing communications from VMware and/or its affiliates. Yes, I would like to receive marketing communications from VMware and/or its affiliates. Email Phone You can unsubscribe or update your preferences at any time by following the instructions in the communications received. Your personal data will be processed in accordance with the VMware Global Privacy Policy. I agree to SpringOne Tour's Terms & Conditions. I attest that I am fully vaccinated against COVID-19 as defined by CDC/WHO. *COVID-19 Vaccination: VMware requires that all attendees affirm that they have been fully vaccinated (as defined by the CDC/WHO) as a precursor to attending this event. Per CDC/WHO, people are considered fully vaccinated if they are ≥2 weeks following receipt of the second dose in a 2-dose vaccine series or ≥2 weeks following receipt of a single-dose vaccine. Submit We look forward to seeing you soon! Beyond all the excellent content at SpringOne Tour, we’ve got a lot planned all around town! Expect to see VMware Tanzu folks around the city during the week, everywhere from executive events to meetups. DAY 1 DAY 2 8:00 AM EDT Registration & Breakfast 9:00 AM EDT Responsible Microservices NATE SCHUTTA 9:30 AM EDT Testing: Love, Hate, Love JAKUB PILIMON 10:20 AM EDT Break 10:40 AM EDT Getting Started with Spring for GraphQL DAN VEGA 11:20 AM EDT Path to Production using Supply Chain Choreography CORA IBERKLEID 12:20 PM EDT Lunch 1:30 PM EDT Spring Native By Example DASHAUN CARTER 2:10 PM EDT Declarative Clients in Spring SPENCER GIBB 3:00 PM EDT Break 3:20 PM EDT Doing Progressive Delivery with Your Team LEIGH CAPILI 3:40 PM EDT Canz U Tanzu? CORA IBERKLEID LEIGH CAPILI 4:00 PM EDT Tanzu Sandbox Time and Q&A 8:00 AM EDT Registration & Breakfast 9:00 AM EDT Spring For Architects NATE SCHUTTA JAKUB PILIMON 9:40 AM EDT Kubernetes-Native Java JOSH LONG 10:40 AM EDT Break 11:00 AM EDT Observability: Beyond the Three Pillars with Spring JONATAN IVANOV 11:40 AM EDT Application Modernization: Migrating Mainframe Apps to the Cloud Using Spring GLENN RENFRO 12:20 PM EDT Lunch 1:30 PM EDT Deploying Pulsar projects with Datastax Luna MARIO GRAY 2:10 PM EDT Bootiful Kubernetes Operators JOSH LONG TIFFANY JERNIGAN 3:10 PM EDT Break 3:30 PM EDT The Gotchas of Zero-Downtime Traffic with Kubernetes LEIGH CAPILI 4:10 PM EDT A New CLI for Spring Developer Productivity MARK POLLACK LEAD/FORWARD Lead/Forward at SpringOne Tour is an invite-only executive event. The series will dive into why the developer experience is critical to your business needs. For more information, please reach out to VMware Tanzu Field Marketing. Questions? Contact the SpringOne Tour Team • Code of Conduct Report an issue Application Modernization: Migrating Mainframe Apps to the Cloud Using Spring Mainframes have been the engine for data processing for over 50 years, but we have reached that time where we move our applications off of the mainframe to new infrastructure, to the cloud, or a hybrid approach. But what tools do we have at our disposal to migrate our COBOL applications from the mainframe to these new platforms? This is where the Spring ecosystem provides the tools to help with this migration. In this discussion, we will show you how Spring and its ecosystem can help with migrating applications from the mainframe to your new platform. Projects such as Spring Batch, Spring Cloud, and Spring Boot, can be used to simplify this migration process. This is where the Spring ecosystem provides the tools to help with this migration. In this discussion, we will show you how Spring and its ecosystem can help with migrating applications from the mainframe to your new platform. Projects such as Spring Batch, Spring Cloud, and Spring Boot, can be used to simplify this migration process. Canz U Tanzu? In this short talk, we‘ll show you how to use VMware Tanzu Community Edition to easily get set up with a Kubernetes cluster on your local machine that includes additional useful packages to enhance your experience deploying and running applications. Change Data Capture: A Primer How will change data capture (CDC) help transform your enterprise data architecture? What is CDC for? Is it for everyone? Let's tackle this and more in this Lightning Talk. This talk will provide a peek into the nature and intention of this architectural concept, but also some frameworks that let us take advantage of it now. Codezillas: The Universal Truths of Software Development Despite our best efforts, many software projects don’t end with champagne and cake. While some blame a bad technology choice, more often than not, the issues boil down to people problems. Traditional computer science education focuses on algorithms and languages while largely ignoring the human aspect of software and the sociology of organizations. Fear not friends, there are patterns and approaches that can help you win trust quickly, create allies, set expectations and effectively communicate during the ups and downs of project life. Dodging the pitfalls of software implementation can be taxing. How do we navigate the existing social complexity and interpersonal dynamics found in every organization? How do we earn trust, maintain rapport and turn clients into advocates? This talk will explore the challenges of building and maintaining software using examples from within and beyond the software industry to help give you the tools to chart a path to more than just a successful launch but a team that enjoys the journey. Cloud Native Architectures By now, your organization has planted a flag in “the Cloud” and it is up to you to figure out just what that means to your application portfolio. Should everything be a microservice? Wait, what *is* a microservice anyway? How do you deal with massively distributed applications? How can event storming fix the gap between your business problems and domain model? More Maintainable, Testable Applications with Dependency Injection in Spring Boot WaffleCorp is a .NET shop, whilst Waverley’s Waffles utilizes the power of Spring with Java. Now developers from both tech stacks are coming together as a team. Layla is a .NET developer and has no idea of all the great and useful things that Spring has to offer. Jakub will be sharing his knowledge of Spring and dependency injection, covering IoC, Spring core, Spring tests, Spring Boot, and more. Through a collection of live demos, Jakub and Layla will guide you through some Spring fundamentals, why they're important, and when to use them (and when not to). Getting Started with Spring for GraphQL WaffleCorp is a major provider of breakfast products available direct to consumer or through our strategic partnerships. The current implementation of the e-commerce platform is a monolithic Spring MVC application that serves data through a collection of REST APIs. Currently, the only provider of the REST API is our e-commerce web application. We've been tasked with opening up our APIs to our new iOS and Android apps, partner microservices, and IoT applications. The issue we ran into is that a REST API is not a one-size-fits-all approach. We need a more flexible solution to meet the requirements of all of our client applications. This is a perfect use case for the speed and flexibility of GraphQL. GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools. In this session, you’ll learn what GraphQL is and why you should consider it in your next project. You’ll learn how to use GraphQL in your Spring Boot applications by leveraging the Spring for GraphQL project. By the end of this session, you’ll understand how to stand up a GraphQL endpoint and request the data you need, and nothing more. Getting the Most From Your Kubernetes Clusters Deploying and running complex distributed applications involves a trade-off; we want to maximise performance and availability, and at the same time make responsible use of finite and costly compute resource.In this talk we will look at the features and tools that Kubernetes provides to help manage this trade-off, particularly those features provided by the Kubernetes Scheduler. We'll also take a brief look at how the scheduler can be extended for custom use-cases.We will look at how we can define different levels of coupling between our application components, how we can scale those components dynamically, and how we can observe an application's performance. We will also show that Kubernetes can provide a way for application owners to express the runtime requirements of their applications in a way that operations and platform teams can easily consume as those teams design and build platforms. Microservices and Kubernetes for Your Full Data Lifecycle Data doesn’t magically appear in our data centers. There are usually several phases and several storage locations along its journey throughout your organization. New architectural patterns, such as microservices, and new technology, such as Kubernetes are changing how we can think about and manage the large volumes of data coming at us. In this talk we will begin by quickly introducing the architecture and technology and how they make our lives better. From there it’s live demo time combining Java microservices, a processing caching service, a messaging layer, and a relational database all running in Kubernetes . This application will be handling frequently updated data, generating alerts on specific data events, and simultaneously populating a system of record. Come for the discussion, hands-on demo, and witty banter! The Gotchas of Zero-Downtime Traffic with Kubernetes Noticing your customers receive 503’s every now-and-then? Do they spike when you’re updating your app or rotating your k8s cluster nodes? Maybe you used to have this problem — then you added some strange settings and it’s mostly working now... What most people need from K8s regarding web-traffic is a repeatable but under-documented combo of esoteric, non-default options. We’ll walk through the basic needs of shaping traffic and apply that knowledge to the states of compute, rollout, and canonical networking we see with k8s. Expect tidbits about CRI, CNI, Ingress, and the design trade-offs present in Kubernetes. You’ll leave knowing how to keep your apps serving successful requests for a myriad of edge-cases. Intro to Kubernetes If you’re working with just a few containers, managing them isn't too complicated. But what if you have hundreds or thousands? Think about having to handle multiple upgrades for each container, keeping track of container and node state, available resources, and more. That’s where Kubernetes comes in. Kubernetes is an open source container management platform that helps you run containers at scale. This talk will cover Kubernetes components and show how to run applications on it. Kubernetes-Native Java Spring is all about helping developers get to production quickly and safely. These days, “production” is all but guaranteed to mean Kubernetes, and Spring has you covered. Join me, Spring Developer Advocate Josh Long (@starbuxman), and we‘ll look at how Spring Boot makes writing blisteringly fast, cloud native, and scalable services more effortless than ever. Bootiful Kubernetes Operators You know what’s fun? Automating the ever livin’ heck out of infrastructure! Slaying that YAML! Nobody wants to painstakingly build something then spend weeks trying to write the YAML to describe it to the infrastructure. Thankfully, Kubernetes provides composability through abstractions like operators, controllers, and custom resource definitions. These days, it’s trivial to extend Kubernetes with a Spring Boot application, turn it into a GraalVM native image that runs in a Docker container, and then deploy that. Join us, and we’ll learn how to extend and automate Kubernetes with Spring Boot and Spring Native-powered custom operators and eliminate that ever-so-pesky YAML. RDBMS on Kubernetes: Data Science Done Right One is the new hotness and the other might be seen as old and stuffy - yet both Kubernetes and RDBMS are two powerful tools to have in your data scientist toolbox (or to help give to the data scientists you support). PostgreSQL will be the particular database we discuss but most of the points apply to any modern RDMS. There have been a lot of overlooked features added to PostgreSQL that will bring joy to data scientists. The goal of this talk is to help you appreciate all the ways that adding Kubernetes and PostgreSQL to your team’s tools can improve everyone’s lives by: * Less data over the wire * Doing the analysis where the data lives * Repeatability * Horizontal scaling for analysis (even autoscaling) * Most importantly, cleaner separation of concerns By the end you will understand why both your data scientists, your ops people, and even your application developers will love bringing these two well known tools together to do a majority of their work. Come for the questions, feedback, and fun banter. What is Knative Serving? What is Knative Serving, and how does it help you simplify and enhance the way that your application runs on Kubernetes? How does it work? What components are at play? In what ways is running an app on Knative superior to running it directly on Kubernetes? Join in the conversation as Whitney Lee discusses (and draws!) the answers to these questions and more! Do the Login Page First Every great app starts somewhere. Can you really call something “minimum viable product“ if it doesn't include security? In this session, we‘ll cover the value of starting with security included. We‘ll create a Spring Boot application and explore options for authentication and authorization, from simple to social and Oauth2. Observability: Beyond the Three Pillars with Spring In this presentation, we‘ll explore the basics of the three pillars and what Spring has to offer to implement them for logging (SLF4J), metrics (Micrometer), and distributed tracing (Spring Cloud Sleuth, Zipkin/Brave, OpenTelemetry). We‘ll also talk about how to take your system to the next level, what else you can find in Spring and related technologies to look under the hood of your running system (Spring Boot Actuator, Logbook, Eureka, Spring Boot Admin, Swagger, Spring HATEOAS), and what our future plans are. OMGDEVSECOPSBBQ What exactly is DevSecOps? Come and find out. Platform as a Product Most Ops groups can’t give developers what they need. Ops is limited by traditional service delivery mindset and tools. Stability and reliability are now table stakes when you’re releasing software daily. What developers need now from Ops is innovation. Operations rarely takes this innovation-driven, product approach to providing services and instead focuses on delivering to specification and limiting SLAs. As with development, Ops creates value with continuous operations, product managing their platforms, and releasing frequently. This talk covers how Ops groups are transforming from a service delivery mindset to a platform-as-a-product approach. With examples from Discover Financial Services, Rabobank, the U.S. Air Force, and others, the talk covers the concept, technologies, and tools commonly used, along with Ops tactics needed to kick off a platform-as-a-product strategy. Doing Progressive Delivery with Your Team What is progressive delivery? This new industry term encompasses the mechanisms, culture, and strategy needed to shape and analyze traffic for safer app deployments. This includes traffic shifting, dark deploys, feature flagging, and A/B testing! Come join this session to learn about the prerequisites of retained RED metrics and SRE practices, as well as tools that can orchestrate this exciting deployment technique. Deploying Pulsar projects with Datastax Luna Apache Pulsar is a streaming platform designed to bring Integration to the fingertips of the enterprise. This talk will go over a typical integration exercise, using Datastax Luna as the target deployment system. Responsible Microservices These days, you can’t swing a dry erase marker without hitting someone talking about microservices. Developers are studying Eric Evans' prescient book, Domain-Driven Design. Teams are refactoring monolithic apps, looking for bounded contexts and defining a ubiquitous language. And although there have been countless articles, videos, and talks to help you convert to microservices, few have spent any appreciable time asking if a given application should be a microservice. In this talk, I‘ll show you a set of factors you can apply to help you decide if something deserves to be a microservice or not. We’ll also look at what we need to do to maintain a healthy micro(services)biome. Securing GitOps Debug Access with Pinniped, Dex, and GitHub Git alone provides a pretty mediocre inner-loop for deployment to a cluster -- Git is powerful for collaboration, but it’s not a debugger. However, git platforms can still add value for debugging! Roles and group membership are usually weaved into the habits teams build around git repos. This can be combined within the authentication and authorization systems used in a multi-cluster Kubernetes platform! In this live demo, Leigh will show how the incredibly flexible, open-source combo of Flux (fluxcd.io) , Pinniped (pinniped.dev), and Dex (dexidp.io) can empower a team to leave a traceable solution during a production incident. Let’s explore effective team debugging habits with Kubernetes and git :) A New CLI for Spring Developer Productivity Creating new apps based on company standards is harder than it should be. Furthermore, incrementally adding new features to that project over time is even harder with developers often cutting-and-pasting code from various sources to solve the problem at hand. In this talk, we introduce a new CLI for Spring developers that will help you accelerate your development all while following best practices and keeping the tooling open for change and extension by individual teams and people. Spring Cloud Gateway Recipes Spring Cloud Gateway is a developer-centric API gateway. An API gateway is an abstraction over a distributed systems architecture. The API Gateway is a natural place to provide cross-cutting concerns such as security, resiliency, and transformation. In this talk, we'll discuss practical use cases that you may encounter. Some recipes we'll discuss include: securing gateway with OAuth 2 and Spring Security and relaying tokens to services, rate-limiting using Spring Security and the logged-in user, implementing a backend for frontend using a scatter-gather technique, and more. Declarative Clients in Spring What is a declarative HTTP client vs an imperative one? Why are they useful and why should I care? We’ll talk about options that are available in the Spring Portfolio and what is coming on the horizon. In this session we will look at the history of declarative clients in Spring via Spring Cloud OpenFeign. We will also dive into upcoming options that are coming to Spring and the advantages that these new technologies bring to developer experience. Spring For Architects With globally distributed applications (and teams!) the job of software architect isn’t getting any easier; applications are growing increasingly complex and architects are spread thin. You can’t be involved with every decision, you must empower your teams while ensuring they are making good choices. How do you do that? How can frameworks like Spring not only make your life easier but help your teams deliver robust applications to production? Spring Cloud has a veritable plethora of sub projects from circuit breakers to functions simplifying the task of building cloud native applications while making it easy for developers to adhere to best practices. At the same time it can be overwhelming to get your head wrapped around all the features Spring offers. This talk will show how Spring allows architects to focus on the critical design decisions they need to make while ensuring developers are empowered to implement critical business use cases. Today’s cloud native applications have similar pitfalls, luckily Spring is here to help you resolve them! Spring Native By Example Spring Framework 6 and Spring Boot 3 imply a new baseline. They will bring the Spring ecosystem in line with the needs of tomorrow's workloads. Spring Native provides support for compiling Spring applications to native executables using GraalVM.Native images can provide cheaper, more sustainable delivery for a range of workloads. These include microservices, function workloads, well suited to containers, and Kubernetes.In this session, we will look at the GraalVM AOT compiler. We will produce native images with smaller footprints and faster startup times. We'll look at how to containerize those workloads. We'll look at how to tame the GraalVM compiler when something goes wrong. And we'll look at how to teach GraalVM about your custom workloads.Explore how Spring Native delivers valuable outcomes, today. A New CLI for Spring Developer Productivity Creating new apps based on company standards is harder than it should be. Furthermore, incrementally adding new features to that project over time is even harder with developers often cut-n-pasting code from various sources to solve the problem at hand. In this talk we introduce a new CLI for Spring developers that will help you accelerate your development all while following best practices and keeping the tooling open for change and extension by individual teams and people. Sidecars with Spring on TAP A sidecar isn’t a drink and you won’t find TAP at a bar. In this session, we’ll explore infrastructure architecture and how to create sidecars for your organization that help standardize access to functionality on VMware Tanzu Application Platform. We'll use many projects from the Spring portfolio. In this session, we'll look at how to combine HTTP, RSocket, and GRPC using Spring Cloud Function, RSocket Broker, Spring Cloud Gateway, and more to offer standard remote interfaces in a polyglot architecture. This can be built using Spring Boot and Spring Native and deployed via Cartographer on Tanzu Application Platform. Path to Production Using Supply Chain Choreography The Kubernetes ecosystem has a rich set of solutions for various stages of CI/CD. Tools like Flux, Tekton, kpack, Knative, ArgoCD, and more each enable big steps forward in establishing a modern path to production. And yet, the teams and organizations that adopt these tools still struggle with complex, DIY snowflake pipelines. The challenge can be creating and maintaining imperative scripts; orchestrating the flow of information between tools, driving reusability, adopting GitOps practices, and enabling proper separation of concerns. Cartographer is an exciting new OSS project that elegantly addresses these challenges, providing the backbone for a modern application platform built on top of Kubernetes. Rooted in the concept of declarative supply chain choreography, it focuses on creating composable, reusable roadmaps to drive source code to production. It provides an abstraction layer that facilitates the adoption and integration of existing and emerging CI/CD tools, while clearly delineating developer and operator ownership. It complements the existing ecosystem, filling an important gap to ease use, maintenance, and scalability. In this talk, we‘ll discuss supply chain choreography as a model for CI/CD and use Cartographer to explore how you can create secure and comprehensive pipelines, sustainably and at scale. TAP and Spring: The Quickest Path To Production As developers, we want to be able to iterate and develop our applications while having to jump through the fewest hoops possible. With Spring Boot, we're able to do just that! Unfortunately, if you then want to deploy that Spring Boot app to Kubernetes, everything can come to a screeching halt quicky—you're suddenly knee deep in YAML as you struggle to not only deploy your application, but debug and test it as well. VMware Tanzu Application Platform is a developer-friendly Kubernetes platform that makes getting your app deployed to Kubernetes quick and painless. In a matter of minutes with a basic Git repo containing your code, you can have your app up and running on Kubernetes! Not only that, but you get an automated build pipeline that will continuously build and deploy your application and give you the ability to debug it right from your IDE! In this session, we'll show you everything you need to know about how to leverage Tanzu Application Platform to get to production on Kubernetes faster than you ever imagined! TDD and the Terminator — An Introduction to Test Driven Development Getting started with Test Driven Development (TDD) can be very challenging. It requires a different mindset and approach to writing and developing code. However, once in that mindset, it is very difficult not to write tests first. But why bother writing tests first? In this session, we will go through the reasons for writing tests before coding, look at architecture and design principles, such as SOLID and see how it all comes together to create a more testable and maintainable application. I will show you how to get started writing tests first with practical examples on how to reprogram a T800 series Terminator so you can start using TDD in your own applications (or killer robots from the future). Hasta La Vista badly-written code! Booting up quickly with Testcontainers WaffleCorp just hired 3 new developers and we need to get them up to speed as quickly as possible. We have an onboarding document that shows the developers where each of the repositories are located. There are also instructions how to install all of the application dependencies like MySQL, RabbitMQ and more. You could have them install each of these services locally but its time consuming and error prone. We have decided to move all of those services into a Docker Compose file to get developers up and running quickly. Jane, one of our new developers decides to run the test suite and it fails. How do we ensure that our services in our test environment like a database are clean, up to date and reproducible every time we run our tests. Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. Testing: Love, Hate, Love “TDD leads to a great design,” they said. “Mocking is bad,” they said. “Integration testing is slow,” they said. “Testable architecture to the rescue,” they said. “If you don’t test, don’t call yourself a developer,” they said. “Code coverage must be 100%,” they said. And so on and so forth. In this talk, we’ll tackle some of the testing gotchas. There will be live coding, architecture rants, some slides, and (hopefully) much fun. Both senior and junior developers should find something interesting in that testing example. Who Should Use Kubernetes? Who should use Kubernetes? Like, who is Kubernetes for? Kubernetes can be difficult to install and complicated to use and manage. What are the benefits of Kubernetes, and at what point do these benefits outweigh the operational complexity? Join in the conversation as Whitney Lee discusses (and draws!) the answers to these questions and more! CORA IBERKLEID Cora Iberkleid is a Developer Advocate for Modern Applications at VMware Tanzu, helping developers and enterprises navigate modern practices and technologies, focusing on cloud native architecture, modern CI/CD, Spring, and Kubernetes. Prior to joining VMware, Cora was an Advisory Solutions Engineer at Pivotal. She also spent nearly a decade at Sun Microsystems and Oracle, helping customers design and build enterprise integration applications. Through this experience, she developed an understanding and empathy for complex organizational challenges, and she strives to incorporate this empathy into her everyday work. DAN VEGA Dan Vega is a Spring Developer Advocate at VMware Tanzu. He has been developing software for the web for over 20 years and his superpower is problem-solving. Dan is a blogger, YouTuber, course creator, and speaker. He is a lifelong learner and his passion is sharing his knowledge with the developer community. Dan lives near Cleveland Ohio with his beautiful wife and 2 daughters. When he isn’t writing code or teaching he enjoys spending time with his family, lifting weights, running, or reading a good book. DASHAUN CARTER DaShaun is a husband, father of four, volunteer, struggling athlete and Spring Developer Advocate at VMware Tanzu. Deliberately practicing to build better software, faster. GLENN RENFRO As a VMware engineer, Glenn Renfro is a core committer for Spring Cloud Task, Spring Batch, and Spring Cloud Data Flow. He has 14 years of experience in designing, building, and delivering enterprise-level applications in Java and 21 years total of software development experience. JAKUB PILIMON Jakub Pilimon is a Staff Technologist at VMware, blogger, programmer, and trainer. His main duty is to tackle complex enterprises with Domain-Driven Design and to propose a model and architecture that solves a problem. Sometimes he is involved in refactoring projects. When he isn’t coding, you can find him riding his bike, reading, or practicing kitesurfing. Jakub’s pet projects can be found at https://github.com/ddd-by-examples. JONATAN IVANOV Jonatan Ivanov is an enthusiastic Software Engineer working in the Spring Cloud Team, one of the leaders of the Seattle Java User Group, speaker, author, certified dragon trainer. He has hands-on experience in developing and shipping innovative, production-ready software for industry-leader companies. He likes Distributed Systems, Production, Open Source, Math, Linux, Cloud environments; he is passionate about the Java Ecosystem and the Java Community. He is an Open Source contributor, writes a “develotters”-focused blog (https://develotters.com), sometimes can be found on Twitter (@jonatan_ivanov) and in the Seattle area but he is originally from Hungary. JOSH LONG Josh (@starbuxman) has (officially) been a Spring developer advocate since 2010. Josh is a Java Champion, author of six books (including Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry (O’Reilly Media, 2017) and the upcoming (self-published) Reactive Spring, as well as the creator of numerous best-selling training videos, including Building Microservices with Spring Boot Livelessons with Spring Boot co-founder Phil Webb. He is also an open source contributor (Spring Boot, Spring Integration, Spring Cloud, Activiti, and Vaadin), a podcaster (A Bootiful Podcast), and a screencaster. LAYLA PORTER Layla is a Developer Advocate at VMware serving the .NET community. She is a Live Coder on Twitch, a Microsoft MVP, A GitHub Star, and founder of the #WomenOfDotNet Initiative. Layla loves sharing knowledge whilst having fun. No question is stupid and beginners are always welcome. LEIGH CAPILI Leigh is an empathetic speaker and developer with niches in cloud native systems and security. Leigh comes from a background of building software to manage infrastructure. He contributes to Kubernetes and Flux and is frequently working on his next software demo MARK POLLACK Mark Pollack is a software engineer with VMware and is the lead of the Spring Cloud Data Flow project. He has been a contributor to many Spring projects dating back to the Spring Framework in 2003 as well as founding the Spring.NET and Spring Data projects. MARIO GRAY Mario is a principal technologist at VMware with more than 20 years of experience in software development and software architecture. He is co-author of Pro Spring Integration (Apress, 2011). He’s helped organizations large and small build service-based architectures in a number of different runtimes and platforms over the decades, but adopting Spring in 2004, and using it whenever possible since, was a no-brainer that culminated in joining the Spring team in 2017. As a Spring developer advocate, Mario loves to engage and inspire developers and businesses in the Pivotal ecosystem. MICHAEL COTÉ Michael Coté studies how large organizations get better at building software to run better and grow their business. His books Changing Mindsets, Monolithic Transformation, and The Business Bottleneck cover these topics. He’s been an industry analyst at RedMonk and 451 Research, done corporate strategy and M&A, and was a programmer. He also co-hosts several podcasts, including Software Defined Talk. Cf. cote.io, and is @cote on Twitter. Texas Forever! NATE SCHUTTA Nathaniel T. Schutta is a software architect focused on cloud computing and building usable applications. A proponent of polyglot programming, Nate has written multiple books and appeared in various videos. He is a seasoned speaker, regularly presenting at conferences worldwide, No Fluff Just Stuff symposia, meetups, universities, and user groups. In addition to his day job, Nate is an adjunct professor at the University of Minnesota where he teaches students to embrace (and evaluate) technical change. Driven to rid the world of bad presentations, Nate co-authored the book Presentation Patterns (O’Reilly Media, 2016) with Neal Ford and Matthew McCullough. He also recently published Thinking Architecturally (O’Reilly Media, 2018), available as a free download from VMware. Nate’s presentations cover a variety of topics, ranging from architecture fundamentals to mobile design, usability, cloud computing, JavaScript, and everything in between. His current slate of talks can be found in Talk Abstracts, however additional presentations can also be found at his NFJS Speaker Page. If you are interested in having Nate speak at your event, please reach out. RYAN BAXTER Exploring new languages, frameworks, and technologies, and then sharing what he’s learned, has always come naturally to Ryan. Even when it wasn’t his day job, Ryan has always been driven by his passion, spending his time and energy educating his friends, colleagues, or anyone else that would listen. Currently, Ryan is working as a software engineer as part of the Spring Cloud team. Ryan has a passion for sharing what he learns via social media, including Twitter and his blog, as well as in person at conferences. When he’s not coding, Ryan likes spending time with his daughter, ice fishing, running obstacle course races, and watching the Red Sox. SPENCER GIBB Spencer Gibb is a software engineer at VMware focusing on Spring Cloud. Spencer’s interests include distributed systems, JVM languages, web services frameworks, message-driven architectures, and making software development simpler. He loves to create software to solve a pain point (for example, by creating a tool to automate workstation setup in his free time). Spencer’s industry experience has taken him from early e-commerce platforms to government and nonprofit organizations to business intelligence startups. He has extensive experience in Java and other languages such as Scala and Python. His database experience runs from Oracle and MySQL to Riak and Cassandra. You can find out more on his blog. STEVEN POUSTY Steve is a Dad, Partner, Son, and Senior Developer Readiness Engineer for VMware Tanzu. In addition to showing off all the great work of the Tanzu team, he helps drive Tanzu developer experience. He can teach you about Containers, Kubernetes, Data Analysis, Java, Python, PostgreSQL, Microservices, and some JavaScript. He has deep subject area expertise in GIS/Spatial, Statistics, and Ecology. Before Tanzu, Steve was a developer Advocate for Crunchy Data, DigitalGlobe, Red Hat, LinkedIn, deCarta, and ESRI. Steve has a Ph.D. in Ecology and can easily be bribed with offers of bird watching or fly fishing. TIFFANY JERNIGAN Tiffany is a senior developer advocate at VMware and is focused on Kubernetes. She previously worked as a software developer and developer advocate (nerd whisperer) for containers at Amazon. She also formerly worked at Docker and Intel. Prior to that, she graduated from Georgia Tech with a degree in electrical engineering. In her free time she likes to spend time with her fiancé, family, and friends, as well as dabble in photography. You can find her on Twitter @tiffanyfayj. TONY SCULLY Tony is a Staff Field Engineer in the VMware Tanzu team, helping customers build, manage, and run great infrastructure platforms for their applications. Tony has spent his career designing and operating large distributed systems, and is especially interested in the reliability, performance, and observability of those systems. He has been working with Linux for over 20 years and with Kubernetes since 2015. He is a strong advocate for Open Source to build both collaborative communities and great software. Tony currently lives in Yorkshire. He loves listening to music and is never happier than when browsing in a record store. WHITNEY LEE Whitney traveled the scenic route but is absolutely chuffed to have found her way to Kubernetes and cloud technologies. She began her professional career as a fine artist before owning her own photography business for over a decade. Then, after a year-long tour playing keys and singing harmonies in the band Mutual Benefit, Whitney went back to school to learn full-stack web development. Shortly after graduation Whitney was employed by IBM as a cloud developer, using none of the skills she had just learned at school. However Whitney quickly developed an insatiable appetite for all things cloud, and a passion for teaching others as she acquired knowledge herself. She has made many light board videos for IBM Cloud, from topics ranging from creating a Pod in Kubernetes, to event-driven architecture, to cloud native API solutions. At VMware Whitney’s contagious excitement drives her to continue to explore, collaborate, teach, and play! VMware Tanzu © 2022 VMware, Inc Terms of Use Privacy Policy Your California Privacy Rights Cookie Settings * * * * * COOKIE PREFERENCE CENTER GENERAL INFORMATION ON COOKIES GENERAL INFORMATION ON COOKIES When you visit our website, we use cookies to ensure that we give you the best experience. This information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies by clicking on the different category headings to find out more and change your settings. However, blocking some types of cookies may impact your experience on the site and the services we are able to offer. Further information can be found in our Cookie Policy. * STRICTLY NECESSARY STRICTLY NECESSARY Always Active Strictly Necessary Strictly necessary cookies are always enabled since they are essential for our website to function. They enable core functionality such as security, network management, and website accessibility. You can set your browser to block or alert you about these cookies, but this may affect how the website functions. For more information please visit www.aboutcookies.org or www.allaboutcookies.org. Cookie Details * PERFORMANCE PERFORMANCE Performance Performance cookies are used to analyze the user experience to improve our website by collecting and reporting information on how you use it. They allow us to know which pages are the most and least popular, see how visitors move around the site, optimize our website and make it easier to navigate. Cookie Details * FUNCTIONAL FUNCTIONAL Functional Functional cookies help us keep track of your past browsing choices so we can improve usability and customize your experience. These cookies enable the website to remember your preferred settings, language preferences, location and other customizable elements such as font or text size. If you do not allow these cookies, then some or all of these services may not function properly. Cookie Details * ADVERTISING ADVERTISING Advertising Advertising cookies are used to send you relevant advertising and promotional information. They may be set through our site by third parties to build a profile of your interests and show you relevant advertisements on other sites. These cookies do not directly store personal information, but their function is based on uniquely identifying your browser and internet device. Cookie Details * SOCIAL MEDIA SOCIAL MEDIA Social Media Social media cookies are intended to facilitate the sharing of content and to improve the user experience. These cookies can sometimes track your activities. We do not control social media cookies and they do not allow us to gain access to your social media accounts. Please refer to the relevant social media platform’s privacy policies for more information. Cookie Details Back Button ADVERTISING COOKIES Filter Button Consent Leg.Interest Select All Vendors Select All Vendors Select All Hosts Select All * REPLACE-WITH-DYANMIC-HOST-ID View Third Party Cookies * Name cookie name Clear Filters Information storage and access Apply Confirm My Choices Allow All AddThis Sharing Sidebar Share to TwitterTwitterShare to LinkedInLinkedInShare to FacebookFacebookShare to EmailEmail Hide Show Close AddThis