{"id":686,"date":"2022-10-31T13:02:23","date_gmt":"2022-10-31T13:02:23","guid":{"rendered":"https:\/\/infobip.com\/developers\/?p=686"},"modified":"2023-09-11T14:33:21","modified_gmt":"2023-09-11T14:33:21","slug":"cosmos-guide-to-developer-builds-and-deployment-in-the-cloud","status":"publish","type":"post","link":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud","title":{"rendered":"A Guide to Developer Builds and Deployment in the Cloud"},"content":{"rendered":"\n<p>Yes! My last merge request was accepted, the automated build kicked off, and I\u2019m anxiously awaiting for the continuous integration (CI)&nbsp; pipeline to complete.&nbsp;<\/p>\n\n\n\n<p>What are some of the steps that I could have taken?&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Used solid unit tests, as part of a test-driven development process&nbsp;<\/li>\n\n\n\n<li>Added new code that calls a web service, and validated the request was accepted&nbsp;<\/li>\n\n\n\n<li>Perhaps, saved a new field to a persistent data source&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>During my test-driven development process, I experimented with the new API I\u2019m consuming. I fulfilled the non-functional requirements related to logging, tracing, authentication, analytics, metrics, and monitoring.&nbsp; All of these, added complexity to the small piece of code&nbsp; I developed.&nbsp;<\/p>\n\n\n\n<p><strong>Using your devbox and your favorite toolset, were you able to validate your changes? <\/strong><\/p>\n\n\n\n<p>It turns out that validating a simple change isn\u2019t always easy to do, even with the use of containers.&nbsp;<\/p>\n\n\n\n<p>You should rely on the CI pipeline for an automated build, and execution of integration tests to validate a change. To get to a build that <em>passes<\/em> the integration tests, you evolve your deliverable. Let\u2019s spend some time looking at your development effort in more detail.&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>You use your IDE to compile, if necessary, and kick off your unit tests.&nbsp;<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>To sanity test your work, you exercise your changes.&nbsp;<\/li>\n<\/ol>\n\n\n\n<p>In my case, there are multiple dependencies to my microservice, see Figure 1. <\/p>\n\n\n\n<p>To exercise my change, I check that I have a recent Application UI on my devbox, make sure my data source schema is current, and so forth. But there has to be a quicker way.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image WACImageContainer NoPadding DragDrop BlobObject SCXW195866553 BCX0\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAARoAAADyCAYAAACS0wrhAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAEMZSURBVHhe7d1\/rHVXnd93z0Aqq65Uq61Qo2mkNKOoUkdqLSNQY4VWtGVU\/igilmhFNVSIFpSICo1K5cgd6KBCjfDEdUrolCJCU2ecEcKKR0xUJMQQQmO7hhlnjMEYY8adGPP4MR7XAjweY+PT\/VrnfM793v3s++t57o9z9l1f6XvX3uv3Xnt\/3\/u71t5n36sWXbqcobznPe9ZvOtd72ph1Xe\/+92XxHXdTr2KrM53ly5nIiDzox\/9aPHCCy8snnnmmcWLL764eO655xbPP\/981xloB02XjRAXIsgATC7OH\/\/4x4ufvvTTXRds1+3UDpouGyEuRJ6MixJghK+8smhezk9+8pNdF23X7dMOmi4bIS7E6s0AjBB0eDqJ77qd2kHTZSPEhfjss882sPBkXJyBTF+r2X7toOmyEeLpkgvSmgxvpnsy89IOmi4bIS7EXJTWZLonMy\/toOmyEVJB03V+2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kHTZSOkg2be2kFzTuSVn\/1stbUUn8ukVcb7kXHZsSj38ssvr7cj2VbedtNVXTWN5At7PnpVP0Z+XF\/ZU0\/9cp\/Qh7XyneLE5aNbQmn5OHq+YUzH\/Zv6GmDi8vGuWmastf5aT\/qYuNQp\/\/ijYOKpPL5SKEx82tYGTX1Uvv36dlzaQXPOJMYeQ4+s41cKHDVP3d+Vd1QPqfHCKQiJS51CF2I1AMoAojX+clQdMToA8X3iCxcutFB6oEMZ39NPP714\/PHH14aZf\/tiW5x6HnnkkcVjjz3W4gKEGHPaFRejf+KJJ5qqq4JCnpRNXOIrNKKJS5+o\/qSvqTtxyUOli8\/x1rST1A6acyJ7gcH+OO5KJFBxQUfuvPPOxfvf\/\/52gZOp9uLRnJQyTIbF0G+++ebF61\/\/+sVrX\/vaxZvf\/ObFbbfdts4j\/QMf\/MDiDW94w+J1r3vd4i1vfcvi1ltvbYYZg\/\/0pz+9eOMb37i44YYbFtdff33L+4nf\/MTa+B2n40\/+L33pS+0f5GmTvv3tb198\/nc\/vzb0QCoQAAeh8oFGIGIbHAMb+fT3wx\/+8Bo8FTgpkzB1p6308aS1g+YcSwVPAFFFevM6AqlV\/qqRbLvYI\/Ln4r\/q565a\/PyrX7W46aab2v9vSjphcCcNGobFQD\/2sY+1i563wmv5whe+0IDz2c9+tqWDzjvf+c7mqUi\/++67G1CkO5ZPfepTDSx33XXX4uLFi61u0ACej3zkI2sPIsbsWJUHIvl5QbfcckuL41EFToGCfeOhfK0n23WfKvfggw8uHn744UvqSn3C9Eu6bXmSN3WdpHbQnBNpYBgMO+DYTypAImMQpb4qdX+cnwFfffXVi2uuuWZx7bXXNq\/CBe9iJ1NTJ0YS46rxl6PqYMA33nhj8wBieNoAkS9+8YstnQfDO6gGyCOTDkQg8\/GPf3xtqOpV1yc\/+ckGD\/VR5eQBluuuu27x5S9\/ucU5RvXwksBO3Fe\/+tUGtzf98pua55cpG4C8973vbe3xvHhCTz75ZKtXujHUd23fcccdLe6hhx5qdenn+973vsX999\/f2gBNdWsD1NOf04JNB805kYPgQuSZgkzihFOgSlwLk3e1T1zMDOw1r3lN82p4N4ADPB\/60IeaEUx5NMcBmCiIAACPBhAYoSkQT0A7AQcA8HCkM16gSB3ySnvggQdaXfLn\/4QzcGlf\/\/rX1sebesGL4fN4eD+8JeMDOE\/+4ELrD\/gxfmB5xzve0cp\/5StfaZBSXl9AQqgvgGPaBka8ROOoLTBSx7333tuOwbZ+mLq97W1va8C8\/fbbW5uOTdoY8CehHTTnRCocmjdSgMIw7AsjufO6oF2QjOuee+5pUw130c985jPtTmsawEjcLV3MjIRhZA3jF3\/xF5vyYkAmCjaZTgndhV30dHyRHochMEL1CBmrvjJ+6zCMM14E5cFI13+GLh0ceB5gAjjgol5hPAnrLww8Ho3xlKZuUyfjok7tAoM8ibet3KOPPrr4pV\/6pVZGe+pUt3qMNSDnGJRThgcGoCCXstoWasf5U4\/09FlZx6muqTE\/bu2gOWcCOIEMw2M04OGCBwsXoIuVx0F\/4S\/8xQYKBsdIuPDujMDgbsl9d6GbGvEQGIC7trvzfffd1wyHkX7\/+99vsAlgeDN1CsWwxxfncRqAY9WOdRH1MlBGZg0mUxb7PAz55bWf9RfpjoXBAq10+QIVRmuMHKdytQ4eW\/rA+HkUvBHjDtJgR5UHMts8FR4NKClLgV776jNe1ou0n3PgWJJfuwG0c6FuZbWrfu04Z\/J00JxDqZ4Gmdqv05J4KtmPpJx0FxOjBwFuNpiAB5AIwQM0TBsscrrIXRxkXO9RpPad98N7ARftMo4sChMX4vjiPE5lkCDD4IyF\/UDCcWf9gxHySqqh8hak2wYdY5iyYMJQA2lxNLDh+QFZ6kq94qytMHbgBg\/jIeTJyBfQyK8doXOlzkx9xIEVb4fXGRApD5racLyOi2ekDYvSzrEbgD510JwzibdBq4FnahOoRMb5iAuSi8xDMY0BEgbuDsZYGI27tLszF5q0dld1T7V9GEn5qfwutEyRAMaULJK2Txo0MVQwMP3wGNs+j84CMXjIZ1s66NhnkEDAmBlkPBfGzqDBy7bxNa7aUc44MPas3Tgf4gEqT7p4GtZMwAFc1MfbATN5eTCApIy+inP+wCdTTW3oG49Geh7X60emWuBSn4plSiY8DcjQDpoNkRjqlDB8ACDyjeHiTuau7GLiMZj68FB4MAwpomyD1j5tkbR1VKn1Mgyir4yTIQcw4pKeMicNGu1pH2DBhKEzWJ6BRVNGzqCNJRgl3ZgaS16AOhg2L0Ea4OQ9Gp5g2hEyYNuBkzzqzPSThxf4WUdh+FR7AKQdIJA\/9cgPXNp0btNGBQ3Y8V6UA0jejHhwU7d45QFLPAi5JmyfpHbQbJhUI3cBxEMIXKQ7cdYJeCye5AALY3GRuUBbvmL08VzGIk8FWN2P2B+DbUrSXs2bvktL\/DpuqLeWOQ3QUMZqjLLAbZ8yWuMkTX5rKTzDTJGENQ9oMXr1SHNcqVueeCHC5OcdJX\/SlRFqT33yJU0546TdHEeAIz39USb76YNpkdB+jh9UHJN1pMQrn7pPUjtoNkj2MnaGyJV3J3U3tMYhtBiYR6VTUuupedRX98ftkal+HCQ1f4BCxpAh8qYPtk8aNIwwBmxbKF6c\/eQbG644Bmu7lst+jL6CQ3qNi9Z6hbWetDOVrh4agCVOWxUUKZ\/QeEu3n3Li5E19ttPnk9QOmg2SsWFz18GEy8tzscbiyUIMdGy4kUtAEoMGjxrP2FfllGnlRn04rKjXxX2QjNvIMZw0aAIE24yspsX4YvDZpjFYymClJaz5Epc2hNqh0qg4obpSjqYuhq+f6au0cV\/FSauQSFs5juzX9MSnTpq6xm2chHbQbJi4WDxtML8GF+sJ5tfiGxhWsKheQoVFBYk0SsYAafXsAZXEr9vbI99RZF3nqn+1n+Q0QBOjNk4xfAYbT0Pa2JuJ4ccwU588KV\/jk0+Y9MSnXfsBQNpKf1KupotLfNqWXzmavELpaZ\/anorTL9vSTkM7aDZEnAxTI+st1LaLnjSDL8Y+NlIyTq951kaunomy+0mtdz8J+FrbaW\/V1jos8QEgsX\/SoIkhxjC1H2ONMdf8McwYd\/LVvAmTdxzHmK2LVNhot8JM3LjegEN6AFTrrnFRZSrI0mbV1CktbaTOk9YOmmOSapD7GSejilESF4bHkV6M87TD487I2htZGeqc5aRB0\/VstYPmmGR9R89dewjFVaiQpLureSRtemSa5IlEgFLv9rb3A9dcpINm3tpBcwIyBkP1SIDHOxQ8GIDxXkeXDpq5awfNMUnzPAagVI+GmAdHvNSVV\/55MJF4MCB0XjyYsXTQzFs7aI5Z4r0IM23itVh\/scjra2sETMZTpMjYA6r7c5UOmnlrB80xCXAELBUMXvW2DiMkPJykj\/ML4800wJwjz6aDZt7aQXPMwjOhXin3uxI\/irM9lkAkU6UKpwqYcdpcpYNm3tpBc0ySqQ8oeMGOF+OxdQNFgQqJJ0N2AYZHM94v0JmzdNDMWztojigx\/AqLiDg\/xfdEya9myXkBxZVKB828tYPmCFLXTQKaxPFWfCPET\/1964RkWtTlYOmgmbd20FyGNLispjlA4nVuP3z0XoxXvMdw6bA5WDpo5q0dNIeUrJ34nUgVb\/h6bG0g4+WQ5M+6TJf9pYNm3tpBc0gJOAgPxWNqn3H0Ap4vpFUJcLonc3jpoJm3dtAcQdYAGaDjw88g4\/dKLW6ASn3yVMMuB0sHzby1g+YIEpD42h3I+JA0WQNm5MHUqVSX\/aWDZt7aQXNICUSyJuNN3wqWMWSy39doDicdNPPWDpoi4DAFj\/aUadj2RMnX7P0Pny7HKwGNDzFZcBca7\/EFu63qWKzr5WNTnlROfZxqrtpBUyRgsbYyXl+R5pu9HmHHS8kvs\/tazJWLC5EBGlMXpm3jPBfY5Kt2th1TwCN0rOP8c9MOmpXEayF1ugMi9j1Z8tulPN6WtwPm+MSFWA0wRiiMd7PtGk8NcFxTDDBwnco\/J+2gGUlgU58w+e2SnxVYBG5AGuKSj1Qwdbk8CWgYX76pmzu97dwZt1VjcNl3TI5zTl7bfuo\/ZnbQrCRwqZDxHwz990f\/mSBi4EgHzPEJ0ET9MzwXZvb9Q3v7267+4yW1bRqe+Lkc337qPHbQrGQ8FQIUn3nwQ0kCLNWTaZ7NqEyXK5c6LZ3T+ObGxJPxf8hNoer1NHfpoBkkUyKSC90\/ZvcjyZoW6d7M8UoMro7znMY4x+WY\/K9soBE67njQc5cOmgnxsSrflMk\/yV8bwsgghGMIdTm6NLivxrYaXoufyfg6LutOV1999eLnX\/2q9q+NeTXnRTpoVlIhYg7d7jgdIl2OSYDG08uAhrrGIrsAu7ru5uTVddCsJHfVBx54oHkz5tKJ79LlSsQ15J8FgoxpU9SDBg8cImADMrSCZw7SQTNIPakWgP1L2sjcTniXs5Gbb755lzcDNMIPf\/jDDSzVe2mwWd3g5nL9ddAU+frXv9bemXFynfh4OV26XInwjgMY3jLICK3T2F57z6spU2RON7kOmpUAirWZ+umHGnbpcrly0003NaD4L6UWgG17Uc+TTdt+P5frDFwqYLpHMyPhvZhD50lAPeldulypfOYzn2nXmOvJtcWzITwYbwnfeeedLT0vg0bqFGrbpYNmJe42PJo6V+7S5bikXle8GJLfzo1vaPICzFwgQzpoVuJjVvmpQfdkupyU8FJ4NPUaq0CpP9xt4WjdZlvlXIEmd5V6d7F9\/\/33tw9a5aSuT\/KM7ihdNkd4NOft2joXoJm6K1TY+LGbl6lqvu7VdDkp6aCZsay9lVFoAc4j7UcffXTXyZ+CU5cuxyEdNDOWnFgAqd7KPffcs7juuutWe0upec\/bBdHl5KWDZqayBkc5uVnZ9\/2TW265ZVdaQCSuxnfpchzSQTNjqVOhepJNm\/xKew2XlRfT12i6nJR00MxYKjiyEPzQQw+1x9p1YThAqmDq0uU4pYNmphJoVKAAj58b+MxgZHzyO2y6nIR00MxcMi2K+KX23Xffvdrr0uV0pINmxhJvJifYvu+BXLx4cRnRpcspSQfNTGU8ZeLZPPjgg+1t4C5dTls6aGYuFTh+RGl9pq\/DdDlt6aCZsbT1mbJG4\/\/N+B5Ily6nLR00M5X6aDvb3gb2Rb0uXU5bOmhmLKZNgYyf4vvI1fhDQ126nIZ00MxYAhnTJz+g9EYwqd5Oly6nIR00M5a66Ovdmbe89S2rvS5dTlc6aGYsObFCi8D1jeAuXU5TOmhmLnnq5Kvzt9122yq2S5fTlQ6amUumTzfeeOPirrvuattdupy2dNDMVMYn9YYbblh\/iPy8nfAuZy8dNDOV8Un10wOfiCAdNF1OWzpoZiw5sUL\/jvTChQvLiC5dTlnOLWisXOz3i5+kH5RvkyXrM8K8rHc+36F5eWvP57b1dy+ZE2jqdbTX+RG3Bo03Z9eZX3lp+MsIXZSXXpjRyFTaaepRxYnODyyBZ6rObdEmLtpy4Y7zuKiX287pTxcvDbo8uzt5zlL0S58izkm9CaSPVatMpW+a5hw4qoDGEe+cm+3V5XUUVkwx4+UlaBzwutBwggOaZVgL7OhYpvKclh4kjonmAh7\/p8CpOrdFm4AMHc5ZO2\/D36ouZvry4s+GPWd7eVOp5\/0sxXXmYlxLjmfV7\/QxF\/Fakm+QnTybp82mSgg0NX0emnMTHWR9fn5aPJpByylsRpnfAl1a6UrKid50yb8aFeafrFfYbLsszwmADFAdtmjOFWPNCX9p4Zwuz3bz6jbi\/C173G5s6eugrsH0L8dCm5R8S8lRb6YuPehlCDSJr7OH7dRB6rmY0oDmhbZ5sB423ybrjwd91TX\/+mTatqvzU7Wmgc3yYl\/9uHTXhXB2Aozg96eLZ5ra5nlVFVf1oPRN1ReHq08INNmegzoHu6+2pS5vDC+3Y22g+Zu\/8Q8X9OZbf2utHxyF9Ka\/9dtNs79NWo\/jTW\/5L3albbvudU5+7TfuWPz6rX+vqVPv\/gM28QzErT2EMxIX6f\/82\/\/j4u987qMtpB\/7P\/+HFv4v\/+B\/apr4bdUch+NynP\/hjf9BC3Occ9DJ83TnrS386N3\/7Q5oHnhisfjeM4vFNy8u2rZwLup4Hn56qY88\/co6vm7PUR3vd55aNMjy5Hg5YFMh06ZVZyjuiC7GP3jmnzR98Ll7mn7j\/\/v9S+Iu0Wfv2wrNcTimHJd42+O8W6lT52aljnUXaHJxujAB53s\/fKVtf+epny0eXV2wVcV9dwip7U1Wx+M46EN\/\/OPFHz+73P\/2D16czL9NmvMRkFYF0scuvrz2aJZwWS7aLdenomcnPBp3w2Z0z\/w\/a\/3mxX\/W9OGLD663a\/w26aN\/8p0W\/uE\/X2rd\/\/bT39qVdxs156Wev+gu0HC9Hx0uzADkOxdeakYINo8+9dOm4r5zcaXDduLX6StDPhPVt320HQvYDNuP\/8kA1O+\/MGwv46RN1rll+sjTAzif\/mlT202Hc+Xc7ALNevFx8GZ+tvy86VmKx9pc7FyYDA9cvvHkg0sjvPDQ4ltPfbOF37y4VPv04QsPr\/XbF765sfrQ97+xK\/zOxUcaZB77k+8uj7Pk3TZt5+LiN9bQqfrgD\/+weTy7QFPdbRfod3\/oQv2zxXeefnF9AY9V2n7pXU9enas1cIZzYd85XHo6P1s8dmHRQJPF4TVWNmQxOKBpHo0Lc9AA5aGLD++r33rq24tvPvXwOn\/Xs9GAf60DeOiBoHEBA02HyObrLtAM28v9gGap1mgCmqzRRM9+jWYaNIEJkFS4VO2g2QytnmUUcKTxUidBY17vor1k2kRXF3K7mOkQd+bTJlr6dVRtxzFV5xaq4wGfnTWa5RSKR5PF4EyhGPjy0fLyKdRZSZ06gQ2Xu90Rhws1F22DSTQX+Gp\/152066mr8\/PtH3x7l7oBUDcD5\/SSxeDqclvkbRdwIFMu6LFyz89Sp\/p0FJ2qc1u0HcMK+Ka6Sx0gOtwwGkiH9Dp1qpDZ0bOTChoKNN9+6sGl7rEeEBCN07uevuZmcCTQxNWeuqA3XdP3o+pUXdum333qzxbfu\/CjtdqPN\/rYAJssBmfa1GRD1mjy1Kk9Jl2BZhdsDqMTBtD19BT0QWXpYS6ns5ne7po6XerRLB9btwv54svDfvUAdl\/km6C7+3d0napza3Q4P2PQtEX6HFt5vD0JmTOGzRRodgGkAmUvHV34XU9PQWY9nR00gGmQOWgxmMttMdgFTPP0qa1nRIeLOHfNXfFdT1+Hc9GmSavF+6zR5KZRF4N3TZMGwGzK4+3xYnCbJg13x7jmy\/29NWs2Z6FT\/TmKTtW5Ldr63yDDE129ijDET3o0uxeDl4+1v\/fDOuffgc16u17oJX4u2sB6gB42b633+HW5HpMbhPNXbxr7gsb6zOoX+mclY9Dkrph5fnR8gW+UNkO7Ap2q8whqvMZ1triJvMeuo3Z3AXTY33PqFNAwkLXHsnLD24UcuNBVfNPVU6mAZ1JX6aknT0W8NMeDevTiUM8qT3uRbhWmH2PNWoR87XG8\/E++0F7KS521Hvtp28t6WTDNi3vJm3z2hcv9P1vX4YU\/ZbxlXOvcSyfHYqXp\/5VoxnHXeWpxy7e7K2iarKZLWQw+S8lvndrUaQBNDKR5Mhe\/tXPRlou77a9e5Osaj+JSncp7ktraHc5PplXO0YGg4dE0IygwWRvOoOO0tVbgjHWPp1cAE8MFiUfbnXgZb41BW3upxU55lVdOGfV4PA8MyedNYFCQHri1N4QHQ7SddlsZeYZ6Y7DibCtvu8JGuM47oZPjMGg9hmX\/hvjL0eHYK2TW9Q1ttD4MsAlo1khZgyZPoM5O1qDx25gVaNZTpovLNZh2ETfArDybDpm11jemL9FTHifnjq7Xb7y0dyKgycW\/ynOJrgxjSpsxD20zXNuJZ\/Qxnr20wQGcBphow2+ZAIp3A0TyLNOWXou8DNB2vBntNPCsfppgv4JF\/3P80tPXti3euI10fXwZl5Gm\/1Nph9ah\/trWus70t4Nm1ronaM5gjE4HNOXiz4VetcWtDGOsvAn1AgDDjaEHAFNlqrYfgILIAJZlO0uoRMEGeGjrH3itjlV57UsDlAaXoZ5Wl7aH8kJQSfpyjHamXLugcjlaxu7IOpTvoDm\/OgmaMxqfUwfNWld5L4mv5QZlrIydMceohctfkA95tKtfEyqtAWnoD08msAlY2tRqgMXSu3m5taMPa4jZXoGleS7yDmkgkm3x8rb0VXvxflodo+O5LK3jcxQdyrZxWNXj2Nu5MWZt3OYNmmX8EI6NbdDkmbNeApozhPCZgWZ90U+k7S774q51lbq+ckneZjwFNEMcYwcRdSy9lyU8\/uiHy+kTAFk4DmwCH+2Ah1D8sj0e0DIPmAReSbf9\/eeWngxo2d\/Vv8vV8fgcVoey5x00uwxtrGdoeKehu0Bzxsd6ZqA5UIdy6mHUeWeHBhCMu3kNK+OJpmzaXca92Mopr++PPPHj9X7dXtar\/Z2plfLSbadN+UBGmvxpo4GllEvaXrru50Fax+UoOpTtoCnGtoe66Cd1Vc82a4PNBgB1Y0ATIxgrELz3po8srnr1tYtP\/f3fWXz3B8+39tfhCkDRcXlxNd8dn\/vC4l\/61\/7NVq\/vA\/\/273y5bTfPZqgz+WggBzQVSMJvfu+Hi1+75X9d\/MEjP2hxqSuwSpi6xjruJ21jUcftCOM3qUPZDppLwTLWSwATXdXT9cr1zEFjaiM\/w8xaDAPlPQQo\/8Zfvr4Zsu\/5MvjHn\/rTtcojbg2CIb\/tZtABxxA+8cyLLQxolAUGoJCmTOpSJm2njkAm6cqB371\/+EctT+pq7UVX5bVV99OOUL2OPes9zWsyjivPaGrMDq3Oy4aAZvzJifG+7xUvP5C+FOnHBZrll+qWoY9JyZOPZyX0Xg6tHkD2Eybvd374yLqNs1Z9orb1qx3r6hjqu0Z7qbLJJ8yYJM62ehM3Tks9B+mZg8YayBIuO9MToGkvvA3Gedf\/9X83g\/7o3\/67LfzuE8+u9d\/6d\/\/q4ldv\/mgDEfW7HUYNJv\/pf\/5fL972X\/43DSrX\/ZVfXvyj3\/v9dVpAk3jG\/7f\/93+wrkfZAEW8dpQBui\/d+60GJnH6Iz\/YqEuacqlLmX\/vP\/prLd7vjHhm737ff9\/ikqasdR0v6DXgDNpAM+hyAfrSMTu0Oi9nDJoGjPKvay4Bzs9+1tJrfPL7Qv6VgoYxrL2XIS2QiDEmr6\/a2RfGsJKP8cWAxUdr+bPSCpf0OeFh1KdD5U+oroBE3bYDmIxdtpPvMHqmoGn5Bri4m7uz2196M0vVDlgwcFOVAOf\/feona4\/iF\/7CX2zwYMD25QuUAEMag6YAYfoV0GS6A2a2QUs6SKhDXfL+zV\/\/Wy0PuOhP6tEGqICLbXUBl235tA1Ayumz\/kgDHPWr2\/QL6NYejLeCh7A9uTKeE+N2aHVeNsSjIWOPZfxbqgokea\/Uo4nGgGIg2U+6OMrYYljihSmXsjGwpKWOs1L9qn0JMPRznHdKMxY03yzO50TrOCTMeNT4w+iZg8YdnFez9GZ21jS0wdABgFEzbsABDPEBD0Pn3cTLYMABTX6xzKNQDziBgW2GLw8Y\/Mq7f7UBQT0ApL2sv6hfXp4HeGhDPvvKq5tHEmilLvBRV8AjH9AEeNIdjzjH6pgdf4ADvksv79JxO7Q6LxsCmgqZF17Q4hI0mTIFOtWzyX9BuBLQxIhiIBUUMVJG5eKPodlu3\/AtZahteRK3CR6NPuin44hXY18\/p\/KPNcdIHbvjBpoWro5ZvRmvHLdtcVN1TunJg2YVN2UI8mWq1IxrgE5dC4nX4M7Pc2HM9gEgoGlTn9VUiuEydKDhlQRAYCMvEACLeqQFDjF4QJE36yraUZ\/20w8QqR4V4NT61RWvp9U1tCONR6QN9SlP5RNX3\/GhpkzLadP2r9EEKmSvX4PX+Gzzbo7Do2FwVJkYEG11rJTx1P1qbKkvRtbyDgYWI6xtnYXqR6CS\/qXPtmveKQUaIch86wdLwNZxiockT8K0kbKH0RMHzTq+XPxVY1CAE09GyPgy5QEHCjyZbgQ0jDtGDS6mUJmWiGfo1atQT9JSXpkABGDE8WRoYKQeU6hMg+LRCO3Lp+6swcgvPtMy\/QUVcNFX7QQ0jhdoADdjZ5GcV7MLHEfVoZ5N8GimACNuPH0ar98cB2gYRYPJYDwMSZh9htTiGOQQig+UouqTHiOLB5Tt2tZZaABY+0XH47CXxqMJWNQVwBgTaeqq45DjPmwb9HRBU\/JXZWA0T40YHgNmoODCKBmukGGCQkDTDHVIAwX78mfqlGmVPOCiTEAjPnAAkmxrF7DAzFpKPKPEZ+oUjyYelW31AIv69QNQMpWKBxOPRlpA49g9cTNu4NIAM4xLg7AxGgPksDqUPWvQBB7xbPJ\/zskdd9yxuOmmmxbPPjvcVQZJnuNcDGZ8\/nVJAAIwf\/4v\/\/nFVf\/iVYvf+9rvDWO9\/MSk+A988AMt\/r9637sW3\/znDy3+3L\/y6sVv\/c5vretgYOoX1jv9WSpQ\/Av\/6p9b\/L1\/+H+soZOwgmcvlU8YsAbAf+O\/++ttLHymI3mEgU4AVOvaT08cNPabri78sa4fb7c1iZ01GobOYE2hwKd5J0OY6RTvRMj4hUDBiMEIaOwrL00IItICmngh4MDoTXlST\/NIhrbAxZQtdQCDdJ6N8qAjTT6husUrn7qU04a2tcHjcUw8toDGft54zu+52ngZN+NU4XEUHcoGNIFMOzdDvYcBzUl8M7h6Lc8\/\/\/zi51\/9qvb\/pj\/0oQ8tnnvuuVXKEjbH8Xib4bgz5w4NKkCj3V\/9tV9dPPrkow0q333qu4vX\/vvXt3igsf93P\/vpxX3furfVkTu+emKU8YLOUvUBZPRzHA8MNW6XrrySwDLHmPEyRkDrX\/TKL66lq3MoqxzIBTzRjP1YTx40dHTxV60GMKXLxeKfNmX8WcOJRwM4DJ2HIZ7R8mSaJzLkly4OxFKXfAmzLuRxujpoW4Rd9U2enTpebunyLqd7L7V9aeqg4uzrU\/N2hvJVpUfHx0rH47Nr7I6qQ\/kGmtJW6m3nctCAhrZpzAo0FmiXsLkyqWDJdkIwuf3225txX3311YtrrrlmcfPNNzfgyAM07VOeFTTDBU+BhrqI9wINZRju7AwoQGFEv\/S6f7sp0NCvf\/1r7Q7+l\/6dv9RA88gff7uB53Nf+FxLv\/U3P9bKXfsL\/\/LiP3vn2xYPfPeBlvaG\/+Svtru\/csp88u\/\/b2sjveE\/\/iuLf\/LAVxYPP\/6t5j39tV95aysvr3xpG\/CUoeoSpy7x+qINfWX0+q8+9arni\/d+cc9+ak8\/xfPM1CFefcAUeBoz4wMoxkhdxuLXf+PXW\/gHj\/7BjueX8eTd5LWBqqvxByP1NagM+6cPmiOoerJQWheNTTMYeEAjXd7k4dHwNrL2w1tofVrtL9c+dh4h2\/\/jH+18P+bR4Vipvi\/r3elT\/gNE+xW5POv+Lhezhc0raU\/SdtKy3Ty4QXfSTlCHfgY0ILdzXnIuX2r\/7B9k8kyoTW0GIw9krhQ0pC4I16dPxP6111679mzABnRMY55++un2z+4DGjBpOoDGBX2YNZqWb7jzBjSMLgbNiP7p7\/\/TZtS33HLL4vrrr29G+Ct\/41daPum8hc\/\/7udb3xj+J37zE628\/GAh3r7+MlDHAUQMG2gYt\/rf8ta3tH15pDN48YwZlIQf\/\/jHW3w8LfnUpxwAp7+PX\/yjNZzUYeqk3gaIoT\/ypp\/qBSVtAA8vDZj0y5jE8CnogIl23\/TLb2pA+7lrfq7BC+CMH3hk2jgb0FB17YBkuZ84ayhLD2TpISxB8lLzJEy9AGkJn6WmrD7S9a+wAWIV134MuVojyXROeoPVAAgwCoSkL6GxBNeyj6tH0kN6S7vC478iHdo+CDSZ5rmgY+y0bl+pjuudqhtcpuKBpv3j+wE07qKA0i7gAR60wWQf0GQtgVHRTAsYIGNjlAyXMTNeoIlHkzUa+\/IyPHkZsfLSGP8\/+se\/2\/LLx8uQx754x8DQY9zJy+DVJz\/DBhblAFBeaeKlS7MPQtpVXl0BEhjoC0CKF0eBUH75lP2jp77X4vXBWLc1qmEMG2AG4w+M1ad\/2gFI\/QGa5kkOY8+jmYQMHY1\/dONBw5gZeSDDkBl7W9MYAGC\/gWJl6DVuBz7Lt44DjAaTYduxZMqT6ZD0VveqXQbqeKUrV4+neTXxToa2tNPaBqohbhtAE49m7XOY1gzK0zC1OQ6PhmSBl6zfo1m185rXvGYNFh4ND4eHYJG4ejQuVDCJu38Yj4YhubtmmmBRN6DRBsM0jQAM0xDAAQwGKY7BgQ9vIAbM6ChDBiNxICFfoEHBgUHzNBi3du0zem2rQ\/l27ENbAa18ymtTffKpC0j0L\/1Vp3wBTfopr\/5IU1ZchXjbHsrrF6M3Zm3cBpDwXqTpo37YplmrosYzoJ8NaBgr9QSm1TvAwDaDBgJxtsXFQxFnytXgMhh9g8aQJgywAicKNI6JMdKs6QjFq8t6T7yb9pMB\/VsdXwPK6thbnau41j9po2M6NR36cVjQwECDQQHNcUyd6lQJYPI4G2Tobbfd1uDi4hcywAsXLrQ8njqN12gaVFZTpyxkHgSadqEPkOHyZzEYaNzRGR4vIp5APBrbDMzUyb54ce7yjJpBglBAwxNQj3yMW1ybygx1ZD1HqE31ibfNoJWTxpjFyas8yFB1A0fq46HE09FWnjqpF4jEOc70M56ONtKO\/M0zGcZrDY4BAPqvDhClOUZtGndleDUZ\/9mApsFiMO7l+zbL\/QCFZ0OlgYh22\/aQ3zZtHsqQn0eS9R5G983yHg6IiHNc60faw37ev7GwC0bi0p9AxHYzZP3LGKyOuU2ztgA0\/iVu\/I3mbQwAgANxx+XRTL0vo63caT11euaZZ9aeTxaDx0+dcldthnHINRrapl0r1z+gYZCmBdpnSIzQgivDZNwMjKExcNsMj5EycuXj0aiHMmz7jJihq4fh2s5UR708J8ct1J76TK+ofKYrAQ1vRN0NrkNZfY\/hGwdpPBptah+IpvqpPcfiGAFJHd94YucdGeOpTI4TUMFNm\/qgXxk\/7RrbyQXh0fhHNx40DJURx5DFMe54KUlrnssKMOIzhYmhN49mSOeVAE4Wk4HGo\/P2rs4AHI+ugQZYpAU0vBvGquwSdMtpXevTSu0bA\/2Rh246aOq\/xG0CAoMel0fTXsyjK7jEwwGUvEfjKVOdWhH593uPBmQO8mjsM6A8JVGOZxPQMCIGyzhNQxhtPBrb4nPnZ\/z2aaYvAYu86qLAwajF81YYt+kaz0JcFIQAKE+PUrdtdUvL1CkGTpWTT55MB+PRAID2pWsDRIFFv5RrUB\/S9AtMAoz26H8IjYlyDz\/5cAOdPji2TKd4W8rQrH0dBjJ040ETiKh7bdhDPCPmMSzzLadTvAzbjLut44CLMkMf2vrKkJbpT\/VoAhlhPBrwCWhAqXk9g7b6h+MDstb26piNSxuDlQFrN23nWE5dh7YPA5p4NHm8zegBJuFxSsBDqveSOGHipzyaBhWG5z2a1bRoP9DYz1MSBs8wlWcsjIjaZ1TihNlPnH0KCgzcdupqRjPs505vn0ECF0DV+hk9OLUpy2D8acO2\/DycGq+cOrWT+tMWrek1nz7qa\/Lrq3rF884aeFdpxinQMJ7qSP7ARt7kT7ttfCto9oEM3XjQpN6qgc2Bumo7wAEiIdiMp07xavLZCS\/xecs3oMl6TQPVUAewNW9l1Z9L+mmsGPkVHv8V6dD2QaCpazRNeB6DNtAMetygOYocxwt7MYTE0RjqYTSGcbk6VedRtPb7clQdrS8reEVr\/RUY9mv+5Kv5q7ayB0CGzh40MSj74BCPJlMnb\/PGWwGaTJ0qaEydHDNjVZZ3ZM2ngobu6mcgc4XHf0W6On59O6+gaeEINHRsQHvpuNxRdarOQ+vFpcd2JVrfZ9kTNCvIVNCs+1D1CvqzNaBpxjyRvq8ObTdPxlrJ0H+QoHmc7ScC+S1VND+wtD1eo1k+bVpOicYezS6tx36Fx39FOrR9nkFzGM2FP6VT+bdVA4tdoBnAUb2ZgKbmr3VciW48aNbGO5U2odqOahtk9CvAaYvEA2wcg7eHTZWqR5PPPNiuHo30eEN5qc\/2un8rrW0fy\/FfiQ5td9AcTecGmjoegUdA09ILZC6BzTF4VNHNB80RNEZetQFhUOkNNj98ZfmoegBHftXtMbY1m\/wC3E8YeDC7QDMYahaAmyczHFfzlIY2xpCJytPC0sdT1aH9Dpqj61xAU72VxAU2+4GGJv9x6daDRltj5XlQ21kA9ljavm0QARtwySv4UVMnEHKMFTTxZtq7OAVeTctx1z5ku\/b3VNV56aA5ss4RNBmXvUBjfOk4f6vjGMZ0q0ETQ64ayMTQraW0fg35l4\/Dl9DJVMnTJgvD8WocG6MEFaF8oLSse+fdHN7MrmNbtVf7ke11ntNW56WDZm8dLvaxps5jBc1EO4fSqbqOoA0SI3BMg+afFdCsfse0Asy4\/OXq7EAzVn2KV5PfOIkHggaSlbbp1Go7aalj+f5NmTYNYfNoyvEl75Smv6euQ98CmnVfVn1u53LQD57y92iOImcJmmPViXYOpVN1HUGnQJGnULtBQwGm\/FhS2Ynyl6tbDRoaA9pLj5r\/IN11XBPHdkn+Ufqp6tC\/Bpoh3NWn1bk6iw9fHUXOauo0Jw0wptKiY6DU\/IcpfxjdetB03UedlxVo6FFBc9z\/buWo0kEzH+2gmbM6Lx00XTdAO2jmrM5LB03XDdAOmjmr89JB03UDtINmzuq8dNB03QDtoJmzOi8dNF03QDto5qzOSwdN1w3QDpo5q\/PSQdN1A7SDZs7qvHTQdN0A7aCZszovHTRdN0A7aOaszksHTdcN0A6aOavz0kHTdQO0g2bO6rx00HTdAO2gmbM6Lx00XTdAjwiaVxpofExqDZGnfABq+RGogGYnretG6QCffJArIMo\/kJsCzcZ8JuLZ+xpofMbABQowQHPJN1SaLuPkozt5up6FOlfZzrlL3C7Q3Dzc8aK+xtZ1u5THAiZ7qe8jA43\/H0mBJWH0rARo\/O9tsBHOWf\/O5z7a1H+azP44z9zUeaUNNP6LYdd5KKBMaSDDq0mY\/1J5lqD52SsvtX+L+6eLZ86N+tezU\/Fz1gaaXIRdt1fHQJlSQGmgWf\/PbaBZT6jORLTPq5m7gmm2r\/q5q1r40uL5XfFz1gaa3NW6bqeOgdK8larFc9lZk3l5CZzBo+hysuL\/jhPnwTbQRJI2d2mgKZdk1y3UeCYH6YsvvjjkJ8P+JgFmtTg9Z33lZwPeV9sNNCXtPOgaNG0gerh14VLHPk10me5OutweZDjpyrbyw\/YOfM5QygU5dzXuP\/\/qV7Xtdl5G6XPVJWgmErpuka6BU7XIkCcX9eTF3eUYpI79buU9Lj3I5TaPZgn43ATmLw005oldt1hXHsqUXgKVlbYLPftnLHyz7dWdqelBulyEf7mBpsUB0Dp9qu75aAPNVELX7dEKkEl4TKVXPWOZOqY56xI002lz1Q6aGeimgaPL\/gI0PNHzJB00W65Tcmm+Hfd9etH4jGUMyplrFoPPkzbQDJtdZiJTcNkbMNEzXpCcuDDnrOcXNBMJXbdHd3svS8jkiceOTgGGSjtrGfd1y3TinOynbepUF+qn6pyZdtBsuw4yBs2OjE\/4psq4n9uohxeg2Skzrmee2kAzvlC7bpceKFOAqnrGMnVMc9b+1KnrVuq+MgWWsZ6hTB3P3BVo3Oen0uaqDTRD2KXLmcnUhTkn9Shb6C1gocVgL0zWPFS+5KlxdX9btYOmS5dTEG8FE4vA7anTStqb3YMmvcqcfp7QQdOlywlLICIEleVi8I4EKFPAETcH6aDp0uUUpP32bAUNHk31cCLZBp7krenbLB00XbqcsKw9FrAZNB7N2JPZBZpV3rlIB02XLicsd9xxx+LHP\/ZF5yVUskZj26Kw9Eg8mblJB02XLicsN910U\/NiPv7xjzfPBWief\/75xe233962pVfvhoz3t106aLp0OWF59tlnG1Dotdde26AjvOaaa9r2c8891\/IFLgk34uuHxyQdNF26FBmvjVSPYuxd2Je3ramM8u2qY9j+wAc\/sAYL4AivvvrqFr+f1HqmRHprb9S31qcDyp6mdNB0OfdSF2KnZGzER5GU\/dGPftTAQgMb4OHtTIJqtB9paeAy0d9AZxOlg6ZLlwmpxj423qTtyrMy\/jEAWp5VnLWYgKZ6M6kjIv\/YI5mqm6z7IX1cT2n7rKWDpkuXlUwZa2RfYx7HyTfKCxzWYjJ9EmZtJjKuZyzqHHs\/e8lUv85SOmi6dBlkyjBb3GDce0nSJ8uVuLqoy4sBmg996EMtz\/rFvX3qSp5IzdPKRNWx0kjdPkvpoOnSpUgz1AmDj+yX3tJG8XUfMKzJAI2Q7FWmtlHTxe8nl9R1QP7Tkg6aLudeTEci46lJTSP2vQPz9NNPLx5\/\/PHFww8\/vHjggQcW999\/\/+IrX\/nK4gtf+MLirrvuai\/hffKTn2zvztx2223Ng+HNvP\/971+8\/e1vX7zvfe9r2x\/+8IcXt956a8v3qU99anHnnXcu7r777laP+u67777FQw89tHjkkUdae88880xrH7TSt0s8ng2BS5UOmi5d9hBrKI899tjiq1\/96uKzn\/3s4pZbbmmAoBZ2QeJjH\/tYgwSofOYzn2n5Pv+7n1988YtfXNxzzz0NQA8++GCr5\/vf\/34DFFAAxpNPPrl49NFHW\/rXv\/611o5yyqtHfeADVNoGK+0GUuLl0456fvKTn6x6voRN9YrOWjpoumy9jO\/oJHf1enevU5FqhEJ1gAFDZ9w333xzM+iPfOQjzeAZPyBcuHChGfQLL7zQgHEaqi1t+hlD4i5evNg8KZ6P\/oGe\/vKaQM9xgI+87Rj3gM56DFbjZBwSN\/bmrkQ6aLrMQgKbNvUZQaYaTOIIsAAIz+C9731vM1Iewpe\/\/OVmpAy8Grf9AIbh06SdtI7bTlj7xwMzveIZmbqBJM\/H1MxxSrMwXccgY1PjSAXOcUgHTZetlxhEYLPXvpCxMUIGCCzWRExb8uJcjJhR267GzaiTHh3vn4RWmFQNfLwMKAQR8bXf4OP4ANTUi6fmmI1DlQqaPCXroOnSZSTVawlgCANieKYSWZC12PrEE080Y2TEMcoYbwyUAde4mmccdxqqrxU6jks\/s62\/Sde\/pAvBIx6P6ZZxoMZF\/rVnU+Bi7I4LNh00XWYlMQyGxrDcyXkvn\/70p9vTm4BFmm0GyECF4gMXsIqx2o8xx9hr\/GmrttO+PiYu+4mr++NjlN8TM+s5xsc4GZNAusL6OKSDpsvWy3h9gcF4xOwJDQPyhEdchUOMUXzCpDPEAIdOGbG4QCf5TkoDBttpfwy89M1+zR8d9zVllfH0y3hZTBZKD7DHY3u50kHTZRbCINyFeS1Zh\/CEKIYVraDIPo0hZl96DLGWT3wtX9NPQtMfAKmwSF8rWBLGe8lxpUwtl\/wpb7yyfuUJW1+j6dJlQqy9WHfw2LcaUjWycdx4eyqtxo11v7Tj0hxL1XFfx2mBSy1b4+kYQFR+kDGOvMHjkg6aLlsh1YWvC5e56\/JgPMY1TaoGuJcxdt1RHk0Wi4XGjHfj8bhxnRp7cpR1nA6aLlshDSqrC15YL37viHhDl6FkrcWdOYYzZVxdd9RYebwPHIFO0rwI6CkVqWN+VOmg6bLxEq+lejLZ9pjamkIWfBlLpgsMZmp60PVSrXC2n3GzUGxR3ThHjHGF\/mGkg6bLxsv6ol4BJyKea++OmylSIMNQbPep08EaqGTshHUcrX21KdQw\/pkugTgZn5O9pIOmy8ZLLuZ1uAIPr8bd1o8VGUTgEsPJdMB21\/01UM4Y5lfitv0Q1KNv47\/XuThIOmi6bIW4oCtgIu95z3vaukKMom6762Yq0HVvBRjjlrEDG2OcbdAxzpF4M6SDpsuspF7QdZsB5OcEMRaGYL9D5vDK88s00\/jxBjOWT\/7gQvvR6Rj08WoOIx00XTZe6gU9voO+613vams0oAIu1F24TgPGRtV1txonoTELoDOW4ozvO9\/5zjbeY7h0j6bLbKVe7Dwa6zTe+3D3ZRiBzNigxpq8U2lz1P2OVzwPhmeTsRNan\/FU793vfncb7zr2WRg+jHTQdNk6GYPGG6y+KZOX9caejP3oeQJLFIDrtrExFuOppbhMl+xL99IejyagIfFixt7NftJB02XrZAwahuM3Oj53aW0hkAlUKnTERRM3dwWPug0oto1LHRtrL0njyXgJ0mNtwKmLwYedLlXpoOmydTIGTcDhl8d+UOnzBwyKEYm3PQZLDCyGNWfNsQcsGZcKHGHWZvLDVJ6ifDycqamT7cN6NR00XbZOpjwaRkP91wBrCu7E+b5vhUw1sPOmOfbx8Rs\/kOEN8gxBxg9T5QdpugZNpk2j8CDpoOmydTIGDSNx16WMwj7QWCTm5Vi7ET82LlohNFd1nELHOj5e+4BsnAJo0ybjlTGVD2jquB\/1EXcHTZetkzFoYgyMg1EFKt4YZjjeavWFPZ8\/yPQgRnYeQJM3pPNEyXgZA+NhXIyPcTJe8ks3LhlHeY1zxv2wcKnSQdNl62QMGgbBMCpAElIejScnfonsOyvu3nnJL3nnrMABsMYJTLKWlSdK+blBtE6tjI+yxpnUqZJ6DysdNF22TsagqUYypRUm\/o1KviLnY+Xu5O7sjA14qpHZFlfv7GOYZT9xtS3b6kh8TbsSVc8YrtpJ32scSFhvcZzgYjrp+P3ny6P0J6CJHNWr6aDpsnVyVNBEGR4DZYi2PV3xy+T8B0rg8aTFv6L13wLkS\/6UjzFThsqQDzLYlKfyRmueg1R+bQvVV\/skzrTIvv9V5f9SgQmPxU8HPKZ2nCCbqWPV2s5e2kHT5dzJ5Xg0Y8OuRgsm1GNxH9HynwHc\/cGHsfrPleKByUJprSvrGbanDPewhnyQpp70mwfGEzP10T9TQv0V6n\/6mymTMtFan7S0sZ920HQ5d3I5Hk0MLMrAGC2DizdQjZCCCmP2v494CPm3sxSI7POG9vrf2\/5jpMft6jBV8REpC7OMX93WiXgg0v2TN\/9D+0tf+lIrrx5tqrP+7+0AMBCUrgxIgo9jovU4x3CRHsAAZfLupx00Xc6dXI5HE3gkru4HOkkbG2tVeRk0SIAHr+Hee++d\/Af94ANCpi4gYX3EVIYChX0eiHQw+cRvfqI9BbKeoh7eCojcf\/\/9DUamPqZ0\/u+2ftTjGcPEfuL22t\/vOMfaQdPl3MnleDS8CJr9GJrtarBJq0ZZvYKaJ4a6l3HTwxryflrrr\/tVE6c9+eyP+1XLT9Wxn3bQdDl3cjmgqUaX\/cTVBdKk070gUfOkjr1U3gCplqvp0XFaNN6LaY567CdN32vZcTvJm+NLHpo8h9EOmi7nTi4HNGOtxh0DrsY3NvzkH8cnba+4g0C0n6Y9daR\/AUbSpvLW9JSt+YTi6\/5B2kHT5VxI\/XxnRFxAEyO0XY2nGlYMz761jte+9rWL66+\/voU33HDD4m1ve1tbX5GHp6D+eAwpF7V+Yn0mRiw928lfPY\/EjfPUemv+5Blvyx8PrOZPPeLGaVP9SD79yZOzOoYWrQNgcRU0+Q7NUWDTQdNlq2R8cVtYZXjeWM0nIhiNOAYRI6vxAGJh9fWvf31bbLWw64mPBVtxnvbEQPNUxnYgoS5fnLNwOwZHttN24hKvfdvS9TflhdL1TZlarm5Hc6xUnQECtVitftuJV8Z2xoNqT6i8bceadOXFKysOaMRVmYL\/XtJB02XjJXAZ\/1JYvDd8PTZmEIyFUTCIGJJ4BsRoxIuzzaMBlfz7XEZIPf1585vf3OIYs8fKb3nrWxY33njj4vbbb2\/1ejr0hje8YfGmX35TexFunC8f4dKuJ1E+N\/rGN76xQdFjbXUAnR8qqkcZwBOv\/29\/+9vbk6b0l6fFe\/IInMF7b0Zb+ujnBLb1xROsAMhjdfWIN0Zgqn5p6tW\/eGyJ17YwgNG2MfGjS3UELDkfY\/DsJx00XTZecoEL19AZQuoxsmkMg6gwYSgx3EAkBmWb4V133XXNIJOunLeCTacYl7oZMVhoA5jk984KOIBLftIgnzweS5uGAYXH0AxdOpC84x3vaO++aEt5+9oDrte97nWtLmkBYAxffSDjjV\/b2tI3eUz7PEbXtnjg8W6OfNpSPzhpy\/E7xsBYKE6b2qE1TgiW6nQMkcN+GqJKB02XrREX+NhdBwx3W2AIXHJHzt2accWrsS8toPF+SoxMGpAwdD8+9H4MA2d04MLTYeDyxbOwnZftbHu3hsEzfn1SFw\/Htv8mkJfzAEKdaVcZwLGvDEDY1nf7ygGNPud3Sv7XuClc+i\/dOzj6pa\/yUPnBkxeXsRDyfrRNAUZcQKM+46XPXhI0HqSCvoYHSQdNl62SqQvc3dzd23QgRhIDyn7u0JQBMRzGzuhjkPKoyzSHwTFungBDF0cZsbSs0ahbPtMj9cnDmwAkaQzfvjRTJZ4Or0e+9El\/wBI4bMsfcFGQCMxMtfRV3V76M12yH4iqUxwg8ZL0Pdv6Ka98ylPQSTv2Mxa21Wlc9bdK92i6nBsZezeeFnnD1hpIhQq1H0OM5qkT40v+GC8g2LamAiCmNPZBB1xMO8RnMVh+Kh\/DTT5eTH5vxDsCJ54QaDD8rNeomwfCoNUHNPJL442ABU8LaAAqx2LNSB+VBwdl1MGD0pb2wdcUTtms32gDLDN9CnzUK922ciBjXEmFi2MkY+9yP+mg6bLxEu8lF3b1Ztq6zWAEjIaRcfMZZ4wmd+cYtFBcQKOMKQxPgyfAqK19MEaLsIxWGT8xkJ9HozzQ+HmBbflsq9\/0RR3y6QdogJk6xFmgtQ0spkqMX9vqBh51SLP+AxRCHo06TKeAJl5IPBzxYGLdhwdlTUl90gHDMcSD0t9Mnag4ddWxMR7GwkJ3AGPMpzwZ434Y6aDpMgsJfECCkZi6MGKGw4gYFKOIMVmjYYyUIQMCr4SRykMtgopnzNZQQMw2gICGstqp+Rh7zZdH5gwdQEzN9EUZXo18Qms6MXh1Z8rDw5LHcQU06R815VJe3jzVAhLt6p96LEhbjM44pCxvJoABZuPleIyf9shhQXKQdNB0mYW428alZzju7IyQQedHiJShVWOznbt7DK5OIRhfpk7iAUo90iyUBmQ8B2Cxn3yM1DbviZeQthJPTaPAwXbtlzgejTj1p03lbcsvnnq8L3+mRsnvuAFD3pSXps5an\/I8O+NlqiQ+Ur3HK5EOmi5bL2OXPsbB+BkOA+IlMHaGFQPLFMJ+jJwhZmrCQBOXbRpQMNYYvlA+aTH4lFFftoX6V+tL2WwnPqo+9dZ0+4GFuiqk5BnvC7WRtigIWUvyK3JgBqYqR1mDOUg6aLrMQhhepK3blDsxozIlMiUwpbD2wMuIscco7VdDV6c0GuNMGdvS5U8+8TFy6amneg\/yqkMobpx3L1VHgJU+iku\/7AvVJ9122rWdMjwtx296ZyysKalXHmLc7JPxOF6JdNB02XoZG4P9phOLlwDj7m3tw4erbFtoZcAxyIQVHuKqZ5H4GgYg8iZP6mK0whh\/8sd7qlAQps7E2Y8mj\/JJT9\/UZ7uW47k4TmDh3Xn5DnAiypEpD6aDpkuXkcRgSO7KpMZXY7KmYm3CY1wLqUIGaeEUkGLsDDYQiXHTGDQNlJK35quQiMcRL0K+2k6tK2WTRiuo9CdpykjTb4vGYAIsjstTJ8cpTd4Kjzo2EXHrp00TsL4c6aDpMguZMgzGzKgCl4QxrmpkDNWr+6ZY1i1MswIfRmu6wfOx7lONHQjsx+ij9kEk8KDaiAcTMAQewpo3GtBQZdO2uj2+9hTL+pPH4LwV6y32HQeQOmZqXOrx2h6PR5WpuCuRDpouWy\/ju679qbgWru7m2WdQLb+p1gpKSQt88mq\/FwK9cMegrXGAkbd5vUPjnRhAko\/xUy\/ZeUfGS3vq8RTJgit4AJa3k8VLz+Nr5XgfFrE9agY9L+YBCQ8FSLSvHzwV7XnHJ7+TGkv1XqokPrBxzDn2Wmav8keVDpouXY4gwMSgPU62zsFr4OmACiABRX6EyLMAITACCXCyNsRTEoKGeACTT37llFeP+tSrfu1oT7vaDyC2RRpounTp0uVk5aqr\/n\/Y6++OmAjaBQAAAABJRU5ErkJggg==\" alt=\"Application UI connects to SSO Service and Microservice, which uses Datasource\" class=\"wp-image-39640\"\/><figcaption class=\"wp-element-caption\"><span data-contrast=\"auto\" class=\"TextRun SCXW195866553 BCX0\" style=\"margin: 0px; padding: 0px; user-select: text; -webkit-user-drag: none; -webkit-tap-highlight-color: transparent; font-variant-ligatures: none !important; font-size: 11pt; line-height: 19.55px; font-family: Arial, Arial_EmbeddedFont, Arial_MSFontService, sans-serif;\"><span class=\"NormalTextRun SCXW195866553 BCX0\" style=\"margin: 0px; padding: 0px; user-select: text; -webkit-user-drag: none; -webkit-tap-highlight-color: transparent;\"> Figure 1<\/span><\/span><\/figcaption><\/figure>\n<\/div>\n\n\n<p>Using CI with a pipeline for developer builds and deployment, I kick off a build and deployment by committing and pushing my work to my feature branch. For this pipeline, I\u2019m using Gitlab CI. Since my team is sharing the development environment in the cloud, our components are kept up to date.&nbsp;<\/p>\n\n\n\n<p>Our typical CI pipeline may have the stages <em>Build<\/em> and <em>Release<\/em>, see Figure 2. There are two jobs for the build, <code>build-arm64<\/code> and <code>build-x86_64<\/code>.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png\" alt=\"\" class=\"wp-image-691\" style=\"width:768px;height:217px\" width=\"768\" height=\"217\" srcset=\"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png 1024w, https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-300x85.png 300w, https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-768x217.png 768w, https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16.png 1426w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Figure 2<\/figcaption><\/figure>\n\n\n\n<p>To incorporate feature branch build and deployment, I added the stage <em>Deploy<\/em> to the pipeline, with jobs to deploy our supported architectures, <code>deploy-develop-arm64<\/code> and <code>deploy-develop_x86_64<\/code>.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-15-1024x259.png\" alt=\"\" class=\"wp-image-688\" style=\"width:768px;height:194px\" width=\"768\" height=\"194\" srcset=\"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-15-1024x259.png 1024w, https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-15-300x76.png 300w, https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-15-768x194.png 768w, https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-15.png 1232w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Figure 3<\/figcaption><\/figure>\n\n\n\n<p>In Gitlab CI, Jobs are defined in the <code>gitlab-ci.yml<\/code> file in your repository. So that our jobs for the Deploy stage are only used for development deployments, I made extensive use of Rules.&nbsp;<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-git\" data-lang=\"Git\"><code>rules: \n    - if: &#39;$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == null && $CI_COMMIT_REF_NAME != &quot;develop&quot; && $CI_COMMIT_REF_NAME != &quot;master&quot;&#39; \n      when: manual <\/code><\/pre><\/div>\n\n\n\n<p>The Gitlab CI variable CI_MERGE_REQUEST_TARGET_BRANCH_NAME is compared to null so the job is not run for merge requests. The CI_COMMIT_REF_NAME variable is compared to our dedicated branches for our continuous integration and release. Deployment should occur if it is not one of our dedicated branches. And the step is manual, the deployment should occur if the developer desires the build to be deployed to the development environment.&nbsp;<\/p>\n\n\n\n<p>In conclusion, adding a development deployment step provides automation for a frequent developer task. Benefits include a simpler setup on your devbox, and the automation is there for the whole team. <\/p>\n\n\n\n<p>Tedious troubleshooting of devboxes is reduced, and having a working state in a development environment are all benefits.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yes! My last merge request was accepted, the automated [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[28,251,249,254],"tags":[146,256],"coauthors":[133],"class_list":["post-686","post","type-post","status-publish","format-standard","hentry","category-blog-post","category-cloud","category-devops-and-security","category-engineering-practices","tag-development","tag-programming"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A Guide to Developer Builds and Deployment in the Cloud - Infobip Developers Hub<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Guide to Developer Builds and Deployment in the Cloud - Infobip Developers Hub\" \/>\n<meta property=\"og:description\" content=\"Yes! My last merge request was accepted, the automated [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud\" \/>\n<meta property=\"og:site_name\" content=\"Infobip Developers Hub\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/infobip\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-31T13:02:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-11T14:33:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png\" \/>\n<meta name=\"author\" content=\"Infobip Devs\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@InfobipDev\" \/>\n<meta name=\"twitter:site\" content=\"@InfobipDev\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Infobip Devs\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud\"},\"author\":{\"name\":\"Infobip Devs\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/e04a9012051f81b6a2f6976e156f6ce0\"},\"headline\":\"A Guide to Developer Builds and Deployment in the Cloud\",\"datePublished\":\"2022-10-31T13:02:23+00:00\",\"dateModified\":\"2023-09-11T14:33:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud\"},\"wordCount\":549,\"publisher\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#primaryimage\"},\"thumbnailUrl\":\"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png\",\"keywords\":[\"development\",\"programming\"],\"articleSection\":[\"Blog Post\",\"Cloud\",\"DevOps and Security\",\"Engineering Practices\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud\",\"url\":\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud\",\"name\":\"A Guide to Developer Builds and Deployment in the Cloud - Infobip Developers Hub\",\"isPartOf\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#primaryimage\"},\"thumbnailUrl\":\"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png\",\"datePublished\":\"2022-10-31T13:02:23+00:00\",\"dateModified\":\"2023-09-11T14:33:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#primaryimage\",\"url\":\"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png\",\"contentUrl\":\"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.infobip.com\/developers\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Guide to Developer Builds and Deployment in the Cloud\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#website\",\"url\":\"https:\/\/www.infobip.com\/developers\/\",\"name\":\"Infobip Developers Hub\",\"description\":\"Build meaningful customer relationships across any channel\",\"publisher\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.infobip.com\/developers\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#organization\",\"name\":\"Infobip Developers Hub\",\"url\":\"https:\/\/www.infobip.com\/developers\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/03\/Infobip_logo_favicon.png\",\"contentUrl\":\"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/03\/Infobip_logo_favicon.png\",\"width\":696,\"height\":696,\"caption\":\"Infobip Developers Hub\"},\"image\":{\"@id\":\"https:\/\/www.infobip.com\/developers\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/infobip\/\",\"https:\/\/x.com\/InfobipDev\",\"https:\/\/www.youtube.com\/channel\/UCUPSTy53VecI5GIir3J3ZbQ\",\"https:\/\/github.com\/infobip-community\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/e04a9012051f81b6a2f6976e156f6ce0\",\"name\":\"Infobip Devs\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/image\/f61078713800c4e479dce745cd206b82\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f29655934347a5aa15879f9af9ac1f05b87167e0f7ed4074a04132eaa9f631c4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f29655934347a5aa15879f9af9ac1f05b87167e0f7ed4074a04132eaa9f631c4?s=96&d=mm&r=g\",\"caption\":\"Infobip Devs\"},\"url\":\"https:\/\/www.infobip.com\/developers\/blog\/author\/infobip-devs\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Guide to Developer Builds and Deployment in the Cloud - Infobip Developers Hub","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud","og_locale":"en_US","og_type":"article","og_title":"A Guide to Developer Builds and Deployment in the Cloud - Infobip Developers Hub","og_description":"Yes! My last merge request was accepted, the automated [&hellip;]","og_url":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud","og_site_name":"Infobip Developers Hub","article_publisher":"https:\/\/www.facebook.com\/infobip\/","article_published_time":"2022-10-31T13:02:23+00:00","article_modified_time":"2023-09-11T14:33:21+00:00","og_image":[{"url":"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png","type":"","width":"","height":""}],"author":"Infobip Devs","twitter_card":"summary_large_image","twitter_creator":"@InfobipDev","twitter_site":"@InfobipDev","twitter_misc":{"Written by":"Infobip Devs","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#article","isPartOf":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud"},"author":{"name":"Infobip Devs","@id":"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/e04a9012051f81b6a2f6976e156f6ce0"},"headline":"A Guide to Developer Builds and Deployment in the Cloud","datePublished":"2022-10-31T13:02:23+00:00","dateModified":"2023-09-11T14:33:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud"},"wordCount":549,"publisher":{"@id":"https:\/\/www.infobip.com\/developers\/#organization"},"image":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#primaryimage"},"thumbnailUrl":"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png","keywords":["development","programming"],"articleSection":["Blog Post","Cloud","DevOps and Security","Engineering Practices"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud","url":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud","name":"A Guide to Developer Builds and Deployment in the Cloud - Infobip Developers Hub","isPartOf":{"@id":"https:\/\/www.infobip.com\/developers\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#primaryimage"},"image":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#primaryimage"},"thumbnailUrl":"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png","datePublished":"2022-10-31T13:02:23+00:00","dateModified":"2023-09-11T14:33:21+00:00","breadcrumb":{"@id":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#primaryimage","url":"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png","contentUrl":"https:\/\/infobip.com\/developers\/wp-content\/uploads\/2022\/10\/image-16-1024x289.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.infobip.com\/developers\/blog\/cosmos-guide-to-developer-builds-and-deployment-in-the-cloud#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.infobip.com\/developers\/"},{"@type":"ListItem","position":2,"name":"A Guide to Developer Builds and Deployment in the Cloud"}]},{"@type":"WebSite","@id":"https:\/\/www.infobip.com\/developers\/#website","url":"https:\/\/www.infobip.com\/developers\/","name":"Infobip Developers Hub","description":"Build meaningful customer relationships across any channel","publisher":{"@id":"https:\/\/www.infobip.com\/developers\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.infobip.com\/developers\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.infobip.com\/developers\/#organization","name":"Infobip Developers Hub","url":"https:\/\/www.infobip.com\/developers\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.infobip.com\/developers\/#\/schema\/logo\/image\/","url":"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/03\/Infobip_logo_favicon.png","contentUrl":"https:\/\/www.infobip.com\/developers\/wp-content\/uploads\/2023\/03\/Infobip_logo_favicon.png","width":696,"height":696,"caption":"Infobip Developers Hub"},"image":{"@id":"https:\/\/www.infobip.com\/developers\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/infobip\/","https:\/\/x.com\/InfobipDev","https:\/\/www.youtube.com\/channel\/UCUPSTy53VecI5GIir3J3ZbQ","https:\/\/github.com\/infobip-community"]},{"@type":"Person","@id":"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/e04a9012051f81b6a2f6976e156f6ce0","name":"Infobip Devs","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.infobip.com\/developers\/#\/schema\/person\/image\/f61078713800c4e479dce745cd206b82","url":"https:\/\/secure.gravatar.com\/avatar\/f29655934347a5aa15879f9af9ac1f05b87167e0f7ed4074a04132eaa9f631c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f29655934347a5aa15879f9af9ac1f05b87167e0f7ed4074a04132eaa9f631c4?s=96&d=mm&r=g","caption":"Infobip Devs"},"url":"https:\/\/www.infobip.com\/developers\/blog\/author\/infobip-devs"}]}},"_links":{"self":[{"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/posts\/686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/comments?post=686"}],"version-history":[{"count":9,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/posts\/686\/revisions"}],"predecessor-version":[{"id":2534,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/posts\/686\/revisions\/2534"}],"wp:attachment":[{"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/media?parent=686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/categories?post=686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/tags?post=686"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.infobip.com\/developers\/wp-json\/wp\/v2\/coauthors?post=686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}