<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>RobertVerdam.eu</title>
	<atom:link href="https://robertverdam.eu/feed/" rel="self" type="application/rss+xml" />
	<link>https://robertverdam.eu</link>
	<description>Virtualization &#124; Storage &#124; Networking</description>
	<lastBuildDate>Thu, 09 Apr 2020 16:28:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.9.3</generator>

<image>
	<url>https://robertverdam.eu/wp-content/uploads/2017/09/cropped-FAVICON-1-32x32.png</url>
	<title>RobertVerdam.eu</title>
	<link>https://robertverdam.eu</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">78044478</site>	<item>
		<title>NSX-T 3.0 GA!</title>
		<link>https://robertverdam.eu/2020/04/08/nsx-t-3-0-ga/</link>
					<comments>https://robertverdam.eu/2020/04/08/nsx-t-3-0-ga/#respond</comments>
		
		<dc:creator><![CDATA[Robert Verdam]]></dc:creator>
		<pubDate>Wed, 08 Apr 2020 12:00:00 +0000</pubDate>
				<category><![CDATA[Virtualization]]></category>
		<guid isPermaLink="false">https://robertverdam.eu/?p=3680</guid>

					<description><![CDATA[<p>This blog article highlights the biggest new features in NSX-T 3.0 which was released on the 8th of April 2020. </p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2020/04/08/nsx-t-3-0-ga/">NSX-T 3.0 GA!</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Has been a long time since my previous post, but I decided to pick up blogging again! And no better topic to start with then NSX-T 3.0 General Availability!</p>



<p>About a week ago, I was asked as a vExpert NSX if I wanted to participate in a Exclusive Blogger Early Access Program Session about Networking and of course I couldn&#8217;t refuse this unique change to pick up blogging again.</p>



<p>In this article I&#8217;d like to highlight which I think are the most important new features on the this new major release of NSX-T: VMware&#8217;s Single Heterogeneous SDN (Software Defined Networking) Platform. NSX-T provides full stack networking and security virtualization.</p>



<span id="more-3680"></span>



<h2>What&#8217;s New?</h2>



<p>NSX-T 3.0 definitely qualifies as a major release, just check out the shear amount of the new features provided by this release:</p>



<figure class="wp-block-image size-full is-style-default"><img width="750" height="326" src="https://robertverdam.eu/wp-content/uploads/2020/04/image-4.png" alt="" class="wp-image-3694" srcset="https://robertverdam.eu/wp-content/uploads/2020/04/image-4.png 750w, https://robertverdam.eu/wp-content/uploads/2020/04/image-4-300x130.png 300w" sizes="(max-width: 750px) 100vw, 750px" /><figcaption>NSX-T 3.0 &#8211; Overview new features</figcaption></figure>



<p>VMware tells us they think NSX-T is now even beyond feature parity when compared to NSX-V. So if you where not yet considering (migrating to) NSX-T into your enterprise environment, you should definitely look at it for the NSX-T 3.0 release.</p>



<h3>NSX Multi-Site / Federation</h3>



<p>A feature we are waiting for a long time is the ability to centrally manage multiple NSX-T instances running on different sites. With NSX-T 3.0 we are now able to implement a manager of managers (global manager). </p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" width="750" height="440" src="https://robertverdam.eu/wp-content/uploads/2020/04/image-6.png" alt="" class="wp-image-3699" srcset="https://robertverdam.eu/wp-content/uploads/2020/04/image-6.png 750w, https://robertverdam.eu/wp-content/uploads/2020/04/image-6-300x176.png 300w" sizes="(max-width: 750px) 100vw, 750px" /><figcaption>NSX-T 3.0: Multi-Site / Federation support</figcaption></figure>



<p>This will give us the capability to consistently manage networking and security across different sites and even allows for disaster recovery scenarios. Additionaly we can now use groups which are based on tag on any dynamic information!!!</p>



<h3>L3 Multicast routing</h3>



<p>A major network functionality still missing from the NSX-T product, was the ability to do L3 multicast routing. NSX-T 3.0 now introduces this capability and will be able to propagate multicast joins throughout the distributed as well to pass the information to the attached physical networking via the T0-router.</p>



<h3>Distributed IDS</h3>



<p>In NSX-T 3.0, VMware introduces a distributed Intrusion Detection and Prevention System which has major advantages to traditional centralized IDS/IPS systems such as:</p>



<ul><li><strong>Distributed &amp; Built-In Analysis</strong><br>As other NSX features such as DFW, scales linearly with the workloads and has no blind-spots.</li><li><strong>Curated Signature Distribution</strong><br>Which leads to fewer false positivies and lower computational overhead on the host-level, because it only applies significant policies to vNic&#8217;s. So i.e. only webserver policies apply to vNic&#8217;s for Webserver machines. </li><li><strong>Context-based Thread Detection</strong><br>Which allows for better alert prioritization, because of the additional information which is available in which the threat did occur.</li><li><strong>Policy &amp; State Mobility</strong><br>Simplifies operations and eliminates stale / redundant policies. So also this policy moves with the VM when vMotioning across your environment. <br></li></ul>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" width="693" height="628" src="https://robertverdam.eu/wp-content/uploads/2020/04/image-10.png" alt="" class="wp-image-3705" srcset="https://robertverdam.eu/wp-content/uploads/2020/04/image-10.png 693w, https://robertverdam.eu/wp-content/uploads/2020/04/image-10-300x272.png 300w" sizes="(max-width: 693px) 100vw, 693px" /><figcaption>NSX-T 3.0: Distributed IDS/IPS</figcaption></figure>



<p>IDS/IPS functionality is deployed during host preparation for NSX-T 3.0, so it is very easy to deploy.</p>



<p>No more traffic hair-pinning traffic over firewalls with IDS/IPS or seperate IDS/IPS-appliances, but IDS/IPS integrated into your virtualized network. And what about all the additional context information from your virtual environment which you can now use to interpret alerts. Can&#8217;t wait to start testing this great new feature!</p>



<h3>vSphere 7 on Kubernetes support</h3>



<p>As you probably are aware VMware introduced vSphere 7 on Kubernetes (Project Pacific) recently. NSX-T 3.0 will support this new offering and provide networking and security in this environment. Will do a seperate blog article on this feature later on.</p>



<h3>vSphere 7 Converged VDS</h3>



<p>With the recent General Availability of vSphere 7 and the latest VDS (Virtual Distributed Switch) 7.0, which comes with the latest release. NSX-T 3.0 now supports running NSX-T 3.0 straight on this new VDS version and use existing dvPortGroups for NSX-T switching.</p>



<p>What is even better is that when deploying NSX on VDS 7.0 no VM traffic distruption will occur! </p>



<p>This feature is for greenfield customers only. Customers who upgraded to vSphere 7 from a older versions, can continue to use the N-VDS which got installed &amp; configured with the deployment of previous NSX-T versions. </p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" width="750" height="457" src="https://robertverdam.eu/wp-content/uploads/2020/04/image-11.png" alt="" class="wp-image-3706" srcset="https://robertverdam.eu/wp-content/uploads/2020/04/image-11.png 750w, https://robertverdam.eu/wp-content/uploads/2020/04/image-11-300x183.png 300w" sizes="(max-width: 750px) 100vw, 750px" /><figcaption>NSX-T 3.0 : NSX-T 3.0 / vSphere 7.0  Converged VDS</figcaption></figure>



<h2>More Information</h2>



<p>For more information on this big release please refer to following links.</p>



<p>Release notes:<br> <a rel="noreferrer noopener" href="https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.0/rn/VMware-NSX-T-Data-Center-30-Release-Notes.html" target="_blank">Link</a></p>



<p>Download: <br><a rel="noreferrer noopener" href="https://my.vmware.com/web/vmware/login?bmctx=4C976C546DE4E8BA7BD58B8EEADF25A5B418821E70E4480C483939EC36F11A86&amp;contextType=external&amp;username=string&amp;OverrideRetryLimit=1&amp;action=%2F&amp;password=secure_string&amp;challenge_url=https:%2F%2Fmy.vmware.com%2Fweb%2Fvmware%2Flogin&amp;creds=username%20password&amp;request_id=1545828650300585366&amp;authn_try_count=0&amp;locale=nl&amp;resource_url=https%253A%252F%252Fmy.vmware.com%252Fgroup%252Fvmware%252Finfo%253Fslug%253Dnetworking_security%252Fvmware_nsx_t_data_center%252F3_x" target="_blank">Link</a></p>



<h2>Conclusion</h2>



<p>I think with all the operational improvements and all the exciting new features, NSX-T 3.0 will be a game changer! </p>



<p>Can&#8217;t wait to get my hands dirty with this solutions and provide you deeper information on the new features in future blog articles and talk about other features we did not even touch upon in this article.</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2020/04/08/nsx-t-3-0-ga/">NSX-T 3.0 GA!</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robertverdam.eu/2020/04/08/nsx-t-3-0-ga/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3680</post-id>	</item>
		<item>
		<title>Deploying an application to AWS with Terraform and Ansible – Part 2 (Ansible)</title>
		<link>https://robertverdam.eu/2018/09/22/deploying-an-application-to-aws-with-terraform-and-ansible-part-2-ansible/</link>
					<comments>https://robertverdam.eu/2018/09/22/deploying-an-application-to-aws-with-terraform-and-ansible-part-2-ansible/#comments</comments>
		
		<dc:creator><![CDATA[Robert Verdam]]></dc:creator>
		<pubDate>Sat, 22 Sep 2018 09:11:31 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Ansible]]></category>
		<category><![CDATA[Demo]]></category>
		<category><![CDATA[Terraform]]></category>
		<guid isPermaLink="false">https://robertverdam.eu/?p=3598</guid>

					<description><![CDATA[<p>In my previous blog post on using Terraform and Ansible to deploy a simple &#8216;dummy&#8217; application, I showed you how to use Terraform to build a simple two-tier application infrastructure (Web/App + DB). This blog shows how to use Ansible to configure the application on the deployed infrastructure. Ansible For anyone unfamiliar with Ansible, I [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2018/09/22/deploying-an-application-to-aws-with-terraform-and-ansible-part-2-ansible/">Deploying an application to AWS with Terraform and Ansible – Part 2 (Ansible)</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In my<a href="https://robertverdam.eu/2018/09/03/deploying-an-application-to-aws-with-terraform-and-ansible-part-1-terraform/"> previous blog post</a> on using Terraform and Ansible to deploy a simple &#8216;dummy&#8217; application, I showed you how to use Terraform to build a simple two-tier application infrastructure (Web/App + DB). This blog shows how to use Ansible to configure the application on the deployed infrastructure.</p>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://www.ansible.com"><img src="https://www.uio.no/for-ansatte/enhetssider/los/usit/arrangementer/kompetansetimen/2017/ansible_logo.png" alt="Ansible-logo"/></a></figure></div>



<span id="more-3598"></span>



<h2>Ansible</h2>



<p>For anyone unfamiliar with Ansible, I think this quote from the Ansible site covers what it is and what it does. For more information on Ansible please visit their <a href="https://www.ansible.com">site</a>:<br/></p>



<blockquote class="wp-block-quote"><p>App
 deployment, configuration management and orchestration &#8211; all from one 
system. Ansible is powerful automation that you can learn quickly.</p><cite>https://www.ansible.com/</cite></blockquote>



<h3>Terraform Ansible Provider Plugin</h3>



<p>As shown in the previous blog post first we will need the Terraform Ansible Provider Plugin to be able to define Ansible inventory information from within Terraform. This allows us to define groups (i.e. security for <g class="gr_ gr_265 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="265" data-gr-id="265">bastionhosts</g>, <g class="gr_ gr_292 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="292" data-gr-id="292">db</g> for database-servers and web for web/app-servers), which we can do to target our specific configuration needs to the different kinds of servers we have in our application <g class="gr_ gr_574 gr-alert sel gr_spell gr_replaced gr_inline_cards gr_disable_anim_appear ContextualSpelling ins-del multiReplace" id="574" data-gr-id="574">infrastructure</g>.</p>



<p>This Ansible Provider Plugin can be found <a href="https://github.com/nbering/terraform-provider-ansible">here</a> and needs to be installed in the plugins directory. Which in my case (Ubuntu 18.04) has to be located in ~/.terraform.d/plugins (so in the users <g class="gr_ gr_6 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del" id="6" data-gr-id="6">home-directory</g>). More information on the location of 3th-party Terraform plugins can be found <a href="https://www.terraform.io/docs/configuration/providers.html#third-party-plugins">here</a>. <br/></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-9.png"><img loading="lazy" width="384" height="55" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-9.png" alt="" class="wp-image-3599" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-9.png 384w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-9-300x43.png 300w" sizes="(max-width: 384px) 100vw, 384px" /></a><figcaption>Ansible Provider Plugin located in home-directory</figcaption></figure></div>



<p>After deploying your application infrastructure with Terraform the Ansible Inventory information will now be stored in the Terraform state-file (<strong>terraform.tfstate)</strong> which we can then use in Ansible by using a Ansible dynamic inventory script made for reading directly from <g class="gr_ gr_306 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace gr-progress sel" id="306" data-gr-id="306">terraform</g> state.</p>



<figure class="wp-block-image"><a href="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-10.png"><img loading="lazy" width="1623" height="548" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-10.png" alt="" class="wp-image-3600" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-10.png 1623w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-10-300x101.png 300w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-10-768x259.png 768w" sizes="(max-width: 1623px) 100vw, 1623px" /></a><figcaption>Ansible resouce in terraform.tfstate file</figcaption></figure>



<h3>Terraform Dynamic Inventory Script</h3>



<p>The Terraform Dynamic Inventory Script can now be used to retrieve the information from the <g class="gr_ gr_639 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del" id="639" data-gr-id="639">state-file</g>.</p>



<figure class="wp-block-image"><a href="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-11.png"><img loading="lazy" width="1233" height="23" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-11.png" alt="" class="wp-image-3601" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-11.png 1233w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-11-300x6.png 300w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-11-768x14.png 768w" sizes="(max-width: 1233px) 100vw, 1233px" /></a><figcaption>Retrieving dynamic inventory information from Terraform in Ansible</figcaption></figure>



<figure class="wp-block-image"><a href="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-12.png"><img loading="lazy" width="1620" height="935" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-12.png" alt="" class="wp-image-3602" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-12.png 1620w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-12-300x173.png 300w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-12-768x443.png 768w" sizes="(max-width: 1620px) 100vw, 1620px" /></a><figcaption>Example output</figcaption></figure>



<p>This information can now be used in <g class="gr_ gr_147 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Grammar multiReplace" id="147" data-gr-id="147">a Ansible playboo</g>k and allows for targeting the specific systems in your deployment by using the group specified in the Terraform Ansible resources.</p>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-13.png"><img loading="lazy" width="1455" height="310" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-13.png" alt="" class="wp-image-3603" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-13.png 1455w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-13-300x64.png 300w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-13-768x164.png 768w" sizes="(max-width: 1455px) 100vw, 1455px" /></a><figcaption>Database server definition in Terraform definition</figcaption></figure></div>



<p>As you see above we put the database servers in the <g class="gr_ gr_5 gr-alert gr_spell gr_inline_cards gr_disable_anim_appear ContextualSpelling ins-del multiReplace" id="5" data-gr-id="5">db</g> groups and now we use this in the Ansible configuration to fully update the instance before installing MySql on the specific server.</p>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-14.png"><img loading="lazy" width="742" height="822" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-14.png" alt="" class="wp-image-3604" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-14.png 742w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-14-271x300.png 271w" sizes="(max-width: 742px) 100vw, 742px" /></a></figure></div>



<p>Now we are ready to run our Ansible-playbook and further configure our application and thus putting it all together. I&#8217;ve <g class="gr_ gr_107 gr-alert sel gr_gramm gr_replaced gr_inline_cards gr_disable_anim_appear Grammar multiReplace" id="107" data-gr-id="107">built</g> a short bash-script to run all the actions which are needed to deploy the application in a repeatable manner. <br/></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-15.png"><img loading="lazy" width="674" height="184" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-15.png" alt="" class="wp-image-3605" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-15.png 674w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-15-300x82.png 300w" sizes="(max-width: 674px) 100vw, 674px" /></a><figcaption>Deploy application infrastructure with Terraform and configure with Ansible</figcaption></figure></div>



<p>As mentioned in the previous <g class="gr_ gr_453 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del" id="453" data-gr-id="453">blogpost</g>, it is also very easy to destroy the application again if needed by running, which cleans up your full application infrastructure (very <g class="gr_ gr_324 gr-alert sel gr_spell gr_replaced gr_inline_cards gr_disable_anim_appear ContextualSpelling ins-del multiReplace" id="324" data-gr-id="324">useful</g> when not wanting to incur costs during blog post creation <img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ) : <strong><br/>terraform destroy -var environment=DEV -var application=APP01 -auto-approve</strong></p>



<h3>Demo</h3>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube"><div class="wp-block-embed__wrapper">
<div class="embed-responsive embed-responsive-16by9 mb-30"><iframe loading="lazy" class="youtube-player" width="1170" height="659" src="https://www.youtube.com/embed/zEhWOJt7bfI?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation"></iframe></div>
</div><figcaption>Full demo deploying dummy application to AWS using Terraform for application infrastructure and Ansible for configuration management</figcaption></figure>



<p>Have a look at the full demo which shows what the execution of the deployment script looks like and the resulting infrastructure on AWS.</p>



<h2>End of part 2 &#8211; Please stay tuned!</h2>



<p>At a later stage, I will publish the full source code for you to be able to deploy the same kind of &#8216;dummy&#8217; application. Currently, the example is just deploying a dummy application because I didn&#8217;t have the time yet to also set-up and deploy the configuration files for Apache2, MySQL and PHP to build a demo-application, but this will definitely happen in the future. </p>



<p>So please stay tuned for part 3 of this blogpost-series which will talk about how the application deployment developed from this stage on. If you have any specific questions at the moment about the set-up please feel to contact me. <br/></p>



<p><br/></p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2018/09/22/deploying-an-application-to-aws-with-terraform-and-ansible-part-2-ansible/">Deploying an application to AWS with Terraform and Ansible – Part 2 (Ansible)</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robertverdam.eu/2018/09/22/deploying-an-application-to-aws-with-terraform-and-ansible-part-2-ansible/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3598</post-id>	</item>
		<item>
		<title>Deploying an application to AWS with Terraform and Ansible &#8211; Part 1 (Terraform)</title>
		<link>https://robertverdam.eu/2018/09/03/deploying-an-application-to-aws-with-terraform-and-ansible-part-1-terraform/</link>
					<comments>https://robertverdam.eu/2018/09/03/deploying-an-application-to-aws-with-terraform-and-ansible-part-1-terraform/#comments</comments>
		
		<dc:creator><![CDATA[Robert Verdam]]></dc:creator>
		<pubDate>Mon, 03 Sep 2018 19:47:09 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Ansible]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Terraform]]></category>
		<guid isPermaLink="false">https://robertverdam.eu/?p=3577</guid>

					<description><![CDATA[<p>First blog post in a blog post series which shows how to use Terraform and Ansible to deploy an (dummy) application to AWS</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2018/09/03/deploying-an-application-to-aws-with-terraform-and-ansible-part-1-terraform/">Deploying an application to AWS with Terraform and Ansible &#8211; Part 1 (Terraform)</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>As I&#8217;m am very interested into automation I was curious if I would be able to deploy a (dummy) application to AWS by only making use of <g class="gr_ gr_4 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar only-ins doubleReplace replaceWithoutSep" id="4" data-gr-id="4">code</g> only.</p>



<p> This article series shows how I used Terraform and Ansible to make this possible.</p>



<figure class="wp-block-image"><img src="https://www.datocms-assets.com/2885/1518044148-terraform_verticallogo_fullcolor.png" alt="Afbeeldingsresultaat voor terraform image"/></figure>



<span id="more-3577"></span>



<p>This first blog post in this series is about setting up the application infrastructure by using the Infrastructure-As-Code tooling Terraform by HashiCorp. Prior to this blog <g class="gr_ gr_6 gr-alert gr_gramm gr_inline_cards gr_run_anim Punctuation only-ins replaceWithoutSep" id="6" data-gr-id="6">post</g> I created a small demo which shows how the application is deployed by Terraform, after which Ansible takes over and starts the configuration of the webservers and database servers. This blog post series shows how this <g class="gr_ gr_72 gr-alert sel gr_gramm gr_replaced gr_inline_cards gr_disable_anim_appear Grammar multiReplace" id="72" data-gr-id="72">was built</g>. <br/></p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-has-aspect-ratio wp-embed-aspect-16-9"><div class="wp-block-embed__wrapper">
<div class="embed-responsive embed-responsive-16by9 mb-30"><iframe loading="lazy" class="youtube-player" width="1170" height="659" src="https://www.youtube.com/embed/gByJxq4iVeg?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation"></iframe></div>
</div></figure>



<h2>Terraform</h2>



<p>For people unfamiliar with <a href="https://www.terraform.io">HashiCorp Terraform:</a> Terraform allows you to define infrastructure as code (IaC) and deploy it repeatably with the same end result. The application infrastructure is defined in code by defining needed components like compute instances, storage buckets, networks, load-balancers, firewalls etc. Terraform will then take this blueprint and plan how to reach the desired state defined in the code. This also allows TerraForm to do incremental changes by comparing the defined (changed) state with the deployed (current) state and execute only the needed changes. We simply create a  file (or <g class="gr_ gr_14 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="14" data-gr-id="14">multiple</g> files) with the <strong>.tf</strong> extension and defining all the components we need. In my case I chose to split the files up by the components they defined (network, <g class="gr_ gr_8 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del" id="8" data-gr-id="8">compute</g>, <g class="gr_ gr_10 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="10" data-gr-id="10">ansible</g>, etc.).</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" width="440" height="327" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-1.png" alt="" class="wp-image-3579" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-1.png 440w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-1-300x223.png 300w" sizes="(max-width: 440px) 100vw, 440px" /></figure></div>



<p><br/></p>



<h3>Defining AWS Provider</h3>



<p>After installing Terraform (<a href="https://www.terraform.io/intro/getting-started/install.html">Link</a>), first, we start off by defining a so-called provider (in our case AWS), which will provide the needed the resources to run the application we want to deploy. Many more providers are available  which we can use to define our infrastructure (i.e. Azure Stack, Oracle Cloud Platform VMware vSphere). For a full list of Terraform providers please check out this <a href="https://www.terraform.io/docs/providers/index.html">link.</a><br/></p>



<p>In the following piece of code, we tell in which region to deploy the resources, which credentials to use and which profile to use (which is defined by a section in the shared credentials file) and which role TerraForm should assume to deploy the defined infrastructure.</p>



<p>You can remove the assume_role part if the defined credentials have sufficient rights to deploy the application to account in which the application has to be deployed. The assume role allows you to deploy the application to another AWS account :</p>



<pre class="wp-block-code"><code>provider "aws" {
  region = "eu-west-1"
  shared_credentials_file = "~/.creds"
  profile = "DEV"
  assume_role {
    role_arn     = "arn:aws:iam::&lt;account>:role/Terraform"
  }
}</code></pre>



<p>The shared credentials file should be set up as following:</p>



<pre class="wp-block-code"><code>[DEV]
aws_access_key_id=&lt;ENTER YOUR AWS ACCESS KEY HERE>
aws_secret_access_key=&lt;ENTER YOUR AWS SECRET ACCESS KEY HERE></code></pre>



<h3>Defining AWS network-components</h3>



<p>After we have the provider defined we can continue defining the different AWS resources we need to deploy the application. We&#8217;ll start by defining the VPC and the subnets we need.  </p>



<p>As you can see we are also using some variables  ( i.e. <strong>${var.environment}</strong> ) which we can use the customize the set-up during deployment. To link the subnets to the defined VPC we refer to the VPC in the definition of the subnet. <br/><br/></p>



<pre class="wp-block-code"><code>resource "aws_vpc" "robertverdam" {
  cidr_block = "10.0.0.0/16" # Defines overall VPC address space
  enable_dns_hostnames = true # Enable DNS hostnames for this VPC
  enable_dns_support = true # Enable DNS resolving support for this VPC
  tags{
      Name = "VPC-${var.environment}" # Tag VPC with name
  }
}

resource "aws_subnet" "pub-web-az-a" {
  availability_zone = "eu-west-1a" # Define AZ for subnet
  cidr_block = "10.0.11.0/24" # Define CIDR-block for subnet
  map_public_ip_on_launch = true # Map public IP to deployed instances in this VPC
  vpc_id = "${aws_vpc.robertverdam.id}" # Link Subnet to VPC
  tags {
      Name = "Subnet-EU-West-1a-Web" # Tag subnet with name
  }
}

resource "aws_subnet" "pub-web-az-b" {
    availability_zone = "eu-west-1b"
    cidr_block = "10.0.12.0/24"
    map_public_ip_on_launch = true
    vpc_id = "${aws_vpc.robertverdam.id}"
      tags {
      Name = "Subnet-EU-West-1b-Web"
  }
}

resource "aws_subnet" "priv-db-az-a" {
  availability_zone = "eu-west-1a"
  cidr_block = "10.0.1.0/24"
  map_public_ip_on_launch = false
  vpc_id = "${aws_vpc.robertverdam.id}"
  tags {
      Name = "Subnet-EU-West-1a-DB"
  }
}

resource "aws_subnet" "priv-db-az-b" {
    availability_zone = "eu-west-1b"
    cidr_block = "10.0.2.0/24"
    map_public_ip_on_launch = false
    vpc_id = "${aws_vpc.robertverdam.id}"
      tags {
      Name = "Subnet-EU-West-1b-DB"
  }
}</code></pre>



<p>To be able to access the instances (which have a mapped public IP) from the internet and allows access to the internet we will need an internet gateway, so let&#8217;s define one!:</p>



<pre class="wp-block-code"><code>resource "aws_internet_gateway" "inetgw" {
  vpc_id = "${aws_vpc.robertverdam.id}"
  tags {
      Name = "IGW-VPC-${var.environment}-Default"
  }
}</code></pre>



<p>Looks easy, right? But you may also have guessed we also will need to set-up a route-table to attach to the subnets which define the default route and allows the subnets to talk to each other</p>



<pre class="wp-block-code"><code>resource "aws_route_table" "eu-default" {
  vpc_id = "${aws_vpc.robertverdam.id}"

  route {
      cidr_block = "0.0.0.0/0" # Defines default route 
      gateway_id = "${aws_internet_gateway.inetgw.id}" # via IGW
  }

  tags {
      Name = "Route-Table-EU-Default"
  }
}

resource "aws_route_table_association" "eu-west-1a-public" {
  subnet_id = "${aws_subnet.pub-web-az-a.id}"
  route_table_id = "${aws_route_table.eu-default.id}"
}

resource "aws_route_table_association" "eu-west-1b-public" {
  subnet_id = "${aws_subnet.pub-web-az-b.id}"
  route_table_id = "${aws_route_table.eu-default.id}"
}


resource "aws_route_table_association" "eu-west-1a-private" {
  subnet_id = "${aws_subnet.priv-db-az-a.id}"
  route_table_id = "${aws_route_table.eu-default.id}"
}

resource "aws_route_table_association" "eu-west-1b-private" {
  subnet_id = "${aws_subnet.priv-db-az-b.id}"
  route_table_id = "${aws_route_table.eu-default.id}"
}</code></pre>



<h3>Define AWS Instances</h3>



<p>Having the networking part of our Terraform definition ready we will continue on configuring the needed computing instances, for which we will define which AMI (Amazon Machine Image) to use, what instance_type (t2.micro), which tags the instance will get, which subnet it is in and which key pair to use for accessing the instance via SSH. Finally, we define which security groups will be attached to the instance (security groups act as a firewall directly attached to the virtual network interface of the instance). Of course<g class="gr_ gr_824 gr-alert sel gr_gramm gr_replaced gr_inline_cards gr_disable_anim_appear Punctuation only-ins replaceWithoutSep" id="824" data-gr-id="824">,</g> we have to define these security groups later on. </p>



<pre class="wp-block-code"><code>resource "aws_instance" "WEBA" {
    ami = "${lookup(var.aws_ubuntu_awis,var.region)}"
    instance_type = "t2.micro"
    tags {
        Name = "${var.environment}-WEB001"
        Environment = "${var.environment}"
        sshUser = "ubuntu"
    }
    subnet_id = "${aws_subnet.pub-web-az-a.id}"
    key_name = "${aws_key_pair.keypair.key_name}"
    vpc_security_group_ids = ["${aws_security_group.WebserverSG.id}"]
}
resource "aws_instance" "WEBB" {
    ami = "${lookup(var.aws_ubuntu_awis,var.region)}"
    instance_type = "t2.micro"
    tags {
        Name = "${var.environment}-WEB002"
        Environment = "${var.environment}"
        sshUser = "ubuntu"
    }
    subnet_id = "${aws_subnet.pub-web-az-b.id}"
    key_name = "${aws_key_pair.keypair.key_name}"
    vpc_security_group_ids = ["${aws_security_group.WebserverSG.id}"]
}
resource "aws_instance" "BASTIONHOSTA" {
    ami = "${lookup(var.aws_ubuntu_awis,var.region)}"
    instance_type = "t2.micro"
    tags {
        Name = "${var.environment}-BASTION001"
        Environment = "${var.environment}"
        sshUser = "ubuntu"
    }
    subnet_id = "${aws_subnet.pub-web-az-a.id}"
    key_name = "${aws_key_pair.keypair.key_name}"
    vpc_security_group_ids = ["${aws_security_group.bastionhostSG.id}"]
}

resource "aws_instance" "BASTIONHOSTB" {
    ami = "${lookup(var.aws_ubuntu_awis,var.region)}"
    instance_type = "t2.micro"
    tags {
        Name = "${var.environment}-BASTION002"
        Environment = "${var.environment}"
        sshUser = "ubuntu"
    }
    subnet_id = "${aws_subnet.pub-web-az-b.id}"
    key_name = "${aws_key_pair.keypair.key_name}"
    vpc_security_group_ids = ["${aws_security_group.bastionhostSG.id}"]
}

resource "aws_instance" "SQLA" {
    ami = "${lookup(var.aws_ubuntu_awis,var.region)}"
    instance_type = "t2.micro"
    tags {
        Name = "${var.environment}-SQL001"
        Environment = "${var.environment}"
        sshUser = "ubuntu"
    }
    subnet_id = "${aws_subnet.priv-db-az-a.id}"
    key_name = "${aws_key_pair.keypair.key_name}"
    vpc_security_group_ids = ["${aws_security_group.DBServerSG.id}"]
}

resource "aws_instance" "SQLB" {
    ami = "${lookup(var.aws_ubuntu_awis,var.region)}"
    instance_type = "t2.micro"
    tags {
        Name = "${var.environment}-SQL002"
        Environment = "${var.environment}"
        sshUser = "ubuntu"
    }
    subnet_id = "${aws_subnet.priv-db-az-b.id}"
    key_name = "${aws_key_pair.keypair.key_name}"
    vpc_security_group_ids = ["${aws_security_group.DBServerSG.id}"]
}
</code></pre>



<h3>Defining Classic Loadbalancer</h3>



<p>In front of the application, we will be placing a classic load balancer, which will load-balance incoming web traffic (<strong>port 80</strong>) across the availability zones (<g class="gr_ gr_185 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="185" data-gr-id="185">eu</g><strong>-west-1a</strong> &amp; <g class="gr_ gr_203 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="203" data-gr-id="203">eu</g><strong>-west-1b</strong>) in which the web servers are located. In a later article, we will be replacing this classic load balancer with a more advanced application load balancers. </p>



<pre class="wp-block-code"><code>resource "aws_elb" "lb" {
    name_prefix = "${var.environment}-"
    subnets = ["${aws_subnet.pub-web-az-a.id}", "${aws_subnet.pub-web-az-b.id}"]
    health_check {
        healthy_threshold = 2
        unhealthy_threshold = 2
        timeout = 3
        target = "HTTP:80/"
        interval = 30
    }
    listener {
        instance_port = 80
        instance_protocol = "http"
        lb_port = 80
        lb_protocol = "http"
    }
    cross_zone_load_balancing = true
    instances = ["${aws_instance.WEBA.id}", "${aws_instance.WEBB.id}"]
    security_groups = ["${aws_security_group.LoadBalancerSG.id}"]
}</code></pre>



<h3>Defining Security Groups</h3>



<p>As mentioned before we will be attaching security groups to the defined compute instances and also the defined load balancer to only allow the specified incoming (ingress) and specified outgoing (egress) traffic. Besides using CIDR blocks subnets, we can also define other security groups as allowed traffic. <br/><br/>Also, you see an example of using separate rules attached to an security group ( resource aws_security_group_rule ). This prevents Terraform running into trouble because it can&#8217;t figure out which resource to create first (circular reference between the security groups). If this happens we then simply define the separate rules which we attach to the security rules. This allows Terraform to first create the security groups without the rules and attach them later, so solving the circular reference.<br/><br/>Also notice that we are using the bastion-hosts as proxies for the instances in the private subnets to access the internet via a squid proxy which will be installed to the bastion-hosts by Ansible.</p>



<pre class="wp-block-code"><code>resource "aws_security_group" "LoadBalancerSG"
{
    name = "LoadBalancerSG"
    vpc_id = "${aws_vpc.robertverdam.id}"
    description = "Security group for load-balancers"
    ingress {
        from_port = 80
        to_port = 80
        protocol = "TCP"
        cidr_blocks = ["0.0.0.0/0"]
        description = "Allow incoming HTTP traffic from anywhere"
    }
    ingress {
        from_port = 443
        to_port = 443
        protocol = "TCP"
        cidr_blocks = ["0.0.0.0/0"]
        description = "Allow incoming HTTPS traffic from anywhere"
    }

    egress {
        from_port = 80
        to_port = 80
        protocol = "TCP"
        security_groups = ["${aws_security_group.WebserverSG.id}"]
    }

    egress {
        from_port = 443
        to_port = 443
        protocol = "TCP"
        security_groups = ["${aws_security_group.WebserverSG.id}"]
    }

    tags
    {
        Name = "SG-Loadbalancer"
    }
}
resource "aws_security_group" "WebserverSG"
{
    name = "WebserverSG"
    vpc_id = "${aws_vpc.robertverdam.id}"
    description = "Security group for webservers"
    ingress {
        from_port = 22
        to_port = 22
        protocol = "TCP"
        security_groups = ["${aws_security_group.bastionhostSG.id}"]
        description = "Allow incoming SSH traffic from Bastion Host"
    }
  ingress {
      from_port = -1
      to_port = -1
      protocol = "ICMP"
      security_groups = ["${aws_security_group.bastionhostSG.id}"]
      description = "Allow incoming ICMP from management IPs"
  }
    egress {
        from_port = 0
        to_port = 0
        protocol = "-1"
        self = true
    }
    egress {
        from_port = 3128
        to_port = 3128
        protocol = "TCP"
        security_groups = ["${aws_security_group.bastionhostSG.id}"]
    }
    tags
    {
        Name = "SG-WebServer"
    }
}

resource "aws_security_group" "bastionhostSG" {
  name = "BastionHostSG"
  vpc_id = "${aws_vpc.robertverdam.id}"
  description = "Security group for bastion hosts"
  ingress {
      from_port = 22
      to_port = 22
      protocol = "TCP"
      cidr_blocks = ["${var.mgmt_ips}"]
      description = "Allow incoming SSH from management IPs"
  }

  ingress {
      from_port = -1
      to_port = -1
      protocol = "ICMP"
      cidr_blocks = ["${var.mgmt_ips}"]
      description = "Allow incoming ICMP from management IPs"
  }
  egress {
      from_port = 0
      to_port = 0
      cidr_blocks = ["0.0.0.0/0"]
      protocol = "-1"
      description = "Allow all outgoing traffic"
  }
  tags {
      Name = "SG-Bastionhost"
  }
}

resource "aws_security_group_rule" "lbhttpaccess" {
    security_group_id = "${aws_security_group.WebserverSG.id}"
    type = "ingress"
    from_port = 80
    to_port = 80
    protocol = "TCP"
    source_security_group_id = "${aws_security_group.LoadBalancerSG.id}"
    description = "Allow Squid proxy access from loadbalancers"
}

resource "aws_security_group_rule" "lbhttpsaccess" {
    security_group_id = "${aws_security_group.WebserverSG.id}"
    type = "ingress"
    from_port = 443
    to_port = 443
    protocol = "TCP"
    source_security_group_id = "${aws_security_group.LoadBalancerSG.id}"
    description = "Allow Squid proxy access from loadbalancers"
}

resource "aws_security_group_rule" "webproxyaccess" {
    security_group_id = "${aws_security_group.bastionhostSG.id}"
    type = "ingress"
    from_port = 3128
    to_port = 3128
    protocol = "TCP"
    source_security_group_id = "${aws_security_group.WebserverSG.id}"
    description = "Allow Squid proxy access from webservers"
}

resource "aws_security_group_rule" "dbproxyaccess" {
    security_group_id = "${aws_security_group.bastionhostSG.id}"
    type = "ingress"
    from_port = 3128
    to_port = 3128
    protocol = "TCP"
    source_security_group_id = "${aws_security_group.DBServerSG.id}"
    description = "Allow Squid proxy access from database servers"
}

resource "aws_security_group" "DBServerSG" {
    name = "DBServerSG"
    vpc_id = "${aws_vpc.robertverdam.id}"
    description = "Security group for database servers"
    ingress {
        from_port = 3306
        to_port = 3306
        protocol = "TCP"
        security_groups = ["${aws_security_group.WebserverSG.id}"]
        description = "Allow incoming MySQL traffic from webservers"
    }
    ingress {
        from_port = 22
        to_port = 22
        protocol = "TCP"
        security_groups = ["${aws_security_group.bastionhostSG.id}"]
        description = "Allow incoming SSH traffic from Bastion Host"
    }
  ingress {
      from_port = -1
      to_port = -1
      protocol = "ICMP"
      security_groups = ["${aws_security_group.bastionhostSG.id}"]
      description = "Allow incoming ICMP from management IPs"
  }
    egress {
        from_port = 3128
        to_port = 3128
        protocol = "TCP"
        security_groups = ["${aws_security_group.bastionhostSG.id}"]
    }
    tags
    {
        Name = "SG-DBServer"
    }
}
</code></pre>



<h3>Defining SSH key-pair</h3>



<p>For allowing access to the different compute-instances, we will also define <g class="gr_ gr_6 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Grammar multiReplace" id="6" data-gr-id="6">a AWS</g> key pair which allows us to login to the compute hosts via SSH (via a bastion host if needed). First, we have Terraform generate a key-pair <g class="gr_ gr_449 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling only-del replaceWithoutSep" id="449" data-gr-id="449">which which</g> we ask Terraform to use to create the AWS key pair attached to the instances.  <g class="gr_ gr_431 gr-alert gr_gramm gr_inline_cards gr_run_anim Punctuation only-ins replaceWithoutSep" id="431" data-gr-id="431">Finally</g> we tell Terraform to output the (sensitive) key on demand (by using the <strong>Terraform output</strong> command). <br/></p>



<pre class="wp-block-code"><code>resource "tls_private_key" "privkey"
{
    algorithm = "RSA" 
    rsa_bits = 4096
}
resource "aws_key_pair" "keypair"
{
    key_name = "${var.key_name}"
    public_key = "${tls_private_key.privkey.public_key_openssh}"
}
output "private_key" {
  value = "${tls_private_key.privkey.private_key_pem}"
  sensitive = true
}</code></pre>



<h3>Define Terraform variables</h3>



<p>As you have seen in the code snippets we have used some variables in there. Of course, these variables have to be defined.  The variables are defined by <g class="gr_ gr_157 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar only-ins doubleReplace replaceWithoutSep" id="157" data-gr-id="157">name</g> (i.e. <strong>region</strong>) and can be provided with a default value (i.e. <g class="gr_ gr_533 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="533" data-gr-id="533">eu</g><strong>-west-1</strong>), if not defined when deploying the application :</p>



<pre class="wp-block-code"><code>variable "region"
{
    default = "eu-west-1"
}

variable "aws_ubuntu_awis"
{
    default = {
        "eu-west-1" = "ami-2a7d75c0"
    }
}

variable "environment"{
    type = "string"
}

variable "application" {
    type = "string"
}

variable "key_name" {
    type = "string"
    default = "ec2key"
}

variable "mgmt_ips" {
    default = ["0.0.0.0/0"]
}
</code></pre>



<h3>Define Ansible inventory</h3>



<p>To be able to use these defined hosts in Ansible I&#8217;ve installed the TerraForm plugin provided from <a href="https://github.com/nbering/terraform-provider-ansible" target="_blank" rel="noopener">https://github.com/nbering/terraform-provider-ansible</a>, which together with an ansible dynamic inventory script from <a href="https://github.com/nbering/terraform-inventory/">https://github.com/nbering/terraform-inventory/</a> allows <g class="gr_ gr_158 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Grammar multiReplace" id="158" data-gr-id="158">to use</g> the information from the Terraform state as input for Ansible. <br/><br/>We define the information to pass to Ansible as following. We define the <strong>inventory_hostname</strong> which will be used by Ansible to identify the instance, and the <strong>group</strong> of hosts the instance will belong to (i.e. security / web / <g class="gr_ gr_786 gr-alert gr_spell gr_inline_cards gr_disable_anim_appear ContextualSpelling ins-del multiReplace" id="786" data-gr-id="786">db</g>) and some variables to help ansible find the correct Python interpreter and <g class="gr_ gr_1070 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Grammar only-ins doubleReplace replaceWithoutSep" id="1070" data-gr-id="1070">key</g> to <g class="gr_ gr_1082 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Grammar multiReplace" id="1082" data-gr-id="1082">connect</g> to the instance. <br/><br/><strong>ansible_ssh_common_args</strong> is used to tell ansible to use an SSH proxy connection to the bastion-host in the specified AZ which then can connect to the compute instances (and for security reasons in my definition only my <g class="gr_ gr_1304 gr-alert gr_spell gr_inline_cards gr_disable_anim_appear ContextualSpelling ins-del multiReplace" id="1304" data-gr-id="1304">homelab</g> public IP has access to these bastion hosts). <br/><br/>You also see the use of the <g class="gr_ gr_1369 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling" id="1369" data-gr-id="1369">privkey</g>.<g class="gr_ gr_1373 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="1373" data-gr-id="1373">pem</g> below, which you can output from the terraform state by <g class="gr_ gr_1475 gr-alert gr_gramm gr_inline_cards gr_run_anim Style multiReplace" id="1475" data-gr-id="1475">using :</g> <strong>terraform output private_key > <g class="gr_ gr_1512 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling" id="1512" data-gr-id="1512">privkey</g>.pem</strong> and then modifying the path in the definitions below: <br/></p>



<p> </p>



<p><a href="https://github.com/nbering/terraform-provider-ansible"></a></p>



<pre class="wp-block-code"><code>resource "ansible_host" "BASTIONHOSTA" {
  inventory_hostname = "${aws_instance.BASTIONHOSTA.public_dns}"
  groups = ["security"]
  vars
  {
      ansible_user = "ubuntu"
      ansible_ssh_private_key_file="/opt/terraform/aws_basic/privkey.pem"
      ansible_python_interpreter="/usr/bin/python3"
  }
}

resource "ansible_host" "BASTIONHOSTB" {
  inventory_hostname = "${aws_instance.BASTIONHOSTB.public_dns}"
  groups = ["security"]
  vars
  {
      ansible_user = "ubuntu"
      ansible_ssh_private_key_file="/opt/terraform/aws_basic/privkey.pem"
      ansible_python_interpreter="/usr/bin/python3"
  }
}


resource "ansible_host" "WEB001" {
  inventory_hostname = "${aws_instance.WEBA.private_dns}"
  groups = ["web"]
  vars
  {
      ansible_user = "ubuntu"
      ansible_ssh_private_key_file="/opt/terraform/aws_basic/privkey.pem"
      ansible_python_interpreter="/usr/bin/python3"
      ansible_ssh_common_args= " -o ProxyCommand=\"ssh -i /opt/terraform/aws_basic/privkey.pem -W %h:%p -q ubuntu@${aws_instance.BASTIONHOSTA.public_dns}\""
      proxy = "${aws_instance.BASTIONHOSTA.private_ip}"
  }
}

resource "ansible_host" "WEB002" {
  inventory_hostname = "${aws_instance.WEBB.private_dns}"
  groups = ["web"]
  vars
  {
      ansible_user = "ubuntu"
      ansible_ssh_private_key_file="/opt/terraform/aws_basic/privkey.pem"
      ansible_python_interpreter="/usr/bin/python3"
      ansible_ssh_common_args= " -o ProxyCommand=\"ssh -i /opt/terraform/aws_basic/privkey.pem -W %h:%p -q ubuntu@${aws_instance.BASTIONHOSTB.public_dns}\""
      proxy = "${aws_instance.BASTIONHOSTB.private_ip}"
  }
}

resource "ansible_host" "SQL001" {
  inventory_hostname = "${aws_instance.SQLA.private_dns}"
  groups = ["db"]
  vars
  {
      ansible_user = "ubuntu"
      ansible_ssh_common_args= " -o ProxyCommand=\"ssh -i /opt/terraform/aws_basic/privkey.pem -W %h:%p -q ubuntu@${aws_instance.BASTIONHOSTA.public_dns}\""
      ansible_ssh_private_key_file="/opt/terraform/aws_basic/privkey.pem"
      ansible_python_interpreter="/usr/bin/python3"
      proxy = "${aws_instance.BASTIONHOSTA.private_ip}"
  }
}

resource "ansible_host" "SQL002" {
  inventory_hostname = "${aws_instance.SQLB.private_dns}"
  groups = ["db"]
  vars
  {
      ansible_user = "ubuntu"
      ansible_ssh_common_args= " -o ProxyCommand=\"ssh -i /opt/terraform/aws_basic/privkey.pem -W %h:%p -q ubuntu@${aws_instance.BASTIONHOSTB.public_dns}\""
      ansible_ssh_private_key_file="/opt/terraform/aws_basic/privkey.pem"
      ansible_python_interpreter="/usr/bin/python3"
      proxy = "${aws_instance.BASTIONHOSTB.private_ip}"
  }
}
</code></pre>



<h3>Deploy application</h3>



<p>After defining everything we need to deploy the application-infrastructure we simply run <strong>terraform</strong> <strong>init </strong>in the same folder as where you created your TerraForm .tf file to initialize the TerraForm environment:</p>



<figure class="wp-block-image"><img loading="lazy" width="772" height="403" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding.png" alt="" class="wp-image-3578" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding.png 772w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-300x157.png 300w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-768x401.png 768w" sizes="(max-width: 772px) 100vw, 772px" /><figcaption>Terraform init</figcaption></figure>



<p>Then it is time to run <strong>terraform plan</strong> which tells terraform to see what has to be done to deploy the infrastructure we defined before. Terraform will ask you to input any variables you didn&#8217;t define on the <g class="gr_ gr_226 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="226" data-gr-id="226">commandline</g> (by using the parameter -var &lt;var-name>=&lt;value>)</p>



<figure class="wp-block-image"><img loading="lazy" width="953" height="132" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-3.png" alt="" class="wp-image-3581" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-3.png 953w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-3-300x42.png 300w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-3-768x106.png 768w" sizes="(max-width: 953px) 100vw, 953px" /><figcaption>Terraform plan</figcaption></figure>



<p>If the output of the command looks ok, we can then deploy the application to AWS by typing: <strong>terraform apply</strong> (followed by the same variables) and answering the confirmation to perform these actions with yes (or use the <g class="gr_ gr_135 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="135" data-gr-id="135">commandline</g> <g class="gr_ gr_144 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="144" data-gr-id="144">paramete</g>r -auto-approve)</p>



<figure class="wp-block-image"><img loading="lazy" width="1050" height="447" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-5.png" alt="" class="wp-image-3583" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-5.png 1050w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-5-300x128.png 300w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-5-768x327.png 768w" sizes="(max-width: 1050px) 100vw, 1050px" /><figcaption>Terraform apply</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" width="609" height="83" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-6.png" alt="" class="wp-image-3584" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-6.png 609w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-6-300x41.png 300w" sizes="(max-width: 609px) 100vw, 609px" /><figcaption>Apply complete!</figcaption></figure>



<p>Destroying the complete <g class="gr_ gr_3 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="3" data-gr-id="3">appplication</g>-infrastructure again is even as simple, just replace the apply command with the <g class="gr_ gr_51 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling" id="51" data-gr-id="51">destroy</g> and your environment gets cleaned up again nicely.</p>



<figure class="wp-block-image"><img loading="lazy" width="1087" height="23" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-7.png" alt="" class="wp-image-3585" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-7.png 1087w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-7-300x6.png 300w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-7-768x16.png 768w" sizes="(max-width: 1087px) 100vw, 1087px" /><figcaption>Destroy environment</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" width="781" height="339" src="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-8.png" alt="" class="wp-image-3586" srcset="https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-8.png 781w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-8-300x130.png 300w, https://robertverdam.eu/wp-content/uploads/2018/09/afbeelding-8-768x333.png 768w" sizes="(max-width: 781px) 100vw, 781px" /></figure>



<h2>End of part 1</h2>



<p>Hope this first post from the blog post series gives you a good insight in how to define an application infrastructure in Terraform to deploy an application on AWS. <br/><br/>In the next <g class="gr_ gr_239 gr-alert gr_gramm gr_inline_cards gr_run_anim Punctuation only-ins replaceWithoutSep" id="239" data-gr-id="239">post</g> we will see how to use the information from Terraform in Ansible to do further configuration of the compute instances.<br/><br/>Any comments, questions, tips&amp;tricks are welcome, so please feel free to contact me!  </p>



<p> </p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2018/09/03/deploying-an-application-to-aws-with-terraform-and-ansible-part-1-terraform/">Deploying an application to AWS with Terraform and Ansible &#8211; Part 1 (Terraform)</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robertverdam.eu/2018/09/03/deploying-an-application-to-aws-with-terraform-and-ansible-part-1-terraform/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3577</post-id>	</item>
		<item>
		<title>Ravello on Oracle Cloud Infrastructure</title>
		<link>https://robertverdam.eu/2017/09/21/ravello-oracle-cloud-infrastructure/</link>
					<comments>https://robertverdam.eu/2017/09/21/ravello-oracle-cloud-infrastructure/#comments</comments>
		
		<dc:creator><![CDATA[Robert Verdam]]></dc:creator>
		<pubDate>Thu, 21 Sep 2017 17:00:05 +0000</pubDate>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[OCI]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Ravello]]></category>
		<guid isPermaLink="false">https://robertverdam.eu/?p=3433</guid>

					<description><![CDATA[<p>Previously I blogged about the Ravello platform and how it allows you to move an VMware workload (app) to the cloud (AWS / GCE) as-is, hence it is as easy as exporting the application from your VMware-environment and importing it into Ravello (here). Recently I was invited to join the beta of the new Ravello [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2017/09/21/ravello-oracle-cloud-infrastructure/">Ravello on Oracle Cloud Infrastructure</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Previously I blogged about the Ravello platform and how it allows you to move an VMware workload (app) to the cloud (AWS / GCE) as-is, hence it is as easy as exporting the application from your VMware-environment and importing it into Ravello (<a href="//robertverdam.eu/2015/04/20/ravello-systems-smart-labs/">here</a>).</p>
<p>Recently I was invited to join the beta of the new Ravello platform which also allows to run these Ravello workloads on Oracle&#8217;s own cloud (Oracle Cloud Infrastructure) and test how the new additional modes of running Ravello increases performance for the workloads.</p>
<p><span id="more-3433"></span></p>
<h2>DVDStore v3 Benchmark</h2>
<p>I decided to do a DVDStore3 performance benchmark first by running it in each ravello mode.  For more information about the different Ravello modes scroll down to the next paragraph.</p>
<p>So first I spun it up on the West Europe 1 and US East 2 region, which uses the &#8216;tradional&#8217; Ravello mode of software assisted nested virtualization (by binary translation).</p>
<p><figure id="attachment_3506" aria-describedby="caption-attachment-3506" style="width: 682px" class="wp-caption aligncenter"><a href="//robertverdam.eu/wp-content/uploads/2017/10/Ravello-on-Oracle-Cloud-Infrastructure-01.png"><img loading="lazy" class="wp-image-3506 size-full" src="//robertverdam.eu/wp-content/uploads/2017/10/Ravello-on-Oracle-Cloud-Infrastructure-01-e1505381576200.png" alt="" width="682" height="200" /></a><figcaption id="caption-attachment-3506" class="wp-caption-text">DVDStore3 Application defined on Ravello</figcaption></figure></p>
<p>After this I spun up the same DVDStore3 application on the US East 5 region (which is the Oracle Cloud Infrastructure region). This allows us to see the performance benefits of running the workload with <strong>Hardware</strong> Assisted Nested Virtualization instead of <strong>Software</strong> assisted virtualization.</p>
<p>Doing the tests on the different regions was as easy as creating a blueprint from the application, create an application from the blueprint and then republishing it to the dedicated region for this beta test (US East 5). So a few clicks and I had the application runnning on another region &amp; cloud. This is also what I find to be a enormous benefit of Ravello.</p>
<p>Finally I ran the same application on bare-metal (which is the Ravello HVX-hypervisor running directly on the Oracle Cloud Infrastructure), by modifying the <strong>PreferPhysicalHost=true</strong> parameter of the app-VM and restarting it.</p>
<p><figure id="attachment_3519" aria-describedby="caption-attachment-3519" style="width: 300px" class="wp-caption aligncenter"><a href="//robertverdam.eu/wp-content/uploads/2017/10/Ravello-on-Oracle-Cloud-Infrastructure-03.png"><img loading="lazy" class="size-medium wp-image-3519" src="//robertverdam.eu/wp-content/uploads/2017/10/Ravello-on-Oracle-Cloud-Infrastructure-03-300x279.png" alt="" width="300" height="279" srcset="https://robertverdam.eu/wp-content/uploads/2017/10/Ravello-on-Oracle-Cloud-Infrastructure-03-300x279.png 300w, https://robertverdam.eu/wp-content/uploads/2017/10/Ravello-on-Oracle-Cloud-Infrastructure-03.png 603w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-3519" class="wp-caption-text">PreferPhysicalHost setting on VM</figcaption></figure></p>
<p>I ran the tests for an hour in each mode and noted the results, which are the total amount of orders processed in an hour.</p>
<p><figure id="attachment_3536" aria-describedby="caption-attachment-3536" style="width: 750px" class="wp-caption aligncenter"><a href="//robertverdam.eu/wp-content/uploads/2017/09/Ravello-on-Oracle-Cloud-Infrastructure-04.png"><img loading="lazy" class="size-large wp-image-3536" src="//robertverdam.eu/wp-content/uploads/2017/09/Ravello-on-Oracle-Cloud-Infrastructure-04-750x400.png" alt="" width="750" height="400" /></a><figcaption id="caption-attachment-3536" class="wp-caption-text">DVDstore3 test running</figcaption></figure></p>
<p>Although i&#8217;ve used a simple test setup, because of the fact test setups are identical (vCPU, RAM, etc.) the test in my opinion gives a fair representation of the different modes Ravello can run in and which relative performance improvement you can get from running your workloads with Ravello running on Oracle&#8217;s own cloud infrastructure instead of on AWS / GCE with binary translation.</p>
<h2>Ravello Modes</h2>
<p>As promised some more clarification on the 3 modes Ravello can run your unmodified VMware workload in, depending on the cloud the application is published to:</p>
<ul>
<li><strong>Software assisted nested virtualization by binary Translation</strong><br />
Ravello running on AWS, GCE and OPC:<br />
Used when the underlying clouds where the hardware virtualization extensions are not available, HVX uses a software based nested virtualization technology called binary translation with direct execution to run the VMware VMs. This technology offers good performance that is acceptable for a wide variety of the workloads.</li>
<li><strong>Hardware Assisted Nested Virtualization</strong><br />
Ravello running on Oracle Cloud Infrastructure:<br />
Oracle Cloud Infrastructure runs on the next generation of blazing fast hardware that supports virtualization extensions. These extensions allow multiple guest operating systems to share the same underlying hardware in safe and efficient manner. HVX utilizes these hardware assist CPU instruction sets to perform its nested virtualization directly on the underlying cloud hardware and offers significant performance improvements over the previous generation of HVX. Typically, the cloud providers do not expose the hardware assisted virtualization extensions to the guest VMs, which limits the performance that customers can realize when operating in a nested virtualization mode. However, with Ravello running on Oracle Cloud Infrastructure, we now have complete access to these hardware assist virtualization extensions, and can make performance boosts a reality.</li>
<li><strong>Bare-Metal<br />
</strong>Ravello running on Oracle Cloud Infrastructure, directly on HVX:<br />
HVX also supports the ability to run directly on top of bare metal servers. By eliminating a layer Hardware assisted nested virtualization –  of hypervisor in the middle, HVX is able to provide near native performance.</li>
</ul>
<p>A graphical representation of the explanation above:</p>
<h2><a href="//robertverdam.eu/2015/04/20/ravello-systems-smart-labs/"><img loading="lazy" class="aligncenter wp-image-3434 size-full" src="//robertverdam.eu/wp-content/uploads/2017/08/Ravello-on-oracle-cloud-infrastructure-001.png" alt="3 Ravello modes" width="763" height="278" srcset="https://robertverdam.eu/wp-content/uploads/2017/08/Ravello-on-oracle-cloud-infrastructure-001.png 763w, https://robertverdam.eu/wp-content/uploads/2017/08/Ravello-on-oracle-cloud-infrastructure-001-300x109.png 300w" sizes="(max-width: 763px) 100vw, 763px" /></a>DVDStore</h2>
<p>So what is this DVDStore you&#8217;re running these tests with?</p>
<p>I couldn&#8217;t come up with a better explanation of what is then quoting what the author says that it is:<br />
DVDStore 3.0 ( Source: <a href="https://github.com/dvdstore/ds3">Github</a> )</p>
<blockquote><p>DVD Store 3 (DS3) is an open source test / benchmark tool that simultaes an online store that sells DVDs. Customers can login, browse DVDs, browse reviews of DVDs, create new reviews, rate reviews, become premium members, and purchase DVDs. Everything needed to create, load, and stress this online store is included in the DVD Store project.</p></blockquote>
<p>I set-up a simple Ravello application which consists out of a DB/App/Webserver-VM (DB) on which a driver-VM (MGMT) simulates the OLTP-workload. I used DVDStore with a medium-sized database (10GB) and used the following settings for the web-driver running the workload on.</p>
<pre class="brush: plain; title: ; notranslate">target=DB
n_threads=100
ramp_rate=1000
run_time=60
db_size=10GB
warmup_time=5
think_time=0
pct_newcustomers=20
n_searches=3
search_batch_size=5
n_line_items=5
virt_dir=ds3
page_type=php
windows_perf_host=
linux_perf_host=
detailed_view=Y
out_filename=results.txt</pre>
<h2>DVDStore performance benchmark results</h2>
<p>The following (interactive) graph show the results which were obtained from the benchmarks described previously and show the performance for the different Ravello modes and especially the performance improvement running the workloads on Ravello on Oracle Cloud Infrastructure, which show it to be twice as fast (for this DVDStore3-application):</p>
<p><div class="visualizer-front-container"><div class="visualizer-actions"><a href="#" class="visualizer-action visualizer-action-print" data-visualizer-type="print" data-visualizer-chart-id="3492" data-visualizer-container-id="visualizer-3492-965909233" data-visualizer-mime="" title="Print Chart">Print</a> &nbsp;<a href="#" class="visualizer-action visualizer-action-csv" data-visualizer-type="csv" data-visualizer-chart-id="3492" data-visualizer-container-id="visualizer-3492-965909233" data-visualizer-mime="application/csv" title="Download as a CSV">CSV</a> &nbsp;<a href="#" class="visualizer-action visualizer-action-xls" data-visualizer-type="xls" data-visualizer-chart-id="3492" data-visualizer-container-id="visualizer-3492-965909233" data-visualizer-mime="application/vnd.ms-excel" title="Download as a spreadsheet">Excel</a> &nbsp;<a href="#" class="visualizer-action visualizer-action-copy" data-visualizer-type="copy" data-visualizer-chart-id="3492" data-visualizer-container-id="visualizer-3492-965909233" data-visualizer-mime="" title="Copy data" data-clipboard-text="﻿Region,Total orders (1 hour)
string,number
West Europe 1 (Binary Translation),11106
US East 2 (Binary Translation),13518
US East 5 (with Hardware Assisted Nested Virtualization),21384
US East 5 (with Bare-Metal),22916">Copy</a> &nbsp;</div><style type="text/css" name="visualizer-custom-css" id="customcss-visualizer-3492">.locker,.locker-loader{position:absolute;top:0;left:0;width:100%;height:100%}.locker{z-index:1000;opacity:.8;background-color:#fff;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter:alpha(opacity=80)}.locker-loader{z-index:1001;background:url(https://robertverdam.eu/wp-content/plugins/visualizer/images/ajax-loader.gif) no-repeat center center}.dt-button{display:none!important}.visualizer-front-container.visualizer-lazy-render{content-visibility: auto;}</style><div id="visualizer-3492-965909233"class="visualizer-front  visualizer-front-3492"></div><!-- Not showing structured data for chart 3492 because description is empty --></div></p>
<h2>Running ESXi on &#8216;bare-metal&#8217; Oracle Cloud Infrastructure</h2>
<p>Besides the above performance benchmark testing, I also have a &#8216;full&#8217; ESXi 6.5/NSX lab running on Ravello, which I dediced to spin up on the new &#8216;bare-metal&#8217; option (with HVX running on bare-metal) with ESXi on top.</p>
<p><figure id="attachment_3521" aria-describedby="caption-attachment-3521" style="width: 300px" class="wp-caption aligncenter"><a href="//robertverdam.eu/wp-content/uploads/2017/10/Ravello-on-Oracle-Cloud-Infrastructure-02.png"><img loading="lazy" class="size-medium wp-image-3521" src="//robertverdam.eu/wp-content/uploads/2017/10/Ravello-on-Oracle-Cloud-Infrastructure-02-300x147.png" alt="" width="300" height="147" srcset="https://robertverdam.eu/wp-content/uploads/2017/10/Ravello-on-Oracle-Cloud-Infrastructure-02-300x147.png 300w, https://robertverdam.eu/wp-content/uploads/2017/10/Ravello-on-Oracle-Cloud-Infrastructure-02-768x377.png 768w, https://robertverdam.eu/wp-content/uploads/2017/10/Ravello-on-Oracle-Cloud-Infrastructure-02.png 1909w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-3521" class="wp-caption-text">Full ESXi lab on Ravello</figcaption></figure></p>
<p>I noticed significant performance improvements for the nested VM&#8217;s running within my nested ESXi environment, as previously with binary translation it made it almost unpossible to use by the many layers of nested vitualization made it very slow using these VM&#8217;s.</p>
<h2>Increased VM size</h2>
<p>Good to mention is that the max number of vCPUs that you can assign to a VM running on Ravello on Oracle Cloud Infrastructure, has also been increased from 8 to 32 and the vRAM-size has gone up from 64GB to 200GB. So potentially it would be possible to run the benchmark with more power and squeeze out some more performance.</p>
<p>Besides that it allows to run quite a decent homelab :).</p>
<p><figure id="attachment_3552" aria-describedby="caption-attachment-3552" style="width: 600px" class="wp-caption aligncenter"><a href="//robertverdam.eu/wp-content/uploads/2017/09/Ravello-On-Cloud-Infrastructure-05.png"><img loading="lazy" class="size-large wp-image-3552" src="//robertverdam.eu/wp-content/uploads/2017/09/Ravello-On-Cloud-Infrastructure-05-600x400.png" alt="" width="600" height="400" /></a><figcaption id="caption-attachment-3552" class="wp-caption-text">Nice specifications for a homelab</figcaption></figure></p>
<h2>Conclusion</h2>
<p>Running the DVDStore3-benchmark on Ravello on Oracle Cloud Infrastructure shows significant performance improvement and doubles the orders processed in an hour for the DVDStore3-application. The performance running the benchmark on bare-metal HVX was even better.</p>
<p>Running my ESXi-lab on Ravello on Oracle Cloud Infrastructure sure gives additional performance and makes it very usable as a replacement for my homelab.</p>
<p>Thanks again to Oracle for providing us vExperts with this free service again this year. Would be fantastic if we could keep on using the new Ravello Modes for homelab usage next year!</p>
<h2>More information</h2>
<p><span class="fontstyle0">Interested in trying Ravello on Oracle Cloud Infrastructure?<br />
</span>Free trial is available if you follow <a href="http://cloud.oracle.com/en_US/tryit">this link</a> or you can drop them a line on <a href="mailto:ravellosales_ww_grp@oracle.com">ravellosales_ww_grp@oracle.com</a></p>
<p>If you have any questions on Ravello and / or running it on Oracle Cloud Infrastructure, please feel free to contact me!</p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2017/09/21/ravello-oracle-cloud-infrastructure/">Ravello on Oracle Cloud Infrastructure</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robertverdam.eu/2017/09/21/ravello-oracle-cloud-infrastructure/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3433</post-id>	</item>
		<item>
		<title>VMCE-ADOv1 (exam) experience</title>
		<link>https://robertverdam.eu/2017/07/19/vmce-adov1-exam-experience/</link>
					<comments>https://robertverdam.eu/2017/07/19/vmce-adov1-exam-experience/#respond</comments>
		
		<dc:creator><![CDATA[Robert Verdam]]></dc:creator>
		<pubDate>Wed, 19 Jul 2017 14:00:30 +0000</pubDate>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[architect]]></category>
		<category><![CDATA[certification]]></category>
		<category><![CDATA[Veeam]]></category>
		<category><![CDATA[vmca]]></category>
		<guid isPermaLink="false">https://robertverdam.eu/?p=3393</guid>

					<description><![CDATA[<p>As I wanted to take the next step in certification on the Veeam Backup &#38; Replication solution after achieving the VMCE-certification last year, I decided to take the (mandatory) VMCE-ADOv1-course and subsequently have a go at the exam to become Veeam Certified Architect. For more information about these certifications please have a look at this [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2017/07/19/vmce-adov1-exam-experience/">VMCE-ADOv1 (exam) experience</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>As I wanted to take the next step in certification on the Veeam Backup &amp; Replication solution after achieving the <a href="//robertverdam.eu/2016/06/13/my-vmce-v9-experience/" target="_blank" rel="noopener">VMCE-certification</a> last year, I decided to take the (mandatory) VMCE-ADOv1-course and subsequently have a go at the exam to become <strong>Veeam Certified Architect</strong>.</p>
<p>For more information about these certifications please have a look at <a href="https://www.veeam.com/vmce.html">this page</a> dedicated to the certifications currently available.</p>
<p><a href="//robertverdam.eu/wp-content/uploads/2017/07/Veeam-Certified-Architect-Badge.png"><img loading="lazy" class="size-medium wp-image-3424 aligncenter" src="//robertverdam.eu/wp-content/uploads/2017/07/Veeam-Certified-Architect-Badge-300x103.png" alt="Veeam Certified Architect" width="300" height="103" srcset="https://robertverdam.eu/wp-content/uploads/2017/07/Veeam-Certified-Architect-Badge-300x103.png 300w, https://robertverdam.eu/wp-content/uploads/2017/07/Veeam-Certified-Architect-Badge.png 696w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>I&#8217;m proud to have passed the exam and now am an <strong>Veeam Certified Architect</strong>!</p>
<p><span id="more-3393"></span></p>
<h1>VMCE-ADOv1 Course</h1>
<p>Really enjoyed the 2-day course delivered by <a href="https://twitter.com/bpellegrino">Bart Pellegrino</a> (via Copaco / @Academy), as it was a good mix between theory, interactions between teacher/students and students/students and whiteboarding. The whiteboarding sections consisted out of 2 design scenario&#8217;s, in which the focus was on how us students figured out a way to fulfill the requirements of the client in our designs. It was not about what the solution finally turned out to be, but the thinking process behind getting to the designs.</p>
<p>The training really was an interactive experience and no one-way traffic from teacher to students. Wish every training could be like this!</p>
<p>The interactions where really insightful as they contained lots of practical examples, about how to design a Veeam-solutions in real life and what pitfalls to watch out for and lots of alternative solutions to problems. The training really strengthened my understanding of the Veeam Availibility Suite and gave me tools to design &amp; optimize the environments even more in the future.</p>
<p>To give you an idea of the topics covered during the Veeam Certified Engineer Advanced : Design &amp; Optimization training, I provided a short overview of the contents of the training below.:</p>
<h2>Training Day 1</h2>
<ul>
<li>Design and Sizing</li>
<li>Infrastructure assessment</li>
<li>Security</li>
<li>Design Scenario: Part 1</li>
</ul>
<h2>Training Day 2</h2>
<ul>
<li>Optimizations</li>
<li>Design Scenario: Part 2</li>
<li>Automation</li>
<li>Audit and Compliance</li>
<li>Troubleshooting</li>
</ul>
<p><a href="//robertverdam.eu/wp-content/uploads/2017/07/Veeam-Certified-Engineer-ADO.png"><img loading="lazy" class="size-medium wp-image-3423 aligncenter" src="//robertverdam.eu/wp-content/uploads/2017/07/Veeam-Certified-Engineer-ADO-300x175.png" alt="Veeam Certified Engineer - ADO" width="300" height="175" srcset="https://robertverdam.eu/wp-content/uploads/2017/07/Veeam-Certified-Engineer-ADO-300x175.png 300w, https://robertverdam.eu/wp-content/uploads/2017/07/Veeam-Certified-Engineer-ADO.png 696w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<h1>Exam Day</h1>
<p>I decided to do the exam just for I go on holiday, just to be sure the training material from the course was still fresh in memory. Because the exam of course is under NDA, there is not much I can say  about the contents.</p>
<p>I think the (multiple choice / Select 2/3) questions on the exam are fair, but it&#8217;s very helpful to have practical experience with designing, optimizing and troubleshooting real Veeam environments, as some questions just dig deep into your insights into how Veeam Backup &amp; Replication and Veeam One work.</p>
<p>Overall this was one of the more challenging exams I have taken recently, so I&#8217;m very happy I <span style="text-decoration: underline;"><strong>PASSED</strong></span> the exam with a whopping score of <strong>86%</strong>.</p>
<h2>Training Materials</h2>
<p>Preparing for the exam I used the following training materials (in order of importance to me):</p>
<ul>
<li>VMCE-ADOv1 Textbook</li>
<li>VMCE-ADOv1 Handouts</li>
<li>Information @ <a href="http://backitup.online/">Backitup.online </a>(Bart Pellegrino)</li>
<li><a href="https://bp.veeam.expert">Veeam Best Practices Guide</a></li>
<li>VMCE v9 textbook</li>
</ul>
<p>The <a href="http://backitup.online/vmce-adov1/vmcea-practice-exam.html">exam simulator</a> (practice exam) on Bart Pelligrino&#8217;s site provides a good insight in the way the questions on the exam are asked, so please give it a go. It also gives a good idea on which area you need to focus more after attending the course.</p>
<p>After day 1 of the training I already scored <strong>63%</strong> on the practice test and after day 2 and some studying of the training-material already <strong>83%</strong>. The exam itself I passed with <strong>86%</strong>, so to me this proves the exam simulator gives a good representation of where you stand in the process of being able to pass the exam.</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2017/07/19/vmce-adov1-exam-experience/">VMCE-ADOv1 (exam) experience</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robertverdam.eu/2017/07/19/vmce-adov1-exam-experience/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3393</post-id>	</item>
		<item>
		<title>Quick review: NAKIVO Backup &#038; Replication 6.2</title>
		<link>https://robertverdam.eu/2016/12/20/quick-review-nakivo-backup-replication-6-2/</link>
					<comments>https://robertverdam.eu/2016/12/20/quick-review-nakivo-backup-replication-6-2/#respond</comments>
		
		<dc:creator><![CDATA[Robert Verdam]]></dc:creator>
		<pubDate>Tue, 20 Dec 2016 10:07:45 +0000</pubDate>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Replication]]></category>
		<category><![CDATA[VMware]]></category>
		<guid isPermaLink="false">https://robertverdam.eu/?p=3191</guid>

					<description><![CDATA[<p>We are proud to welcome yet another sponsor to our blog: NAKIVO! Thanks for supporting Cloudfix! The least we can do is write a introductory  blog about their backup &#38; replication solution for VMware. So this is not a full review of all the features of the product, but I hope it gives you a [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2016/12/20/quick-review-nakivo-backup-replication-6-2/">Quick review: NAKIVO Backup &#038; Replication 6.2</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>We are proud to welcome yet another sponsor to our blog: <strong>NAKIVO</strong>!</p>
<p>Thanks for supporting Cloudfix! The least we can do is write a introductory  blog about their backup &amp; replication solution for VMware. So this is not a full review of all the features of the product, but I hope it gives you a good glimpse of the product and I get&#8217;s you interested to do some further investigation into their products.</p>
<p>Besides a backup solution for VMware environments, NAKIVO is also offering a solution for backing up AWS-instances, so if you&#8217;re looking for a solution for backing up and recovering your company&#8217;s EC2 instances, please give their website <a href="http://www.naviko.com">www.nakivo.com</a> a visit.</p>
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-BoxShot.png"><img loading="lazy" class="size-full wp-image-3192 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-BoxShot.png" alt="naviko-backup-replication-boxshot" width="338" height="354" srcset="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-BoxShot.png 338w, https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-BoxShot-286x300.png 286w, https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-BoxShot-300x314.png 300w" sizes="(max-width: 338px) 100vw, 338px" /></a></p>
<p><span id="more-3191"></span></p>
<h2>Deployment</h2>
<p>NAKIVO Backup &amp; Replication for VMware  can be deployed in a couple of ways:</p>
<ul>
<li>Virtual Appliance (OVF)</li>
<li>NAS</li>
<li>AWS Amazon Machine Image</li>
<li>Linux-/Windows installer</li>
</ul>
<p>In my CloudFix lab I used a standard script to deploy the OVA to my lab-infrastructure via PowerCLI, which can be found below. I decided to put the DATA-vmdk (which NAKIVO uses for it&#8217;s repository) on a seperate (USB) datastore, so the backup data is seperated from the production data :).</p>
<pre class="brush: powershell; title: ; notranslate">
&amp;amp; 'C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1'
 # Defines the used credentials to connect to the vCenter
 $Deploy_Username_VC = 'administrator@vsphere.local'
 $Deploy_Password_VC = 'VMware1!'

# Defines the datastore to which to deploy the VM
 $Deploy_To_Datastore_VM = 'NAS-VM'

# Defines the datastore to move the data-VMDK to
 $Deploy_To_Datastore_Data = 'NAS-USB-02'

# Defines the VM-name to use for this NAKIVO B&amp;amp;R Appliance
 $Deploy_To_Name = 'TH-NAKIVO-02'

# Defines the Port-Group to connect the VM to
 $Deploy_To_PG = 'RV-Prod'

try{

$ViServer = Connect-VIServer -Server $Deploy_To_VC -User $Deploy_Username_VC -Password $Deploy_Password_VC
 $OVF_Config = Get-OvfConfiguration -Ovf $Naviko_OVF_Location

# Set network to deploy to this network
 $ovf_config.NetworkMapping.VM_Network.Value = $Deploy_To_PG

# Import OVF
 Import-VApp -OvfConfiguration $OVF_Config -Source $Naviko_OVF_Location -VMHost $Deploy_To_Host -Datastore $Deploy_To_Datastore_VM -DiskStorageFormat Thin -Name $Deploy_To_Name

# Move Data disk to other datastore if needed
 if ($Deploy_To_Datastore_VM -ne $Deploy_To_Datastore_Data)
 {
 Get-HardDisk -VM $Deploy_To_Name -Name &quot;Hard disk 2&quot; | Move-HardDisk -Datastore $Deploy_To_Datastore_Data -Confirm:$false
 }

# Start VM
 $vm = Start-VM -VM $Deploy_To_Name

# Wait for guest heartbeat
 while ( (get-vm -Name $Deploy_To_Name | Get-View).GuestHeartbeatStatus -ine 'green')
 {
 Write-Host &quot;Waiting for VM to respond to heartbeat&quot;
 Start-Sleep -Seconds 5
 }
 }
 finally
 {
 Disconnect-VIServer -Force
 }
</pre>
<h2>VMware Backup</h2>
<p>NAKIVO runs all backup jobs in a incremental-forever fashion to a backup repository. This backup repository can be located on a storage local to the assigned transporter (which moves the data to the backup repository), a remote CIFS / NFS share or Amazon EBS (Elastic Block Storage) via a transporter deployed as Amazon EC2 instance.  The inital transporter is included with the installation of the virtual appliance.</p>
<p>These backup repositories can be setup to :</p>
<ul>
<li>Compression</li>
<li>Global (data)-deduplication</li>
<li>Encryption for the data at-rest.</li>
</ul>
<p>&nbsp;</p>
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-01.png"><img loading="lazy" class="size-large wp-image-3194 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-01-1024x869.png" alt="naviko-backup-replication-backup-01" width="648" height="550" srcset="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-01-1024x869.png 1024w, https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-01-300x255.png 300w, https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-01-768x652.png 768w, https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-01.png 1098w" sizes="(max-width: 648px) 100vw, 648px" /></a></p>
<p>The VM data can be accessed by the transporters in three ways:</p>
<ul>
<li><strong>Direct SAN mode</strong><br />
The SAN mode leverages VMware VDDK library to mount the LUN&#8217;s directly to the transporter). This allows you to directly read the VM data from the source-LUN via the FC / iSCSI storage network.</li>
<li><strong>Hot-Add<br />
</strong>When using the virtual appliance as a transporter, hot-add mode can be leveraged to attach the (snapshotted) vmdk directly to the transporter and reading directly from the VM&#8217;s VMDK.</li>
<li><strong>LAN<br />
</strong>If the methods above are not available, data can be read via NBT (Network Block Device Transport), reading the data via the LAN (VMkernel interface which is assigned for NFC (Network File Copy).</li>
</ul>
<p>The primary backup jobs can be setup to use GFS rotation scheme directly (so no backup copy jobs needed to set this up).</p>
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-02.png"><img loading="lazy" class="size-full wp-image-3195 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-02.png" alt="naviko-backup-replication-backup-02" width="501" height="263" srcset="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-02.png 501w, https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-02-300x157.png 300w" sizes="(max-width: 501px) 100vw, 501px" /></a></p>
<p>Backup copy jobs can then be used to create a additional copy of the backup data (for example for offsite storage).</p>
<h2>Recovery Options</h2>
<p>NAKIVO Backup &amp; Replication offers the following options to recover data using the VMware VM Backups:</p>
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-03.png"><img loading="lazy" class="size-full wp-image-3196 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-03.png" alt="naviko-backup-replication-backup-03" width="283" height="357" srcset="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-03.png 283w, https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-03-238x300.png 238w" sizes="(max-width: 283px) 100vw, 283px" /></a></p>
<ul>
<li><strong>Flash VM Boot</strong><br />
Flash VM boot allows to spin-up the VM directly from the backup repository by letting the transporter expose the VM via iSCSI to a vSphere-environment. When you start a job you select the datastore to which the VM writes the changes of the active VM. This feature can also be leveraged to do backup verification or as a lab-environment for testing application patches. Also it&#8217;s possible to Storage vMotion the VM back to it&#8217;s original location while it&#8217;s being run from the backup repository while using iSCSI. When discarding the VM (when ending the Flash VM Boot session it will only remove the snapshot it created when starting the VM from the backup repository).</li>
<li><strong>Instant File Recovery<br />
</strong>Using a web-based file recovery wizard files can be recovered by forwarding it via email / downloading it (as a zip-file) from the web browser and recovering it manual to it&#8217;s original location or whatever you want to do with the files.</li>
<li><strong>Instant Active Directory / Exchange Objects Recovery<br />
</strong>For supported application databases (AD via ntds.dit and Exchange) application-item level recovery can be done. For Active Directory these objects can be forwarded via email or downloaded as a zip file (which then contains a ldif, which can be imported into the AD to recover the selected products). Unfortunately I have to Exchange environment currently in my lab-environment, but my guess is the restore works the same way. So selecting the objects you want to recover and them forward them by mail or download to then manually recover them on the specific application.</li>
</ul>
<p>For both the instant file recovery and the instant application-item level recovery I would to love to be able to restore it directly back to the VM (using guest credentials if needed) and to be able to search through multiple restore points for specific files and versions of these files.</p>
<h2>Replication</h2>
<p>NAKIVO Backup &amp; Replication also support replication of VM&#8217;s and even allows you to keep 30 restore points to revert your replica to and apply GFS (GrandFather &#8211; Father &#8211; Son) logic to it. So these replicas can also be used as an additional source for recovery of backup data. These replication jobs can also leverage VMware features like CBT and VMware Tools quiescing, just like the backup jobs. Ofcourse these replicas can be used for DR-purposes (with Failover and Failback capabilities built into the product). Also basic verification can be set up (just as for the other jobs) which sends you a screenshot of the booted VM (with network detached from the VM).</p>
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-04.png"><img loading="lazy" class="size-full wp-image-3205 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-04.png" alt="naviko-backup-replication-backup-04" width="600" height="645" srcset="https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-04.png 600w, https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-04-279x300.png 279w, https://robertverdam.eu/wp-content/uploads/2016/12/Naviko-Backup-Replication-Backup-04-300x323.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>
<p>Also the replica&#8217;s can be pre-seeded using removable media and resume the replication with incremental replication afterwards.</p>
<p>If we use an additional transporter for these jobs we can also apply network encryption and network acceleration to the data while in transit.</p>
<h2>Conclusion</h2>
<p>I like the ease of deployment of this product and the clean interface it has, which allows you to have the product setup and running in no time.</p>
<p>I would really encourage you to give NAKIVO Backup &amp; Replication 6.2 a go, if you&#8217;re looking for a easy to implement solution for your (small to medium-sized) VMware environments.  You can sign up at <a href="https://www.nakivo.com/vmware/vmware-backup-trial.html">https://www.nakivo.com/vmware/vmware-backup-trial.html</a> for a free trial and give it a go yourself to see if the feature-set is sufficient for your backup and replication needs.</p>
<p>Hope you liked this quick review.</p>
<p>Happy holidays!</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2016/12/20/quick-review-nakivo-backup-replication-6-2/">Quick review: NAKIVO Backup &#038; Replication 6.2</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robertverdam.eu/2016/12/20/quick-review-nakivo-backup-replication-6-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3191</post-id>	</item>
		<item>
		<title>VMworld EMEA Announcements: VMware Cloud on AWS</title>
		<link>https://robertverdam.eu/2016/10/19/vmworld-emea-announcements-vmware-cloud-on-aws/</link>
					<comments>https://robertverdam.eu/2016/10/19/vmworld-emea-announcements-vmware-cloud-on-aws/#respond</comments>
		
		<dc:creator><![CDATA[Robert Verdam]]></dc:creator>
		<pubDate>Wed, 19 Oct 2016 11:40:19 +0000</pubDate>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[VMC]]></category>
		<category><![CDATA[VMWonAWS]]></category>
		<category><![CDATA[VMworld]]></category>
		<guid isPermaLink="false">https://robertverdam.eu/?p=3176</guid>

					<description><![CDATA[<p>WOW! I think we just witnessed one of the biggest VMware-announcements we will remember for a long time this year at VMworld 2016. VMware is going to run a full vSphere SDDC-stack (vSphere / VSAN / NSX) bare-metal on AWS. Let me emphasize on this: It&#8217;s running BARE-METAL, so NO nested hypervisor. AWS will be [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2016/10/19/vmworld-emea-announcements-vmware-cloud-on-aws/">VMworld EMEA Announcements: VMware Cloud on AWS</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>WOW! I think we just witnessed one of the biggest VMware-announcements we will remember for a long time this year at VMworld 2016. VMware is going to run a full vSphere SDDC-stack (vSphere / VSAN / NSX) bare-metal on AWS. Let me emphasize on this: It&#8217;s running BARE-METAL, so <strong>NO</strong> nested hypervisor. AWS will be running your workloads on the same vSphere-bits with the same feature sets, you learned to love on purpose-made, dedicated hardware available from all of their AZ&#8217;s (Availability Zones).</p>
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-002.png"><img loading="lazy" class="size-full wp-image-3177 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-002.png" alt="On-Premises DC expanded to AWS" width="660" height="456" srcset="https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-002.png 660w, https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-002-300x207.png 300w" sizes="(max-width: 660px) 100vw, 660px" /></a></p>
<p>It gives you a easy way to extend your private on-premises DC to the AWS cloud and have uniform central management plane, leveraging vCenter Enhanced Linked Mode across all your (public &amp; private) vCenter-servers. One of the coolest things which we witnessed was now really moving a VM from your on-premises and totally moving it to AWS with XvMotion-technologies</p>
<h2>  <a href="https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-004.png"><img loading="lazy" class="size-full wp-image-3179 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-004.png" alt="x-vMotion to AWS" width="845" height="402" srcset="https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-004.png 845w, https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-004-300x143.png 300w, https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-004-768x365.png 768w" sizes="(max-width: 845px) 100vw, 845px" /></a><span id="more-3176"></span>Getting started</h2>
<p>Deploying your VMC is as easy as following these steps:</p>
<ol>
<li>Logging in to VMware-Cloud portal (TBD determined: vmc.vmware.com)</li>
<li>Selecting your (initial) virtual datacenter size</li>
<li>Enter your Payment details (CC / VMware-account)</li>
<li>You&#8217;re good to go!</li>
</ol>
<h2>Elastic DRS</h2>
<p>VMware Cloud on AWS gives us a new capability which gives us a solution for a couple of problems we are facing in a vSphere environment. It adds elasticity to DRS, which allows DRS to auto-scale the amount of hosts you are running for your vSphere-cloud running (with set minimum and maximum amount of hosts it&#8217;s allowed to spin-up in your VMC). So if DRS detects the cluster being imbalanced it automatically spins up a new ESXi-host, add it to your cluster, move workloads to this new host and get the cluster balanced again within no time. This works scaling the cluster up, but also for scaling the cluster down. So no more waiting 6 weeks for getting a new server ordered and racked up and then finally adding it to the cluster. By then your cluster already overloaded or the load is already gone. Just get the resources you need at any time. Obviously the VSAN-datastore is also extended with every host that&#8217;s added to the VMC-cluster. So if you need more capacity on the storage component you just add another host to the cluster.</p>
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-005.png"><img loading="lazy" class="alignnone size-full wp-image-3181" src="https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-005.png" alt="Elastic DRS" width="1292" height="411" srcset="https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-005.png 1292w, https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-005-300x95.png 300w, https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-005-768x244.png 768w, https://robertverdam.eu/wp-content/uploads/2016/10/vmw-aws-005-1024x326.png 1024w" sizes="(max-width: 1292px) 100vw, 1292px" /></a></p>
<p>This reduces the capacity planning you have to do for your vSphere-environment hugely.</p>
<h2>Auto Remediation</h2>
<p>Besides capacity management, HA will be leveraged for auto remediation. When a failure occurs on a host within a cluster it will automatically be evacuated (vSphere maintenance mode and VSAN entering maintenance mode and evacuating from the cluster), a new host started and the workloads restarted on this host. If VSAN FTT (Faults-to-Tolerate) is violated another host is added to fix this automatically.</p>
<h2>Improved Uptime and Performance</h2>
<p>VMware will take care of patching the ESXi-hosts in your VMC cluster and will guarantee you&#8217;re having the amount of resources you&#8217;re paying for. Cluster size is not affected during these rolling updates / upgrades. VMware will have you on the latest and greatest (stable) version which is available. So no more patch management for your vSphere-environment.</p>
<h2>Timeline</h2>
<p>VMC for AWS will be entering the beta phase in the beginning of next year. Can&#8217;t wait to do some beta testing. GA will be somewhere mid-2017. Will it be announced GA at VMworld Las Vegas?!</p>
<h2>More information</h2>
<p>If you&#8217;re looking on more information on VMware Cloud on AWS check the following sources:</p>
<ul>
<li><a href="https://blogs.vmware.com/vsphere/2016/10/vmware-cloud-on-aws-a-closer-look.html">https://blogs.vmware.com/vsphere/2016/10/vmware-cloud-on-aws-a-closer-look.html</a></li>
<li><a href="http://www.twitter.com/vmware_vmc" target="_blank" rel="noopener">@vmware_vmc</a> (twitter)</li>
</ul>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2016/10/19/vmworld-emea-announcements-vmware-cloud-on-aws/">VMworld EMEA Announcements: VMware Cloud on AWS</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robertverdam.eu/2016/10/19/vmworld-emea-announcements-vmware-cloud-on-aws/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3176</post-id>	</item>
		<item>
		<title>VMworld EMEA Announcements : VSAN 6.5</title>
		<link>https://robertverdam.eu/2016/10/18/vmworld-emea-announcements-vsan-6-5/</link>
					<comments>https://robertverdam.eu/2016/10/18/vmworld-emea-announcements-vsan-6-5/#comments</comments>
		
		<dc:creator><![CDATA[Robert Verdam]]></dc:creator>
		<pubDate>Tue, 18 Oct 2016 17:17:06 +0000</pubDate>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMworld]]></category>
		<category><![CDATA[VSAN]]></category>
		<guid isPermaLink="false">https://robertverdam.eu/?p=3159</guid>

					<description><![CDATA[<p>Besides bumping their virtualization-platform to version 6.5, VMware also added some new features to the SDS-solution in the new version of VSAN it announced. This quick article talks about the main new features which stood out according to us. VSAN Version History To give a idea what the main new features were in the previous [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2016/10/18/vmworld-emea-announcements-vsan-6-5/">VMworld EMEA Announcements : VSAN 6.5</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Besides bumping their virtualization-platform to version 6.5, VMware also added some new features to the SDS-solution in the new version of VSAN it announced. This quick article talks about the main new features which stood out according to us.</p>
<h2>VSAN Version History</h2>
<p>To give a idea what the main new features were in the previous releases of VSAN here, a short overview:</p>
<table>
<tbody>
<tr style="height: 24px;">
<td style="height: 24px;"><strong>Version</strong></td>
<td style="height: 24px;"><strong>Timeframe</strong></td>
<td style="height: 24px;"><strong>Added features</strong></td>
</tr>
<tr style="height: 24px;">
<td style="height: 24px;">VSAN (1.0) 5.5</td>
<td style="height: 24px;">March 2014</td>
<td style="height: 24px;">Inital Version</td>
</tr>
<tr style="height: 104px;">
<td style="height: 104px;">VSAN 6.0</td>
<td style="height: 104px;">March 2015</td>
<td style="height: 104px;">All-flash<br />
64 Node cluster<br />
2x Hybrid Speed</td>
</tr>
<tr style="height: 112.833px;">
<td style="height: 112.833px;">VSAN 6.1</td>
<td style="height: 112.833px;">September 2015</td>
<td style="height: 112.833px;">Stretched Cluster<br />
Replication RPO of 5 minutes<br />
2-node ROBO</td>
</tr>
<tr style="height: 89px;">
<td style="height: 89px;">VSAN 6.2</td>
<td style="height: 89px;">March 2016</td>
<td style="height: 89px;">Deduplication<br />
Compression<br />
QoS</td>
</tr>
</tbody>
</table>
<p>We really enjoy the pace in which this product is being developed and in such a incredible pace. Keep it going guys!</p>
<p>The main new features for this 6.5 release which is announced during VMworld EMEA 2016 (Oktober 2016) according to us among others are:</p>
<ul>
<li>iSCSI-Access</li>
<li>Direct Connect for ROBO</li>
</ul>
<p><span id="more-3159"></span></p>
<h2>iSCSI-access</h2>
<p>VSAN target service makes it possible to use a VSAN as a iSCSI-target (what&#8217;s in a name!) and allows these targets to be presented to external (non-virtual) workloads (i.e. MSCS clusters or physical workloads). So no more need for additional storage boxes to tie to your (legacy) physical workloads, you can now also use VSAN for these workloads.</p>
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/10/vsan-6.5-001.png"><img loading="lazy" class="size-full wp-image-3160 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/10/vsan-6.5-001.png" alt="VSAN 6.5 as a iSCSI-target" width="295" height="308" srcset="https://robertverdam.eu/wp-content/uploads/2016/10/vsan-6.5-001.png 295w, https://robertverdam.eu/wp-content/uploads/2016/10/vsan-6.5-001-287x300.png 287w" sizes="(max-width: 295px) 100vw, 295px" /></a></p>
<p>Also allows for SPBM (Storage Policy Based Management) for these targets, so you can set dedup / compression / raid-level (1,5 or 6) and applies them respectively to these iSCSI-objects in your VSAN-datastore.</p>
<h2><strong>Direct Connect for ROBO</strong></h2>
<p>VSAN 6.5, allows for directly connecting to VSAN-nodes together in a ROBO-situation with a couple of crossover-cables which lifts the need for 10Gb network switching connecting the nodes.You can now suffice with only 1Gb-switching for management and witness traffic. So it simplifies the set-up and decreases the cost for setting up VSAN 6.5 for remote offices.</p>
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/10/vsan-6.5-002.png"><img loading="lazy" class="size-full wp-image-3161 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/10/vsan-6.5-002.png" alt="VSAN 6.5 direct connect robo" width="212" height="318" srcset="https://robertverdam.eu/wp-content/uploads/2016/10/vsan-6.5-002.png 212w, https://robertverdam.eu/wp-content/uploads/2016/10/vsan-6.5-002-200x300.png 200w" sizes="(max-width: 212px) 100vw, 212px" /></a></p>
<h2>Further improvements</h2>
<p>A short list of other enhancements / changes in the VSAN 6.5-product:</p>
<ul>
<li>All-Flash now available in VSAN STD license (Compression en Dedup still needs ADV/ENT-licensing) and new VSAN ADV for ROBO offering.</li>
<li>Containers support. VSAN allows as a source of persistent storage for VIC (vSphere Integrated Containers)</li>
<li>Updated REST API and extended PowerCLI module for VSAN</li>
<li>Enhanced hardware support</li>
</ul>
<h2>More information</h2>
<p>For more information on the new Virtual SAN 6.5, have a look at the following links:<br />
<a href="http://www.vmware.com/products/whats-new-virtual-san.html">http://www.vmware.com/products/whats-new-virtual-san.html</p>
<div class="embed-responsive embed-responsive-16by9 mb-30">
<blockquote data-secret="0H6Ni5kccY" class="wp-embedded-content"><p><a href="http://www.yellow-bricks.com/2016/10/18/new-virtual-san-6-5/">What is new for Virtual SAN 6.5?</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" src="http://www.yellow-bricks.com/2016/10/18/new-virtual-san-6-5/embed/#?secret=0H6Ni5kccY" data-secret="0H6Ni5kccY" width="600" height="338" title="&#8220;What is new for Virtual SAN 6.5?&#8221; &#8212; Yellow Bricks" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></div>
<p></a></p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2016/10/18/vmworld-emea-announcements-vsan-6-5/">VMworld EMEA Announcements : VSAN 6.5</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robertverdam.eu/2016/10/18/vmworld-emea-announcements-vsan-6-5/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3159</post-id>	</item>
		<item>
		<title>VMworld EMEA Announcements : vSphere 6.5</title>
		<link>https://robertverdam.eu/2016/10/18/vmworld-emea-announcements-vsphere-6-5/</link>
					<comments>https://robertverdam.eu/2016/10/18/vmworld-emea-announcements-vsphere-6-5/#comments</comments>
		
		<dc:creator><![CDATA[Robert Verdam]]></dc:creator>
		<pubDate>Tue, 18 Oct 2016 07:25:17 +0000</pubDate>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMworld]]></category>
		<category><![CDATA[vSphere]]></category>
		<guid isPermaLink="false">https://robertverdam.eu/?p=3131</guid>

					<description><![CDATA[<p>Today VMware announced it&#8217;s latest version of the vSphere and vCenter platform, version 6.5.  This article talks about some of the latest features VMware added to their virtualisation-platform. vCenter Server (Appliance) 6.5 VMware is dramatically simplifying the experience using the vSphere-platform which is primarily based on the announcement of vCenter Server Applicance 6.5 and it&#8217;s [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2016/10/18/vmworld-emea-announcements-vsphere-6-5/">VMworld EMEA Announcements : vSphere 6.5</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Today VMware announced it&#8217;s latest version of the vSphere and vCenter platform, version 6.5.  This article talks about some of the latest features VMware added to their virtualisation-platform.</p>
<h2>vCenter Server (Appliance) 6.5</h2>
<p>VMware is dramatically simplifying the experience using the vSphere-platform which is primarily based on the announcement of vCenter Server Applicance 6.5 and it&#8217;s new capabilities which are exclusive to the vCenter Server Appliance.</p>
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/10/VCSA-001.png"><img loading="lazy" class="wp-image-3134 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/10/VCSA-001.png" alt="VCSA 6.5 only features" width="875" height="200" srcset="https://robertverdam.eu/wp-content/uploads/2016/10/VCSA-001.png 1335w, https://robertverdam.eu/wp-content/uploads/2016/10/VCSA-001-300x69.png 300w, https://robertverdam.eu/wp-content/uploads/2016/10/VCSA-001-768x175.png 768w, https://robertverdam.eu/wp-content/uploads/2016/10/VCSA-001-1024x234.png 1024w" sizes="(max-width: 875px) 100vw, 875px" /></a></p>
<p>The VCSA-only features which are new to 6.5 are:</p>
<ul>
<li><strong>Native High Availability</strong><br />
Active/Passive HA solution with a witness for resolving split-brain situations. The setup requires 2 separate networks (Private vs. Public). The private network is used for HA (routed)-traffic between the both VSCA which consists of (sync) DB and (async) file-replication. This gives us a easy way to set-up a high available vCenter server.</li>
<li><strong>(Integrated) VMware Update Manager</strong><br />
VMware Update Manager is now finally integral part of VCSA, so no more managing a seperate Windows VM for using VMware Update Manager.</li>
<li><strong>Improved Appliance Management</strong><br />
Increased insight into how the appliance is doing CPU-, Memory-, Network- and databasewise. This reduces having to rely on the CLI for simple monitoring task on the VCSA and allows do this via the UI (VAMI). A thingy called vMon enhances the watchdog functionality which is also used for determing which host is active and which is passive when using VCSA in a HA-setup.</li>
<li><strong>Native Backup &amp; Restore<br />
</strong>Native file-based backup &amp; restore capabilities built-in to the VCSA, which allows backing up via HTTP(s)/FTP(s)/SCP protocols and restoring the state of a VCSA to a (fresh) appliance.  All this happens from within the VAMI (Virtual Appliance Management Interface). It evens allows for restoring the configuration when installing the VCSA via ISO.</li>
</ul>
<p><span id="more-3131"></span></p>
<p>The new VCSA-installer gives us an additional set of options for setting up VCSA. Besides Installing and upgrading a VCSA, it now also adds the options to migrate to VCSA from a current embedded/external windows-based vCenter Server (5.5 or 6) setup. The VCSA assumes the old personality (i.e. UUID, IP, Name and certificates) of the windows-based setup and the databases are migrated to Postgres. Serveral options are included for which further data (Configuration, Events and Tasks and/or performance metrics) is migrated. Futhermore is the installer not only supported on Windows, but also on Linux and Mac and runs on top of Photon OS.</p>
<h2>vSphere Client (HTML 5 Web Client)</h2>
<p>VMware is using a new standard framework for UI/UX (Clarity UI) which it&#8217;s converting all it&#8217;s products to. The first product being published which is based on this new framework is the new vSphere HTML 5 based client which is now integrated into vSphere 6.5. The new HTML5-based web client started out as a fling VMware has developed earlier in their labs. So no more browser plugins needed and a great user experience awaits. VMware still really appreciates your feedback, so if you care to share some feedback with VMware, please hit the nice little smiley-face in the upper-right corner to make this product even better!</p>
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/10/vSphere-Client-001.png"><img loading="lazy" class="size-full wp-image-3135 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/10/vSphere-Client-001.png" alt="vSphere 6.5 Client" width="644" height="502" srcset="https://robertverdam.eu/wp-content/uploads/2016/10/vSphere-Client-001.png 644w, https://robertverdam.eu/wp-content/uploads/2016/10/vSphere-Client-001-300x234.png 300w" sizes="(max-width: 644px) 100vw, 644px" /></a></p>
<h2>Enhanced Lifecycle Management</h2>
<p>VMware also added some little nifty enhancements to their products which make the life of us Virt-Admins a little easier. Amongst others (a lot of enhancements were announced) these are the features that stood out to me:</p>
<ul>
<li><strong>Default cluster remediation options (Update Manager)<br />
</strong>Possible to now save cluster remediation options as a default, so you don&#8217;t have to set them again and again when doing a rolling cluster upgrade. But now you can just fire away with the settings you used previously.<br />
<a href="https://robertverdam.eu/wp-content/uploads/2016/10/Lifecycle-Management-Enhancements-001.png"><img loading="lazy" class="wp-image-3136 aligncenter" src="https://robertverdam.eu/wp-content/uploads/2016/10/Lifecycle-Management-Enhancements-001.png" alt="Default Cluster Remediation Options" width="726" height="408" srcset="https://robertverdam.eu/wp-content/uploads/2016/10/Lifecycle-Management-Enhancements-001.png 1589w, https://robertverdam.eu/wp-content/uploads/2016/10/Lifecycle-Management-Enhancements-001-300x169.png 300w, https://robertverdam.eu/wp-content/uploads/2016/10/Lifecycle-Management-Enhancements-001-768x432.png 768w, https://robertverdam.eu/wp-content/uploads/2016/10/Lifecycle-Management-Enhancements-001-1024x575.png 1024w" sizes="(max-width: 726px) 100vw, 726px" /></a></li>
<li><strong>Filtering settings in Host profiles<br />
</strong>VMware added a search box which makes it very easy to look for certain settings within your host profile. This saves you a a lot of time clicking through the tree to find the right setting for setting the location where your VMware-tools depot is located, which you always forget (like me) where it was exactly located.<a href="https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-001.png"><img loading="lazy" class="alignnone size-full wp-image-3137" src="https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-001.png" alt="Host Profiles Search Box" width="1349" height="311" srcset="https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-001.png 1349w, https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-001-300x69.png 300w, https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-001-768x177.png 768w, https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-001-1024x236.png 1024w" sizes="(max-width: 1349px) 100vw, 1349px" /><br />
</a></li>
<li><strong>Bulk modification of host profile customizations<br />
</strong>For management at scale purposes you&#8217;re now able to bulk export alle the host profile customizations as a CSV, edit them and reimport them and voila you&#8217;ve got your host profile customization set-up in bulk!<br />
<a href="https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-002.png"><img loading="lazy" class="alignnone size-full wp-image-3138" src="https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-002.png" alt="Bulk modification of host profile customizations" width="1442" height="680" srcset="https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-002.png 1442w, https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-002-300x141.png 300w, https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-002-768x362.png 768w, https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-002-1024x483.png 1024w" sizes="(max-width: 1442px) 100vw, 1442px" /></a></li>
<li><strong>Detailed compliance reporting and proposed changes for host profiles<br />
</strong>It will now become very easy to see what settings will be changed on a certain host when remediating those hosts. No more guessing or searching for wat settings will get changed, but vSphere will tell you up front when you are scanning or remediating the hosts.<a href="https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-003.png"><img loading="lazy" class="alignnone size-full wp-image-3139" src="https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-003.png" alt="Remedating host with host profile" width="1202" height="701" srcset="https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-003.png 1202w, https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-003-300x175.png 300w, https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-003-768x448.png 768w, https://robertverdam.eu/wp-content/uploads/2016/10/Host-Profiles-003-1024x597.png 1024w" sizes="(max-width: 1202px) 100vw, 1202px" /></a></li>
</ul>
<p>Hopes this gives you an idea of what kind of enhancements VMware has made in their vCenter product. If any more nifty features pop-up during VMworld or any sessions we attend we&#8217;ll keep you updated ofcourse!</p>
<p>Check the following link for VMware official blogs about the newly released solutions:  <a href="http://www.vmware.com/company/news/releases/vmw-newsfeed.VMware-Advances-Cross-Cloud-Architecture-with-New-Releases-of-vSphere,-Virtual-SAN-and-vRealize-Solutions-to-Drive-IT-and-Developer-Productivity.2104600.html" target="_blank" rel="noopener">http://www.vmware.com/company/news/releases/vmw-newsfeed.VMware-Advances-Cross-Cloud-Architecture-with-New-Releases-of-vSphere,-Virtual-SAN-and-vRealize-Solutions-to-Drive-IT-and-Developer-Productivity.2104600.html</a></p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2016/10/18/vmworld-emea-announcements-vsphere-6-5/">VMworld EMEA Announcements : vSphere 6.5</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robertverdam.eu/2016/10/18/vmworld-emea-announcements-vsphere-6-5/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3131</post-id>	</item>
		<item>
		<title>Interview Series: Daniel Zuthof</title>
		<link>https://robertverdam.eu/2016/09/22/interview-series-daniel-zuthof/</link>
					<comments>https://robertverdam.eu/2016/09/22/interview-series-daniel-zuthof/#respond</comments>
		
		<dc:creator><![CDATA[Robert Verdam]]></dc:creator>
		<pubDate>Thu, 22 Sep 2016 09:48:23 +0000</pubDate>
				<category><![CDATA[InterviewSeries]]></category>
		<category><![CDATA[interview series]]></category>
		<guid isPermaLink="false">https://robertverdam.eu/?p=3106</guid>

					<description><![CDATA[<p>Meet our next participant in the Cloudfix Interview Series! Enjoy the read, feedback is always welcome!! Full Name: Daniel Zuthof Company: Equinix  Certifications:  VCAP5-DCA/DCD, VCP3,4,5-DCV, VCP-Cloud, MCSE NT4,2000,2003, MCITP EA 2008, MCSA 2012, MCTS Exchange 2007, MCTS SQL Server 2000,2005, Brocade BCNE, NetApp NCDA 7-mode,cDot Novell CNE 3,4,5,6, Oracle 11g OCA, ITIL, Prince2 Twitter: @DanielZuthof LinkedIn: https://nl.linkedin.com/in/daniël-zuthof-0b9ab5110/en [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2016/09/22/interview-series-daniel-zuthof/">Interview Series: Daniel Zuthof</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Meet our next participant in the Cloudfix Interview Series! Enjoy the read, feedback is always welcome!!</p>
<hr />
<p><a href="https://robertverdam.eu/wp-content/uploads/2016/09/AAEAAQAAAAAAAAYqAAAAJDI5YmQ1NzY0LTM3YTgtNGYwMy05OTljLWVlNDI2NTExZTQyZQ.jpg"><img loading="lazy" class="alignleft wp-image-3109" src="https://robertverdam.eu/wp-content/uploads/2016/09/AAEAAQAAAAAAAAYqAAAAJDI5YmQ1NzY0LTM3YTgtNGYwMy05OTljLWVlNDI2NTExZTQyZQ.jpg" alt="aaeaaqaaaaaaaayqaaaajdi5ymq1nzy0ltm3ytgtngywmy05otljlwvlndi2ntexztqyzq" width="206" height="206" /></a></p>
<table style="height: 170px; width: 444px;">
<tbody>
<tr style="height: 24px;">
<td style="width: 119px; height: 24px;"><strong>Full Name:</strong></td>
<td style="width: 311px; height: 24px;">Daniel Zuthof</td>
</tr>
<tr style="height: 24px;">
<td style="width: 119px; height: 24px;"><strong>Company:</strong></td>
<td style="width: 311px; height: 24px;">Equinix</td>
</tr>
<tr style="height: 144px;">
<td style="width: 119px; height: 144px;"><strong> Certifications:</strong></td>
<td style="width: 311px; height: 144px;"> VCAP5-DCA/DCD, VCP3,4,5-DCV, VCP-Cloud, MCSE NT4,2000,2003, MCITP EA 2008, MCSA 2012, MCTS Exchange 2007, MCTS SQL Server 2000,2005, Brocade BCNE, NetApp NCDA 7-mode,cDot Novell CNE 3,4,5,6, Oracle 11g OCA, ITIL, Prince2</td>
</tr>
<tr style="height: 24px;">
<td style="width: 119px; height: 24px;"><strong>Twitter:</strong></td>
<td style="width: 311px; height: 24px;"><a href="https://twitter.com/DanielZuthof" target="_blank" rel="noopener noreferrer">@DanielZuthof</a></td>
</tr>
<tr style="height: 48px;">
<td style="width: 119px; height: 48px;"><strong>LinkedIn:</strong></td>
<td style="width: 311px; height: 48px;"><a href="https://nl.linkedin.com/in/daniël-zuthof-0b9ab5110/en" target="_blank" rel="noopener noreferrer">https://nl.linkedin.com/in/daniël-zuthof-0b9ab5110/en</a></td>
</tr>
</tbody>
</table>
<hr />
<h2><strong>Questions</strong></h2>
<p><strong>Who is Daniel Zuthof?</strong></p>
<p>I am an IT enthusiast living in Enschede with my wife and 2 young kids. In my spare time I love to spend time with my family, friends, ride my motorcycle and road bike as often as possible.</p>
<p>After finishing school at age 20 I started working at several employers of which all are in IT. The first was at a local IT firm in the city I lived in at the time. Afterwards I worked at several larger businesses in the Arnhem and Utrecht area. Before starting at Equinix, I worked in the IT department of the hospital in Enschede as senior systems engineer.</p>
<p><strong><br />
Can you tell us something about your employer/company?</strong></p>
<p>I work at the Managed Services department at Equinix. Equinix is the world largest suppliers of carrier neutral datacenters and operates 145+ datacenters across 5 continents in 40 metro areas. In The Netherlands, Equinix operates 10 datacenters of which 1 is currently being build.</p>
<p>The main business consists of housing, inter rack connections, inter metro area connections, inter country connections, direct public cloud connections (Equinix Cloud Exchange) and internet connections.</p>
<p>The Managed Services department designs, builds, operates and supports IaaS and PaaS platforms for customers inside our own datacenters. Besides building dedicated platforms according to customers specifications we also operate our own Equinix Business Cloud (EBC) IaaS platform, which is located in 3 datacenters across The Netherlands. Other products we sell are security &amp; storage solutions and back-up &amp;  replication services.</p>
<p><strong>Can you describe your IT infrastructure in short?</strong></p>
<p><span id="more-3106"></span></p>
<p>We operate IaaS and PaaS platform of every scale. One of them is the Equinix Business Cloud (EBC). Without going in too much detail the EBC platform is operational in our Enschede, Zwolle and Amsterdam datacenters. The 3 sites are well connected in a redundant way. In each of the sites a VMware based independent IaaS platform is operated which is managed by using a common management layer. If required by a customer, complete site redundancy solutions can be offered.</p>
<p><strong><br />
What is the main purpose for this IT platform?</strong></p>
<p>The EBC platform is primarily designed for customers who do not want to operate their private (on-premises) cloud platform. They want to extend their existing platform without investing in new hardware and find it important to know where their information is stored.</p>
<p>The storage layer is based upon a multi-tenant scale out design. This makes it easy to add additional capacity and it can deliver specific tiers up to a guaranteed 10K IOPS level. The EBC platform makes it possible for our customers to connect to the EBC network and consume compute and storage independently from each other in all 3 sites.</p>
<p><strong><br />
If you had the chance to design and build this environment all over again, would you change anything? If so, what would you do differently?</strong></p>
<p>As a matter of fact, the EBC platform is just rebuild using the latest 100GbE networking technology using overlay networks and multi-tenant scale out storage. This makes it possible to scale the platform to the next level while lowering operational efforts.</p>
<p>The next focus will be on cloud scale automation and further implementing the network overlay techniques into the platform.</p>
<p><strong><br />
What are new developments or solutions which caught your eye and why?</strong></p>
<p>I’m interested in a lot of great techniques. A quick summary would be cloud native apps, storage, cloud management products, network virtualization and automation.</p>
<p>&nbsp;</p>
<p><strong>What are your thoughts on applying these on your own environment?</strong></p>
<p>To be able to serve our customer at the levels they deserve now and in the future, network virtualization and automation products are key to the infrastructure. Network virtualization is important for hypervisor based routing and firewalling. Also the micro segmentation and hybrid cloud possibilities are important for us as a service provider.</p>
<p>For the automation part, the operability with the virtualization solution is important since these two work closely together. Automation lowers the operational costs and implementation time while quality is increased.</p>
<p><strong><br />
How do you see IT change in the next 5 years?</strong></p>
<p>Cloud native apps will be a greater part of the IT landscape. More companies will move towards the DevOps style of managing their environment, which aligns to the agile framework where more and more companies move to.</p>
<p><strong><br />
How do you think this will translate to your current working environment?</strong></p>
<p>Equinix will embrace the changes to be able to serve our customers the best way possible.</p>
<p>&nbsp;</p>
<p><strong>What&#8217;s the greatest tech disruption you&#8217;ve seen in your career?</strong></p>
<p>I would say cloud computing in general. This manner of looking to IT provided services changed everything in the last decade. Combined with virtualization on the compute, storage and network layers, the possibilities are endless for those who are open for it.</p>
<p>&nbsp;</p>
<p><strong>What would you do for a living if you had not ended up in IT?</strong></p>
<p>Probably I would be cook or electrician is some way. Those two appealed to me in my teenage years, besides computer technology. When looking back with my current knowledge, I would not choose another type of job. Working in IT is one of the most challenging in any aspect if you are open to it. The industry is so innovative and new product and techniques are released often which requires you to rethink designs and solution regularly.</p>
<p><strong><br />
Thanks for sharing your thoughts with us!!</strong></p>
<p>The post <a rel="nofollow" href="https://robertverdam.eu/2016/09/22/interview-series-daniel-zuthof/">Interview Series: Daniel Zuthof</a> appeared first on <a rel="nofollow" href="https://robertverdam.eu">RobertVerdam.eu</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robertverdam.eu/2016/09/22/interview-series-daniel-zuthof/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3106</post-id>	</item>
	</channel>
</rss>
