vmware vcenter – How to understand NSX-T (3.0) networking in terms of VCP networking

I am new to NSX-T (3.0) and trying to learn it by comparing it with VPC based networking which is what I am familiar with and which is kind of a standard among most of the public clouds. As a developer/(solution) architect, I understand how/when to provision (virtual) networking, compute and storage resources in a public cloud required for deploying an application.

While I have fairly good understanding of vCenter/vRA and basic understanding of vSphere, I am unable to understand what part of NSX-T can be handled by a developer/architect without help from a system/network engineer. Most of the documentation around NSX-T seems to be for system engineers which seems to be okay considering (enterprise) private cloud are setup and managed by these people. But then what does an offering like VMWare on AWS offer to a developer in terms of self service when developers are able to handle all layers (compute, network, storage) of IaaS in AWS all by themselves without any help from DevOps/ITOps (most of the time) for the environments (e.g. DEV/PoC etc) which are or can be managed by developers?

When it comes to AWS, a developer can provision one VPC for all the environments of an application or one VPC per environment per application. You use internet gateway for outbound internet connectivity and elastic IP for inbound internet connectivity. You use VPN gateway to connect two VPCs in same or different accounts. So VPC is your starting point and at no point you will see or interact with anything on physical layer.

When it comes to NSX-T (3.0), you have to understand vlan/overlay transport zones, transport nodes, Tier-0/1 gateways etc etc which forces a developer to understand complex concepts similar to linux networking. This is quite opposite to what AWS has done by simplifying IaaS services to an extent wherever developers are able to manage their infrastructure all by themselves without knowing even a single thing about complex world of physical layers. With new versions of VCF, I was hoping that developers will be able to manage at least some parts of VMware SDDC themselves instead of relying on DevOps/ITOps but it seems that it still requires a number of system engineers to operate it leaving no room for small teams (without or very few DevOps/ITOps folks around them) to manage at least some parts of VMware SDDC themselves in offering like VMWare on AWS.

To summarize –

  • Given that someone has setup NSX-T (3.0), what parts of (virtual) networking infrastructure can be provisioned by developers in self service way?
  • What is the starting point for a developer in NSX-T (3.0) and how to proceed further from this starting point?
  • What is the equivalent of VPC in NSX-T (3.0)?
  • Do you create one transport zone for all the environments of an application or one tz for each of the environments of an application?
  • Is there any developer centric step by step guide explaining what NSX-T constructs a developer should create/provision in self service manner in order to deploy his application on VMware SDDC?

calculus and analysis – Understand output of Integration

Could someone help me understand the output of the following Integration in Mathematica?

Specifically,

(a) what is the meaning of “True”?

(b) Why is the answer in two parts which seem to overlap i.e. x >= 1, and x > 0, but one part is still subtracted from the other?

(c) If the evaluated integral is plotted, it’s showing up as a smooth curve, but the result itself doesn’t get any more compact with FullSimplify?

$Assumptions = Element(x, Reals) && Element(x1, Reals) &&  t > 0 && k > 0; 
G1=Tanh(Sqrt((x - x1)^2)/Sqrt(2))
G01 = FullSimplify(Integrate(G1*1, {x1, 0, 1}))

Output with Mma 12.0 on Windows 10

Piecewise({{-1 + x + Sqrt(2)*Log(4/(1 + E^(Sqrt(2)*(-1 + x)))), 
 x >= 1}}, 1 - x + Sqrt(2)*
 Log(1 + E^(Sqrt(2)*(-1 + x)))) - Piecewise({{x + Sqrt(2)*Log(4/(1 + E^(Sqrt(2)*x))), x > 0}}, -x + Sqrt(2)*Log(1 + E^(Sqrt(2)*x)))

scalability – Trying to understand NIC receive / send operations per second estimations for non-abstract system design

I am working through resources related to non-abstract large scale system design. I’m working through the google system design exercise in this video.

In the example solution presented, a calculation is made for the number of write requests a write server can pass through to an underlying storage subsystem. Essentially, the write service is receiving 4MB images from users and for each calling the storage system write operation in parallel. We assume that the storage subsystem has inifinite scaling. The write service hardware has a NIC capable of 1GB/s operation. We assume that the server has reasonable CPU and cache/memory to fully saturate the link up and down.

The example video tried to estimate the total number of write operations that a single server can achieve per second.

They state that:

  • it takes 4ms to receive the file from the user (4MB / 1000 MB/s)
  • it takes 4ms to send the file to the storage back end (4MB / 1000 MB/s)
  • Therefore 8ms to ‘save’ the file.
  • Therefore a single server instance
    can process 125 writes / second.

But this feel a bit wrong to me. If the server hardware is a standard NIC connected to a standard switch, then the connection is full duplex? Therefore the bandwidth up and down is not shared, and therefore the write operations would be roughly 250 / second?

plotting – Cannot understand meaning of “identical”

This came up in the context of plotting solutions to NDSolve, but I’ve reduced it to the following issue. This really has me scratching my head.

points = {{0, 0}, {1, 1}, {2, 3}, {3, 4}, {4, 3}, {5, 0}};
ifun = Interpolation[points]

ifun is now an InterpolatingFunction. I cannot plot ifun, but I can plot ifun

Plot[ifun

If I make the following assignment, I cannot plot ifun2

ifun2

In other words, the following statement will not plot anything:

Plot[ifun2

However, if I do this:

ifun3[t_] = ifun

I can plot ifun3

ifun2

The answer is “True”. Similarly for ifun3

python – i am trying to scrap google by uploading image with this script but i don’t understand this error : JSONDecodeError:

the error is in the function
search_and_save
at the time of the process


from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os
import json
import urllib
import sys
import time

# ajout d'un chemin vers geckodriver à la variable d'environnement OS
os.environ("PATH") += os.pathsep + os.getcwd()

# Configuration
download_path = r"D:Seleniumscrap_img"
# Images
words_to_search = ('casque vr oculus quest')
nb_to_download = (400)
first_image_position = (25)

def main():
    if len(words_to_search) != len(nb_to_download) or len(nb_to_download) != len(first_image_position) :
        raise ValueError('Vous avez peut-être oublié de configurer l'une des listes (length is different)')
    i= 0
    # Pour chaque mot de la liste, nous téléchargeons le nombre d'images demandé
    while i<len(words_to_search):
        print("Words "+str(i)+" : "+str(nb_to_download(i))+"""+words_to_search(i)+""")
        if nb_to_download(i) > 0:
            search_and_save(words_to_search(i),nb_to_download(i), first_image_position(i))
        i+=1


def search_and_save(text, number, first_position):
    # Number_of_scrolls * 400 images seront ouvertes dans le navigateur
    number_of_scrolls = int((number + first_position)/ 400 + 1) 
    print("Chercher : "+text+" ; nombre : "+str(number)+"; À partir de la: "+str(first_position)+" ; scrolls : "+str(number_of_scrolls))

    # Create directories to save images
    if not os.path.exists(download_path + text.replace(" ", "_")):
        os.makedirs(download_path + text.replace(" ", "_"))

    # Connect to Google Image
    url = "https://www.google.co.in/search?q="+text+"&source=lnms&tbm=isch"
    driver = webdriver.chrome.webdriver.WebDriver(executable_path='D:/Selenium/chromedriver_win32/chromedriver.exe')
    driver.get(url)
    headers = {}
    headers('User-Agent') = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
    extensions = {"jpg", "jpeg", "png", "gif"}

    img_count = 0
    downloaded_img_count = 0
    img_skip = 0

    # Prepare Google Page
    for _ in range(number_of_scrolls):
        for __ in range(10):
            # Multiple scrolls needed to show all 400 images
            driver.execute_script("window.scrollBy(0, 1000000)")
            time.sleep(0.2)
        # to load next 400 images
        time.sleep(2.5)
        try:
            driver.find_element_by_xpath("//input(@value='Show more results')").click()
            time.sleep(2.5)
        except Exception as e:
            print("images trouvées:"+ str(e))
            break

    # Process (download) images
    imges = driver.find_elements_by_xpath('//*(@class="rg_i Q4LuWd tx8vtf")')
    print("Total images:"+ str(len(imges)) + "n")
    for img in imges:
        if img_skip < first_position:
            # Skip first images if asked to
            img_skip += 1
        else :
            # Get image
            img_count += 1
            img_url = json.loads(img.get_attribute('innerHTML'))("ou")
            img_type = json.loads(img.get_attribute('innerHTML'))("ity")
            print("image télécharger "+ str(img_count) + ": "+ img_url)
            try:
                if img_type not in extensions:
                    img_type = "jpg"
                # Download image and save it
                req = urllib.request.Request(img_url, headers=headers)
                raw_img = urllib.request.urlopen(req).read()
                f = open(download_path+text.replace(" ", "_")+"/"+str(img_skip+downloaded_img_count)+"."+img_type, "wb")
                f.write(raw_img)
                f.close
                downloaded_img_count += 1
            except Exception as e:
                print("Échec du téléchargement:"+ str(e))
            finally:
                print("")
            if downloaded_img_count >= number:
                break

    print("Total ignoré : "+str(img_skip)+"; Total télécharger : "+ str(downloaded_img_count)+ "/"+ str(img_count))
    driver.quit()

if __name__ == "__main__":
    main()

Words 0 : 400″casque vr oculus quest”
Chercher : casque vr oculus quest ; nombre : 400; À partir de la: 25 ; scrolls : 2
images trouvées:Message: no such element: Unable to locate element: {“method”:”xpath”,”selector”:”//input(@value=’Show more results’)”}
(Session info: chrome=81.0.4044.138)

Total images:400

---------------------------------------------------------------------------
JSONDecodeError                           Traceback (most recent call last)
<ipython-input-44-f96ad3999c8f> in <module>
     99 
    100 if __name__ == "__main__":
--> 101     main()

<ipython-input-44-f96ad3999c8f> in main()
     25         print("Words "+str(i)+" : "+str(nb_to_download(i))+"""+words_to_search(i)+""")
     26         if nb_to_download(i) > 0:
---> 27             search_and_save(words_to_search(i),nb_to_download(i), first_image_position(i))
     28         i+=1
     29 

<ipython-input-44-f96ad3999c8f> in search_and_save(text, number, first_position)
     75             # Get image
     76             img_count += 1
---> 77             img_url = json.loads(img.get_attribute('innerHTML'))("ou")
     78             img_type = json.loads(img.get_attribute('innerHTML'))("ity")
     79             print("image télécharger "+ str(img_count) + ": "+ img_url)

c:usersibrahimappdatalocalprogramspythonpython36libjson__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    352             parse_int is None and parse_float is None and
    353             parse_constant is None and object_pairs_hook is None and not kw):
--> 354         return _default_decoder.decode(s)
    355     if cls is None:
    356         cls = JSONDecoder

c:usersibrahimappdatalocalprogramspythonpython36libjsondecoder.py in decode(self, s, _w)
    337 
    338         """
--> 339         obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    340         end = _w(s, end).end()
    341         if end != len(s):

c:usersibrahimappdatalocalprogramspythonpython36libjsondecoder.py in raw_decode(self, s, idx)
    355             obj, end = self.scan_once(s, idx)
    356         except StopIteration as err:
--> 357             raise JSONDecodeError("Expecting value", s, err.value) from None
    358         return obj, end

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

domain name system – DNS DDOS Attack – I would like to understand the registry

As part of a DOOS (largely ineffective) attack I am currently viewing log messages of the form:

 client #3074 (): query:  IN RRSIG + ()

My reading of the DNS record suggests that this is a query that comes from < EXTERNAL-IP >, with the result to be sent to < ONE-OF-MY-IPs >. Is that correct?

We are running an older BIND, which will be updated soon, but I was hoping to understand what this query is actually doing (many are submitting).

Edit: Also, it would be nice to know how you can structure it to send the result to another IP.

security certificate – How to understand HTTPS / SSL?

I deployed a python server a few weeks ago, but for that I had to use nginx.

And following the tutorial, I talked about enabling https / ssl.

Okay, I did that.

Now I am studying Nginx to better understand how it works, but in the Ningx course (Linux Academy) it doesn’t cover things so much about https / ssl, it only covers things like enabling using lets encrypt and certbot.

But I want to understand how it works behind the scenes.

What readings are recommended for this?

PS: all tutorials on how to enable https with nginx use certbot with lets encrypt.

javascript: understand the order of the multiple arguments that are passed to solve and the value given to .then ()

function fn() {
  return Promise.resolve("firstValue")
}

function twoReturnValues(firstValue) {
  return firstValue, "secondValue"
}

function twoReturnValuesPromise(firstValue) {
  return Promise.resolve(firstValue, "secondValue")
}

fn().then(twoReturnValues).then(console.log) // secondValue
fn().then(twoReturnValuesPromise).then(console.log) // firstValue

Given the code snippet above, I'm confused why:

fn().then(twoReturnValues).then(console.log)

fingerprints:
secondValue

and:
fn().then(twoReturnValuesPromise).then(console.log)

Print:
firstValue

amazon ec2 – Understand the http response

Code 403 means & # 39; prohibited & # 39; as you probably already know. What follows the HTTP response code in your log files would depend on the LogFormat directive that is in effect for your server / vhost / site / whatever. You may want to check Apache's custom log format and compare this to what's in your Apache configuration file.

For example, on my machine (serving only one website), the current apache configuration for the site, (/etc/apache2/sites-available/000-default.conf) contains this little bit:

CustomLog ${APACHE_LOG_DIR}/access.log combined

That says my access log uses the nickname combined which we define in a main / separate apache configuration file (/etc/apache2/apache2.conf) like so:

LogFormat "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined

The 403 in your example corresponds to the %>s flag format of documents:

%s - . For requests that have been internally redirected, this is the status of the original request. Use %>s for the final status.

This is followed by% O, which is the number of bytes sent:

%O -  sent, including headers. May be zero in rare cases such as when a request is aborted before a response is sent. You need to enable mod_logio to use this.

So don't worry about the & # 39; 199 & # 39; which is just the number of bytes sent in your reply. If your server is sending the exact same page every time, this could be the number of characters in the HTML response.

Are the cons self-centered, rude and selfish people who can't understand other points of view unless they've been through the same thing?

Who cannot understand other points of view unless they have been through the same thing?

That actually targets the vast majority of the population and does not recognize political sides. Oh, people say yes, they claim to feel pain or understand. It's just talking about most of them, they have no idea. That is also not a left or right thing. The fact that you think it is points more to your own lack of understanding than to anything else.